Micro.blog Books MCP Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation5/5
Each tool has a clearly distinct purpose with no ambiguity. Tools like add_book, move_book, remove_book, and change_book_cover target specific book operations, while get_bookshelves, rename_bookshelf, and add_bookshelf handle bookshelf management, and get_reading_goals and update_reading_goal focus on goals. The descriptions reinforce these distinct roles, making misselection unlikely.
Naming Consistency5/5All tools follow a consistent verb_noun naming pattern throughout, such as add_book, get_bookshelves, rename_bookshelf, and update_reading_goal. There are no deviations in style or convention, making the tool names predictable and easy to understand at a glance.
Tool Count5/5With 11 tools, the count is well-scoped for managing books, bookshelves, and reading goals. Each tool earns its place by covering essential CRUD operations (e.g., add, get, move, remove, rename, update) without redundancy, fitting neatly within the typical 3-15 tool range for a focused domain.
Completeness5/5The tool surface provides complete coverage for the domain of book and bookshelf management. It includes full CRUD for books (add, get, move, remove, change cover) and bookshelves (add, get, rename), plus reading goal operations (get, update). There are no obvious gaps, enabling agents to handle all core workflows without dead ends.
Average 3/5 across 11 of 11 tools scored. Lowest: 2.3/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 4 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
This repository is licensed under MIT License.
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?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Get reading goals' implies a read operation but doesn't specify whether this requires authentication, what permissions are needed, whether it returns all goals or filtered results, or any rate limits. The description fails to provide essential behavioral context beyond the basic read implication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise ('Get reading goals.') but this brevity comes at the cost of under-specification. While there's no wasted text, the single phrase fails to provide necessary context that would help the agent understand and use the tool effectively. This isn't effective conciseness but rather insufficient 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 that this is a simple read operation with 0 parameters and an output schema exists, the description doesn't need to explain return values. However, for a tool that presumably retrieves user reading goals in a system with multiple goal-related tools, the description should provide more context about what exactly is retrieved and how it differs from sibling tools like 'get_goal_progress'.
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?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of parameters. The description doesn't need to compensate for any parameter gaps. While it doesn't add parameter-specific information (which isn't needed), it correctly reflects that this is a parameterless operation by not mentioning any inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose2/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get reading goals' is a tautology that essentially restates the tool name without adding meaningful specificity. It doesn't distinguish what kind of reading goals (e.g., user goals, system goals, all goals) or provide any context about scope or format. While it does include a verb ('Get'), it lacks the specificity needed to understand what this tool actually retrieves compared to sibling tools like 'get_goal_progress'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines1/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. There's no mention of prerequisites, context, or comparison to sibling tools like 'get_goal_progress' or 'update_reading_goal'. Without any usage instructions, the agent has no basis for selecting this tool appropriately in different 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 the full burden of behavioral disclosure. It states the action ('Change the cover') but doesn't mention permissions needed, whether the change is reversible, rate limits, or what the output schema returns. This leaves significant gaps for a mutation tool.
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 front-loaded with the main purpose, followed by a structured 'Args' section. It's efficient with minimal waste, though the 'Args' formatting could be integrated more seamlessly into the narrative flow.
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 (mutation with 3 parameters), no annotations, and an output schema present, the description is moderately complete. It covers the basic action and parameters but lacks behavioral context and usage guidance, which the output schema doesn't compensate for fully.
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 schema description coverage is 0%, so the description must compensate. It lists all three parameters with brief explanations, adding meaning beyond the schema's titles. However, it doesn't detail constraints like valid URL formats or ID ranges, leaving some ambiguity.
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 ('Change the cover') and resource ('for a book'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'move_book' or 'remove_book' in terms of scope or specific use cases, 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_book' for initial book setup or 'move_book' for relocation. It lacks context about prerequisites, like needing an existing book and bookshelf, or exclusions, such as not being for creating new books.
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 is for 'Get' operations, implying it's read-only, but doesn't cover critical aspects like authentication requirements, rate limits, error handling, or what the output contains (though an output schema exists). For a tool with no annotations, this is insufficient to ensure 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear purpose statement followed by an 'Args' section. It avoids unnecessary words, though the formatting could be slightly improved (e.g., using bullet points). Every sentence adds value, making it efficient for quick understanding.
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 low complexity (1 parameter) and the presence of an output schema, the description is somewhat complete but has gaps. It covers the basic purpose and parameter meaning, but lacks usage guidelines and behavioral details. With no annotations, it should provide more context on how the tool behaves in practice to be fully adequate.
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 minimal semantics beyond the input schema: it explains that 'goal_id' is 'The ID of the reading goal'. With 0% schema description coverage, this provides some value, but it doesn't detail format constraints (e.g., integer range) or examples. Since there's only one parameter, the baseline is higher, but the description doesn't fully compensate for the low coverage.
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: 'Get books list progress toward a goal.' It specifies the verb ('Get') and resource ('books list progress toward a goal'), making it understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_reading_goals', which might retrieve goal metadata rather than progress details, leaving room for slight ambiguity.
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., needing an existing goal), exclusions, or comparisons to siblings like 'get_reading_goals' or 'update_reading_goal'. This lack of context could lead to misuse by an AI agent.
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 ('rename') but doesn't cover critical aspects like required permissions, whether the change is reversible, rate limits, or error conditions (e.g., invalid ID or duplicate names). This is a significant gap for a mutation tool.
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, starting with the core purpose followed by parameter details. It avoids unnecessary fluff, though the 'Args:' section could be integrated more seamlessly into the flow.
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 simple mutation with 2 parameters) and the presence of an output schema, the description is somewhat complete but lacks depth. It covers the basic action and parameters but misses behavioral context and usage guidelines, which are crucial since no annotations are 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?
The description adds minimal semantics beyond the input schema, which has 0% coverage. It names the parameters ('bookshelf_id' and 'name') and gives basic explanations, but doesn't provide format details (e.g., ID constraints or name length limits). With low schema coverage, this partially compensates but leaves 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 tool's purpose with a specific verb ('rename') and resource ('bookshelf'), making it immediately understandable. However, it doesn't differentiate this tool from potential alternatives among its siblings, such as whether 'update_reading_goal' might also involve renaming or if 'add_bookshelf' handles similar operations.
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., needing an existing bookshelf), exclusions, or how it relates to sibling tools like 'add_bookshelf' or 'update_reading_goal', leaving usage context unclear.
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 states the action ('Add a new book') which implies a write operation, but doesn't mention permissions needed, whether duplicates are allowed, what happens on success/failure, or any rate limits. The description is minimal and lacks critical behavioral context for a mutation tool.
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 concise with a clear purpose statement followed by parameter documentation. The Args section is well-structured and easy to parse. While efficient, it could be slightly more front-loaded with critical behavioral information before parameter details.
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 this is a mutation tool with no annotations and 5 parameters, the description is incomplete. While it documents parameters adequately and an output schema exists (reducing need to describe return values), it lacks crucial behavioral context about permissions, error handling, and relationships to sibling tools. The presence of an output schema helps but doesn't compensate for missing mutation-specific guidance.
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 listing all 5 parameters with brief explanations. It clearly identifies which are required vs optional, and provides basic semantic meaning for each parameter. However, it doesn't explain format constraints (e.g., ISBN format, URL validation) or relationships between 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 action ('Add a new book') and resource ('book'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'move_book' or 'remove_book' beyond the basic verb, missing explicit distinction 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 'move_book' or 'change_book_cover'. There's no mention of prerequisites (e.g., bookshelf must exist), error conditions, or typical use cases, leaving the agent with insufficient 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 the full burden of behavioral disclosure. It states the tool 'Get books,' implying a read-only operation, but does not clarify aspects like whether it returns all books or is paginated, what format the output takes, or any error conditions. For a tool with no annotations, this leaves significant gaps in understanding its 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 main purpose stated first ('Get books in a specific bookshelf.') followed by parameter details. It avoids unnecessary words, though the structure could be slightly improved by integrating the parameter explanation more seamlessly rather than as a separate 'Args:' section.
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 low complexity (1 parameter) and the presence of an output schema, the description is minimally adequate. It covers the basic purpose and parameter semantics but lacks behavioral details (e.g., output format, pagination) that the output schema might address. Without annotations, it should do more to explain the tool's operation, but the output schema reduces the burden slightly.
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?
The description adds meaningful context for the single parameter: 'bookshelf_id: The ID of the bookshelf to get books from.' This clarifies the parameter's role beyond the schema, which only provides a title and type. Since schema description coverage is 0%, the description compensates well by explaining the parameter's purpose, though it could add more detail (e.g., format or source of the 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 tool's purpose: 'Get books in a specific bookshelf.' It specifies the verb ('Get') and resource ('books in a specific bookshelf'), making it easy to understand. However, it does not explicitly differentiate from sibling tools like 'get_bookshelves' (which likely lists bookshelves rather than books within one), leaving room for slight ambiguity.
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 does not mention sibling tools like 'get_bookshelves' (for listing bookshelves) or 'add_book' (for adding books), nor does it specify prerequisites or exclusions. Usage is implied only by the tool name and description, lacking explicit context.
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 states the action is 'Remove' but doesn't clarify if this is destructive (permanent deletion), reversible, requires specific permissions, or has side effects. For a mutation tool with zero annotation coverage, this is inadequate disclosure.
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 front-loaded with the core purpose in the first sentence, followed by parameter details in a clear 'Args:' section. It's appropriately sized with no redundant information, though the parameter explanations are brief but sufficient given the simple schema.
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 (simple mutation with 2 parameters), the description covers the basic action and parameters. However, with no annotations and an output schema present (which isn't detailed here), it lacks behavioral context like side effects or permissions. It's minimally viable but leaves gaps for safe agent operation.
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?
The description adds meaningful context for both parameters beyond the schema (which has 0% coverage). It specifies that 'bookshelf_id' identifies the bookshelf and 'book_id' identifies the book to remove, clarifying their roles. Since there are only 2 parameters and the description covers both adequately, it compensates well for the schema gap.
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 ('Remove') and target resource ('a book from a bookshelf'), making the purpose immediately understandable. It distinguishes from siblings like 'move_book' (which relocates) and 'add_book' (which adds). However, it doesn't specify whether this is a permanent deletion or just removal from the shelf, leaving some ambiguity.
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 like 'move_book' (which might relocate instead of remove) or prerequisites (e.g., whether the book must exist on the shelf). The description only states what it does, not when it's appropriate, leaving the agent to infer usage from context.
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 states 'Update' which implies mutation, but doesn't mention permissions needed, whether changes are reversible, error conditions, or what the response contains. The description lacks critical behavioral context for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief but could be more front-loaded. The first line 'Update reading goal.' is clear but sparse, and the parameter documentation is well-structured but could be integrated more seamlessly. No wasted words, but room for improvement in flow.
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 has an output schema (which handles return values), 3 parameters with good semantic coverage in the description, and moderate complexity, the description is reasonably complete. The main gap is lack of behavioral context for this mutation operation, but the parameter documentation is strong.
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?
The description provides clear semantic meaning for all three parameters beyond what the schema offers (0% coverage). It explains that 'goal_id' identifies the goal, 'value' is the target number of books, and 'progress' is current books read (with optional status). This compensates well 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 verb ('Update') and resource ('reading goal'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools like 'get_reading_goals' or 'get_goal_progress' beyond the update action.
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 about when to use this tool versus alternatives. There's no mention of prerequisites (e.g., needing an existing goal), exclusions, or how this relates to sibling tools like 'get_reading_goals' or 'get_goal_progress'.
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 'Add a new bookshelf,' which implies a write/mutation operation, but doesn't disclose any behavioral traits such as whether this requires authentication, what happens on success/failure, if there are rate limits, or if the bookshelf is immediately available for use. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
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, with the core purpose stated in the first sentence ('Add a new bookshelf.') and parameter details following in a clear 'Args:' section. Every sentence earns its place by directly contributing to understanding the tool's function and inputs, with no redundant or verbose language.
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 low complexity (one parameter) and the presence of an output schema (which handles return values), the description is minimally complete. It covers the basic purpose and parameter meaning but lacks behavioral context (e.g., side effects, error handling) and usage guidelines. For a simple creation tool, this is adequate but leaves clear gaps that could hinder optimal agent use.
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?
The description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that the 'name' parameter is 'The name of the new bookshelf,' providing context that the schema's title ('Name') alone lacks. Since there's only one parameter and the schema coverage is low, the description effectively compensates by clarifying the parameter's purpose, though it doesn't detail constraints like length or allowed characters.
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 new bookshelf'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'rename_bookshelf' or 'get_bookshelves' by specifying creation rather than modification or retrieval. However, it doesn't explicitly mention what system or context this bookshelf belongs to (e.g., a personal library vs. a shared system), 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. It doesn't mention prerequisites (e.g., whether you need permissions or an existing library), when not to use it (e.g., for updating existing bookshelves), or direct alternatives among siblings like 'rename_bookshelf' for modification. This lack of contextual guidance leaves 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?
No annotations are provided, so the description carries the full burden. It states a read operation ('Get') but doesn't disclose behavioral traits such as authentication needs, rate limits, pagination, or what the output contains. This leaves gaps for an agent to understand how to use it effectively.
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 action and resource, making it efficient and easy to parse.
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 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, it lacks context on usage versus siblings and behavioral details, which are needed for full completeness in a server with multiple related tools.
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?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter information is needed. The description implies no inputs are required, which aligns with the schema, earning a baseline score of 4 for adequately handling the lack of 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 action ('Get') and resource ('all bookshelves from Micro.blog'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'get_bookshelf_books' or 'get_reading_goals', which also retrieve related data, so it lacks sibling 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?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't specify if this is for listing all bookshelves versus filtered ones or when to prefer 'get_bookshelf_books' for books within a specific bookshelf.
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 implies a mutation ('Move'), but doesn't specify permissions needed, whether the operation is reversible, error conditions, or effects on related data. This is a significant gap 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 front-loaded with the core purpose in the first sentence, followed by a structured 'Args' section. Every sentence earns its place by providing essential information without redundancy, making it highly efficient and easy to parse.
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 handles return values), 2 parameters with full coverage in the description, and no annotations, the description is minimally adequate. However, as a mutation tool, it lacks details on behavioral aspects like side effects or error handling, leaving gaps in completeness.
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?
The description includes an 'Args' section that explains the meaning of both parameters ('book_id' and 'bookshelf_id'), adding value beyond the schema which has 0% description coverage. This compensates well for the lack of schema descriptions, though it doesn't detail format constraints beyond IDs being integers.
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 ('Move') and resource ('a book to a different bookshelf'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'remove_book' or 'add_book' beyond the basic verb, 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?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify if this is for reorganizing books versus deleting them (vs. 'remove_book') or if there are prerequisites like existing bookshelves. The description only states what it does, not when or why to use it.
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/7robots/micro-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server