DeepResearch MCP
About
Provides a stateful web research system that iteratively explores topics using Firecrawl for searches and GPT-4 for analysis, generating citation-rich reports without manual search management.
Details
- Author
- ameeralns
- GitHub stars
- 5
- Categories
- Web Scraping, Productivity, Developer Tools, Design, AI, Search, Infrastructure, Frontend
- Tags
- #web
Jump to
- 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
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
Start the server on stdio for MCP client connections:
npm start
A powerful research assistant for conducting iterative web searches, analysis, and report generation.
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.
- 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
┌────────────────────┐ ┌─────────────────┐ ┌────────────────┐ │ │ │ │ │ │ │ MCP Server Layer ├────►│ Research Service├────►│ Search Service │ │ (Tools & Prompts) │ │ (Session Mgmt) │ │ (Firecrawl) │ │ │ │ │ │ │ └────────────────────┘ └─────────┬───────┘ └────────────────┘ │ ▼ ┌─────────────────┐ │ │ │ OpenAI Service │ │ (Analysis/Rpt) │ │ │ └─────────────────┘
- Node.js 18 or higher
- OpenAI API key
- Firecrawl API key
git clone <repository-url> cd deep-research-mcp
Edit the.envfile and add your API keys:
OPENAI_API_KEY=sk-your-openai-api-key FIRECRAWL_API_KEY=your-firecrawl-api-key
Start the server on stdio for MCP client connections:
Run research on a specific topic with a specified depth:
npm run client "Your research topic" 3
- 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)
npm run client "the impact of climate change on coral reefs" 3 complete
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
DeepResearch MCP can be integrated with Claude Desktop to provide direct research capabilities to Claude.
cp claude_desktop_config_sample.json ~/path/to/claude/desktop/config/directory/claude_desktop_config.json
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" } } } }
After saving the configuration, restart Claude Desktop for the changes to take effect.
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?
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);
-
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 thecomplete-researchtool 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
- Built withModel Context Protocol
- Powered byOpenAIandFirecrawl
Enable AI agents to get structured data from unstructured web with AgentQL.
Web scraping, crawling, and change detection with AI
Official Apify MCP server for AI agents to run Actors, extract website data, and automate web scraping and crawling workflows.
1GB Free Trial, World's Leading Proxy Service Platform, Efficient Data Collection
Discover, extract, and interact with the web - one interface powering automated access across the public internet.
Automate browser interactions in the cloud (e.g. web navigation, data extraction, form filling, and more)
Easy web data access. Simplified retrieval of information from websites and online sources.
Adds powerful web scraping and search capabilities to LLM clients like Cursor and Claude.
Real-time web data, structured for agents
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




