MCP server for GPT Researcher: deep web research with cited sources for AI assistants
1.6K
An MCP server that gives AI assistants (Claude, Cursor, and any other MCP client) deep web research through GPT Researcher. Instead of returning raw search results, it explores and validates many sources and hands back focused, cited research context or a full report.
This image is built from Joly0/gptr-mcp (branch combined), a fork of the official assafelovic/gptr-mcp that adds:
/mcp, replacing the deprecated SSE transportdocker run -d --name gptr-mcp -p 8000:8000 \
-e OPENAI_API_KEY=your-openai-key \
-e TAVILY_API_KEY=your-tavily-key \
joly0/gptr-mcp:latest
Then point your MCP client at http://<host>:8000/mcp, for example in Claude Code:
claude mcp add --transport http gptr-mcp http://<host>:8000/mcp
A health check is available at http://<host>:8000/health.
| Tool | What it does |
|---|---|
deep_research | Full web research on a query; returns the research context, sources and a research_id |
quick_search | Fast web search returning results with snippets |
write_report | Writes a report from a previous research_id, with an optional custom prompt |
get_research_sources | Returns the sources of a previous research |
get_research_context | Returns the full context of a previous research |
It also exposes a research://{topic} resource and a research_query prompt.
| Variable | Required | Description |
|---|---|---|
OPENAI_API_KEY | yes | API key for the LLM provider |
TAVILY_API_KEY | yes (default retriever) | API key for Tavily web search |
CONTEXT_FILTER | no | How scraped passages are selected: auto (default), jev, keyword, embeddings or none |
TYPESAFE_API_KEY | no | Enables the Jev usefulness filter when CONTEXT_FILTER=auto; without it, local keyword ranking is used |
EXTRA_PIP_PACKAGES | no | Comma-separated pip packages installed at container start, e.g. for retrievers with extra dependencies |
All other GPT Researcher settings (STRATEGIC_LLM, SMART_LLM, RETRIEVER, MAX_ITERATIONS, ...) can be passed as environment variables as well. Inside Docker the server always uses the streamable HTTP transport on port 8000.
latest: newest buildgptr-<version>: pinned to the bundled gpt-researcher version, e.g. gptr-0.16.1git clone -b combined https://github.com/Joly0/gptr-mcp.git
cd gptr-mcp
docker build -t gptr-mcp .
Build arguments: BUILD_FROM_SOURCE=true installs gpt-researcher from GitHub instead of PyPI, with GPT_RESEARCHER_OWNER (default assafelovic) and GPT_RESEARCHER_REF (default main) choosing the repository and branch.
MIT, see the repository.
Content type
Image
Digest
sha256:8236aa477…
Size
634.8 MB
Last updated
8 days ago
docker pull joly0/gptr-mcp