Deep Research MCP Server

Deep Research MCP Server

An advanced scholarly research MCP server that enables AI assistants to discover, fetch, process, and manage academic papers across multiple sources like arXiv, PubMed, and Semantic Scholar, with capabilities for summarization, citation analysis, and concept relationship extraction.

Category
Visit Server

README

Deep Research MCP Server

An advanced scholarly research MCP server that provides a uniform set of tools for discovering, fetching, processing, and managing scholarly content across multiple sources.

Overview

Deep Research is a Model Context Protocol (MCP) server that enables AI assistants like Claude to access and process scholarly literature from multiple sources, generate summaries, analyze citation networks, extract relationships between concepts, and more.

Scholarly Sources

The server integrates with multiple academic repositories:

  • arXiv
  • PubMed
  • Semantic Scholar
  • Google Scholar
  • Google Drive (for document storage) (wip, annoying to setup)

Core Capabilities

  • Cross-source paper search: Find papers across multiple repositories with a single query
  • Full-text retrieval: Download and process complete academic papers
  • AI-powered analysis: Generate structured summaries, highlight key information, and extract relationships
  • Citation network analysis: Build and explore citation graphs
  • Document management: Store research papers and notes to Google Drive

MCP Tools

Paper Search and Retrieval

search_papers

Search multiple scholarly sources for papers matching a query.

  • Required: query - Search query text
  • Optional: sources - List of sources to search (default: all)
  • Optional: max_results - Maximum number of results (default: 20)
  • Optional: sort_by - Sorting criteria (default: relevance)

fetch_paper_metadata

Fetch detailed metadata for a given paper ID.

  • Required: paper_id - Paper identifier (e.g., 'arxiv:2104.08935')

download_fulltext

Retrieve or download the PDF full text for a given paper ID.

  • Required: paper_id - Paper identifier

Content Processing

summarize_document

Generate a structured summary (background, methods, results, conclusions).

  • Required: document - Document text or base64-encoded PDF content
  • Optional: content_type - Type of content provided (default: text)
  • Optional: paper_id - Paper ID for additional context

annotate_highlights

Highlight key sentences and extract keywords from a document.

  • Required: document - Document text or base64-encoded PDF content
  • Optional: content_type - Type of content provided (default: text)
  • Optional: paper_id - Paper ID for additional context

extract_relations

Extract relationships between concepts in a scholarly paper.

  • Required: paper_id - Paper identifier

summarize_section

Generate a focused summary of a specific section in a scholarly paper.

  • Required: document - Document content (text or base64-encoded PDF)
  • Required: section_name - Name of the section to summarize
  • Optional: content_type - Type of content provided (default: text)
  • Optional: paper_id - Paper ID for additional context

compare_papers

Compare multiple scholarly papers to highlight similarities and differences.

  • Required: paper_ids - List of paper identifiers to compare
  • Optional: abstracts_only - Whether to use only abstracts (default: false)

Citation Analysis

get_citation_graph

Return citation relationships for a given paper or set of papers.

  • Required: paper_ids - List of paper identifiers
  • Optional: depth - Depth of citation graph (default: 1)
  • Optional: max_citations - Maximum number of citations to return (default: 20)
  • Optional: direction - Direction of citation relationships (default: both)

analyze_trends

Analyze publication trends over time, identify emerging topics, and plot term frequencies.

  • Required: query - Search query to find papers for trend analysis
  • Optional: max_papers - Maximum number of papers to analyze (default: 100)

Storage

store_to_drive

Save fetched PDFs and summaries to Google Drive.

  • Required: document - Base64-encoded PDF content
  • Optional: folder_id - Google Drive folder ID to store in
  • Optional: paper_id - Paper ID for better organization

API Testing Tools

search_apis

Search across multiple scholarly API sources with a single query.

  • Required: query - The search query text
  • Optional: sources - List of sources to search
  • Optional: max_results - Maximum number of results to return per source

test_api_connector

Test a specific API connector and return diagnostics.

  • Required: connector - The connector to test
  • Optional: query - Search query to use for testing
  • Optional: max_results - Maximum number of results to return

download_paper

Download a paper by its ID from the appropriate source.

  • Required: paper_id - The ID of the paper
  • Optional: save_directory - Directory to save the PDF

Specialized MCP Prompts

research_assistant

Ask a research assistant to help with scholarly papers.

  • Required: topic - Research topic or query
  • Optional: detail_level - Level of detail (basic/comprehensive)

citation_analyzer

Analyze the citation graph and relationships of papers.

  • Required: paper_ids - Paper IDs to analyze, comma-separated
  • Optional: analysis_focus - Focus of the analysis (influence, trends, gaps)

