Skip to main content
Glama
ameeralns

DeepResearch MCP

by ameeralns

DeepResearch MCP

DeepResearch Logo TypeScript OpenAI Node.js

πŸ“š Overview

DeepResearch MCP is a powerful research assistant built on the Model Context Protocol (MCP). It conducts intelligent, iterative research on any topic through web searches, analysis, and comprehensive report generation.

🌟 Key Features

  • Intelligent Topic Exploration - Automatically identifies knowledge gaps and generates focused search queries

  • Comprehensive Content Extraction - Enhanced web scraping with improved content organization

  • Structured Knowledge Processing - Preserves important information while managing token usage

  • Scholarly Report Generation - Creates detailed, well-structured reports with executive summaries, analyses, and visualizations

  • Complete Bibliography - Properly cites all sources with numbered references

  • Adaptive Content Management - Automatically manages content to stay within token limits

  • Error Resilience - Recovers from errors and generates partial reports when full processing isn't possible

Related MCP server: OpenDeepSearch

πŸ› οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    β”‚     β”‚                 β”‚     β”‚                β”‚
β”‚  MCP Server Layer  β”œβ”€β”€β”€β”€β–Ίβ”‚ Research Serviceβ”œβ”€β”€β”€β”€β–Ίβ”‚ Search Service β”‚
β”‚  (Tools & Prompts) β”‚     β”‚ (Session Mgmt)  β”‚     β”‚  (Firecrawl)   β”‚
β”‚                    β”‚     β”‚                 β”‚     β”‚                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                     β”‚
                                     β–Ό
                           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                           β”‚                 β”‚
                           β”‚  OpenAI Service β”‚
                           β”‚ (Analysis/Rpt)  β”‚
                           β”‚                 β”‚
                           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ’» Installation

Prerequisites

  • Node.js 18 or higher

  • OpenAI API key

  • Firecrawl API key

Setup Steps

  1. Clone the repository

    git clone <repository-url>
    cd deep-research-mcp
  2. Install dependencies

    npm install
  3. Configure environment variables

    cp .env.example .env

    Edit the .env file and add your API keys:

    OPENAI_API_KEY=sk-your-openai-api-key
    FIRECRAWL_API_KEY=your-firecrawl-api-key
  4. Build the project

    npm run build

πŸš€ Usage

Running the MCP Server

Start the server on stdio for MCP client connections:

npm start

Using the Example Client

Run research on a specific topic with a specified depth:

npm run client "Your research topic" 3

Parameters:

  • First argument: Research topic or query

  • Second argument: Research depth (number of iterations, default: 2)

  • Third argument (optional): "complete" to use the complete-research tool (one-step process)

Example:

npm run client "the impact of climate change on coral reefs" 3 complete

Example Output

The DeepResearch MCP will produce a comprehensive report that includes:

  • Executive Summary - Concise overview of the research findings

  • Introduction - Context and importance of the research topic

  • Methodology - Description of the research approach

  • Comprehensive Analysis - Detailed examination of the topic

  • Comparative Analysis - Visual comparison of key aspects

  • Discussion - Interpretation of findings and implications

  • Limitations - Constraints and gaps in the research

  • Conclusion - Final insights and recommendations

  • Bibliography - Complete list of sources with URLs

πŸ”§ MCP Integration

Available MCP Resources

Resource Path

Description

research://state/{sessionId}

Access the current state of a research session

research://findings/{sessionId}

Access the collected findings for a session

Available MCP Tools

Tool Name

Description

Parameters

initialize-research

Start a new research session

query: string, depth: number

execute-research-step

Execute the next research step

sessionId: string

generate-report

Create a final report

sessionId: string, timeout: number (optional)

complete-research

Execute the entire research process

query: string, depth: number, timeout: number (optional)

πŸ–₯️ Claude Desktop Integration

DeepResearch MCP can be integrated with Claude Desktop to provide direct research capabilities to Claude.

Configuration Steps

  1. Copy the sample configuration

    cp claude_desktop_config_sample.json ~/path/to/claude/desktop/config/directory/claude_desktop_config.json
  2. Edit the configuration file

    Update the path to point to your installation of deep-research-mcp and add your API keys:

    {
      "mcpServers": {
        "deep-research": {
          "command": "node",
          "args": [
            "/absolute/path/to/your/deep-research-mcp/dist/index.js"
          ],
          "env": {
            "FIRECRAWL_API_KEY": "your-firecrawler-api-key",
            "OPENAI_API_KEY": "your-openai-api-key"
          }
        }
      }
    }
  3. Restart Claude Desktop

    After saving the configuration, restart Claude Desktop for the changes to take effect.

  4. Using with Claude Desktop

    Now you can ask Claude to perform research using commands like:

    Can you research the impact of climate change on coral reefs and provide a detailed report?

