MCP Logger
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation4/5
Most tools have distinct purposes targeting specific domains (workouts, nutrition, body metrics), but some overlap exists. For example, 'log_workout' and 'add_exercise' both handle exercise logging, which could cause confusion about when to use each. However, the descriptions clarify that 'log_workout' is for complete workouts while 'add_exercise' is for incremental updates.
Naming Consistency4/5The naming follows a consistent verb_noun pattern throughout (e.g., 'add_exercise', 'get_workouts', 'log_body_metrics'), with only minor deviations. The main inconsistency is 'search_logs' (verb_noun) versus 'get_exercise_history' (verb_adjective_noun), but overall the pattern is clear and predictable.
Tool Count4/5With 17 tools, the count is slightly high but reasonable for a comprehensive fitness and nutrition logging server. It covers workouts, nutrition, and body metrics, so each tool generally earns its place, though some consolidation might improve coherence (e.g., combining delete operations).
Completeness5/5The tool set provides complete CRUD/lifecycle coverage for workouts, nutrition days, meals, and body metrics. It includes creation (log_workout, upsert_nutrition_day), retrieval (get_workouts, get_nutrition_day), updates (add_exercise, upsert_meal), and deletion (delete_meal, delete_nutrition_day), with no obvious gaps for the domain.
Average 3/5 across 17 of 17 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states it 'gets' data, implying a read-only operation, but doesn't mention permissions, rate limits, data format, or whether it returns paginated results. This is inadequate for a tool with parameters and potential complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, 'Get body metrics with skinfolds.', which is front-loaded and wastes no words. However, this brevity contributes to underspecification rather than clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, 0% schema coverage, no annotations, but an output schema exists, the description is incomplete. It doesn't explain what the tool returns, how parameters affect results, or behavioral aspects like error handling. The output schema might cover return values, but the description lacks necessary context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The tool description adds no information about parameters like 'from_date', 'to_date', 'limit', or 'offset', leaving their purpose and format (e.g., date strings, pagination) unexplained. This fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Get body metrics with skinfolds' which indicates it retrieves body metrics data, but it's vague about what specific metrics or skinfold measurements are included. It doesn't distinguish from sibling tools like 'log_body_metrics' (which likely creates entries) or 'get_nutrition_day' (which retrieves nutrition data), leaving ambiguity about its unique scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this is for historical data retrieval, how it differs from 'log_body_metrics' (which might be for inputting data), or any prerequisites like authentication needs. The description lacks context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'various filters' but doesn't disclose behavioral traits like pagination (implied by limit/offset in schema), authentication needs, rate limits, or what happens with null parameters. For a query tool with 7 parameters, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's function without unnecessary elaboration. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters with 0% schema coverage, no annotations, and sibling tools that suggest a fitness-tracking context, the description is incomplete. It doesn't explain filter semantics, output format (though an output schema exists), or how this tool fits into the broader system. For a query tool with multiple filters, more context is needed to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so parameters are undocumented in the schema. The description only vaguely references 'various filters' without explaining what the 7 parameters mean (e.g., date ranges, workout types, tags). It adds minimal semantic value beyond the parameter names themselves, failing to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Query workouts with various filters' states the action (query) and resource (workouts) but is vague about scope and differentiation. It doesn't specify whether this returns all workouts or a subset, nor how it differs from sibling tools like 'get_last_workout' or 'log_workout'. The purpose is understandable but lacks specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'get_last_workout' (likely for recent data) and 'log_workout' (likely for creating records), the description offers no context for choosing this filtered query tool. Usage is implied only by the word 'query', but no explicit when/when-not instructions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves summaries but does not clarify if it's read-only, requires authentication, has rate limits, or describes the output format. The description lacks critical behavioral traits, leaving the agent with insufficient context for safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It is appropriately sized and front-loaded, directly stating the tool's core function without unnecessary elaboration. Every part of the sentence earns its place by conveying essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no annotations) and the presence of an output schema, the description is minimally adequate. It covers the basic purpose but lacks details on parameter usage, behavioral traits, and differentiation from siblings. The output schema mitigates some gaps, but the description should do more to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions a date range, which aligns with 'from_date' and 'to_date', but does not explain their format, defaults, or optionality. It omits any reference to 'limit' and 'offset' for pagination, failing to add meaningful semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose as retrieving nutrition summaries for a date range, which is clear but vague. It specifies the resource (nutrition summaries) and scope (date range) but lacks detail on what constitutes a 'summary' or how it differs from sibling tools like 'get_nutrition_day'. It avoids tautology by not merely restating the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention sibling tools like 'get_nutrition_day' for single-day data or 'search_logs' for broader queries, nor does it specify prerequisites or exclusions. Usage is implied by the date range focus but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It hints at destructive action ('Delete') and an optional cascade effect ('optionally its items'), but lacks details on permissions, irreversibility, error conditions, or response format. The output schema exists but isn't described, leaving behavior opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It front-loads the core action ('Delete a meal') and appends the optional feature concisely. Every element earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations, 0% schema coverage, and an output schema (unexplained), the description is inadequate. It misses critical context: safety warnings, authentication needs, error handling, and what the output contains. Sibling tools suggest a nutrition/health context, but no domain-specific guidance is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but only partially does. It clarifies that 'meal_id' identifies the meal to delete and 'delete_items' controls cascading deletion, adding meaning beyond schema types. However, it doesn't explain parameter constraints (e.g., valid meal_id ranges) or default behavior (delete_items defaults to true), leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a meal'), and specifies an optional behavior ('and optionally its items'). It distinguishes from sibling 'delete_meal_item' by targeting the meal itself rather than individual items. However, it doesn't explicitly contrast with other meal-related tools like 'upsert_meal' or 'delete_nutrition_day'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., meal must exist), exclusions (e.g., cannot delete if referenced elsewhere), or comparisons to siblings like 'delete_meal_item' for partial deletions or 'upsert_meal' for updates. Usage is implied only by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Delete' implies a destructive mutation, but the description doesn't mention whether this operation is reversible, what permissions are required, what happens to associated data, or what the output contains. This leaves critical behavioral aspects unspecified for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, with zero wasted language. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place in conveying the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a destructive tool with no annotations and 0% schema description coverage, but with an output schema present, the description is minimally adequate. The output schema will provide return value information, but the description still lacks crucial context about behavioral implications, parameter meaning, and differentiation from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, with one required parameter 'item_id' of type integer. The description adds no semantic information about what 'item_id' represents, how to obtain it, or its format. For a tool with no schema descriptions, the description fails to compensate by explaining the parameter's meaning or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('a meal item'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'delete_meal' or 'delete_nutrition_day', which would require specifying what distinguishes a 'meal item' from those other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'delete_meal', 'upsert_meal', and 'add_or_update_meal_item', there's no indication of the relationship between these tools or when deletion of a meal item is appropriate versus deletion of an entire meal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the tool retrieves data ('Get'), implying read-only behavior, but doesn't disclose other traits like error handling, authentication needs, rate limits, or what happens if no match is found. This leaves significant gaps for a tool with parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the core purpose ('Get the most recent workout') and adds essential qualification ('matching type or tag'), making it appropriately sized for its complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, but an output schema exists, the description is minimally adequate. It states the purpose but lacks details on parameters, behavior, and usage context. The output schema may cover return values, but the description doesn't fully compensate for other gaps in a read operation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions parameters 'type or tag' but doesn't explain their semantics, valid values, interactions (e.g., if both are provided), or defaults. The description adds minimal meaning beyond the schema's property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('most recent workout'), specifying it retrieves based on matching criteria ('type or tag'). It distinguishes from sibling 'get_workouts' (plural) by focusing on the single most recent match, though it doesn't explicitly contrast with all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'get_workouts' or 'search_logs' is provided. The description implies usage for retrieving a single recent workout with optional filters, but lacks context on prerequisites, exclusions, or comparative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions what domains are searchable but doesn't describe the search behavior (full-text? partial match?), result format, pagination (though 'limit' parameter exists), error conditions, or authentication requirements. This leaves significant gaps for a search operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that efficiently communicates the core functionality. Every word earns its place with no redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (search across multiple domains with 5 parameters), no annotations, but with an output schema present, the description is minimally adequate. The output schema will handle return value documentation, but the description lacks sufficient context about search behavior, parameter usage, and differentiation from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 5 parameters (only 'query' required), the description provides minimal parameter context. It mentions the three searchable domains which somewhat relates to the 'domains' parameter, but doesn't explain parameter purposes, formats (e.g., date format for 'from_date'/'to_date'), or how they interact. The description doesn't adequately compensate for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching across three specific data types (workouts, nutrition days, and body metrics). It uses a specific verb ('Search') and identifies the resources, but doesn't distinguish this search tool from potential sibling search operations (none exist in the sibling list).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, constraints, or compare it to other tools like 'get_workouts' or 'get_body_metrics' that might retrieve similar data without search functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Create or update') but doesn't clarify permissions, side effects (e.g., if updates overwrite existing data), or error handling. This is insufficient for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, clearly front-loaded with the core action. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation with 3 parameters), no annotations, and 0% schema coverage, the description is incomplete—it lacks behavioral and parametric details. However, the presence of an output schema mitigates some need to explain return values, keeping it from a lower score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'a meal within a nutrition day' but doesn't explain the meaning of 'date', 'name', or 'order_index', nor their formats or constraints. This adds minimal value beyond the schema's structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create or update') and resource ('a meal within a nutrition day'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'add_or_update_meal_item' or 'upsert_nutrition_day', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'add_or_update_meal_item' or 'delete_meal', nor does it mention prerequisites like the existence of a nutrition day. It lacks explicit when/when-not instructions or context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. 'Create or update' implies mutation but doesn't specify permissions needed, whether it's idempotent, what happens on conflicts, or typical response format. It mentions no rate limits, error conditions, or side effects beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and appropriately sized for the tool's apparent complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which should document return values), the description's minimalism is somewhat acceptable. However, for a mutation tool with zero annotation coverage and 2 parameters (one required), it should provide more context about behavior, parameter usage, and relationships to sibling tools to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter documentation. The description adds no parameter semantics beyond the tool name implying 'date' is involved. It doesn't explain what 'date' format is expected, what 'notes' are for, or how they affect the upsert operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create or update') and resource ('a nutrition day entry'), making the purpose immediately understandable. It distinguishes from sibling tools like 'get_nutrition_day' (read-only) and 'delete_nutrition_day' (destructive), though it doesn't explicitly differentiate from 'upsert_meal' which operates on a different resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether a nutrition day must exist for updates), when to prefer 'create' vs 'update', or how it relates to siblings like 'get_nutrition_day' for checking existence or 'upsert_meal' for related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Add an exercise' implies a write/mutation operation, it doesn't address important behavioral aspects like: whether this requires specific permissions, if the operation is idempotent, what happens on duplicate exercises, or what the response format looks like. The description provides only basic functional information without behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by parameter explanations. The 'Args:' section organizes parameter information cleanly. While concise, the initial purpose statement could be slightly more informative about the tool's scope or constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, 4 parameters (2 required), and 0% schema description coverage, the description provides adequate functional information but lacks important context. The presence of an output schema reduces the need to describe return values, but behavioral aspects like error conditions, permissions, and idempotency remain undocumented. It's minimally viable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides essential parameter semantics that aren't in the schema. It explains what each parameter represents (workout ID, exercise name, optional category with examples, optional notes) and which are required versus optional. This significantly compensates for the schema's lack of descriptions, though it doesn't provide format details like what constitutes a valid workout_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add an exercise') and target resource ('to an existing workout'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'add_set' or 'log_workout' that might also involve workout modifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'add_set', 'log_workout', and 'get_exercise_history' available, there's no indication of when this specific exercise-adding function is appropriate versus other workout-related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Add' implies a write/mutation operation, the description doesn't address critical behavioral aspects like required permissions, whether this operation is idempotent, what happens on failure, or what the output contains. The parameter documentation provides some context but doesn't cover overall tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by well-organized parameter explanations. Each parameter gets exactly one line with essential semantic information. There's no wasted verbiage, though the opening sentence could be slightly more informative about the tool's broader context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 11 parameters and no annotations, the description does a reasonable job explaining parameters but lacks broader context. The presence of an output schema means return values are documented elsewhere, but the description should still address behavioral aspects like error conditions, side effects, or typical usage patterns given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by providing clear semantic explanations for all 11 parameters. Each parameter gets a brief but meaningful explanation that adds value beyond the schema's type information (e.g., explaining what 'rpe' and 'rir' mean, clarifying side options, defining measurement units). This significantly enhances parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Add') and resource ('a set to an existing exercise'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'add_exercise' or 'log_workout', which would require more specific context about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'add_exercise' or 'log_workout'. It mentions adding to 'an existing exercise' but doesn't specify prerequisites, dependencies, or contextual constraints that would help an agent choose between similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the destructive nature ('Delete') and optional cascading behavior, which is critical. However, it omits key behavioral traits: permissions required, whether deletion is reversible, rate limits, error responses, or what 'cascade' entails precisely. For a destructive operation, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and includes the key optional behavior. Every word earns its place with no redundancy or fluff, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a destructive tool with 2 parameters, 0% schema coverage, no annotations, but an output schema exists, the description is minimally adequate. It covers the basic action and cascading option, but lacks details on permissions, side effects, or error handling. The output schema may help, but the description doesn't reference it, leaving gaps in overall context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'cascade' affects 'meals/items', clarifying its purpose beyond a boolean flag. However, it doesn't describe the 'date' parameter's format or semantics. With 2 parameters and partial coverage, this meets the baseline for moderate schema support.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and target resource ('a nutrition day'), with additional scope ('optionally cascade to meals/items'). It distinguishes from sibling 'delete_meal' and 'delete_meal_item' by targeting the broader 'nutrition day' entity. However, it doesn't explicitly contrast with 'upsert_nutrition_day' for update scenarios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'delete_meal' or 'delete_meal_item' is provided. The description implies usage for deleting nutrition days, but lacks context on prerequisites, error conditions, or typical workflows. Sibling tools suggest a nutrition/meal management system, but no integration advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a 'Get' operation, implying it's likely read-only, but doesn't confirm this or describe other traits like authentication needs, rate limits, error conditions, or what the output contains (though an output schema exists). For a tool with 4 parameters and no annotations, more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently conveys the tool's function. Every part of the sentence earns its place by specifying what is being retrieved and for what scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters with 0% schema coverage and an output schema exists, the description is moderately complete. It covers the basic purpose but lacks details on parameter usage, behavioral traits, and differentiation from siblings. The output schema mitigates the need to describe return values, but overall completeness is adequate with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'history of a specific exercise' which aligns with the 'exercise_name' parameter, and 'across workouts' hints at date ranges, loosely relating to 'from_date' and 'to_date'. However, with 0% schema description coverage, the schema provides no parameter details, and the description doesn't explain parameter purposes, formats (e.g., date string format), or the 'limit' parameter. It adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('history of a specific exercise across workouts'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_workouts' or 'search_logs' which might also retrieve exercise-related data, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_workouts' (which might list workouts containing exercises) or 'search_logs' (which could filter logs including exercises), leaving the agent to guess based on tool names alone. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'Get's data, implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns paginated results, or handles errors. This leaves significant gaps in understanding the tool's behavior beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded in a single sentence, with no wasted words. It efficiently communicates the core purpose without unnecessary details, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description doesn't need to explain return values, which helps completeness. However, with no annotations, low schema coverage, and multiple sibling tools, the description is minimal and lacks context about usage, parameters, and behavior, making it only adequate for basic understanding but insufficient for optimal tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the input schema provides, as schema description coverage is 0%. It doesn't explain the 'date' parameter's format (e.g., YYYY-MM-DD) or constraints. However, with only one parameter, the baseline is 4, but the lack of any descriptive context reduces it to 3, as the schema alone is insufficient for full understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('complete nutrition day with meals and items'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_nutrition_days_summary' or 'upsert_nutrition_day', which would require more specific scope or context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'get_nutrition_days_summary' for summaries or 'upsert_nutrition_day' for updates. It lacks context about prerequisites, timing, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'Returns the fully logged workout' but doesn't specify success/failure conditions, error handling, or side effects like data persistence. For a write operation with zero annotation coverage, this lacks critical behavioral context like permissions or data validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the purpose, the second explains the return, and the 'Args:' section efficiently details parameters. Every sentence adds value, though the nested explanation of 'exercises' could be slightly more structured for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with 0% schema coverage and no annotations, the description does well on parameters but lacks behavioral context for a write operation. The presence of an output schema means return values don't need explanation, but completeness is moderate due to missing usage guidelines and transparency for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds significant value by explaining all 5 parameters: it clarifies 'date_time' format, lists optional fields, and details the nested 'exercises' structure with required/optional sub-fields. This goes well beyond the bare schema, though it doesn't cover all possible set fields exhaustively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Log a complete workout with exercises and sets.' It specifies the verb ('Log') and resource ('workout'), and distinguishes it from sibling tools like 'add_exercise' or 'add_set' by emphasizing completeness. However, it doesn't explicitly differentiate from 'get_workouts' or 'get_last_workout' beyond the write vs. read distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when to choose this over 'add_exercise' or 'add_set' for incremental logging, or how it relates to sibling tools like 'get_workouts' for retrieval. Usage is implied by the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool logs data, implying a write operation, but doesn't disclose behavioral traits like whether it creates new records, updates existing ones, requires specific permissions, or handles errors. The example clarifies input format but not system behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the purpose, followed by structured parameter explanations and examples. Every sentence adds value, but it could be slightly more concise by integrating the example more tightly with the parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, 1 required) and the presence of an output schema (which reduces the need to explain return values), the description is fairly complete. It covers input semantics well but lacks behavioral context and usage guidelines, which are minor gaps given the output schema support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It effectively adds meaning beyond the schema by detailing each parameter: date format, optional body weight in kg, skinfolds as a dictionary with examples and common sites, and optional notes. This provides clear semantics for all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Log body weight and skinfold measurements.' It specifies the verb ('log') and resources ('body weight and skinfold measurements'), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'get_body_metrics', which is a read operation, though the distinction is implied by the verb 'log' versus 'get'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_body_metrics' for retrieving data or specify prerequisites such as authentication. Usage is implied by the tool's name and purpose, but explicit context is lacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that the tool 'adds or updates,' implying mutation, but doesn't disclose behavioral traits like permissions needed, whether updates are destructive or idempotent, error handling, or rate limits. The description adds minimal context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the purpose, and the second provides usage guidelines. Every sentence earns its place with no wasted words, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (15 parameters, 11 required, no annotations) and the presence of an output schema (which reduces the need to explain return values), the description is partially complete. It covers purpose and usage but lacks details on parameters, behavioral traits, and error handling, leaving gaps for a mutation tool with many inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'calculated values for the serving quantity,' which hints at 'serving_quantity' and possibly 'calories,' 'protein_g,' etc., but doesn't explain the semantics of the 15 parameters (e.g., what 'date' format, what 'meal_name' options, the role of 'item_id'). The description adds limited meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Add or update a food item within a meal.' It specifies the verb ('add or update'), resource ('food item'), and context ('within a meal'). However, it doesn't explicitly differentiate from sibling tools like 'upsert_meal' or 'delete_meal_item', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'The AI should first use OpenNutrition MCP to find food_id and get macros, then call this tool with the calculated values for the serving quantity.' This specifies a prerequisite action (using another tool) and the timing of invocation, offering clear when-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JohnZolton/MCP-logger'
If you have feedback or need assistance with the MCP directory API, please join our Discord server