Skip to main content
Glama
ResearchMCP
by DaniManas

ResearchMCP - AI-Powered Research Paper Assistant

An MCP (Model Context Protocol) server that helps analyze academic papers by fetching research from OpenAlex's database of 250M+ papers.

Features

  • Search Papers: Search for academic papers by topic/keywords with advanced filtering

  • Extract Claims: Automatically extract key findings and research claims from papers

  • Compare Papers: Identify contradictions and consensus across multiple papers

  • Citation Analysis: Explore citation networks to discover related research

  • Research Gap Finder: Analyze multiple papers to identify gaps and future research opportunities

  • Powered by OpenAlex API (millions of papers, no API key needed!)

Related MCP server: OpenAlex MCP Server

Tools

search_papers

Search for academic papers on OpenAlex.

Parameters:

  • query (string, required): Research topic or keywords

  • max_results (int, optional): Maximum papers to return (default: 5)

  • year_from (int, optional): Only papers from this year onwards

Example: "Search for papers on transformer models in NLP"

get_paper_abstract

Get the full abstract for a specific paper.

Parameters:

  • paper_id (string, required): OpenAlex paper ID from search results

Example: "Get abstract for paper W2964027837"

extract_claims

Extract key claims and findings from a paper's abstract.

Parameters:

  • paper_id (string, required): OpenAlex paper ID

Returns: Structured extraction of research questions, methodology, findings, and conclusions

Example: "Extract claims from paper W2964027837"

compare_papers

Compare claims across multiple papers to find contradictions and consensus.

Parameters:

  • paper_ids (string, required): Comma-separated list of paper IDs (2-5 papers)

Returns: Comparative analysis showing agreements, contradictions, and research gaps

Example: "Compare these papers: W2964027837, W3177828909, W2123456789"

get_citations

Get citation network for a paper - see what cites it and what it references.

Parameters:

  • paper_id (string, required): OpenAlex paper ID

  • direction (string, optional): "cited_by", "references", or "both" (default: "both")

  • max_results (int, optional): Maximum citations per direction (default: 10)

Returns: Lists of papers that cite this work and papers it references

Example: "Show me the citation network for W2964027837"

find_research_gaps

Analyze multiple papers on a topic to identify research gaps and unanswered questions.

Parameters:

  • query (string, required): Research topic to analyze

  • num_papers (int, optional): Number of papers to analyze (default: 5, max: 10)

Returns: Comprehensive gap analysis including:

  • Unanswered research questions

  • Methodological limitations

  • Understudied areas

  • Contradictions requiring further investigation

  • Emerging research opportunities

Example: "Find research gaps in transformer architecture optimization"

Installation

  1. Clone the repository:

git clone https://github.com/YOUR_USERNAME/ResearchMCP.git
cd ResearchMCP
  1. Deploy to FastMCP Cloud:

fastmcp deploy
  1. Set the entrypoint as: src/server.py

  2. Connect to Claude Desktop by adding to your MCP settings

Option 2: Run Locally

# Clone the repository
git clone https://github.com/YOUR_USERNAME/ResearchMCP.git
cd ResearchMCP

# Install dependencies
uv sync

# Run the server
uv run src/server.py

Usage with Claude Desktop

Once deployed or running locally, you can use natural language prompts in Claude Desktop:

Search for papers:

  • "Search for recent papers on quantum computing"

  • "Find papers about CRISPR gene editing from 2020 onwards"

Analyze specific papers:

  • "Extract the key claims from paper W2964027837"

  • "Get the abstract for paper W3177828909"

Compare research:

  • "Compare these papers: W2964027837, W3177828909"

  • "What do these papers agree and disagree on?"

Explore citations:

  • "Show me what papers cite W2964027837"

  • "What papers does W2964027837 reference?"

Find research gaps:

  • "Find research gaps in transformer architecture optimization"

  • "What are the unanswered questions in climate change modeling?"

Architecture

ResearchMCP uses a clean separation of concerns architecture:

  • server.py: MCP server that defines tools available to Claude Desktop

  • paper_fetcher.py: Worker class handling all OpenAlex API interactions

This design pattern ensures:

  • Clean code organization

  • Easy maintenance and testing

  • Separation between tool orchestration and API logic

