google-research-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-research-mcpresearch the latest advances in quantum computing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Research MCP Server v2.0.0 - Multi-Agent Architecture
An MCP server that implements Anthropic's Multi-Agent Research Architecture with true subagent spawning, adaptive stopping, and citation processing.
Architecture Overview
This implementation is fully compliant with Anthropic's multi-agent research system:
┌─────────────────────────────────────────────────────────────────┐
│ Multi-Agent Research System │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ LEAD RESEARCHER (Orchestrator) │ │
│ │ │ │
│ │ • think(plan approach) - Decompose into aspects │ │
│ │ • create subagents - Spawn parallel workers │ │
│ │ • think(synthesize) - Combine findings │ │
│ │ • evaluate coverage - "More research needed?" │ │
│ │ • complete_task - Return final report │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────┼───────────────┐ │
│ ▼ ▼ ▼ │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ SUBAGENT 1 │ │ SUBAGENT 2 │ │ SUBAGENT N │ │
│ │ (Aspect A) │ │ (Aspect B) │ │ (Aspect N) │ │
│ │ │ │ │ │ │ │
│ │ • web_search │ │ • web_search │ │ • web_search │ │
│ │ • think(eval) │ │ • think(eval) │ │ • think(eval) │ │
│ │ • complete │ │ • complete │ │ • complete │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
│ │ │ │ │
│ └───────────────┼───────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ CITATION AGENT │ │
│ │ • Process documents │ │
│ │ • Identify citation locations │ │
│ │ • Insert inline citations [1], [2], etc. │ │
│ │ • Generate references section │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ MEMORY MODULE │ │
│ │ • save plan │ │
│ │ • retrieve context │ │
│ │ • persist findings │ │
│ │ • track gaps │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘Related MCP server: MCP Hub
Process Flow
Based on Anthropic's sequence diagram:
User LeadResearcher Subagent1 Subagent2 Memory CitationAgent
│ │ │ │ │ │
│──send user query────▶│ │ │ │ │
│ │ │ │ │ │
│ │◀─────────────────────────────────────────────────────│ │
│ │ think(plan approach) │ │
│ │ │ │ │ │
│ │──save plan────────────────────────────────────────▶│ │
│ │ │ │ │ │
│ │──retrieve context──────────────────────────────────▶│ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │══════════════════════════════════════════════════════│ │
│ │ ITERATIVE RESEARCH LOOP │ │
│ │══════════════════════════════════════════════════════│ │
│ │ │ │ │ │
│ │──create subagent──▶│ │ │ │
│ │──create subagent────────────────────▶│ │ │
│ │ │ │ │ │
│ │ │──web_search────▶│ │ │
│ │ │◀───results──────│ │ │
│ │ │ │ │ │
│ │ │ think(evaluate)│ │ │
│ │ │ │ │ │
│ │◀──complete_task────│ │ │ │
│ │ │ │ │ │
│ │ │ │──web_search───▶│ │
│ │ │ │◀──results──────│ │
│ │ │ │ │ │
│ │ │ │ think(evaluate)│ │
│ │ │ │ │ │
│ │◀─────────────────────complete_task───│ │ │
│ │ │ │ │ │
│ │ think(synthesize results) │ │ │
│ │ │ │ │ │
│ │ ┌─────────────────────┐ │ │ │
│ │ │ More research needed?│ │ │ │
│ │ └─────────────────────┘ │ │ │
│ │ │ │ │ │ │
│ │ [Continue] [Exit Loop] │ │ │
│ │ │ │ │ │ │
│ │══════════════════════════════════════════════════════│ │
│ │ │ │ │ │
│ │──complete_task (research result)────────────────────▶│ │
│ │ │ │ │ │
│ │ │ │ │──────────────────▶│
│ │ │ │ │ Process docs + │
│ │ │ │ │ insert citations │
│ │◀───────────────────────────────────────────────────────────────────────│
│ │ │ │ │ Report with │
│ │ │ │ │ citations │
│ │──persist results──────────────────────────────────▶│ │
│ │ │ │ │ │
│◀──return research─────│ │ │ │ │
│ results with │ │ │ │ │
│ citations │ │ │ │ │Key Features
1. True Subagent Spawning
Each aspect gets its own subagent that runs independently:
Generates aspect-specific queries
Executes web searches
Fetches full page content
Evaluates findings
Reports back to Lead Researcher
2. Think/Evaluate Phases
Explicit reasoning phases between iterations:
think(plan approach)- Decompose topic into aspectsthink(evaluate)- Each subagent evaluates its findingsthink(synthesize)- Lead Researcher combines all findings
3. Adaptive Stopping
Dynamic "More research needed?" decision:
Coverage score calculation (0-100%)
Configurable thresholds per depth level
Gap identification and filling
Exits early when coverage is sufficient
4. Aspect-Based Decomposition
Topics are broken into researchable aspects:
Basic: 2 aspects (overview, mechanism)
Moderate: 5 aspects (+use cases, benefits, challenges)
Comprehensive: 11 aspects (+history, comparisons, implementation, future, research, case studies)
5. Memory Module
Persistent context across iterations:
Research plan storage
Findings per aspect
Gap tracking
Iteration history
6. Citation Agent
Dedicated citation processing:
Assigns citation IDs by quality
Inserts inline citations [1], [2]
Generates references section
Groups by quality tier
Tools
Tool | Description |
| Full multi-agent research with all components |
| Search + fetch full content (single iteration) |
| News-specific deep search |
| Fetch single page content |
| Simple search (snippets only) |
| Search with quality scoring |
| Manual session management |
| Manually spawn a subagent |
| Check coverage and gaps |
| Add source to session |
| Format citations |
Installation
{
"mcpServers": {
"google-research": {
"command": "npx",
"args": ["google-research-mcp"],
"env": {
"GOOGLE_API_KEY": "your-api-key",
"GOOGLE_CX": "your-search-engine-id"
}
}
}
}Prerequisites
1. Google API Key
Go to Google Cloud Console
Enable "Custom Search API"
Create an API Key
2. Search Engine ID (CX)
Create engine with "Search the entire web"
Copy the Search Engine ID
Usage Examples
Full Multi-Agent Research
"Research quantum computing with comprehensive depth"This triggers the full architecture:
Lead Researcher plans 11 aspects
Spawns 3-4 subagents per iteration
Each subagent researches in parallel
Evaluates coverage after each iteration
Continues until 90% coverage or max iterations
Citation Agent processes final report
Manual Subagent Control
// Create session
research_session({ action: "create", topic: "AI safety", depth: "moderate" })
// Spawn specific subagents
run_subagent({ sessionId: "rs_xxx", aspect: "AI alignment techniques" })
run_subagent({ sessionId: "rs_xxx", aspect: "AI safety research organizations" })
// Check coverage
evaluate_coverage({ sessionId: "rs_xxx" })
// Generate final report
research_session({ action: "complete", sessionId: "rs_xxx" })Depth Levels
Depth | Iterations | Aspects | Coverage Threshold | Min Sources/Aspect |
basic | 2 | 2 | 60% | 2 |
moderate | 3 | 5 | 75% | 3 |
comprehensive | 4 | 11 | 90% | 5 |
Source Quality Scoring
Based on Anthropic's source quality heuristics:
Score | Tier | Examples |
10 | Primary | .gov, .edu, arxiv, nature.com, PubMed, official docs |
8-9 | Authoritative | Wikipedia, Reuters, BBC, NYT, WSJ |
7 | Quality | Stack Overflow, TechCrunch, Wired |
5-6 | General | Medium, Dev.to, Substack |
1-4 | Low | Pinterest, Facebook, Twitter (deprioritized) |
Changelog
v2.0.0 - Multi-Agent Architecture (Anthropic Compliant)
NEW: True subagent spawning - Parallel workers for different aspects
NEW: Think/Evaluate phases - Explicit reasoning between iterations
NEW: Adaptive stopping - Dynamic "More research needed?" decision
NEW: Aspect-based decomposition - Topics broken into researchable aspects
NEW: Memory module - Persistent context across iterations
NEW: Citation Agent - Dedicated citation processing with inline insertion
NEW:
run_subagenttool - Manual subagent controlNEW:
evaluate_coveragetool - Check coverage and gapsNEW:
deep_search_newstool - News-specific deep searchImproved report generation with subagent reports
Full iteration history tracking
v1.2.0 - Deep Research Edition
Full page content fetching
Readability-style extraction
Source quality scoring
v1.0.0
Initial release
License
MIT
Available Tools
11 toolsadd_sourceC
Add a source to a research session after fetching its content.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| title | Yes | ||
| sessionId | Yes | ||
| fetchContent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but does not. It fails to mention side effects (e.g., whether the source is permanently added), prerequisites (e.g., session must exist), or failure behavior if content cannot be fetched. The word 'Add' implies mutation, but no further detail is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the core purpose. It is appropriately sized for the information it conveys, though it could be slightly more detailed without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 parameters, no output schema, and no annotations, a one-sentence description is insufficient. It does not explain return values, error conditions, or the expected workflow, leaving the agent without enough context to use the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description carries full responsibility for explaining parameters. It mentions none of the four parameters (sessionId, url, title, fetchContent) and adds no semantic meaning beyond what the schema fields already convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Add a source to a research session') and specifies the resource ('source', 'research session'). It is obvious from the name and description that this is distinct from sibling search/fetch tools, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'after fetching its content' implies a workflow sequence, suggesting the tool should be used after fetching a page. However, there is no explicit guidance on when to use this tool over alternatives like fetch_page or research_session, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deep_searchA
Performs a comprehensive web search by querying Google, fetching the FULL content from top results using advanced content extraction (Readability algorithm), and returning consolidated content. Supports web, news, and image search types. Includes retry logic for reliability.
This is TRUE deep research - it actually READS the pages, not just snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query to look up | |
| num_results | No | Number of results to fetch (1-10, default: 10) | |
| search_type | No | Type of search: 'web' for general search, 'news' for news articles, 'images' for image search | web |
| exclude_domains | No | Comma-separated list of domains to exclude (e.g., 'pinterest.com,facebook.com') | |
| include_domains | No | Comma-separated list of domains to include (e.g., 'reddit.com,github.com') | |
| max_content_per_page | No | Maximum characters of content to return per page (5000-100000, default: 50000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and discloses key behaviors: queries Google, uses Readability, includes retry logic, supports multiple search types, and returns full content. It lacks details on rate limits or auth but is still strongly transparent for a read-oriented tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: two sentences cover the core mechanic and key differentiator with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Considering six parameters and no output schema, the description explains the main behavior and consolidated result, but does not detail the return structure or cite behavior. Still, it is reasonably complete for a search tool with rich schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to compensate. It adds minimal extra semantics beyond what the schema already provides, though it does reinforce the search_type meaning by mentioning web/news/images support.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a comprehensive web search by querying Google, fetching full content via Readability extraction, and returning consolidated content. It distinguishes itself from siblings with 'TRUE deep research' and explicitly contrasts with 'not just snippets.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys when to use the tool (when deep, full-page research is needed) but does not explicitly name alternative tools or state when not to use this tool. It relies on the implied contrast with snippet-based searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deep_search_newsA
Searches for recent news articles on a topic, fetches full article content, and returns consolidated results. Optimized for news and current events.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The news topic to search for | |
| num_results | No | Number of news articles to fetch (1-10, default: 10) | |
| max_content_per_page | No | Maximum characters per article (default: 30000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses that the tool fetches full article content and returns consolidated results, which is useful. However, it does not mention potential limitations such as rate limits, freshness of results, failure modes, or how content is sourced, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise two-sentence statement that front-loads the action and key differentiators. Every sentence earns its place, with no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, no output schema, no annotations), the description is adequate but leaves room for detail. It explains the core behavior but does not specify the return format of the 'consolidated results', the time window for 'recent', or any edge-case behavior, making it only partially complete for an agent to fully anticipate the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for all three parameters with clear descriptions. The description adds no parameter-specific details beyond mentioning 'recent news' and 'full article content', which indirectly map to 'query' and 'max_content_per_page'. Since the schema is comprehensive, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies a verb ('searches') and a resource ('news articles'), and further details that it fetches full article content and returns consolidated results. It explicitly distinguishes itself from siblings like google_search and deep_search by focusing on 'recent news' and 'current events', making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Optimized for news and current events' provides clear context for when to use this tool, implying it is preferred over generic search tools for news queries. However, it does not explicitly state when not to use it or name alternative tools, so it stops short of the full 'when/when-not' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_coverageB
Evaluate the current research coverage and identify gaps. This implements the "More research needed?" decision point from Anthropic's architecture.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Research session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing side effects, read-only nature, or output. It only restates the purpose without mentioning whether it modifies session state or what it returns, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, each earning its place. The first states the core purpose, the second provides architectural context, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool, the description is minimally adequate, but it lacks clarity on expected output (e.g., a decision, gap list) and does not explain how it relates to steps like research_session or deep_search. Given no output schema, more detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter (sessionId) is described as 'Research session ID'. The description adds no additional parameter context, so it falls at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates current research coverage and identifies gaps, with a specific verb and resource. The reference to the 'More research needed?' decision point further clarifies its purpose and distinguishes it from search/fetch siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does 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. The reference to the decision point is the only implicit hint, but there is no mention of prerequisites, exclusions, or alternative tools to consider.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_pageA
Fetch and extract the full readable content from a single URL. Uses Readability-style extraction to get the main content, removing navigation, ads, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to fetch | |
| max_length | No | Max content length (default: 50000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the burden of disclosing behavior. It explains that it uses Readability-style extraction and removes navigation/ads, which is helpful. However, it does not disclose the return format, failure modes (e.g., invalid URL, non-accessible pages), or any rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and the second sentence adds valuable detail about extraction behavior without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool, the description covers the main behavior but leaves gaps. There is no output schema, so the agent is left unsure whether the response is plain text, structured, or includes metadata. It also does not mention pagination or handling of very long pages beyond the max_length parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% since both parameters (url and max_length) have clear schema descriptions. The description adds context about extraction semantics but does not go beyond the schema for parameter meaning or usage details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Fetch and extract the full readable content from a single URL.' It clearly distinguishes itself from sibling search and research tools by focusing on a provided URL rather than discovery or aggregation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a known single URL, but it does not explicitly state when to prefer this over alternatives like web_search or deep_search, nor does it mention any prerequisites or excluded scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_citationsA
Get formatted citations from a research session. Supports markdown, numbered, and APA formats.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown | |
| sessionId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It mentions supported formats but fails to describe what happens if the session is invalid, whether it's a read-only operation, or the output structure. The lack of side-effect or error information 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first states the purpose, the second lists supported formats. No unnecessary words or repetition, and it is front-loaded with the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, but the description omits details about the dependency on an existing research session and the exact behavior of the output (beyond 'citations'). With no output schema, more return-value context would be helpful. However, the core function is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 does help by listing the three formats, which map exactly to the enum values for the 'format' parameter. It also provides context for 'sessionId' by referencing 'research session', but does not elaborate on what constitutes a valid session or the required nature of the ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: getting formatted citations from a research session, with specific format options. This is a specific verb+resource+context that distinguishes it from sibling search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from a research session' implies it should be used when you have an existing session, but there is no explicit guidance on when to use it versus alternatives like add_source or research_session. No when-not-to-use or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_researchA
Perform extensive DEEP research on a topic using Anthropic's Multi-Agent Research Architecture.
This tool implements the FULL multi-agent system:
Lead Researcher (Orchestrator): Plans approach, coordinates subagents, synthesizes results
Search Subagents: Parallel workers for different aspects (spawned dynamically)
Citation Agent: Processes documents and inserts inline citations
Memory Module: Persists context, findings, and gaps across iterations
Process Flow:
Think (Plan Approach) - Decompose topic into aspects
Create Subagents - Spawn parallel workers for each aspect
Execute Research - Each subagent: web_search → think(evaluate) → complete_task
Think (Synthesize) - Combine findings, calculate coverage
Evaluate - "More research needed?" decision with adaptive stopping
Citation Agent - Process report and insert citations
Return Final Report
Depth Levels:
basic: 2 iterations max, 2 aspects, ~60% coverage threshold
moderate: 3 iterations max, 5 aspects, ~75% coverage threshold
comprehensive: 4 iterations max, 11 aspects, ~90% coverage threshold
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | moderate | |
| topic | Yes | Research topic | |
| max_content_per_page | No | Max content per page (default: 50000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It extensively details the multi-agent process (Lead Researcher, Search Subagents, Citation Agent, Memory Module), the iterative workflow, and adaptive stopping criteria. This provides transparency about the tool's internal operations and potential for extensive parallel searches, beyond what any annotation could offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although long, the description is well-structured with clear headings, bullet points, and a step-by-step process flow. It front-loads the core purpose and then provides detailed but purposeful elaboration. Every section (Process Flow, Depth Levels) adds significant value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly covers the tool's behavior and process, but does not specify the structure or format of the final report beyond mentioning that citations are inserted and results are synthesized. Since there is no output schema, this gap is notable but not critical given the extensive process description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes 'topic' and 'max_content_per_page' but only provides an enum for 'depth' without explanation. The description adds meaningful semantics by explaining each depth level's iteration count, number of aspects, and coverage thresholds, thereby enriching the depth parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Perform extensive DEEP research on a topic using Anthropic's Multi-Agent Research Architecture.' It specifies the action (perform research), resource (topic), and the multi-agent nature, distinguishing it from simpler search tools like google_search or web_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys that this tool is for extensive, deep research, and outlines depth levels (basic, moderate, comprehensive) with iteration and coverage thresholds. It implies usage for complex, multi-faceted research needs, but does not explicitly exclude alternatives such as quick searches or single-aspect deep dives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_searchA
Simple Google search for quick lookups. Returns snippets only. For deep research with full page content, use google_research or deep_search instead.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| numResults | No |
TDQS
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 discloses a key behavioral trait: the tool returns snippets only, which is a limitation. It also implies a read-only search operation. However, it does not mention rate limits, authentication, or error behavior, leaving some gaps for a complete behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the tool's purpose, and every word contributes value. It is efficiently structured with clear guidance and alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description covers the essential behaviors: it is a search, returns snippets, and identifies alternatives for deep research. It is reasonably complete, though it could mention result count limits, but the schema already handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only describes the 'query' parameter, while 'numResults' has no description. The tool description adds no parameter-specific guidance, such as how to use numResults or what values are appropriate. With only 50% schema coverage, the description fails to compensate for the missing semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a 'Simple Google search for quick lookups' and explicitly notes it 'Returns snippets only,' which distinguishes it from sibling tools like google_research and deep_search. The verb and resource are specific, and the scope is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('quick lookups') and when not to, directing users to 'google_research or deep_search instead' for deep research with full page content. This clearly differentiates it from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_sessionA
Create or manage a research session for multi-step research workflows.
Actions:
create: Start a new session with Lead Researcher planning
status: Check session progress, subagents, and coverage
complete: Generate final report with citations
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | moderate | |
| topic | No | Topic (for create) | |
| action | Yes | ||
| sessionId | No | Session ID (for status/complete) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It explains the purpose of each action (create/status/complete) and mentions outputs like session progress, coverage, and final reports. However, it does not disclose side effects, reversibility, or prerequisites beyond the schema, leaving gaps in what happens when each action is invoked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with a one-line overview and a bulleted action list. Every sentence and bullet earns its place, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-action session management tool with no annotations or output schema, the description covers the three core actions but omits workflow sequencing (e.g., must create before status/complete), depth semantics, and session lifecycle behavior. It provides a basic understanding but is incomplete for a moderately complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 50% of parameters (topic and sessionId have descriptions), but the description does not add meaning for the 'depth' parameter at all and only implicitly uses 'sessionId' via the action descriptions. It fails to compensate for the missing schema coverage and adds minimal value beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Create or manage a research session') and lists three actions, clearly distinguishing this session management tool from sibling search and fetch tools. It is specific about the resource and its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for multi-step research workflows' provides clear context for when to use the tool, implying it is intended for complex research tasks rather than simple searches. However, it does not explicitly state when not to use it or mention alternative tools, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_subagentA
Manually spawn and run a subagent for a specific research aspect. This allows fine-grained control over the multi-agent research process.
The subagent will:
Generate queries for the aspect
Execute web searches
Fetch full page content
Evaluate findings
Return results
| Name | Required | Description | Default |
|---|---|---|---|
| aspect | Yes | The aspect to research (e.g., 'machine learning applications') | |
| sessionId | Yes | Research session ID | |
| max_content_per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of behavioral disclosure. It enumerates the five-step subagent workflow (query generation, web searches, content fetching, evaluation, returning results), which meaningfully explains the tool's internal behavior beyond simple 'runs a subagent.' However, it omits side effects, authorization needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct and well-structured: an opening statement of purpose, a clarifying benefit, and a numbered list of steps. Every sentence/carry contributes value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description covers the tool's operation thoroughly enough for an agent to understand when and how to invoke it. It explains the subagent's process, but does not specify the format of the returned results or whether the tool has side effects on the session, leaving some uncertainty for a complex orchestration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for sessionId and aspect (67% coverage), and the description adds no additional parameter semantics. The undocumented max_content_per_page parameter is left unexplained in the description, but its default, min, and max constraints in the schema provide partial meaning. No compensation for that gap is offered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb–resource pair: 'spawn and run a subagent' for 'a specific research aspect,' clearly stating the tool's function. This distinguishes it from sibling tools like google_search or fetch_page, which directly perform searches/fetches rather than orchestrating a multi-step research subagent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when fine-grained manual control over the multi-agent research process is needed, but it does not explicitly state when not to use it or identify alternative tools. It offers context but no concrete exclusions or comparisons to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchA
Search the web with source quality scoring. For full page content, follow up with fetch_page or use deep_search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| maxResults | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the source quality scoring feature and explicitly notes that full page content is not provided, which sets accurate expectations for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loads the primary function. Every word serves a purpose, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description provides the core capability but does not detail the expected return structure or result format. It covers the main use and a follow-up, but additional detail on what the results contain would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 the parameters. It does not mention 'query' or 'maxResults' or any parameter-specific guidance. The parameter names are self-explanatory, but the description adds no additional meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the web and adds the distinguishing feature of source quality scoring. This separates it from siblings like google_search and deep_search. The follow-up note also reinforces that this is for search results, not full content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance for a follow-up scenario: when full page content is needed, use fetch_page or deep_search. This establishes the tool's scope, though it doesn't mention when not to use google_search or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v2.0.0- First observed
add_source - First observed
deep_search - First observed
deep_search_news - First observed
evaluate_coverage - First observed
fetch_page - First observed
get_citations - First observed
google_research - First observed
google_search - First observed
research_session - First observed
run_subagent - First observed
web_search
TDQS
Scored across 11 tools
Most tools are distinct, but google_search and web_search both provide simple search with subtle differences, and deep_search vs google_research overlap as deep research options. Descriptions help, but an agent might struggle to choose between them.
All names are snake_case, but the pattern mixes noun-first names (google_search, web_search, research_session, deep_search) with verb-first names (fetch_page, add_source, get_citations, run_subagent, evaluate_coverage). This is readable but not fully consistent.
With 11 tools covering search, full-content extraction, multi-agent research, session management, citations, and subagent coordination, the count is well-scoped for the server's purpose and each tool generally has a place.
The tool set covers the entire research workflow: simple search, deep search, news search, URL fetching, session lifecycle, source addition, citation generation, subagent execution, and coverage evaluation. No critical gaps are apparent.
Related MCP Connectors
Autonomous research agent that pays every source it cites in USDC on Arc via x402 micropayments.
Retrieve citation-ready technical context and coordinate evidence-backed work between AI agents.
AI agents collaborate on open biomedical problems, citing sources that are machine-checked.
Research-backed linting + generation for agent context files (CLAUDE.md, AGENTS.md, Cursor rules).
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA multi-model research agent platform supporting Claude, Gemini, and OpenAI models with web search capabilities, thinking-enabled features, and citation support for advanced research workflows.6-
- AlicenseCqualityDmaintenanceA sophisticated research assistant that orchestrates a 5-step workflow of connected AI agents to provide deep research capabilities including question enhancement, web search, summarization, citation formatting, and result combination.11MIT
- AlicenseNot gradedqualityFmaintenanceTurn any AI agent into an academic researcher that can search, read, cite, and write full literature reviews autonomously.14MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered research by breaking a topic into subtopics, gathering information via agents, and compiling a report. Integrates with LangGraph and RAG for orchestration and contextual retrieval.1-