semanticscholar-mcp-server

semanticscholar-mcp-server

An MCP server that provides access to Semantic Scholar's academic graph, recommendations, and datasets APIs, enabling paper search, citation analysis, author lookups, and dataset discovery through 20+ tools.

Category
访问服务器

README

Semantic Scholar MCP Server

An unofficial, community-maintained Model Context Protocol server for the public Semantic Scholar APIs.

It exposes the Academic Graph, Recommendations, and Datasets APIs to MCP clients over stdio. Version 2.0.0 provides 20 endpoint-aligned tools plus two backward-compatible tools.

[!IMPORTANT] This project is not affiliated with or endorsed by Semantic Scholar or the Allen Institute for AI. API availability, terms, and rate limits are controlled by Semantic Scholar.

Highlights

  • Broad API coverage: authors, papers, citations, references, full-text snippets, recommendations, and dataset releases.
  • No Semantic Scholar SDK dependency: the server uses a small asynchronous httpx client and depends only on mcp and httpx.
  • Native responses: endpoint-aligned tools preserve Semantic Scholar's JSON response shape instead of converting it into a reduced local model.
  • Explicit pagination: callers control offsets or continuation tokens; the server never silently crawls an unbounded result set.
  • Rate-limit aware: HTTP 429 and transient 5xx responses use Retry-After when available and bounded exponential backoff otherwise.
  • Installable distribution: run from source or install the release ZIP as a Python package with the semanticscholar-mcp console entry point.
  • Offline tests: the test suite uses an in-memory HTTP transport and does not consume Semantic Scholar API quota.

Requirements

  • Python 3.10 or later
  • An MCP client that supports stdio servers
  • Optional: a Semantic Scholar API key for a dedicated rate limit

Anonymous requests work for many endpoints, but they use a heavily shared rate limit.

Quick start

Install a release ZIP

python -m venv .venv
source .venv/bin/activate
python -m pip install ./semanticscholar-mcp-server-2.0.0.zip

Start the installed stdio server:

semanticscholar-mcp

Install from a source checkout

python -m venv .venv
source .venv/bin/activate
python -m pip install -e .

You can then use the console entry point above or run the module directly:

python semantic_scholar_server.py

On Windows PowerShell, activate the environment with .venv\Scripts\Activate.ps1.

MCP client configuration

After installing the package, configure your MCP client with the absolute path to the virtual environment's console script:

{
  "mcpServers": {
    "semanticscholar": {
      "command": "/absolute/path/to/.venv/bin/semanticscholar-mcp",
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "your-optional-api-key"
      }
    }
  }
}

For a source checkout without package installation:

{
  "mcpServers": {
    "semanticscholar": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": ["/absolute/path/to/semantic_scholar_server.py"],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "your-optional-api-key"
      }
    }
  }
}

Do not commit an API key to an MCP configuration stored in a public repository. Prefer your client's secret or environment-variable mechanism when available.

Example requests

Once the server is connected, an MCP-capable assistant can handle requests such as:

  • “Find recent open-access papers about retrieval-augmented generation.”
  • “Resolve this DOI and return its references with citation contexts.”
  • “Recommend papers similar to these two papers but unlike this negative example.”
  • “Search full-text snippets for evidence about calibration in scientific QA.”
  • “List the datasets in the latest Semantic Scholar dataset release.”

The exact natural-language workflow depends on the MCP client. The server itself exposes typed tools rather than a chat interface.

Configuration

Environment variable Default Description
SEMANTIC_SCHOLAR_API_KEY unset Sent to Semantic Scholar as the x-api-key header.
SEMANTIC_SCHOLAR_TIMEOUT 30 Request timeout in seconds.
SEMANTIC_SCHOLAR_MAX_RETRIES 3 Retries for HTTP 429 and transient 5xx responses.
SEMANTIC_SCHOLAR_API_URL https://api.semanticscholar.org API origin override, primarily for tests and compatible proxies.

[!CAUTION] When SEMANTIC_SCHOLAR_API_URL is overridden, the API key is sent to that origin. Only use an endpoint you trust.

Tool catalog

Academic Graph API

MCP tool REST operation
batch_get_semantic_scholar_authors POST /graph/v1/author/batch
search_semantic_scholar_authors GET /graph/v1/author/search
get_semantic_scholar_author_details GET /graph/v1/author/{author_id}
get_semantic_scholar_author_papers GET /graph/v1/author/{author_id}/papers
autocomplete_semantic_scholar_papers GET /graph/v1/paper/autocomplete
batch_get_semantic_scholar_papers POST /graph/v1/paper/batch
search_semantic_scholar_papers GET /graph/v1/paper/search
bulk_search_semantic_scholar_papers GET /graph/v1/paper/search/bulk
match_semantic_scholar_paper GET /graph/v1/paper/search/match
get_semantic_scholar_paper_details GET /graph/v1/paper/{paper_id}
get_semantic_scholar_paper_authors GET /graph/v1/paper/{paper_id}/authors
get_semantic_scholar_paper_citations GET /graph/v1/paper/{paper_id}/citations
get_semantic_scholar_paper_references GET /graph/v1/paper/{paper_id}/references
search_semantic_scholar_snippets GET /graph/v1/snippet/search

