Skip to main content
Glama
Google Scholar MCP Server

Google Scholar MCP Server

Google Scholar MCP Server

MCP server for academic research via Claude Code. Search Google Scholar and access Open Access full-text articles.

Features

  • Google Scholar Search via SerpAPI

    • Search academic articles by query, year, language

    • Get articles citing a specific paper

    • Get all versions of an article from different sources

  • Full-text Access via CORE API

    • Retrieve full text of Open Access articles

    • Search specifically for articles with full-text available

    • Answer research questions using evidence from papers (RAG pattern)

Related MCP server: AI Research Assistant - Semantic Scholar

Tools

Tool

Description

search_articles

Search for academic articles on Google Scholar

get_citations

Get articles citing a specific paper

get_article_versions

Get all versions of an article

get_fulltext

Get full text of Open Access article

search_open_access

Search for articles with full-text

ask_research_question

Answer research questions using evidence from Open Access papers

Quick Start

1. Get API Keys

SerpAPI (Required)

  • Sign up at serpapi.com

  • Free tier: 100 searches/month

  • Paid plans from $75/month for 5,000 searches

CORE API (Optional, for full-text)

2. Install

git clone https://github.com/alimov-andrey/google-scholar-mcp.git
cd google-scholar-mcp
uv pip install -e .

3. Configure Environment

cp .env.example .env
# Edit .env and add your API keys:
# SERPAPI_API_KEY=your_key_here
# CORE_API_KEY=your_key_here  # optional

4. Configure Claude Code

Option A: Global config (~/.claude/claude_mcp_config.json)

{
  "mcpServers": {
    "google-scholar": {
      "command": "bash",
      "args": ["-c", "cd /path/to/google-scholar-mcp && exec python -m src.main"]
    }
  }
}

Option B: Project config (.mcp.json in project root)

{
  "mcpServers": {
    "google-scholar": {
      "command": "bash",
      "args": ["-c", "cd /path/to/google-scholar-mcp && exec python -m src.main"]
    }
  }
}

Usage Examples

Search Articles

Search for "transformer neural networks" articles from 2023

Get Citations

Get articles citing this paper (use citation_id from search results)

Get Full Text

Get full text for article with DOI 10.1234/example

Project Structure

google-scholar-mcp/
├── src/
│   ├── main.py              # FastMCP server entry point
│   ├── config.py            # Pydantic settings
│   ├── clients/
│   │   ├── exceptions.py    # APIError, RateLimitError, AuthenticationError
│   │   ├── serpapi.py       # SerpAPI async client with retry
│   │   └── core_api.py      # CORE API async client with retry
│   ├── models/
│   │   └── scholar.py       # Pydantic response models
│   └── tools/
│       ├── scholar.py       # Google Scholar tools
│       └── fulltext.py      # Full-text access tools
├── tests/                   # Unit tests (86 tests)
├── pyproject.toml
└── .github/workflows/
    └── test.yml             # CI pipeline

Development

# Install with dev dependencies
uv pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Run server locally
python -m src.main

Tech Stack

  • Python 3.12+ with FastMCP 2.14

  • httpx for async HTTP with retry logic

  • Pydantic for data validation

  • stdio transport for MCP communication

License

MIT

Available Tools

6 tools
ask_research_questionA

Answer a research question using evidence from Open Access papers.

Searches CORE API for relevant papers and returns abstracts and text snippets as evidence. Use this for literature review and evidence-based answers. The AI will synthesize the answer from the returned sources.

Inputs: question (required), limit. Returns: Result of research question answering via CORE API.

get_article_versionsA

Get all versions of a specific article from different sources.

Use the cluster_id from search_articles results.

Inputs: cluster_id (required). Returns: Result of article versions lookup.

get_citationsA

Get articles that cite a specific paper.

Use the citation_id from search_articles results.

Inputs: citation_id (required), num_results. Returns: Result of citations lookup.

get_fulltextA

Get full text of an Open Access article via CORE API.

Provide at least one identifier: DOI, title, or CORE ID. Returns full text if available, otherwise abstract and download link.

Inputs: doi, title, core_id. Returns: Result of full-text lookup.

search_articlesA

Search for academic articles on Google Scholar.

Returns articles with title, authors, year, citation count, and links. Use citation_id for get_citations and cluster_id for get_article_versions.

Inputs: query (required), year_to, language, year_from, +1 more. Returns: Result of article search.

search_open_accessA

Search for Open Access articles with full-text available.

Returns articles from CORE aggregator with direct download links.

Inputs: query (required), limit. Returns: Result of Open Access search.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 6 tools

    Disambiguation4/5

    Tools are mostly distinct with clear purposes. search_articles and search_open_access target different sources (Google Scholar vs. CORE), and ask_research_question synthesizes evidence, so overlap is minimal and well-explained.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (e.g., search_articles, get_citations), which is predictable and easy for agents to parse.

    Tool Count5/5

    6 tools cover the core functionalities of a Google Scholar MCP server (search, citations, versions, full text, Q&A) without being excessive or insufficient.

    Completeness4/5

    The set covers essential workflows like searching, retrieving citations, versions, and full text. Minor gaps exist (e.g., no author-specific search or journal filtering), but overall it's well-scoped.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    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 comprehensive academic research through the Semantic Scholar API, including paper search, author discovery, citation network analysis, and full-text access from arXiv and Wiley sources.
      25 npm
      29
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables academic research through Google Scholar by searching for papers, finding author publications, discovering recent research, and identifying highly cited works through web scraping with natural language queries.
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables Claude Code to interact with Jupyter notebooks, perform semantic search over knowledge files, and manage research projects.
      33
      4
      MIT

    Appeared in Searches