GPT Researcher
About
Enables real-time web research, information gathering, and report generation with tools for conducting deep research, quick searches, and comprehensive source tracking.
Details
- Author
- assafelovic
- Repository
- assafelovic/gptr-mcp
- GitHub stars
- 86
- Downloads
- 398
- License
- MIT License
- Categories
- Search, Other, AI, Productivity, Developer Tools, Design, Project Management, Knowledge Base, Infrastructure
- Tags
- #web
Jump to
- Provides deep autonomous web research
- Offers quick search for faster results
- Generates reports from research data
- Retrieves sources and full context
- Optimizes context window usage
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
GPT ResearcherCommand (node, npx, python, etc.)pythonArguments-
Argument 1
/absolute/path/to/gpt-researcher/gptr-mcp/server.py
Environment-
OPENAI_API_KEY
your-openai-key-here -
TAVILY_API_KEY
your-tavily-key-here
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install dependencies from the repository, configure Claude Desktop with API keys, and run the server using Python, Docker, or the MCP CLI. Use the provided tools such as deep_research, quick_search, and write_report for research tasks.
deep_research
Performs deep web research on a topic, finding the most reliable and relevant information.
quick_search
Performs a fast web search optimized for speed over quality, returning search results with snippets. Supports any GPTR supported web retriever such as Tavily, Bing, Google, etc.
write_report
Generate a report based on research results.
get_research_sources
Get the sources used in the research.
get_research_context
Get the full context of the research.
research_query
Create a research query prompt.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"gpt researcher": {
"env": {
"OPENAI_API_KEY": "your-openai-key-here",
"TAVILY_API_KEY": "your-tavily-key-here"
},
"args": [
"/absolute/path/to/gpt-researcher/gptr-mcp/server.py"
],
"command": "python"
}
}
}
Linux
{
"env": {
"OPENAI_API_KEY": "your-openai-key-here",
"TAVILY_API_KEY": "your-tavily-key-here"
},
"args": [
"/absolute/path/to/gpt-researcher/gptr-mcp/server.py"
],
"command": "python"
}
Macos
{
"env": {
"OPENAI_API_KEY": "your-openai-key-here",
"TAVILY_API_KEY": "your-tavily-key-here"
},
"args": [
"/absolute/path/to/gpt-researcher/gptr-mcp/server.py"
],
"command": "python"
}
Windows
{
"env": {
"OPENAI_API_KEY": "your-openai-key-here",
"TAVILY_API_KEY": "your-tavily-key-here"
},
"args": [
"/absolute/path/to/gpt-researcher/gptr-mcp/server.py"
],
"command": "python"
}
While LLM apps can access web search tools with MCP,GPT Researcher MCP delivers deep research results.Standard search tools return raw results requiring manual filtering, often containing irrelevant sources and wasting context window space.
GPT Researcher autonomously explores and validates numerous sources, focusing only on relevant, trusted and up-to-date information. Though slightly slower than standard search (~30 seconds wait), it delivers:
- ✨ Higher quality information
- 📊 Optimized context usage
- 🔎 Comprehensive results
- 🧠 Better reasoning for LLMs
https://github.com/user-attachments/assets/ef97eea5-a409-42b9-8f6d-b82ab16c52a8
Want to use this with Claude Desktop right away?Here's the fastest path:
git clone https://github.com/assafelovic/gptr-mcp.git pip install -r requirements.txt
Set up your Claude Desktop configat~/Library/Application Support/Claude/claude_desktop_config.json:
{ "mcpServers": { "gptr-mcp": { "command": "python", "args": ["/absolute/path/to/gpt-researcher/gptr-mcp/server.py"], "env": { "OPENAI_API_KEY": "your-openai-key-here", "TAVILY_API_KEY": "your-tavily-key-here" } } } }
Restart Claude Desktopand start researching! 🎉
For detailed setup instructions, see thefull Claude Desktop Integration sectionbelow.
- research_resource: Get web resources related to a given task via research.
- deep_research: Performs deep web research on a topic, finding the most reliable and relevant information
- quick_search: Performs a fast web search optimized for speed over quality, returning search results with snippets. Supports any GPTR supported web retriever such as Tavily, Bing, Google, etc... Learn morehere
- write_report: Generate a report based on research results
- get_research_sources: Get the sources used in the research
- get_research_context: Get the full context of the research
- research_query: Create a research query prompt
Before running the MCP server, make sure you have:
- Python 3.11 or higher installed
- Important: GPT Researcher >=0.12.16 requires Python 3.11+
You can also connect any other web search engines or MCP using GPTR supported retrievers. Check out thedocs here
git clone https://github.com/assafelovic/gpt-researcher.git cd gpt-researcher
cd gptr-mcp pip install -r requirements.txt
- Set up your environment variables:
- Copy the.env.examplefile to create a new file named.env:
- Edit the.envfile and add your API keys and configure other settings:
OPENAI_API_KEY=your_openai_api_key TAVILY_API_KEY=your_tavily_api_key
You can also add any other env variable for your GPT Researcher configuration.
You can run the MCP server in several ways:
Method 2: Using the MCP CLI (if installed)
Method 3: Using Docker (recommended for production)
# Build and run with docker-compose docker-compose up -d # Or manually: docker build -t gptr-mcp . docker run -d \ --name gptr-mcp \ -p 8000:8000 \ --env-file .env \ gptr-mcp
If you need to connect to an existing n8n network:
# First, start the container docker-compose up -d # Then connect to your n8n network docker network connect n8n-mcp-net gptr-mcp # Or create a shared network first docker network create n8n-mcp-net docker network connect n8n-mcp-net gptr-mcp
Note: The Docker image uses Python 3.11 to meet the requirements of gpt-researcher >=0.12.16. If you encounter errors during the build, ensure you're using the latest Dockerfile from this repository.
Once the server is running, you'll see output indicating that the server is ready to accept connections. You can verify it's working by:
- SSE Endpoint: Access the Server-Sent Events endpoint athttp://localhost:8000/sseto get a session ID
- MCP Communication: Use the session ID to send MCP messages tohttp://localhost:8000/messages/?session_id=YOUR_SESSION_ID
- Testing: Run the test script withpython test_mcp_server.py
- The server binds to0.0.0.0:8000to work with Docker containers
- Uses SSE transport for web-based MCP communication
- Session management requires getting a session ID from/sseendpoint first
- Each client connection needs a unique session ID for proper communication
The GPT Researcher MCP server supports multiple transport protocols and automatically chooses the best one for your environment:
The server automatically detects your environment:
# Local development (default) python server.py # ➜ Uses STDIO transport (Claude Desktop compatible) # Docker environment docker run gptr-mcp # ➜ Auto-detects Docker, uses SSE transport # Manual override export MCP_TRANSPORT=sse python server.py # ➜ Forces SSE transport
// ~/Library/Application Support/Claude/claude_desktop_config.json { "mcpServers": { "gpt-researcher": { "command": "python", "args": ["/absolute/path/to/server.py"], "env": { "..." } } } }
# Set transport explicitly for web deployment export MCP_TRANSPORT=sse python server.py # Or use Docker (auto-detects) docker-compose up -d
# Use the container name as hostname docker run --name gptr-mcp -p 8000:8000 gptr-mcp # In n8n, connect to: http://gptr-mcp:8000/sse
- Health Check:GET /health
- SSE Endpoint:GET /sse(get session ID)
- MCP Messages:POST /messages/?session_id=YOUR_SESSION_ID
- Local Development: Use default STDIO for Claude Desktop
- Production: Use Docker with automatic SSE detection
- Testing: Use health endpoints to verify connectivity
- n8n Integration: Always use container networking with Docker
- Web Deployment: Consider Streamable HTTP for modern clients
You can integrate your MCP server with Claude using:
Claude Desktop Integration- For using with Claude desktop application on Mac
For detailed instructions, follow the link above.
To integrate your locally running MCP server with Claude for Mac, you'll need to:
- Make sure the MCP server is installed and running
- Configure Claude Desktop:
- Locate or create the configuration file at~/Library/Application Support/Claude/claude_desktop_config.json
- Add your local GPT Researcher MCP server to the configurationwith environment variables
- Restart Claude to apply the configuration
⚠️ Important: Environment Variables Required
Claude Desktop launches your MCP server as a separate subprocess, so youmustexplicitly pass your API keys in the configuration. The server cannot access your shell's environment variables or.envfile automatically.
{ "mcpServers": { "gptr-mcp": { "command": "python", "args": ["/absolute/path/to/your/server.py"], "env": { "OPENAI_API_KEY": "your-actual-openai-key-here", "TAVILY_API_KEY": "your-actual-tavily-key-here" } } } }
🔒 Your Claude Desktop config contains sensitive API keys.Protect it:
chmod 600 ~/Library/Application\ Support/Claude/claude_desktop_config.json
Never commit this file to version control.
Alternative: Environment Variable Script
For better security, create a wrapper script:
#!/bin/bash source /path/to/your/.env python /absolute/path/to/server.py
{ "mcpServers": { "gptr-mcp": { "command": "/absolute/path/to/run_gptr_mcp.sh" } } }
For complete step-by-step instructions, see theClaude Desktop Integration guide.
User: I'm considering investing in NVIDIA. Can you research the current state of the company, recent stock performance, latest product announcements, and analyst opinions? Claude: I'll help you research NVIDIA for investment purposes. This will take a moment as I conduct deep research to find the most up-to-date information about their stock performance, recent developments, and expert analysis. [Claude uses deep_research tool - this takes 30-40 seconds] Claude: Based on my research, here's a comprehensive analysis of NVIDIA's current state: ## NVIDIA (NVDA) Current Status ### Recent Stock Performance - Current price: $942.89 (as of my research) - YTD performance: +90.4% - 52-week range: $460.30 - $974.00 - Market cap: ~$2.32 trillion ### Recent Key Developments 1. Blackwell AI Platform: At GTC 2024, NVIDIA unveiled the Blackwell architecture, their next-generation AI chip platform promising 4x performance improvement over Hopper. Major cloud providers (AWS, Google, Microsoft) have already committed to integrating Blackwell. 2. Q1 FY2025 Earnings (May 2024): - Revenue: $26.0 billion (+262% YoY) - Data Center revenue: $22.6 billion (+427% YoY) - Gross margin: 78.4% - Announced 10-for-1 stock split effective June 7, 2024 3. Supply Chain Expansion: Increased investments in manufacturing capacity with TSMC to address ongoing chip shortages for their high-demand AI GPUs. ### Analyst Consensus - Strong Buy consensus with 37 analysts rating it "Buy," 5 "Hold," and 0 "Sell" - Average price target: $1,042 (post-split adjusted: $104.20) - Key bull thesis: Continued AI infrastructure spending and NVIDIA's dominant position in AI chips - Key bear concerns: Valuation, potential competition from AMD, Intel, and custom silicon from tech giants ### Industry Position - Dominant in AI GPU market with estimated 80-90% market share - Expanding ecosystem through CUDA software platform and industry partnerships - Diversifying beyond chips with DGX Cloud, AI software platforms, and automotive solutions
If you encounter issues while running the MCP server:
- API Keys: Make sure your API keys are correctly set in the.envfile
- Python Version: Check that you're using Python 3.11 or higher (required by gpt-researcher >=0.14.0)
- Dependencies: Ensure all dependencies are installed correctly:pip install -r requirements.txt
- Server Logs: Check the server logs for error messages
- Verify the container is running:docker ps | grep gptr-mcp
- Check container logs:docker logs gptr-mcp
- Confirm the server is binding to 0.0.0.0:8000 (logs should show this)
- Ensure both containers are on the same Docker network
- Use the container namegptr-mcpas the hostname in n8n
- Set the MCP server URL to:http://gptr-mcp:8000/sse
- The server uses SSE transport which requires session management
- First, get a session ID by connecting to/sseendpoint
- Use the session ID in subsequent MCP requests:/messages/?session_id=YOUR_ID
- Each client needs its own session ID
curl http://gptr-mcp:8000/sse # Look for: data: /messages/?session_id=XXXXX
curl -X POST http://gptr-mcp:8000/messages/?session_id=YOUR_SESSION_ID \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {"roots": {"listChanged": true}}, "clientInfo": {"name": "n8n-client", "version": "1.0.0"}}}'
curl -X POST http://gptr-mcp:8000/messages/?session_id=YOUR_SESSION_ID \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "quick_search", "arguments": {"query": "test"}}}'
Run the included test script to verify functionality:
- SSE connection and session ID retrieval
- MCP initialization
- Tool discovery and execution
If your MCP server isn't working with Claude Desktop:
- Check yourclaude_desktop_config.jsonsyntax is valid JSON
- Ensure you're usingabsolute paths(not relative)
- Verify the path toserver.pyis correct
- Restart Claude Desktop completely
"OPENAI_API_KEY not found" error:
- Make sure you added API keys to theenvsection in your config
- Don't forgetbothOPENAI_API_KEYandTAVILY_API_KEY
- API keys should be the actual keys, not placeholders
- Look for the 🔧 tools icon in Claude Desktop
- Check that Claude Desktop config file is in the right location:
- macOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:%APPDATA%\Claude\claude_desktop_config.json
- Make sure Python is accessible from the command line:python --version
- Try using full Python path:"command": "/usr/bin/python3"or"command": "python3"
- Check file permissions on your server.py file
- Test the server manually:python server.py(should show STDIO transport message)
- Check Claude Desktop logs (if available)
- Try the alternative script method from the integration section above
- Explore theMCP protocol documentationto better understand how to integrate with Claude
- Learn aboutGPT Researcher's core featuresto enhance your research capabilities
- Check out theAdvanced Usageguide for more configuration options
This project is licensed under the MIT License - see the LICENSE file for details.
- Community Discord
- Email:assaf.elovic@gmail.com
Search global news using natural language. Webz.io News Search API returns the most relevant articles and content, with filters for source, country, language, date, sentiment, and category.
Lightning-Fast, High-Accuracy Deep Research Agent 👉 8–10x faster 👉 Greater depth & accuracy 👉 Unlimited parallel runs
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