Paper search exposes publication type, open-access, minimum citation count, publication date/year, venue, and field-of-study filters. Bulk search uses token pagination and supports sorting. Citation and reference tools can request citation contexts, intents, context/intent pairs, and influential-citation status.

Recommendations API

MCP tool REST operation
recommend_semantic_scholar_papers_for_paper GET /recommendations/v1/papers/forpaper/{paper_id}
recommend_semantic_scholar_papers POST /recommendations/v1/papers/

Single-paper recommendations support the recent and all-cs pools. Multi-paper recommendations accept positive and optional negative paper IDs. The API returns at most 500 recommendations per request.

Datasets API

MCP tool REST operation
list_semantic_scholar_dataset_releases GET /datasets/v1/release/
get_semantic_scholar_dataset_release GET /datasets/v1/release/{release_id}
get_semantic_scholar_dataset_download_links GET /datasets/v1/release/{release_id}/dataset/{dataset_name}
get_semantic_scholar_dataset_diffs GET /datasets/v1/diffs/{start}/to/{end}/{dataset_name}

Dataset tools return release metadata and temporary download URLs. They do not automatically download multi-gigabyte datasets. The identifier latest is accepted wherever the upstream API supports it.

Backward-compatible tools

Two tool names are retained for clients built against the original project:

MCP tool Behavior
search_semantic_scholar Returns only the paper result list from the first relevance-search request.
get_semantic_scholar_citations_and_references Returns the first page of both relationships.

New integrations should use the endpoint-aligned search, citation, and reference tools because they expose filters, fields, and independent pagination.

Paper identifiers and response fields

Paper tools accept identifiers supported by Semantic Scholar, including:

  • Semantic Scholar paper ID
  • CorpusId:
  • DOI:
  • ARXIV:
  • ACL:
  • MAG:
  • PMID: and PMCID:
  • supported Semantic Scholar paper URLs

Most tools accept a fields list. Useful paper fields include abstract, authors, externalIds, openAccessPdf, tldr, journal, citationStyles, s2FieldsOfStudy, and embedding.

Default field sets are intentionally rich but exclude the large embedding vector. Request it explicitly when needed:

{
  "paper_id": "ARXIV:2005.11401",
  "fields": ["paperId", "title", "embedding"]
}

Pagination, retries, and errors

  • Offset-paginated tools return only the requested page.
  • Bulk paper search returns the upstream continuation token; pass it back to request the next page.
  • The server honors Retry-After for throttled responses and otherwise uses bounded exponential backoff.
  • Validation, upstream HTTP, and unexpected transport failures are returned as {"error": "..."} so one failed request does not terminate the MCP server.
  • A successful empty result is returned unchanged and is not converted into an error.

Semantic Scholar can change limits or schemas independently of this project. Consult the official API documentation when an upstream validation rule differs from the server's current defaults.

Security and data handling

  • Queries, identifiers, filters, and requested fields are sent to the configured Semantic Scholar API origin.
  • The API key is used only as the x-api-key request header.
  • The server does not persist API responses, maintain a paper database, or automatically download dataset files.
  • Avoid placing secrets in prompts, search queries, logs, issues, or public MCP configuration files.
  • Dataset download URLs can be temporary and should be treated accordingly.

If you discover a security issue, do not publish credentials or exploit details in a public issue. Use the repository owner's private security-reporting channel; if none is listed, open a minimal issue requesting private contact without disclosing the vulnerability.

Development

Create a development environment and install the project in editable mode:

python -m venv .venv
source .venv/bin/activate
python -m pip install -e .

Run the complete test suite:

python -m unittest discover -v

The tests use httpx.MockTransport; they do not call the live Semantic Scholar API or consume rate-limit quota.

Project layout

semantic_scholar_api.py       Async HTTP client, validation, retries, and API paths
semantic_scholar_server.py    FastMCP server and 22 registered tools
tests/                        Offline API and tool-registration tests
pyproject.toml                Package metadata and console entry point
requirements.txt              Minimal runtime dependencies

Contribution guidelines

Contributions are welcome. A change should:

  1. Preserve the upstream JSON response shape for endpoint-aligned tools.
  2. Keep pagination explicit and bounded.
  3. Add or update offline tests for endpoint paths, parameters, payloads, and tool registration.
  4. Avoid adding a heavyweight API SDK when the direct client can support the operation clearly.
  5. Never include API keys, generated bytecode, virtual environments, or large downloaded datasets.
  6. Run python -m unittest discover -v before opening a pull request.

For new upstream endpoints, update the client method, MCP tool, tool-registration test, and this catalog together.

API references

Project lineage

Version 2 is a substantial rewrite and expansion of JackKuo666/semanticscholar-MCP-Server. It replaces the original SDK-backed runtime with a direct asynchronous API client, expands coverage from four tools to 22, preserves native responses, and adds pagination, retry handling, tests, and packaging.

The two original high-level tool names listed under backward compatibility remain available so existing clients can migrate gradually. Repository history and this attribution are retained in recognition of the original work.

License

Distributed under the MIT License.

“Semantic Scholar” is used only to identify compatibility with the public service. This project does not claim ownership of the Semantic Scholar name, API, data, or trademarks.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选