research-mcp
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool targets a distinct stage in the research pipeline (search, scrape, rerank, summarize), and `research` serves as an orchestrator that combines these steps. No two tools have overlapping core functions, so an agent can easily select the right tool for a specific need.
Naming Consistency4/5Most tools follow a consistent verb_noun pattern (scrape_url, rerank_docs, summarize_docs), but `research` and `search_all` deviate slightly. This is a minor inconsistency that does not hinder readability.
Tool Count5/5With 5 tools, the server is well-scoped for a research workflow. Each tool covers a necessary step in the pipeline, and the count is neither too sparse nor bloated.
Completeness5/5The tool set provides end-to-end coverage from searching multiple sources to summarizing final answers. The individual building blocks (search_all, scrape_url, rerank_docs, summarize_docs) and the composite `research` tool leave no obvious gaps for typical research tasks.
Average 3.4/5 across 5 of 5 tools scored. Lowest: 2.7/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 2 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is failing
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, the description must disclose behaviors itself. It mentions the output format (markdown) and method options, but lacks details on error handling, rate limits, or side effects of scraping. The short description leaves significant behavioral aspects unmentioned.
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 extremely concise, front-loading the core function. However, it could benefit from a bit more detail without becoming verbose, so not a 5.
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 lack of annotations, 0% schema coverage, and a tool with multiple method-specific behaviors, the description is incomplete. It does not clarify return structure beyond 'markdown content' or provide enough to correctly select between methods.
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 description names the 'method' parameter and its three options, but does not explain the differences between them or the expected format of 'url.' Since schema coverage is 0%, the description only partially compensates.
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 states 'Scrape a single URL and return markdown content,' which clearly identifies the tool's action and output. It differentiates from siblings like 'search_all' by specifying 'single URL,' though it doesn't explicitly contrast with alternatives.
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 the siblings (research, search_all, etc.). The description only states what it does, not the context or comparison.
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, the description carries the full burden of behavioral disclosure. It does disclose that results are deduped, which is useful, but it does not mention any other behavioral traits such as whether the operation is read-only, whether it requires authentication, how errors are handled, or what 'every source' concretely means. This is a minimal level of 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 a single, clear, and front-loaded sentence with no wasted words. It conveys the core action and result type efficiently. While it is short, conciseness is about structure and economy, which this achieves perfectly.
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?
Although the tool has an output schema to describe return values, the description is incomplete for a tool with 3 parameters and no annotations. It lacks usage guidance, parameter semantics, and a clear definition of 'every source'. It does not explain the max_results parameter or how sources can be restricted, making it inadequate for an agent to select and invoke this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description does not compensate by explaining any of the three parameters (query, sources, max_results). It does not even implicitly clarify the meaning of 'sources' beyond the phrase 'every source' or mention the max_results limit. The agent must rely solely on parameter names and defaults, which is insufficient for correct invocation.
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 indicates the tool fans out a query to every source and returns deduped SearchResult dicts, which distinguishes it from the sibling tools (research, scrape_url, rerank_docs, summarize_docs). The verb 'fan out' is specific, and the resource ('every source') is named. However, it does not explicitly say 'search', relying on the word 'query' and the return type to convey the core purpose.
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 given about when to use this tool vs. alternatives. It does not mention any sibling tools, nor does it state explicit conditions such as 'use when you need results from all sources'. The phrase 'every source' implies comprehensive search, but there is no clear 'when' or 'when not' guidance.
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?
There are no annotations, so the description must carry the full transparency burden. It fails to disclose behavioral traits such as whether this is a read-only operation, whether it calls an LLM API (cost/latency implications), or how the model/style parameters affect the output. The mention of model options hints at external AI usage but doesn't explicitly state behavior or side effects.
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, using two sentences and a compact param list. Every element adds value—first sentence states purpose, the list documents available options. No filler or repetition.
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 lack of annotations and low schema coverage, the description is minimally viable but not complete. It defines the tool's action but lacks context on when to deploy it relative to sibling tools, how the query parameter is used, or what the output format looks like despite the output schema being present. It covers the basics but leaves gaps for an agent to infer.
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, the description must explain parameters, but it only lists possible values for style and model, omitting the meaning or role of the required 'query' parameter. It partially compensates by specifying style options, but the critical 'query' param is left undefined, leaving a significant semantic gap.
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 'Synthesize a final answer from a list of document strings' uses a specific verb (synthesize) and resource (document strings), clearly distinguishing it from sibling tools like research or scrape_url. The purpose is unambiguous and immediately conveys the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description: you should use this when you have document strings and need a synthesized answer. However, there is no explicit when-to-use, exclusions, or alternatives mentioned relative to sibling tools such as research or rerank_docs, so the guidance remains implicit rather than instructive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It does disclose the return format (sorted descending) and the accepted model identifiers, but it omits potential side effects, rate limits, or the fact that using remote models like cohere/jina may incur network calls and costs.
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 well-structured. It leads with the core action, then lists model options and the return format. Every sentence contributes value with no filler.
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 simplicity (3 parameters, simple return array), the description is largely complete. It covers the purpose, parameter semantics implicitly, and return shape. It lacks usage guidance and error handling, but these are not critical for a straightforward rerank 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 schema has 0% description coverage, but the description enriches the parameters by explaining 'docs' as document strings, 'query' as the relevance basis, and explicitly listing the allowed model values. It adds semantics beyond the raw schema, though it could further elaborate on query expectations.
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's function: reranking document strings by relevance to a query. The verb 'rerank' is specific and distinct from sibling tools like search_all or summarize_docs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: you must already have a list of documents and a query to rerank. However, the description does not explicitly state when to use this tool over alternatives, nor does it provide exclusions or prerequisites.
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It transparently lists the sequence of operations (search -> scrape -> rerank -> summarize), which is the core behavior. It does not mention rate limits, auth, or failure handling, but for a read-only research pipeline, the disclosed process is sufficiently transparent.
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, compact sentence that uses an arrow pipeline to efficiently convey the tool's flow. Every word is purposeful, with no fluff or redundancy.
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 that this is a composite tool orchestrating four sibling sub-tools, the description effectively communicates the end-to-end nature. The output schema and fully documented parameters cover return values and inputs, so the description is complete enough for the agent to understand the tool's role, though a bit more context about typical use cases could be added.
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%, with each parameter fully described in the input schema. The tool description itself adds no parameter-specific context beyond the pipeline, so it does not augment the schema's already comprehensive parameter definitions.
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 explicitly states the tool performs an end-to-end pipeline: search all sources, scrape, rerank, and summarize. This clearly defines the tool's purpose and differentiates it from sibling tools like search_all or scrape_url, which cover only individual steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'end-to-end' phrasing implies that this tool is used when the user wants the full research workflow in one call. However, it does not explicitly mention when to prefer this over using the sibling tools individually, nor does it state any exclusions or alternative conditions.
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/KB01111/research-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server