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.
Interact with the Eventbrite API to search for events, get event details, and retrieve venue information.
Search for messages and files within a Slack workspace using the Slack API.
An MCP server for interacting with the Haloscan SEO API.
Interact with Perplexity.ai using Puppeteer without an API key. Requires Node.js and stores chat history locally.
MCP server for interacting with the Ordiscan API to query Bitcoin ordinals and inscriptions. Requires an Ordiscan API key.
Search the Powertools for AWS Lambda documentation across multiple runtimes to find documentation and examples.
A server for Google search and webpage content extraction, built on Cloudflare Workers with OAuth support.
Search and retrieve content from the Unsloth AI documentation.
Access Bing Webmaster Tools data, including search performance, crawl statistics, URL submission, and keyword research.
Integrates the Brave Search API for both web and local search capabilities. Requires a BRAVE_API_KEY.