MCP Server for Deep Research

repository·main·Indexed 42 days ago

https://github.com/reading-plus-ai/mcp-server-deep-research

A Model Context Protocol (MCP) server version 0.1.1 that enables Claude to perform multi-step research tasks. It automates question elaboration, subquestion generation, and web-based content synthesis to produce structured, cited research reports. The server provides a `deep-research` prompt and exposes research notes and data via `research://notes` and `research://data` resources.

Tokens
1.5K
Snippets
8
Records
10
Agent score
53%

What's inside MCP Server for Deep Research

  1. Use the deep-research prompt

    main

    The server provides a specialized prompt template designed for comprehensive research tasks. When using the server, select the deep-research prompt to trigger a structured workflow that includes:

    1. Question Elaboration: Expanding your initial question and defining scope.
    2. Subquestion Generation: Creating focused sub-topics for systematic coverage.
    3. Web Search Integration: Using Claude's web search to find authoritative sources.
    4. Content Analysis: Synthesizing findings and providing citations.
    5. Report Generation: Producing a structured research report as an artifact.
  2. Install and set up MCP Server for Deep Research

    main

    To use the Deep Research MCP Server with Claude Desktop on macOS, follow these steps:

    1. Download and install Claude Desktop.
    2. Run the setup script in your terminal to configure the environment:
      python setup.py
    3. Once installed, start researching by selecting the deep-research prompt template within Claude and providing your research question.
    python setup.py
  3. Configure Claude Desktop for published MCP servers

    main

    To use the published version of the Deep Research MCP Server, add the following configuration to your claude_desktop_config.json file. This uses uvx to run the server directly:

    "mcpServers": {
      "mcp-server-deep-research": {
        "command": "uvx",
        "args": [
          "mcp-server-deep-research"
        ]
      }
    }
  4. Understand the ResearchProcessor state structure

    main

    The ResearchProcessor manages the lifecycle of a research task. It maintains a research_data dictionary and a list of notes.

    Key fields in research_data include:

    • question: The initial research question.
    • elaboration: The expanded scope and definitions.
    • subquestions: A list of specific questions used to structure the research.
    • search_results: Data gathered from web searches.
    • extracted_content: Content parsed from search results.
    • final_report: The synthesized final output.
  5. Configure Claude Desktop for unpublished MCP servers

    main

    If you are developing the server locally and have not published it, you must add it to your Claude Desktop configuration file.

    Configuration Paths:

    • macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json

    Add the server using the uv command, specifying the absolute path to your local repository directory:

    "mcpServers": {
      "mcp-server-deep-research": {
        "command": "uv",
        "args": [
          "--directory",
          "/Users/username/repos/mcp-server-application/mcp-server-deep-research",
          "run",
          "mcp-server-deep-research"
        ]
      }
    }
  6. Use the `deep-research` prompt

    main

    The server provides a specialized prompt designed to guide an AI through a structured research process. This prompt instructs the model to elaborate on a question, generate subquestions, perform web searches, analyze results, and finally produce a formatted research report.

    To use this prompt, you must provide the required argument research_question.

    {
      "name": "deep-research",
      "arguments": {
        "research_question": "Your specific research topic here"
      }
    }
  7. Access research notes and data via MCP Resources

    main

    The server exposes two primary resources that allow you to inspect the state of an ongoing research process:

    1. research://notes: A text/plain resource containing all research notes generated during the process, separated by newlines.
    2. research://data: An application/json resource containing the structured research_data dictionary, which includes keys for question, elaboration, subquestions, search_results, extracted_content, and final_report.
    ### Available Resources
    - `research://notes` (text/plain): Notes generated during the research process
    - `research://data` (application/json): Structured data collected during the research process
  8. Reference DeepResearchPrompts and PromptArgs enums

    main

    The server uses specific enumerations to identify prompts and their arguments:

    • DeepResearchPrompts.DEEP_RESEARCH: The identifier for the deep research prompt ("deep-research").
    • PromptArgs.RESEARCH_QUESTION: The identifier for the required research question argument ("research_question").
    class DeepResearchPrompts(str, Enum):
        DEEP_RESEARCH = "deep-research"
    
    class PromptArgs(str, Enum):
        RESEARCH_QUESTION = "research_question"