Track MCP LogoTrack MCP
Track MCP LogoTrack MCP

The world's largest repository of Model Context Protocol servers. Discover, explore, and submit MCP tools.

Product

  • Categories
  • Top MCP
  • New & Updated

Company

  • About

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy

© 2025 TrackMCP. All rights reserved.

Built with ❤️ by Krishna Goyal

    Deep Research Mcp Server

    MCP Deep Research Server using Gemini creating a Research AI Agent

    55 stars
    TypeScript
    Updated Nov 4, 2025
    ai
    ai-agents
    ai-research
    ai-research-assistant
    ai-researcher
    airesearch
    gemini
    gemini-api
    gemini-server
    generative-ai
    mcp-server
    research
    research-and-development
    research-paper
    research-tool

    Documentation

    Deep Research MCP Server

    Node.js

    TypeScript

    Gemini API

    MCP

    License: MIT

    Your AI-Powered Research Assistant. Conduct iterative, deep research using Google Gemini 2.5 Flash with Google Search Grounding and URL context. No web-scraping dependency is required.

    ---

    Table of Contents

    • Features
    • Why This Project
    • Workflow Diagram
    • Persona Agents
    • How It Works
    • Project Structure
    • Requirements
    • Setup
    • Usage
    • As MCP Tool
    • Standalone CLI Usage
    • MCP Inspector Testing
    • Configuration
    • Quickstart
    • Example Output
    • Support
    • Contributing
    • Roadmap
    • License

    The goal of this project is to provide the *simplest* yet *most effective* implementation of a deep research agent. It's designed to be easily understood, modified, and extended, aiming for a codebase under 500 lines of code (LoC).

    Key Features:

    • MCP Integration: Runs as a Model Context Protocol (MCP) server/tool for seamless agent integration.
    • Gemini 2.5 Flash Pipeline: Long-context reasoning, structured JSON outputs, and tool use (Google Search Grounding, Code Execution, Functions) via env flags.
    • Iterative Deep Dive: Query refinement + result analysis with learned context carried forward.
    • Depth & Breadth Control: Tune exploration scope precisely.
    • Semantic/Recursive Splitting: Token-aware chunking for robust summarization and analysis.
    • Batching + Caching: Concurrency-limited batched model calls with LRU caches across prompts/results.
    • Professional Reports: Generates structured Markdown (Abstract, ToC, Intro, Body, Methodology, Limitations, Key Learnings, References).

    Why This Project

    • Gemini-first, modern pipeline: Built around Gemini 2.5 Flash with optional tools (Search Grounding, Code Execution, Functions).
    • Minimal, understandable core: Plain TypeScript; easy to audit and extend.
    • Deterministic outputs: Zod-validated JSON and consistent report scaffolding.
    • Agent-ready: Clean MCP server entry; works with Inspector and MCP-aware clients.

    Workflow Diagram

    mermaid
    flowchart TB
        subgraph Input
            Q[User Query]
            B[Breadth Parameter]
            D[Depth Parameter]
        end
    
        DR[Deep Research] -->
        SQ[SERP Queries] -->
        PR[Process Results]
    
        subgraph Results[Results]
            direction TB
            NL((Learnings))
            ND((Directions))
        end
    
        PR --> NL
        PR --> ND
    
        DP{depth > 0?}
    
        RD["Next Direction:
        - Prior Goals
        - New Questions
        - Learnings"]
    
        MR[Markdown Report]
    
        %% Main Flow
        Q & B & D --> DR
    
        %% Results to Decision
        NL & ND --> DP
    
        %% Circular Flow
        DP -->|Yes| RD
        RD -->|New Context| DR
    
        %% Final Output
        DP -->|No| MR
    
        %% Styling
        classDef input fill:#7bed9f,stroke:#2ed573,color:black
        classDef process fill:#70a1ff,stroke:#1e90ff,color:black
        classDef recursive fill:#ffa502,stroke:#ff7f50,color:black
        classDef output fill:#ff4757,stroke:#ff6b81,color:black
        classDef results fill:#a8e6cf,stroke:#3b7a57,color:black
    
        class Q,B,D input
        class DR,SQ,PR process
        class DP,RD recursive
        class MR output
        class NL,ND results

    Persona Agents

    What are Persona Agents?

    In deep-research, we utilize the concept of "persona agents" to guide the behavior of the Gemini language models. Instead of simply prompting the LLM with a task, we imbue it with a specific role, skills, personality, communication style, and values. This approach helps to:

    • Focus the LLM's Output: By defining a clear persona, we encourage the LLM to generate responses that are aligned with the desired expertise and perspective.
    • Improve Consistency: Personas help maintain a consistent tone and style throughout the research process.
    • Enhance Task-Specific Performance: Tailoring the persona to the specific task (e.g., query generation, learning extraction, feedback) optimizes the LLM's output for that stage of the research.

    Examples of Personas in use:

    • Expert Research Strategist & Query Generator: Used for generating search queries, this persona emphasizes strategic thinking, comprehensive coverage, and precision in query formulation.
    • Expert Research Assistant & Insight Extractor: When processing web page content, this persona focuses on meticulous analysis, factual accuracy, and extracting key learnings relevant to the research query.
    • Expert Research Query Refiner & Strategic Advisor: For generating follow-up questions, this persona embodies strategic thinking, user intent understanding, and the ability to guide users towards clearer and more effective research questions.
    • Professional Doctorate Level Researcher (System Prompt): This overarching persona, applied to the main system prompt, sets the tone for the entire research process, emphasizing expert-level analysis, logical structure, and in-depth investigation.

    By leveraging persona agents, deep-research aims to achieve more targeted, consistent, and high-quality research outcomes from the Gemini language models.

    How It Works

    Core modules:

    • src/deep-research.ts — orchestrates queries, batching, analysis, and synthesis
    • generateSerpQueries() uses Gemini to propose SERP-style queries from your prompt and prior learnings
    • processSerpResult() splits content, batches Gemini calls with tools enabled, extracts learnings and citations
    • conductResearch() runs analysis passes over semantic chunks
    • writeFinalReport() builds the final professional Markdown report
    • src/ai/providers.ts — GoogleGenAI wrapper for Gemini 2.5 Flash, batching, token control, optional tools
    • src/ai/text-splitter.ts — RecursiveCharacter and Semantic splitters
    • src/mcp-server.ts — MCP server entry point and types
    • src/run.ts — CLI entry point

    Pipeline highlights:

    • Structured JSON outputs validated with Zod
    • Concurrency-limited batching (generateBatch, generateBatchWithTools)
    • LRU caches for prompts, SERP proposals, and reports
    • Optional Gemini tools via flags: Google Search Grounding, Code Execution, Functions

    Project Structure

    text
    deep-research-mcp-server/
    ├─ src/
    │  ├─ ai/
    │  │  ├─ providers.ts           # Gemini wrapper, tools, batching, caching
    │  │  └─ text-splitter.ts       # Semantic/recursive splitters
    │  ├─ mcp-server.ts             # MCP server entry/types
    │  ├─ deep-research.ts          # Orchestrator: queries → analysis → synthesis
    │  ├─ prompt.ts                 # System + templates
    │  ├─ feedback.ts               # Refinement/feedback loop
    │  ├─ output-manager.ts         # Report/output formatting
    │  ├─ progress-manager.ts       # CLI progress
    │  ├─ terminal-utils.ts         # CLI helpers
    │  ├─ types.ts                  # Zod schemas/types
    │  └─ utils/                    # JSON/sanitize helpers
    ├─ dist/                        # Build output
    ├─ .env.example                 # Environment template
    ├─ package.json                 # Scripts/deps
    └─ README.md

    Requirements

    • Node.js v22.x
    • Google Gemini API key

    Setup

    Node.js

    1. Clone the repository:

    bash
    git clone [your-repo-link-here]

    2. Install dependencies:

    bash
    npm install

    3. Set up environment variables: Create a .env.local file in the project root:

    bash
    # Required
        GEMINI_API_KEY="your_gemini_key"
    
        # Recommended defaults
        GEMINI_MODEL=gemini-2.5-flash
        GEMINI_MAX_OUTPUT_TOKENS=65536
        CONCURRENCY_LIMIT=5
    
        # Gemini tools (enable as needed)
        ENABLE_GEMINI_GOOGLE_SEARCH=true
        ENABLE_GEMINI_CODE_EXECUTION=false
        ENABLE_GEMINI_FUNCTIONS=false

    4. Build the project:

    bash
    npm run build

    Usage

    As MCP Tool

    To run deep-research as an MCP tool, start the MCP server:

    bash
    node --env-file .env.local dist/mcp-server.js

    You can then invoke the deep-research tool from any MCP-compatible agent using the following parameters:

    • query (string, required): The research query.
    • depth (number, optional, 1-5): Research depth (default: moderate).
    • breadth (number, optional, 1-5): Research breadth (default: moderate).
    • existingLearnings (string[], optional): Pre-existing research findings to guide research.

    Example MCP Tool Arguments (JSON shape):

    json
    {
      "name": "deep-research",
      "arguments": {
        "query": "State of multi-agent research agents in 2025",
        "depth": 3,
        "breadth": 3,
        "existingLearnings": [
          "Tool use improves grounding",
          "Batching reduces latency"
        ]
      }
    }
    typescript
    const mcp = new ModelContextProtocolClient(); // Assuming MCP client is initialized
    
    async function invokeDeepResearchTool() {
      try {
        const result = await mcp.invoke("deep-research", {
          query: "Explain the principles of blockchain technology",
          depth: 2,
          breadth: 4
        });
    
        if (result.isError) {
          console.error("MCP Tool Error:", result.content[0].text);
        } else {
          console.log("Research Report:\n", result.content[0].text);
          console.log("Sources:\n", result.metadata.sources);
        }
      } catch (error) {
        console.error("MCP Invoke Error:", error);
      }
    }
    
    invokeDeepResearchTool();

    Standalone CLI Usage

    To run deep-research directly from the command line:

    bash
    npm run start "your research query"

    Example:

    bash
    npm run start "what are latest developments in ai research agents"

    MCP Inspector Testing

    For interactive testing and debugging of the MCP server, use the MCP Inspector:

    bash
    npx @modelcontextprotocol/inspector node --env-file .env.local dist/mcp-server.js

    MCP Integration Tips

    • Environment: Provide GEMINI_API_KEY to the MCP server process; model and tool flags via env.
    • Stateless calls: The server derives behavior from env; keep flags in sync with your client profile.
    • Latency: Enable batching and reasonable CONCURRENCY_LIMIT to balance speed vs rate limits.

    Configuration

    • GEMINI_API_KEY — required
    • GEMINI_MODEL — defaults to gemini-2.5-flash
    • GEMINI_MAX_OUTPUT_TOKENS — defaults to 65536
    • CONCURRENCY_LIMIT — defaults to 5
    • ENABLE_GEMINI_GOOGLE_SEARCH — enable Google Search Grounding tool
    • ENABLE_GEMINI_CODE_EXECUTION — enable code execution tool
    • ENABLE_GEMINI_FUNCTIONS — enable function calling

    Optional providers (planned/behind flags): Exa/Tavily can be integrated later; Firecrawl is not required for the current pipeline.

    Quickstart

    1) Clone and install

    bash
    git clone https://github.com/ssdeanx/deep-research-mcp-server
    cd deep-research-mcp-server
    npm i && npm run build

    2) Create .env.local (see Setup)

    3) Run as MCP server (Inspector)

    bash
    npx @modelcontextprotocol/inspector node --env-file .env.local dist/mcp-server.js

    4) Or run as CLI

    bash
    npm run start "state of multi-agent research agents in 2025"

    Example Output

    markdown
    # Abstract
    Concise overview of the research goal, scope, method, and key findings.
    
    # Table of Contents
    ...
    
    # Introduction
    Context and framing.
    
    # Body
    Evidence-backed sections with citations.
    
    # Methodology
    How sources were found and analyzed.
    
    # Limitations
    Assumptions and risks.
    
    # Key Learnings
    Bulleted insights and takeaways.
    
    # References
    Normalized citations to visited URLs.

    Support

    • Issues: Use GitHub Issues for bugs and feature requests.
    • Discussions: Propose ideas or ask questions.
    • Security: Do not file public issues for sensitive disclosures; contact maintainers privately.

    Contributing

    • PRs welcome: Please open an issue first for significant changes.
    • Standards: TypeScript 5.x, Node.js 22.x, lint/type-check before PRs.
    • Checks: npm run build and tsc --noEmit must pass.
    • Docs: Update README.md and .env.example when changing env/config.

    Roadmap

    • Exa search integration (behind ENABLE_EXA_PRIMARY), Google grounding for augmentation.
    • Provider cleanup: Remove Firecrawl after Exa migration (explicit approval required).
    • CI/CD: Add GitHub Actions for build/lint/test and badge.
    • Examples: Add sample reports and prompts.

    Troubleshooting

    • Missing API key: Ensure GEMINI_API_KEY is set in .env.local and processes are started with --env-file .env.local.
    • Model/tool flags: If grounding or functions aren’t active, verify ENABLE_GEMINI_GOOGLE_SEARCH, ENABLE_GEMINI_CODE_EXECUTION, ENABLE_GEMINI_FUNCTIONS.
    • Rate limits/latency: Lower CONCURRENCY_LIMIT (e.g., 3) or rerun with fewer simultaneous queries.
    • Output too long: Reduce depth/breadth or lower GEMINI_MAX_OUTPUT_TOKENS.
    • Schema parse errors: Rerun; the pipeline validates/repairs JSON, but extreme prompts may exceed budgets—trim prompt or reduce chunk size.

    License

    MIT License - Free and Open Source. Use it freely!

    ---

    🚀 Let's dive deep into research! 🚀

    Recent Improvements (v0.3.0)

    ✨ Highlights of the latest changes. See also Roadmap.

    🧪 Enhanced Research Validation

    • ✅ Input validation: Minimum 10 characters + 3 words
    • 📈 Output validation: Citation density (1.5+ per 100 words)
    • 🔍 Recent sources check (3+ post-2019 references)
    • ⚖️ Conflict disclosure enforcement

    🧠 Gemini Integration Upgrades

    • Consolidated on Gemini 2.5 Flash (long-context, structured JSON)
    • Optional tools via env flags: Search Grounding, Code Execution, Functions
    • Semantic + recursive splitting for context management
    • Robust batching with concurrency control and caching
    • Enhanced context management via semantic search
    • Improved error handling and logging

    🧹 Code Quality Improvements

    • 🚀 Added concurrent processing pipeline
    • Removed redundant academic-validators module
    • 🛡️ Enhanced type safety across interfaces
    • 📦 Optimized dependencies (≈30% smaller node_modules)

    🆕 New Features

    • 📊 Research metrics tracking (sources/learnings ratio)
    • 📑 Auto-generated conflict disclosure statements
    • 🔄 Recursive research depth control (1-5 levels)
    • 📈 Research metrics tracking (sources/learnings ratio)
    • 🤖 MCP tool integration improvements

    Performance:

    • 🚀 30% faster research cycles
    • ⚡ 40% faster initial research cycles
    • 📉 60% reduction in API errors
    • 🧮 25% more efficient token usage

    Similar MCP

    Based on tags & features

    • LI

      Liveblocks Mcp Server

      TypeScript·
      11
    • MC

      Mcp Open Library

      TypeScript·
      42
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • AN

      Anilist Mcp

      TypeScript·
      57

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k
    View All MCP Servers

    Similar MCP

    Based on tags & features

    • LI

      Liveblocks Mcp Server

      TypeScript·
      11
    • MC

      Mcp Open Library

      TypeScript·
      42
    • MC

      Mcp Ipfs

      TypeScript·
      11
    • AN

      Anilist Mcp

      TypeScript·
      57

    Trending MCP

    Most active this week

    • PL

      Playwright Mcp

      TypeScript·
      22.1k
    • SE

      Serena

      Python·
      14.5k
    • MC

      Mcp Playwright

      TypeScript·
      4.9k
    • MC

      Mcp Server Cloudflare

      TypeScript·
      3.0k