Skip to main content
Glama

ScholarScope MCP

Academic MCP Server

About

The ScholarScope MCP Server is a custom Model Context Protocol server built with FastMCP for powerful academic research tasks.
It integrates with the OpenAlex API to search for papers, authors, institutions, retrieve citations, and even fetch full text using Jina where available.

๐Ÿ” Perfect for building intelligent research assistants that can:

  • Search academic literature by keywords, author, or institution

  • Explore related works and citations

  • Retrieve full-text papers directly when possible

Python
FastMCP
License


Related MCP server: OpenAlex MCP Server

๐Ÿš€ Installation

  1. Clone the repository

    git clone https://github.com/ErikNguyen20/ScholarScope-MCP.git
    cd ScholarScope-MCP
  2. Install uv (if you don't already have it)

    pip install uv
  3. Install dependencies

    uv sync
  4. Set up environment variables
    Create a .env file in the project root:

    OPENALEX_MAILTO=your_email@example.com

๐Ÿงช Run with MCP Inspector

You can use the official MCP Inspector to test your server locally:

npx @modelcontextprotocol/inspector uv run \
  --directory "/path/to/mcp_server" \
  --with fastmcp \
  fastmcp run src/server.py

[!Note] Replace /path/to/mcp_server with the path to your local project root.


๐Ÿ’ฌ Connect to Claude Desktop

  1. Open your Claude Desktop configuration file (usually claude_desktop_config.json).

  2. Add your MCP server configuration:

{
  "mcpServers": {
    "Tool Example": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/path/to/mcp_server",
        "fastmcp",
        "run",
        "src/server.py"
      ]
    }
  }
}

[!Note] Ensure the /path/to/mcp_server matches your local directory structure.
Restart Claude Desktop after updating the config.


๐Ÿงญ Features

  • ๐Ÿ” Search papers by keyword, title, author, or institution

  • ๐Ÿ“Š Sort results by relevance, citations, or publication date

  • ๐Ÿ“š Retrieve related works and citations for any paper

  • ๐Ÿ“„ Fetch full text from preferred sources when available

  • โšก Built with FastMCP for fast startup and modular tools


Available Tools

8 tools
fetch_fulltextA
Read-onlyIdempotent

Retrieves the contents of a paper or work from its preferred full-text URL and returns the response body as plain text.

Note: In some cases, the target content may be paywalled, require authentication, or otherwise restrict access. In such situations, the returned output may consist of partial content, metadata, or an access notice rather than the complete text.

Args: preferred_fulltext_url: Preferred full-text URL of the paper or work.

Returns: Plaintext representation of the retrieved content. This may be the complete text, or a limited excerpt if access to the full resource is restricted.

Inputs: preferred_fulltext_url (required). Returns: result

papers_by_authorB

Searches for academic papers by a particular author using the OpenAlex API.

Args: author_id: An OpenAlex Author ID of target author. e.g., "https://openalex.org/A123456789" sort_by: The sorting criteria ("cited_by_count", or "publication_date"). page: The page number of the results to retrieve (default: 1).

Returns: A JSON object containing a list of papers+ids by the specified author, or an error message if the search fails.

Inputs: author_id (required), sort_by, page. Returns: data, page, has_next, per_page, +1 more

referenced_works_in_paperA

Gets referenced works used in the specified paper using the OpenAlex API. Note: May return empty if the paper's full text is inaccessible.

Args: paper_id: An OpenAlex Work ID of the target paper. e.g., "https://openalex.org/W123456789"

Returns: A JSON object containing a list of paper ids used in the work, or an error message if the fetch fails.

Inputs: paper_id (required). Returns: data, count

search_authorsB

Searches for authors using the OpenAlex API.

Args: query: The search name to look for the authors. sort_by: The sorting criteria ("relevance_score" or "cited_by_count"). institution_id: An optional institution id to filter search results. e.g., "https://openalex.org/I123456789" page: The page number of the results to retrieve (default: 1).

Returns: A JSON object containing a list of authors+ids, or an error message if the search fails.

Inputs: query (required), sort_by, institution_id, page. Returns: data, page, has_next, per_page, +1 more

search_institutionsC

Searches for institutions using the OpenAlex API.

Args: query: The search name to look for the institutions. sort_by: The sorting criteria ("relevance_score" or "cited_by_count"). page: The page number of the results to retrieve (default: 1).

Returns: A JSON object containing a list of institutions+ids, or an error message if the search fails.

Inputs: query (required), sort_by, page. Returns: data, page, has_next, per_page, +1 more

search_papersB

Searches for academic papers using the OpenAlex API.

Args: query: The search term or keywords to look for in the papers. search_by: The field to search in ("default", "title", or "title_and_abstract"). sort_by: The sorting criteria ("relevance_score", "cited_by_count", or "publication_date"). institution_name: An optional institution or affiliation name to filter search results. author_id: An optional OpenAlex Author ID to filter search results. e.g., "https://openalex.org/A123456789" page: The page number of the results to retrieve (default: 1).

Returns: A JSON object containing a list of searched papers+ids, or an error message if the search fails.

Inputs: query (required), search_by, sort_by, institution_name, +2 more. Returns: data, page, has_next, per_page, +1 more

works_citing_paperA

Retrieves works that cite a given paper from the OpenAlex API.

Args: paper_id: An OpenAlex Work ID of target paper. e.g., "https://openalex.org/W123456789" sort_by: The sorting criteria ("cited_by_count", or "publication_date"). page: The page number of the results to retrieve (default: 1).

Returns: A JSON object containing a list of papers+ids citing the specific paper, or an error message if the retrieval fails.

Inputs: paper_id (required), sort_by, page. Returns: data, page, has_next, per_page, +1 more

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 8 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no ambiguity. The tools cover different aspects of academic research: fetching full text, searching for papers/authors/institutions, getting author papers, and analyzing paper relationships (references, related works, citations). There is no overlap in functionality.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with snake_case throughout. The naming is predictable and readable: fetch_fulltext, papers_by_author, referenced_works_in_paper, related_works_of_paper, search_authors, search_institutions, search_papers, works_citing_paper.

    Tool Count5/5

    With 8 tools, this is well-scoped for an academic research server. Each tool earns its place by covering essential operations: searching across different entity types, fetching content, and analyzing paper relationships. The count is neither too thin nor too heavy for the domain.

    Completeness4/5

    The tool surface provides excellent coverage for academic research workflows: searching, fetching, and relationship analysis. Minor gaps exist, such as no direct tools for updating metadata or managing user collections, but agents can accomplish core research tasks effectively with the provided tools.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables streamlined academic research and author disambiguation by providing AI agents with optimized access to the OpenAlex.org API. It supports searching for authors, resolving institutional affiliations, and retrieving scholarly works with detailed citation metrics.
      8
      57
      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
      A
      quality
      C
      maintenance
      Connects AI agents to the OpenAlex scholarly database, enabling search and retrieval of works, authors, institutions, and sources via natural language.
      9
      MIT