πŸ“‹ Sample Client Code

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

async function main() {
  // Connect to the server
  const transport = new StdioClientTransport({
    command: "node",
    args: ["dist/index.js"]
  });

  const client = new Client({ name: "deep-research-client", version: "1.0.0" });
  await client.connect(transport);

  // Initialize research
  const initResult = await client.callTool({
    name: "initialize-research",
    arguments: {
      query: "The impact of artificial intelligence on healthcare",
      depth: 3
    }
  });
  
  // Parse the response to get sessionId
  const { sessionId } = JSON.parse(initResult.content[0].text);
  
  // Execute steps until complete
  let currentDepth = 0;
  while (currentDepth < 3) {
    const stepResult = await client.callTool({
      name: "execute-research-step",
      arguments: { sessionId }
    });
    
    const stepInfo = JSON.parse(stepResult.content[0].text);
    currentDepth = stepInfo.currentDepth;
    
    console.log(`Completed step ${stepInfo.currentDepth}/${stepInfo.maxDepth}`);
  }
  
  // Generate final report with timeout
  const report = await client.callTool({
    name: "generate-report",
    arguments: { 
      sessionId,
      timeout: 180000 // 3 minutes timeout
    }
  });
  
  console.log("Final Report:");
  console.log(report.content[0].text);
}

main().catch(console.error);

πŸ” Troubleshooting

Common Issues

  • Token Limit Exceeded: For very large research topics, you may encounter OpenAI token limit errors. Try:

    • Reducing the research depth

    • Using more specific queries

    • Breaking complex topics into smaller sub-topics

  • Timeout Errors: For complex research, the process may time out. Solutions:

    • Increase the timeout parameters in tool calls

    • Use the complete-research tool with a longer timeout

    • Process research in smaller chunks

  • API Rate Limits: If you encounter rate limit errors from OpenAI or Firecrawl:

    • Implement a delay between research steps

    • Use an API key with higher rate limits

    • Retry with exponential backoff

πŸ“ License

ISC

πŸ™ Acknowledgements

Available Tools

4 tools
complete-researchD
ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
queryYes
timeoutNo

TDQS

D1/5.0
Behavior1/5

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

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

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

Completeness1/5

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

Tool has no description.

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?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute-research-stepD
ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes

TDQS

D1/5.0
Behavior1/5

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

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

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

Completeness1/5

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

Tool has no description.

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?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate-reportD
ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes
timeoutNo

TDQS

D1/5.0
Behavior1/5

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

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

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

Completeness1/5

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

Tool has no description.

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?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

initialize-researchD
ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
queryYes

TDQS

D1/5.0
Behavior1/5

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

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

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

Completeness1/5

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

Tool has no description.

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?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

D1.6/5.0
Disambiguation2/5

The tools have overlapping purposes with unclear boundaries, as 'complete-research', 'execute-research-step', and 'initialize-research' all seem to relate to conducting research without clear distinctions. The lack of descriptions exacerbates ambiguity, making it difficult to differentiate their specific roles in a research workflow.

Naming Consistency5/5

All tool names follow a consistent verb-noun pattern with hyphens (e.g., 'complete-research', 'execute-research-step'), showing a predictable and readable naming convention throughout the set. There are no deviations or mixed styles, making the naming highly consistent.

Tool Count3/5

With 4 tools, the count is borderline for a research domain, as it feels thin for covering a complete research lifecycle (e.g., data analysis, validation, collaboration). While it might handle basic steps, the limited number suggests potential gaps in functionality for a comprehensive research process.

Completeness2/5

The tool set shows significant gaps for a research domain, as it lacks operations for data gathering, analysis, validation, or collaboration (e.g., no tools for searching sources, analyzing data, or peer review). The surface is incomplete, likely causing agent failures in conducting thorough research without workarounds.

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
    Not graded
    quality
    C
    maintenance
    Enables iterative deep research by integrating AI agents with search engines, web scraping, and large language models for efficient data gathering and comprehensive reporting.
    8
    323
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A research tool that performs comprehensive, in-depth research on complex topics by combining sequential thinking with Brave Search capabilities to provide detailed, well-sourced reports.
    8
    3
    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

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/ameeralns/DeepResearchMCP'

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