Skip to main content
Glama
sid12super

MCP-Deep-Researcher

by sid12super

πŸ” MCP Deep Researcher

A multi-agent research system that decomposes complex queries into targeted sub-questions, searches the web in parallel, scores source credibility, and synthesizes findings into structured markdown reports β€” accessible via Streamlit UI, MCP tool (Claude Code / Cursor), or Python API.

Try the live demo β†’


What It Does

Give it a broad research question. It returns a structured report with executive summary, key findings, knowledge gaps, and cited sources β€” in about 10 seconds.

"What are the latest developments in multi-agent AI systems?"

↓

# Research Report: Multi-Agent AI Systems β€” Latest Developments

## Executive Summary
...

## Key Findings
### How are multi-agent frameworks evolving in 2026?
... [source](https://...) [credibility: high]

## Knowledge Gaps
- No peer-reviewed benchmarks comparing LangGraph vs CrewAI at scale
- ...

## Sources
1. https://arxiv.org/... [high]
2. https://techcrunch.com/... [medium]

Related MCP server: Gemini DeepSearch MCP

Architecture

Three-node LangGraph pipeline with typed state, parallel search, and 24-hour result caching:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Planner  │────▢│    Searcher    │────▢│ Synthesizer  β”‚
β”‚ (GPT-4o) β”‚     β”‚ (Tavily Γ—5)   β”‚     β”‚  (GPT-4o)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
     β”‚                  β”‚                      β”‚
     β–Ό                  β–Ό                      β–Ό
 3-5 targeted    Parallel searches      Markdown report
 sub-questions   with credibility       with citations
                 scoring                and knowledge gaps

Planner β€” Decomposes the query into 3–5 non-overlapping sub-questions using GPT-4o structured output (Pydantic). Context-aware: follow-up queries build on prior research instead of repeating it.

Searcher β€” Fires all searches concurrently via ThreadPoolExecutor. Each result is tagged with a credibility score (high / medium / unverified) based on domain authority. Graceful per-question error handling.

Synthesizer β€” Analyzes all evidence, weights high-credibility sources when findings conflict, and produces a structured report at temperature=0.2 for consistency.

Cache β€” SHA-256 hash of (query + context + search depth). 24-hour TTL. Repeat queries return in <100ms.


Quick Start

Prerequisites

Install

git clone https://github.com/sid12super/MCP-Deep-Researcher.git
cd MCP-Deep-Researcher
uv sync
cp .env.example .env
# Add your API keys to .env

Usage

Streamlit UI

streamlit run app.py

Opens at http://localhost:8501 with:

  • Real-time progress tracking (planning β†’ searching β†’ synthesizing)

  • Search depth toggle (basic / advanced)

  • Multi-turn conversation with context carry-over

  • Export full research conversation as HTML, PDF, or JSON

  • "New Research Topic" button to reset context

MCP Server (Claude Code / Cursor)

The MCP server exposes the full research pipeline as a tool with Pydantic-validated input, search depth control, and multi-turn conversation support.

Start the server:

uv run server.py

Configure your MCP client β€” create .mcp.json in your project root:

{
  "mcpServers": {
    "deep_researcher_mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/MCP-Deep-Researcher",
        "run",
        "server.py"
      ],
      "env": {
        "OPENAI_API_KEY": "sk-...",
        "TAVILY_API_KEY": "tvly-..."
      }
    }
  }
}

Use it in Claude Code:

Use deep_researcher_research to find the latest developments in multi-agent AI systems
Use deep_researcher_research with search_depth "basic" for a quick comparison of LangGraph vs CrewAI
Use deep_researcher_research to follow up on that β€” pass the previous report as conversation_context

The tool accepts three parameters:

Parameter

Type

Default

Description

query

string

required

Research question (3–2000 chars)

search_depth

"basic" | "advanced"

"advanced"

Speed vs. thoroughness tradeoff

conversation_context

string

""

Prior research for multi-turn follow-ups

Python API

from agents import run_research

# Simple query
report = run_research("What are the latest AI trends in 2026?")

# With options
report = run_research(
    "How does this compare to 2025?",
    conversation_context="Previous findings: ...",
    search_depth="basic",
)

# Full state (for programmatic access)
result = run_research("Your query", return_full_state=True)
# result["report"], result["query"], result["research_questions"]

Features

Search Depth Control

Toggle between basic (faster, ~8s) and advanced (comprehensive, ~14s) from the Streamlit sidebar or as an MCP parameter. Each depth caches separately.

Multi-turn Conversation

Follow-up queries automatically receive prior research context. The planner generates deeper, non-redundant questions instead of repeating covered ground. Reset anytime with "New Research Topic."

Export Formats

Download the full research conversation (all queries and reports) as:

  • HTML β€” styled, web-ready

  • PDF β€” professional, print-ready (via ReportLab)

  • JSON β€” structured, machine-readable

Source Credibility Scoring

Every source is automatically classified:

  • High β€” peer-reviewed, government, major outlets (arxiv.org, reuters.com, nih.gov, etc.)

  • Medium β€” established tech/business (techcrunch.com, wikipedia.org, bloomberg.com, etc.)

  • Unverified β€” everything else

The synthesizer weights high-credibility sources more heavily when findings conflict.

Real-time Progress

