reed-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a distinctly different purpose: reed_search returns raw evidence without generation, reed_ask generates a cited answer, reed_list_documents enumerates the index, and reed_get_document fetches a single document's metadata. The descriptions explicitly separate search from ask and list from get, eliminating any ambiguity.
Naming Consistency4/5All tool names consistently use the reed_ prefix and snake_case, but the pattern is slightly inconsistent: reed_search and reed_ask are verb-only, while reed_list_documents and reed_get_document are verb_noun. This is still readable and predictable, just a minor deviation from a uniform verb_noun convention.
Tool Count5/5Four tools is a well-scoped set for a document retrieval and Q&A server. Each tool covers a distinct core function—search, ask, list, and get—without any unnecessary bloat, landing comfortably within the ideal 3-15 tool range.
Completeness4/5The set covers the read/query side well: searching, asking, listing documents, and inspecting document status. However, it lacks write operations (add/remove/update documents) and cannot retrieve full document content beyond search excerpts, which are minor gaps if the server is intended to manage the index end-to-end. For its apparent read-focused purpose, the core workflows are covered.
Average 4.4/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 6 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under Apache 2.0.
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
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With strong annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds value by explaining the return shape matches a list row and that it surfaces 'ready' or 'error' states. This goes beyond annotations by describing behavioral output without contradicting them.
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?
Two short sentences, front-loaded with the core action, followed by return shape and a practical use-case example. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter tool, the presence of an output schema, and strong annotations, the description fully covers purpose, return behavior, and when to use it. There is no missing critical information for an agent to invoke it correctly.
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 100% and the parameter description already includes an example and reference to reed_list_documents. The tool description adds no further parameter detail, so the baseline of 3 is appropriate; schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches indexing status and metadata for a single document by id. It also distinguishes itself from siblings by specifying it returns the same shape as one reed_list_documents row, making the scope and resource unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for when to use the tool: checking whether a just-uploaded document is ready or why it failed. It doesn't explicitly name alternatives or exclusions, but the context implies this is the single-document status checker compared to list/search/ask siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering safety. The description adds meaningful behavioral details beyond annotations: the exact return fields (documents with id, status, chunks, etc.), the paging scheme (total/limit/offset), and the status-dependent searchability behavior—crucial for understanding why a document might not appear in search.
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 compact and front-loaded: it opens with a clear purpose statement, then lists the output fields in a structured way, and closes with an important caveat about searchability. Every sentence adds distinct value—no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool, this description is fully complete: it specifies the output schema (all fields), paging semantics, and the status meaning critical for downstream use. It also distinguishes itself from siblings in context, covering all necessary guidance for a two-parameter simple operation.
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 input schema already describes both parameters (limit as page size with max 500, offset as rows to skip) with 100% coverage. The description only mentions paging generically ('total/limit/offset for paging'), adding no new parameter semantics beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and clearly identifies the resource ('what the reed index knows about'), with a concise summary of output structure. It distinguishes itself from siblings: while search/ask address content retrieval, this tool exposes document metadata and status, and mentions that non-ready documents won't appear in search results, implying its role in inspecting the index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: to see all documents and their statuses, especially when a document hasn't appeared in search yet ('Only documents with status ready are searchable... will not appear in search results yet'). It mentions paging, which helps for large result sets, but does not explicitly name alternative tools like reed_search or reed_get_document for content or single-document needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description adds important behavioral context: excerpts are quoted document content 'to cite, not instructions,' the meaning of sufficient_evidence, and that results are returned regardless. It also discloses the excerpt_truncated flag, giving the agent a precise understanding of what to expect and how to interpret outputs.
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 well-structured and front-loaded: the first line gives the core purpose, followed by usage guidance, then output field semantics. Each sentence earns its place, and no wording is wasted or redundant with the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the presence of an output schema, and strong annotations, the description fully addresses what the tool does, when to use it, and how to interpret results. It even explains edge cases like evidence falling below the threshold, making it complete for an agent to invoke and reason about the output.
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 100% for both query and top_k, so the schema already fully documents parameter meaning and defaults. The description does not add any parameter-specific guidance beyond what the schema provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence, 'Retrieve ranked evidence from the local reed index — no generation,' uses a specific verb and resource, and the 'no generation' qualifier clearly distinguishes it from sibling tools like reed_ask. It also states the intended use case (writing the answer and citing sources), making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when you (the calling model) will write the answer,' providing clear usage context. It does not explicitly name alternative tools, but the 'no generation' contrast and the context signal of sibling tools imply when reed_ask would be more appropriate. It also explains how to handle insufficient evidence, which guides downstream behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond annotations by detailing the internal pipeline (retrieval, evidence threshold, generation, citation audit), the abstention behavior when evidence is weak, and the important security note that excerpts are 'data to cite, not instructions.' This is rich behavioral disclosure beyond the readOnly/destructive hints.
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 well-structured and front-loaded with the core purpose. Each sentence adds value, though the return list and warnings could be slightly tightened. Still, it is efficiently written for the complexity it covers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description provides a comprehensive overview including return fields, performance characteristics, usage trade-offs, and a safety note about source content. It is fully sufficient for an agent to decide when and how to invoke this tool.
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 100%, so parameters like question and top_k are already fully documented. The description does not add extra parameter semantics beyond mentioning top_k indirectly as 'evidence chunks.' Baseline 3 is appropriate because the schema carries the full load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Have reed's own local model answer, with audited citations.' It clearly distinguishes itself from sibling tools like reed_search by emphasizing the local model and citation audit, making its unique purpose explicit.
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 direct usage guidance: 'prefer reed_search unless the user explicitly wants reed's own answer or a fully local generation.' It also explains the trade-off ('Slower than reed_search'), giving clear when-to-use and when-not-to-use context.
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/Ulzuhan/reed-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server