An agent-based tool for web search and advanced research, including analysis of PDFs, documents, images, and YouTube transcripts.
Deep Research is an agent-based tool that provides web search and advanced research capabilities. It leverages HuggingFace's smolagents
and is implemented as an MCP server.
This project is based on HuggingFace's open_deep_research example.
uv
package managergit clone https://github.com/Hajime-Y/deep-research-mcp.git
cd deep-research-mcp
uv venv
source .venv/bin/activate # For Linux or Mac
# .venv\Scripts\activate # For Windows
uv sync
Create a .env
file in the root directory of the project and set the following environment variables:
OPENAI_API_KEY=your_openai_api_key
HF_TOKEN=your_huggingface_token
SERPER_API_KEY=your_serper_api_key
You can obtain a SERPER_API_KEY by signing up at Serper.dev.
Start the MCP server:
uv run deep_research.py
This will launch the deep_research
agent as an MCP server.
You can also run this MCP server in a Docker container:
# Build the Docker image
docker build -t deep-research-mcp .
# Run with required API keys
docker run -p 8080:8080 \
-e OPENAI_API_KEY=your_openai_api_key \
-e HF_TOKEN=your_huggingface_token \
-e SERPER_API_KEY=your_serper_api_key \
deep-research-mcp
To register this Docker container as an MCP server in different clients:
Add the following to your Claude Desktop configuration file (typically located at ~/.config/Claude/claude_desktop_config.json
on Linux, ~/Library/Application Support/Claude/claude_desktop_config.json
on macOS, or %APPDATA%\Claude\claude_desktop_config.json
on Windows):
{
"mcpServers": {
"deep-research-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "OPENAI_API_KEY=your_openai_api_key",
"-e", "HF_TOKEN=your_huggingface_token",
"-e", "SERPER_API_KEY=your_serper_api_key",
"deep-research-mcp"
]
}
}
}
For Cursor IDE, add the following configuration:
{
"mcpServers": {
"deep-research-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "OPENAI_API_KEY=your_openai_api_key",
"-e", "HF_TOKEN=your_huggingface_token",
"-e", "SERPER_API_KEY=your_serper_api_key",
"deep-research-mcp"
]
}
}
}
If you're running the MCP server on a remote machine or exposing it as a service, you can use the URL-based configuration:
{
"mcpServers": {
"deep-research-mcp": {
"url": "http://your-server-address:8080/mcp",
"type": "sse"
}
}
}
deep_research.py
: Entry point for the MCP servercreate_agent.py
: Agent creation and configurationscripts/
: Various tools and utilities
text_web_browser.py
: Text-based web browsertext_inspector_tool.py
: File inspection toolvisual_qa.py
: Image analysis toolmdconvert.py
: Converts various file formats to MarkdownThis project is provided under the Apache License 2.0.
This project uses code from HuggingFace's smolagents
and Microsoft's autogen
projects.
Web search and webpage scraping using the Serper API.
Interact with the arXiv.org paper database. Supports keyword search, paper lookups, author searches, and trend analysis.
A server for Brave Search, enabling web search capabilities via its API.
An MCP server that connects to Perplexity's Sonar API, enabling real-time web-wide research in conversational AI.
Web search server that integrates Perplexity Sonar models via OpenRouter API for real-time, context-aware search with citations
All-in-One SEO & Web Intelligence Toolkit API from FetchSERP.
Search the web using Kagi's search API
An automated research agent using Google Gemini models and Google Search to perform deep, multi-step web research.
Google News search capabilities with automatic topic categorization and multi-language support via SerpAPI integration.
Provides real-time flight tracking and status information using the AviationStack API.