Skip to main content
Glama
thejusdutt

google-research-mcp

by thejusdutt

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.

npm version

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 aspects

  • think(evaluate) - Each subagent evaluates its findings

  • think(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

google_research

Full multi-agent research with all components

deep_search

Search + fetch full content (single iteration)

deep_search_news

News-specific deep search

fetch_page

Fetch single page content

google_search

Simple search (snippets only)

web_search

Search with quality scoring

research_session

Manual session management

run_subagent

Manually spawn a subagent

evaluate_coverage

Check coverage and gaps

add_source

Add source to session

get_citations

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

  1. Go to Google Cloud Console

  2. Enable "Custom Search API"

  3. Create an API Key

2. Search Engine ID (CX)

  1. Go to Programmable Search Engine

  2. Create engine with "Search the entire web"

  3. Copy the Search Engine ID

Usage Examples

Full Multi-Agent Research

"Research quantum computing with comprehensive depth"

This triggers the full architecture:

  1. Lead Researcher plans 11 aspects

  2. Spawns 3-4 subagents per iteration

  3. Each subagent researches in parallel

  4. Evaluates coverage after each iteration

  5. Continues until 90% coverage or max iterations

  6. 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_subagent tool - Manual subagent control

  • NEW: evaluate_coverage tool - Check coverage and gaps

  • NEW: deep_search_news tool - News-specific deep search

  • Improved 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 tools
add_sourceC

Add a source to a research session after fetching its content.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
titleYes
sessionIdYes
fetchContentNo

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_search_newsA

Searches for recent news articles on a topic, fetches full article content, and returns consolidated results. Optimized for news and current events.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe news topic to search for
num_resultsNoNumber of news articles to fetch (1-10, default: 10)
max_content_per_pageNoMaximum characters per article (default: 30000)

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesResearch session ID

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to fetch
max_lengthNoMax content length (default: 50000)

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNomarkdown
sessionIdYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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:

  1. Lead Researcher (Orchestrator): Plans approach, coordinates subagents, synthesizes results

  2. Search Subagents: Parallel workers for different aspects (spawned dynamically)

  3. Citation Agent: Processes documents and inserts inline citations

  4. Memory Module: Persists context, findings, and gaps across iterations

Process Flow:

  1. Think (Plan Approach) - Decompose topic into aspects

  2. Create Subagents - Spawn parallel workers for each aspect

  3. Execute Research - Each subagent: web_search → think(evaluate) → complete_task

  4. Think (Synthesize) - Combine findings, calculate coverage

  5. Evaluate - "More research needed?" decision with adaptive stopping

  6. Citation Agent - Process report and insert citations

  7. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNomoderate
topicYesResearch topic
max_content_per_pageNoMax content per page (default: 50000)

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNomoderate
topicNoTopic (for create)
actionYes
sessionIdNoSession ID (for status/complete)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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:

  1. Generate queries for the aspect

  2. Execute web searches

  3. Fetch full page content

  4. Evaluate findings

  5. Return results

ParametersJSON Schema
NameRequiredDescriptionDefault
aspectYesThe aspect to research (e.g., 'machine learning applications')
sessionIdYesResearch session ID
max_content_per_pageNo

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv2.0.0
    • First observedadd_source
    • First observeddeep_search
    • First observeddeep_search_news
    • First observedevaluate_coverage
    • First observedfetch_page
    • First observedget_citations
    • First observedgoogle_research
    • First observedgoogle_search
    • First observedresearch_session
    • First observedrun_subagent
    • First observedweb_search

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation3/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness5/5

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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
    -
  • A
    license
    C
    quality
    D
    maintenance
    A 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.
    11
    MIT