GPT Researcher MCP
GPT Researcher MCP Server
An MCP server for deep web research: GPT Researcher vets sources on its own and hands the agent a ready report
- 376 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Runs a Python process that reaches the internet and the paid OpenAI and Tavily APIs, and the costs are yours
- API keys sit in plain text in claude_desktop_config.json or .env
Install
- Works in
Manual install
git clone https://github.com/assafelovic/gptr-mcp.git && cd gptr-mcp && pip install -r requirements.txtNeeds Python 3.11 or newer. Then copy .env.example to .env and fill in the keys.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Runs a Python process that reaches the internet and the paid OpenAI and Tavily APIs, and the costs are yours
- API keys sit in plain text in claude_desktop_config.json or .env
This is third-party code. Review the repository files before installing.
What it does
GPT Researcher MCP Server plugs the GPT Researcher engine into Claude Desktop and other MCP clients. An ordinary search tool returns raw results that the agent then filters itself, spending context on it. Here a separate agent does the research: it crawls many sources, keeps the relevant and recent ones and returns information that is already assembled. The developer puts the wait at 30 to 40 seconds per query. The server exposes five tools. deep_research investigates a whole topic and quick_search runs a fast search through any supported retriever such as Tavily, Bing or Google. write_report drafts a report from the research, get_research_sources lists the sources used, and get_research_context returns the full collected context. There is also a research_resource resource and a research_query prompt. By default the server runs over stdio, which Claude Desktop expects. Inside Docker it switches to SSE on port 8000 with a health check at /health, and the MCP_TRANSPORT variable forces sse or streamable-http. The same address, http://gptr-mcp:8000/sse, connects it to n8n.
Who it is for. For Claude Desktop users and n8n automations that need ready research with sources inside the conversation, and for anyone who already holds OpenAI and Tavily keys.
Good fit when
- You need a sourced overview of a topic, such as a company's state, recent news and analyst views, and half a minute of waiting is acceptable
- Ordinary search results clutter the agent's context with irrelevant links and you want pre-filtered material instead
- An n8n workflow needs a deep-research step reachable at the gptr-mcp container name on port 8000
- You want the source list on its own through get_research_sources so you can check it by hand
- You need quick_search through your own retriever: Tavily, Bing, Google and others GPT Researcher supports
Not a fit when
- You need an instant answer: deep research takes about 30 to 40 seconds, so use quick_search or an ordinary search MCP for fast lookups
- OpenAI and Tavily keys are unavailable or you cannot pay for calls to them: the default setup will not start without them
- You need a server with no Python and no dependency install: it runs as server.py and needs Python 3.11 or newer
- You look for a ready package on npm or PyPI: the project ships none, and installation goes through a clone or Docker
Example request
Run deep research on how Redis and Memcached approach caching, show the sources and put together a short reportMCP
- Transport
- stdio, sse, http
- Authentication
- API key
Environment variables
OPENAI_API_KEYrequired, secret- OpenAI key for the language model that drives the research
TAVILY_API_KEYrequired, secret- Key for the Tavily search engine, which the examples use as the source
MCP_TRANSPORT- Forces a transport: sse or streamable-http, stdio by default
Limitations
- Python 3.11 or newer and API keys are required: the examples use OpenAI and Tavily. Token and search costs are yours.
- Claude Desktop starts the server as a separate process and cannot see shell variables or a .env file, so keys must go into the env section of the config. claude_desktop_config.json then holds secrets, and the developer suggests restricting access to it with chmod 600.
- There is no registry package: the server is installed by cloning the repository and running pip install -r requirements.txt, or it runs in Docker.
- The OpenAI API is unavailable from Russia, so the default setup will not work from there. The GPT Researcher engine supports other models and retrievers, and its documentation describes how to configure them.
- The README is inconsistent about install paths (sometimes the gptr-mcp repository, sometimes a subfolder of gpt-researcher), so check where server.py actually lives before launching.
How to disable. Remove the gptr-mcp block from claude_desktop_config.json and restart Claude Desktop. If the server runs in Docker, stop it with docker-compose down. Also delete the keys from the .env file.
FAQ
How is GPT Researcher MCP different from an ordinary search MCP?
An ordinary search tool returns raw results and the agent filters them itself. Here deep_research crawls and vets sources inside GPT Researcher and hands back the outcome, so less noise reaches the agent's context. The price is time: roughly 30 to 40 seconds instead of an instant answer.
How do I connect GPT Researcher to Claude Desktop?
Install dependencies with pip install -r requirements.txt, then add a server to claude_desktop_config.json with the command python, the absolute path to server.py and the OPENAI_API_KEY and TAVILY_API_KEY keys in the env section. After Claude Desktop restarts, the server's five tools appear in the tool list.
How do I connect GPT Researcher MCP to n8n?
Start the container with docker-compose up -d and join it to the n8n network. In n8n set the address to http://gptr-mcp:8000/sse. Inside Docker the server picks the SSE transport itself, and the protocol requires you to get a session ID from the /sse endpoint first.
Do I need paid keys?
The README examples use OpenAI and Tavily keys, and both services are paid. The GPT Researcher engine supports other retrievers such as Bing and Google, but the README does not walk through other models and sources and points to the gptr.dev documentation.
Which transport should I pick for GPT Researcher MCP?
Use stdio for Claude Desktop and other local clients; it is the default. Inside Docker the server switches to SSE, and for modern web deployments the MCP_TRANSPORT variable can select streamable-http. The developer recommends stdio locally and Docker in production.
Discussion
No questions or reviews yet.
Related
MCP serversLinkup MCP server: real-time web search, page fetching and long research tasks with sources for an agent
A CLI and MCP server that sends one question to search and AI sources and saves answers, citations and cost in a run.
A unified search MCP server: one interface to Tavily, Brave, Kagi, Exa, Linkup, Firecrawl and GitHub search
An MCP server that searches Google and Scholar, reads pages and PDFs and stores findings in a local project knowledge graph
A Reddit MCP server: the agent browses posts, searches content and analyzes user activity with no fluff
Official Tavily MCP server: real-time web search, page content extraction, site mapping and crawling
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| GPT Researcher MCP (this card) | yes | API key | 376 | |
| GPT Researcher | no | 30,518 | the research agent itself, while this is its MCP wrapper for clients such as Claude Desktop | |
| DuckDuckGo Search MCP Server | no | not required | 1,568 | plain keyless search with page reading, no multi-source research |
| AnySearch MCP Server | no | key is optional | 2,059 | real-time search with batch queries, does not write a report |
README in short
The README explains how deep research differs from ordinary search and walks through a quick start for Claude Desktop. It then covers installation, three ways to run the server, a transport table, a sample conversation researching a company and troubleshooting sections for Docker, n8n and Claude Desktop.