LABSCO SUMMARY
One question in, a research pass out — not a list of links.
Because the agent does the browsing itself, your client spends one tool call where it would otherwise spend twenty, and the reading of PDFs and transcripts happens on the far side. The cost is three separate accounts before anything runs, and inference billed to your own OpenAI key on every question.
What it is
The deep_research agent from HuggingFace's open_deep_research example, wrapped as an MCP server. Rather than a single search call, the agent browses, opens documents and reports back, so the client asks one research question and receives worked findings.
What you get
- Web search and information gathering through a text-based browser
- PDF and document analysis, with format conversion to Markdown for reading
- Image analysis and description
- YouTube transcript retrieval
- Archive site search
Requirements
Python 3.11 or higher and the uv package manager, or Docker. Three keys are required in the environment: OPENAI_API_KEY, HF_TOKEN and SERPER_API_KEY (free signup at Serper.dev). Run locally with uv run deep_research.py, or build the image and register a docker run command with the three keys passed in; the container also exposes port 8080 if you would rather connect over SSE. Package version 0.1.0. Apache 2.0.
Setup effort
Run a container — build the image from the repository, then point your client at it
USE CASES
01
Answering a question that needs several sources read, not just found
Hand over the research question and get back findings the agent assembled from the pages and documents it opened.
02
Pulling what was actually said in a talk
Point the agent at a YouTube source so it retrieves the transcript instead of summarising a description.
03
Working through a PDF the model cannot open
Let the agent convert and read the document, then answer from its contents.
BEFORE YOU INSTALL
What to know first
Requires
- docker on PATH
- Python 3.11 or later
- OPENAI_API_KEY in your environment
- HF_TOKEN in your environment
- SERPER_API_KEY in your environment
INSTALLATION
Connect your client
Build the image from the repository, then point your client at it.
Server setup
TERMINAL
git clone https://github.com/Hajime-Y/deep-research-mcp.git
cd deep-research-mcp
docker build -t deep-research-mcp .MCP Clients
Claude Desktop, Cursor
JSON
{
"mcpServers": {
"deep-research-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>",
"-e",
"HF_TOKEN=<YOUR_HF_TOKEN>",
"-e",
"SERPER_API_KEY=<YOUR_SERPER_API_KEY>",
"deep-research-mcp"
]
}
}
}Any MCP client — remote
Start the container with its port published (instead of the -i blocks in the other tabs):
ANY MCP CLIENT — REMOTE · TERMINAL
docker run -p 8080:8080 -e OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> -e HF_TOKEN=<YOUR_HF_TOKEN> -e SERPER_API_KEY=<YOUR_SERPER_API_KEY> deep-research-mcpThen add this to your client:
ANY MCP CLIENT — REMOTE · JSON
{
"mcpServers": {
"deep-research-mcp": {
"url": "http://<YOUR_SERVER_ADDRESS>:8080/mcp",
"type": "sse"
}
}
}<YOUR_SERVER_ADDRESS> is the host running the container (localhost if it is this machine). <YOUR_SERPER_API_KEY> is a Serper.dev key.