paper-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| S2_API_KEY | No | Semantic Scholar API key for higher rate limits |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| paper_get_metadataA | Return comprehensive metadata for an academic paper searched by title. Queries Semantic Scholar first (richest metadata), then falls back to arXiv. Returns JSON with: title, authors, abstract, year, venue, doi, arxiv_id, semantic_scholar_id, citation_count, reference_count, fields_of_study, publication_types, publication_date, is_open_access, open_access_pdf, tldr. Args: params (PaperInput): { paper_title: str } Returns: str: JSON-encoded metadata dict or { "error": "..." }. |
| paper_get_pdfA | Find the best open-access PDF URL for a paper by title. Source priority: Semantic Scholar OA → arXiv PDF → Unpaywall → gomcp browser. Returns JSON with: pdf_url, source, title, year. May include browser_excerpt if gomcp fallback was used. Args: params (PaperInput): { paper_title: str } Returns: str: JSON-encoded result or { "error": "..." }. |
| paper_get_fulltextA | Retrieve the full text of a paper by title (up to 50,000 characters). Fetch order: arXiv HTML5 renderer → gomcp browser → abstract-only fallback. Returns JSON with: title, abstract, tldr, fulltext (str|null), fulltext_length (int), source. Args: params (PaperInput): { paper_title: str } Returns: str: JSON-encoded result or { "error": "..." }. |
| paper_get_citationsA | Return up to 100 papers that cite the given paper (forward citations). Returns JSON with: paper_title, total_citations, returned, citations (list of {title, authors, year, venue, doi, arxiv_id, citation_count}). Args: params (PaperInput): { paper_title: str } Returns: str: JSON-encoded citations or { "error": "..." }. |
| paper_get_referencesA | Return the bibliography of a paper — the papers it cites (backward citations). Returns JSON with: paper_title, total_references, returned, references (list of {title, authors, year, venue, doi, arxiv_id}). Args: params (PaperInput): { paper_title: str } Returns: str: JSON-encoded references or { "error": "..." }. |
| doi_get_metadataA | Resolve a DOI to comprehensive paper metadata from multiple authoritative sources. This is the reverse of paper_get_metadata: given a DOI you already know, retrieve everything about the paper without needing its title. Data is merged from three complementary sources (all queried in parallel):
Returns a merged JSON object with: doi, title, abstract, authors, year, publication_date, venue, publisher, volume, issue, page, type, subjects, issn, funders, license, citation_count, reference_count, is_referenced_by_count, fields_of_study, tldr, publication_types, is_open_access, oa_status, open_access_pdf, oa_locations (list of all known PDF URLs with host_type / version / license), arxiv_id, semantic_scholar_id, sources (list of which APIs responded successfully) Args: params (DoiInput): { doi: str } Accepts bare DOI or full URL, e.g.: "10.1145/3442188.3445922" "https://doi.org/10.1145/3442188.3445922" Returns: str: JSON-encoded metadata dict or { "error": "..." }. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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/imnotdev25/paper-search-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server