Technology Stack

  • FastMCP: Python framework for building MCP servers

  • OpenAlex API: Access to 250M+ academic papers with no API key required

  • httpx: Modern async-capable HTTP client

  • Python 3.12+: Type hints and modern Python features

Why MCP over RAG?

Traditional RAG systems require:

  • Pre-indexing large document collections

  • Vector database setup and maintenance

  • Embedding generation costs

  • Limited to pre-indexed documents

ResearchMCP with MCP:

  • Live access to 250M+ papers without pre-indexing

  • No infrastructure - no vector databases needed

  • Always up-to-date - accesses latest published research

  • Cost-effective - no embedding generation costs

  • Tool orchestration - Claude intelligently chains multiple API calls

Contributing

Contributions are welcome! Feel free to submit issues or pull requests.

License

MIT License - feel free to use this project for your research needs!

Available Tools

6 tools
compare_papersC

Compare claims across multiple papers to find contradictions and consensus.

Args: paper_ids: Comma-separated list of OpenAlex paper IDs (e.g., "W123,W456,W789")

Returns: Abstracts from all papers for comparison analysis

Inputs: paper_ids (required). Returns: result

extract_claimsA

Extract key claims and findings from a paper's abstract.

Args: paper_id: The OpenAlex paper ID

Returns: Structured list of claims extracted from the paper

Inputs: paper_id (required). Returns: result

find_research_gapsB

Analyze multiple papers on a topic to identify research gaps and unanswered questions.

Args: query: Research topic to analyze num_papers: Number of papers to analyze (default: 5, max: 10)

Returns: Analysis of research gaps, limitations, and future research directions

Inputs: query (required), num_papers. Returns: result

get_citationsA

Get citation network for a paper - see what cites it and what it cites.

Args: paper_id: The OpenAlex paper ID direction: "cited_by" (papers citing this), "references" (papers this cites), or "both" max_results: Maximum number of citations to return per direction (default: 10)

Returns: Citation network information with paper details

Inputs: paper_id (required), direction, max_results. Returns: result

get_paper_abstractA

Get the full abstract for a specific paper.

Args: paper_id: The OpenAlex paper ID (from search_papers results)

Returns: The paper's abstract text with title and metadata

Inputs: paper_id (required). Returns: result

search_papersC

Search for academic papers on OpenAlex based on a query.

Args: query: The research topic or keywords to search for max_results: Maximum number of papers to return (default: 5) year_from: Only include papers from this year onwards (optional)

Returns: A formatted string with paper details including titles, authors, citations, and URLs

Inputs: query (required), max_results, year_from. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no overlap: compare_papers analyzes multiple papers for contradictions, extract_claims processes individual paper content, find_research_gaps identifies gaps across papers, get_citations handles citation networks, get_paper_abstract retrieves single paper metadata, and search_papers finds papers by query. The descriptions clearly differentiate their functions, eliminating any ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case: compare_papers, extract_claims, find_research_gaps, get_citations, get_paper_abstract, and search_papers. The verbs (compare, extract, find, get, search) are appropriate and distinct, creating a predictable and readable naming convention throughout the set.

    Tool Count5/5

    With 6 tools, this server is well-scoped for academic research assistance. Each tool earns its place by covering essential research workflows: searching papers, retrieving abstracts, extracting claims, comparing papers, analyzing gaps, and exploring citations. This count is neither too sparse nor bloated, fitting the domain perfectly.

    Completeness4/5

    The tool set covers core research workflows comprehensively, including search, retrieval, analysis, and comparison. Minor gaps exist, such as no tools for saving/bookmarking papers or tracking research progress, but agents can work around these. The surface supports end-to-end research tasks without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables academic research through the OpenAlex API, allowing users to search for papers, authors, and institutions, retrieve citations, and fetch full-text content when available. Perfect for building intelligent research assistants that can explore academic literature and related works.
      8
      7
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to search and analyze OpenAlex scholarly database for OSINT research, including works, authors, institutions, funding, citations, and collaboration networks.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables searching scholarly literature via the OpenAlex database, with tools for full-text search, work details, citation lookup, and author queries.
      MIT