Advanced Features

Concept Relationship Extraction

Extract explicit relationships between concepts mentioned in scientific papers:

  • Causal relationships (X causes Y, X inhibits Y)
  • Comparative relationships (Algorithm A outperforms B)
  • Correlative relationships (X is associated with Y)
  • Compositional relationships (X consists of Y)

Section-Specific Paper Summarization

Generate focused summaries of specific sections in a scholarly paper:

  • Target individual sections (Introduction, Methods, Results, Discussion)
  • Get detailed summaries that focus on the specific content of that section

Paper Comparison Tool

Compare multiple papers to highlight similarities and differences across:

  • Research questions and goals
  • Methodologies and approaches
  • Key findings and results
  • Limitations of each study
  • Future directions suggested by the authors

Publication Trend Analysis

Analyze research trends across the literature:

  • Track publication volume over time
  • Identify emerging topics via n-gram frequency analysis
  • Find frequent authors in the research area
  • Analyze distribution of papers across sources
  • Discover term frequencies to understand key concepts

Installation & Setup

Installation

First, clone this repository and install the package:

# Clone the repository
git clone https://github.com/yourusername/mcp-deepresearch.git
cd mcp-deepresearch

# Install the package in development mode
pip install -e .

Configuration

The server requires configuration for API keys and credentials:

  1. For Google Drive integration:

    • Create a deepresearch_credentials.json file with your Google API credentials
    • The first time you use Drive features, it will prompt for authentication
  2. For API rate limits:

    • Some sources (especially Google Scholar) may require proxies for high-volume usage

Starting the Server

You can run the server in two ways:

  1. Using the Python module:
python -m deepresearch
  1. Using the start_server script:
python start_server.py

Connecting to Claude Desktop

To use the server with Claude Desktop:

  1. Edit the Claude Desktop configuration file (located at ~/Library/Application Support/Claude/claude_desktop_config.json):
{
    "mcpServers": {
        "deepresearch": {
            "command": "/path/to/python3",
            "args": [
                "-m",
                "deepresearch"
            ],
            "workingDir": "/path/to/mcp-deepresearch"
        }
    }
}
  1. Replace /path/to/python3 with the path to your Python executable
  2. Replace /path/to/mcp-deepresearch with the absolute path to your project
  3. Restart Claude Desktop
  4. Select "deepresearch" from the MCP server dropdown in Claude Desktop

Example Usage

Here's how you might use this MCP server with Claude:

  1. Search for papers on a topic:

    @deepresearch search_papers(query="Transformer protein folding")
    
  2. Fetch metadata and download a paper:

    @deepresearch fetch_paper_metadata(paper_id="arxiv:2106.14843")
    @deepresearch download_fulltext(paper_id="arxiv:2106.14843")
    
  3. Generate a summary:

    @deepresearch summarize_document(document=<pdf content>, content_type="pdf")
    
  4. Extract relationships:

    @deepresearch extract_relations(paper_id="arxiv:2106.14843")
    
  5. Analyze citation network:

    @deepresearch get_citation_graph(paper_ids=["arxiv:2106.14843"], depth=2)
    
  6. Compare papers:

    @deepresearch compare_papers(paper_ids=["arxiv:2106.14843", "arxiv:2103.12116"])
    
  7. Save to Google Drive:

    @deepresearch store_to_drive(document=<pdf content>, paper_id="arxiv:2106.14843")
    

Debugging

You can debug the server using the Model Context Protocol Inspector:

npx @anthropic-ai/mcp-inspector@latest

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Connector Testing

The project includes several test scripts for validating the functionality of connectors:

  1. test_connectors.py: Basic validation for all connectors
  2. test_connectors_download.py: Enhanced version for the full search-to-download pipeline
  3. test_google_scholar_fix.py: Specialized test for the Google Scholar connector
  4. test_semantic_scholar_direct.py: Direct test for Semantic Scholar API

Common Issues and Solutions

  1. Google Scholar:

    • PDF download limitations are addressed by extracting ArXiv IDs for papers also hosted on ArXiv
  2. Semantic Scholar:

    • Rate limiting issues are handled with API keys and retry logic
  3. General Connectivity:

    • Use --connector parameter to test specific connectors
    • For detailed debugging, use specialized test scripts

Contributing

For contributions, please follow these guidelines:

  1. Create a feature branch for new development
  2. Add unit tests for new functionality
  3. Ensure existing tests pass
  4. Submit a pull request with detailed description

License

This project is released under the MIT License. See the LICENSE file for details.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured