Skip to content
Research
MCP

gpt-researcher

An open-source autonomous agent that researches a topic online and compiles findings into a cited report.

From plugin
gpt-researcher
30k1 skill1 MCP

Claude Code

$ claude mcp add gpt-researcher -- uvx gpt-researcher

From the README

What can you do with gpt-researcher?

  • 📝 Generate detailed research reports using web and local documents.

  • 🖼️ Smart image scraping and filtering for reports.

  • 🍌 AI-generated inline images using Google Gemini (Nano Banana) for visual illustrations.

  • 📜 Generate detailed reports exceeding 2,000 words.

  • 🌐 Aggregate over 20 sources for objective conclusions.

  • 🎯 Smart context filtering with Jev, with no API key or embeddings required by default.

  • 🖥️ Frontend available in lightweight (HTML/CSS/JS) and production-ready (NextJS + Tailwind) versions.

  • 🔍 JavaScript-enabled web scraping.

Security report

Found

Low risk

  • Known flaws

    None known

  • Signed build

    No

    No build provenance published

  • Maintained

    Oct 10, 2026

    Last push

  • Licence

    Apache-2.0

  • Runs as

    uvx

    On your machine

  • Deprecated

    No

Signals from public registries, not an audit. Checked Nov 11, 2026.

gpt-researcher README

Logo

Website Documentation Discord

PyPI version GitHub Release Open In Colab Docker Image Version Skill Twitter Follow

English | 中文 | 日本語 | 한국어 | Русский

🔎 GPT Researcher

GPT Researcher the first open deep research agent designed for both web and local research on any given task.

The agent produces detailed, factual, and unbiased research reports with citations. GPT Researcher provides a full suite of customization options to create tailor made and domain specific research agents. GPT Researcher goes well beyond RAG: planner and execution agents break each task into research questions, decision models keep only the context that is actually useful for answering them, multi-agent workflows coordinate specialized agents from planning to publication, and recursive deep research explores a topic in both breadth and depth. Research runs in parallel, which keeps it fast, stable and reliable, and reduces misinformation.

Our mission is to empower individuals and organizations with accurate, unbiased, and factual information through AI.

Why GPT Researcher?

  • Objective conclusions for manual research can take weeks, requiring vast resources and time.
  • LLMs trained on outdated information can hallucinate, becoming irrelevant for current research tasks.
  • Current LLMs have token limitations, insufficient for generating long research reports.
  • Limited web sources in existing services lead to misinformation and shallow results.
  • Selective web sources can introduce bias into research tasks.

Demo

Demo video

Install as Claude Skill

Extend Claude's deep research capabilities by installing GPT Researcher as a Claude Skill:

npx skills add assafelovic/gpt-researcher

Once installed, Claude can leverage GPT Researcher's deep research capabilities directly within your conversations.

Architecture

The core idea is to utilize 'planner' and 'execution' agents. The planner generates research questions, while the execution agents gather relevant information. The publisher then aggregates all findings into a comprehensive report.

Steps:

  • Create a task-specific agent based on a research query.
  • Generate questions that collectively form an objective opinion on the task.
  • Use a crawler agent for gathering information for each question.
  • Summarize and source-track each resource.
  • Filter and aggregate summaries into a final research report.

Tutorials

Features

  • 📝 Generate detailed research reports using web and local documents.
  • 🖼️ Smart image scraping and filtering for reports.
  • 🍌 AI-generated inline images using Google Gemini (Nano Banana) for visual illustrations.
  • 📜 Generate detailed reports exceeding 2,000 words.
  • 🌐 Aggregate over 20 sources for objective conclusions.
  • 🎯 Smart context filtering with Jev, with no API key or embeddings required by default.
  • 🖥️ Frontend available in lightweight (HTML/CSS/JS) and production-ready (NextJS + Tailwind) versions.
  • 🔍 JavaScript-enabled web scraping.
  • 📂 Maintains memory and context throughout research.
  • 📄 Export reports to PDF, Word, and other formats.

📖 Documentation

See the Documentation for:

  • Installation and setup guides
  • Configuration and customization options
  • How-To examples
  • Full API references

⚙️ Getting Started

Installation

  1. Install Python 3.12 or later. Guide.

  2. Clone the project and navigate to the directory:

    git clone https://github.com/assafelovic/gpt-researcher.git
    cd gpt-researcher
    
  3. Set up API keys by exporting them or storing them in a .env file.

    export OPENAI_API_KEY={Your OpenAI API Key here}
    export TAVILY_API_KEY={Your Tavily API Key here}
    

    (Optional) For enhanced tracing and observability, you can also set:

    # export LANGCHAIN_TRACING_V2=true
    # export LANGCHAIN_API_KEY={Your LangChain API Key here}
    

    For custom OpenAI-compatible APIs (e.g., local models, other providers), you can also set:

    export OPENAI_BASE_URL={Your custom API base URL here}
    
  4. Install dependencies and start the server:

    pip install -r requirements.txt
    python -m uvicorn main:app --reload
    

Visit http://localhost:8000 to start.

For other setups (e.g., Poetry or virtual environments), check the Getting Started page.

