Skip to main content
Glama
bbutlerau

paper-search-mcp

by bbutlerau

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HOSTNoBind address for streamable-http transport. Default: 127.0.0.1.127.0.0.1
MCP_PORTNoPort for streamable-http transport. Default: 8000.8000
MCP_TRANSPORTNoTransport mode: 'stdio' (default) or 'streamable-http'.stdio
MCP_PUBLIC_URLNoExternally-visible base URL. When set, enables OAuth 2.1. Leave unset for local stdio use.
MCP_ALLOWED_HOSTSNoComma-separated Host headers to accept (DNS-rebinding protection). Required when behind a reverse proxy.
MCP_AUTH_STATE_PATHNoWhere to persist OAuth clients/tokens. Default: oauth-state.json beside server.py.oauth-state.json
SEMANTIC_SCHOLAR_API_KEYNoA personal Semantic Scholar API key. Without one, S2 calls fall back to the shared unauthenticated rate limit, which is slower and more prone to 429 errors. All other functionality works unaffected.
PAPER_SEARCH_CONTACT_EMAILNoSent as a mailto: contact to get polite pool (faster, more reliable) treatment from CrossRef and OpenAlex. Required by get_open_access_pdf (Unpaywall rejects requests with no email).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_crossrefA

Search CrossRef for scholarly works (articles, books, proceedings, etc.).

Args: query: Free-text search query (e.g. title/author/topic keywords). rows: Max number of results to return (1-100). filter: Optional CrossRef filter string, e.g. "from-pub-date:2020-01-01,type:journal-article". sort: Optional sort field: relevance, published, is-referenced-by-count, etc.

get_crossref_workA

Fetch full CrossRef metadata for a single work by its DOI.

Args: doi: The DOI of the work, e.g. "10.1037/0003-066x.59.1.29".

search_ericA

Search the ERIC database (education research literature) via api.ies.ed.gov.

Args: query: Free-text search query, ERIC's Solr-style syntax is supported (e.g. 'title:"reading comprehension" AND author:Smith'). rows: Max number of results to return (1-100). start: Offset for pagination.

get_eric_recordA

Fetch full ERIC metadata for a single record by its ERIC ID (e.g. "EJ1234567").

Args: eric_id: The ERIC document identifier, e.g. "EJ1234567" or "ED123456".

search_semantic_scholarA

Search Semantic Scholar for papers across all disciplines.

Args: query: Free-text search query (title/topic/author keywords). rows: Max number of results to return (1-100).

get_semantic_scholar_paperA

Fetch full Semantic Scholar metadata for a single paper.

Args: paper_id: A Semantic Scholar paper ID, or a prefixed external ID such as "DOI:10.1037/0003-066x.59.1.29", "ARXIV:2106.15928", "PMID:12345678", or "CorpusID:215416146".

search_openalexA

Search OpenAlex for scholarly works across all disciplines.

Args: query: Free-text search query (title/topic/author keywords). rows: Max number of results to return (1-100). filter: Optional OpenAlex filter string, e.g. "from_publication_date:2020-01-01,type:article". sort: Optional sort string, e.g. "cited_by_count:desc" or "publication_date:desc".

get_openalex_workA

Fetch full OpenAlex metadata for a single work.

Args: work_id: An OpenAlex work ID (e.g. "W2741809807"), a bare DOI (e.g. "10.1037/0003-066x.59.1.29"), or a "doi:10.xxxx" string.

get_open_access_pdfA

Find a legal open-access PDF for a DOI via Unpaywall.

Use this after CrossRef/OpenAlex/ERIC turns up a paper you want to read in full. Returns the best OA copy plus any alternatives, or is_open_access false when no free version is known.

Args: doi: The DOI of the work, e.g. "10.1371/journal.pone.0000308".

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bbutlerau/paper-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server