Streamlit UI shows live status updates as each pipeline stage completes β€” questions generated, results retrieved, report synthesized. Cache hits display instantly.

Caching

Results are cached by SHA-256 hash of (query + conversation context + search depth) with a 24-hour TTL. Identical requests return in <100ms at zero cost.


Project Structure

β”œβ”€β”€ agents.py          # LangGraph pipeline, nodes, caching, credibility scoring
β”œβ”€β”€ server.py          # MCP server (FastMCP, Pydantic input, async)
β”œβ”€β”€ app.py             # Streamlit UI (chat, exports, progress, sidebar)
β”œβ”€β”€ pyproject.toml     # Dependencies (uv)
β”œβ”€β”€ .env.example       # API key template
β”œβ”€β”€ .mcp.json          # MCP client config (gitignored β€” contains keys)
β”œβ”€β”€ CLAUDE.md          # Claude Code development context
└── test/              # Import, integration, and pipeline tests

Performance

Stage

Time

Notes

Planner

~2-3s

GPT-4o structured output

Searcher

~2-3s

Parallel via ThreadPoolExecutor

Synthesizer

~5-8s

GPT-4o at temperature=0.2

Total

~9-14s

First run

Cached

<100ms

Repeat queries within 24h

Cost per unique query: ~$0.06-0.10 (GPT-4o + Tavily) Cost per cached query: $0.00


Troubleshooting

Issue

Fix

ModuleNotFoundError

Run uv sync

OpenAI API key not found

Check .env exists with OPENAI_API_KEY

Tavily API error

Verify key at app.tavily.com

Port 8501 in use

streamlit run app.py --server.port 8502

MCP server not found

Ensure .mcp.json is at project root (not inside .claude/)

MCP server failed

Test with uv run server.py directly to see errors


Tech Stack

Component

Technology

Agent orchestration

LangGraph

LLM

OpenAI GPT-4o

Web search

Tavily

MCP server

FastMCP (Python SDK)

Web UI

Streamlit

PDF export

ReportLab

Dependency management

uv

Available Tools

1 tool
deep_researcher_researchA

Run a multi-agent research pipeline that decomposes a query into sub-questions, searches the web in parallel via Tavily, scores source credibility, and synthesizes a comprehensive markdown report with findings, knowledge gaps, and cited sources.

The pipeline has three stages:
  1. Planner β€” breaks the query into 3-5 targeted sub-questions (GPT-4o)
  2. Searcher β€” runs parallel Tavily web searches with credibility scoring
  3. Synthesizer β€” produces a structured markdown report (GPT-4o)

Results are cached for 24 hours. Identical (query + context + depth) combinations
return instantly on subsequent calls.

Args:
    params (ResearchInput): Validated input containing:
        - query (str): The research question (3-2000 chars)
        - search_depth (SearchDepth): 'basic' for speed or 'advanced' for depth
        - conversation_context (str): Prior research for multi-turn follow-ups

Returns:
    str: Markdown research report with executive summary, key findings per
         sub-question, knowledge gaps, and numbered source citations with
         credibility tags (high/medium/unverified).
ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description bears full burden. It discloses the three-stage pipeline, 24-hour caching, parallel web search, credibility scoring, and structured output format. No contradictions or missing critical details.

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?

Description is well-structured: first sentence summarizes, then bullet points for stages, caching info, and parameter details. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description details the return format (markdown report with sections). It covers caching, parameters, and pipeline. Complete for a tool of this complexity.

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?

Schema description coverage is low (0% per context signals, though properties have some description). The description adds significant value by explaining the search_depth options with time estimates and the purpose of conversation_context for multi-turn follow-ups, compensating for schema gaps.

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?

Description states explicitly: 'Run a multi-agent research pipeline that decomposes a query into sub-questions, searches the web...' and lists stages and output format. It is specific and distinct, even without sibling tools listed.

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?

Clear that the tool is for complex research queries requiring decomposition, with caching noted. No explicit 'when not to use' or alternatives, but the context of no siblings makes this less critical.

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. Dates show when Glama detected each change.

  1. 1 tool updatev0.2.0
    • First observeddeep_researcher_research

TDQS

A4.8/5.0
Disambiguation5/5

Only one tool exists, so there is zero ambiguity among tools. The tool's purpose is clearly defined.

Naming Consistency5/5

With a single tool, naming consistency is trivially perfect. The name 'deep_researcher_research' is descriptive and follows a clear pattern.

Tool Count5/5

The server is focused on a single, complex task (deep research). One tool is appropriate; adding more would likely complicate the interface unnecessarily.

Completeness5/5

The single tool covers the entire research pipelineβ€”planning, searching, scoring, synthesizingβ€”with caching. No obvious gaps within its stated purpose.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • 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
  • A
    license
    B
    quality
    D
    maintenance
    An automated research agent that leverages Google Gemini models and Google Search to perform deep, multi-step web research, generating sophisticated queries and producing citation-rich answers.
    1
    28
    MIT
  • A
    license
    D
    quality
    Not graded
    maintenance
    Multi-agent research server that runs multiple LLM providers in parallel with web search capabilities, synthesizing their responses into comprehensive answers for complex queries.
    2
    4
    8
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sid12super/MCP-Deep-Researcher'

If you have feedback or need assistance with the MCP directory API, please join our Discord server