Run as PIP package

pip install gpt-researcher

Example Usage:

...
from gpt_researcher import GPTResearcher

query = "why is Nvidia stock going up?"
researcher = GPTResearcher(query=query)
# Conduct research on the given query
research_result = await researcher.conduct_research()
# Write the report
report = await researcher.write_report()
...

For more examples and configurations, please refer to the PIP documentation page.

🔧 MCP Client

GPT Researcher supports MCP integration to connect with specialized data sources like GitHub repositories, databases, and custom APIs. This enables research from data sources alongside web search.

export RETRIEVER=tavily,mcp  # Enable hybrid web + MCP research
from gpt_researcher import GPTResearcher
import asyncio
import os

async def mcp_research_example():
    # Enable MCP with web search
    os.environ["RETRIEVER"] = "tavily,mcp"
    
    researcher = GPTResearcher(
        query="What are the top open source web research agents?",
        mcp_configs=[
            {
                "name": "github",
                "command": "npx",
                "args": ["-y", "@modelcontextprotocol/server-github"],
                "env": {"GITHUB_TOKEN": os.getenv("GITHUB_TOKEN")}
            }
        ]
    )
    
    research_result = await researcher.conduct_research()
    report = await researcher.write_report()
    return report

For comprehensive MCP documentation and advanced examples, visit the MCP Integration Guide.

🍌 Inline Image Generation

GPT Researcher can automatically generate and embed AI-created illustrations in your research reports using Google's Gemini models (Nano Banana).

# Enable in your .env file
IMAGE_GENERATION_ENABLED=true
GOOGLE_API_KEY=your_google_api_key
IMAGE_GENERATION_MODEL=models/gemini-2.5-flash-image

When enabled, the system will:

  1. Analyze your research context to identify visualization opportunities
  2. Pre-generate 2-3 relevant images during the research phase
  3. Embed them inline as the report is written

Images are generated with dark-mode styling that matches the GPT Researcher UI, featuring professional infographic aesthetics with teal accents.

Learn more about Image Generation in our documentation.

✨ Deep Research

GPT Researcher now includes Deep Research - an advanced recursive research workflow that explores topics with agentic depth and breadth. This feature employs a tree-like exploration pattern, diving deeper into subtopics while maintaining a comprehensive view of the research subject.

  • 🌳 Tree-like exploration with configurable depth and breadth
  • ⚡️ Concurrent processing for faster results
  • 🤝 Smart context management across research branches
  • ⏱️ Takes ~5 minutes per deep research
  • 💰 Costs ~$0.4 per research (using o3-mini on "high" reasoning effort)

Learn more about Deep Research in our documentation.

🎯 Smart Context Filtering with Jev

Every research run scrapes dozens of pages, and only some of each page helps answer the question. Before anything reaches the LLM, GPT Researcher decides which passages to keep. By default it uses Jev by TypeSafe, a model that scores how useful each passage is for the question, rather than how similar its words or embedding are.

Jev's context is 59% more relevant than embeddings, at the same cost (73% of kept passages relevant vs 46%). We benchmarked every option on 28 research tasks, replaying the same scraped sources so that only the filter changed:

Context filterRelevant passages keptHead-to-head vs embeddingsFilter timeCost per reportNeeds
Jev (default)73%15 wins · 10 ties · 3 losses1.7s$0.115TYPESAFE_API_KEY
Keyword (fallback)51%14 wins · 8 ties · 6 losses0.02s$0.116nothing
Embeddings46%—1.0s$0.117an embedding provider
No filter—13 wins · 11 ties · 4 losses—$0.192nothing

Writing the report takes ~45s whichever filter you use, so a run's total time moves only by the filter step. Passing every page unfiltered writes the broadest reports on open-ended questions, but costs 65% more.

Nothing is required. With a TYPESAFE_API_KEY, Jev is used. Without one, or if a Jev call fails, GPT Researcher falls back to keyword (BM25) ranking, which runs locally with no API key, model or embeddings. Embeddings remain available as an option.

@assafelovic
Ships withgpt-researcher

GPT Researcher the first open deep research agent designed for both web and local research on any given task. The agent produces detailed, factual, and unbiased research reports with citations.

30k1 skill1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
30.4k
Star history of assafelovic/gpt-researcher on GitHub, a chart by star-history.com

More MCP servers from other plugins.

idea-reality

idea-reality

MCP

Ships with idea-reality-mcp: How to check if someone already built your app idea — automatically. idea-reality-mcp is an MCP…

tavily
Auto-invoked

tavily

MCP

Runs web searches optimized for feeding accurate, sourced results directly into AI agent reasoning and retrieval.

tavily2d490
@tavily-ai@tavily-aiInstall MCP

Questions about gpt-researcher.

Which coding agents can use gpt-researcher?
gpt-researcher works in any agent that reads an MCP config file: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf. Each agent reads it from its own file; this page names the file for each one.
How do I add gpt-researcher to Claude Code?
Run this in your terminal: claude mcp add gpt-researcher -- uvx gpt-researcher
Is gpt-researcher safe to install?
Low risk. Signals from public registries, not an audit.