arxiv-mcp-server
Server Details
Search arXiv, fetch paper metadata, and read full-text content.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- cyanheads/arxiv-mcp-server
- GitHub Stars
- 2
- Server Listing
- arxiv-mcp-server
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 4 of 4 tools scored. Lowest: 3.6/5.
Each tool has a clearly distinct purpose: search for papers, fetch metadata by ID, retrieve full text, and list categories. No two tools overlap in function.
All tools use the 'arxiv_' prefix followed by a verb_noun pattern (get_metadata, list_categories, read_paper, search), making the naming uniform and predictable.
With only 4 tools, the set is tightly scoped for the arXiv domain and each tool earns its place — there is no bloat or redundancy.
The tool set covers the full lifecycle for arXiv papers: discovery via search, metadata retrieval via IDs, full-text access, and category listing for search refinement. No obvious gaps exist.
Available Tools
4 toolsarxiv_get_metadataArxiv Get MetadataARead-onlyInspect
Get full metadata for one or more arXiv papers by ID. Use when you have known IDs from citations, prior search results, or memory.
| Name | Required | Description | Default |
|---|---|---|---|
| paper_ids | Yes | arXiv paper ID or array of up to 10 IDs. Format: "2401.12345" or "2401.12345v2" (with version). Also accepts legacy IDs like "hep-th/9901001". |
Output Schema
| Name | Required | Description |
|---|---|---|
| papers | Yes | Papers found. May be fewer than requested if some IDs are invalid. |
| not_found | No | Per-input explanations for inputs that could not be returned. Absent when nothing failed. |
| totalSucceeded | Yes | Number of successful items in 'papers' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds minimal behavioral context beyond stating the function. It does not mention any potential side effects or unusual behaviors, but none are expected for a read-only metadata lookup. The absence of contradiction with annotations is noted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and entirely informative. The first sentence states the function, and the second gives usage guidance. There is no redundant or filler content, making it highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only one parameter, and the schema fully documents its format. The presence of an output schema means return values need not be described. The description adequately covers purpose and usage context, and annotations cover safety. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: the input schema fully describes the paper_ids parameter, including formats like '2401.12345' and '2401.12345v2', and the array limitation of up to 10 IDs. The description adds only the context of when to use these IDs ('from citations, prior search results, or memory'), which is minor. Baseline 3 is appropriate since the schema already provides the necessary parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get full metadata for one or more arXiv papers by ID.' It uses a specific verb ('Get'), identifies the resource ('arXiv papers'), and specifies the exact input ('by ID'). This distinguishes it from sibling tools like arxiv_search (search by query) and arxiv_read_paper (read full text).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use when you have known IDs from citations, prior search results, or memory.' This gives clear context for usage, though it does not explicitly mention alternatives or exclusions beyond implying that the tool is for ID-based lookups rather than search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arxiv_list_categoriesArxiv List CategoriesARead-onlyInspect
List arXiv category codes and names. Useful for discovering valid category filters for arxiv_search. Lists subject classes only; arxiv_search also accepts a bare archive code (the part before the dot, e.g. "astro-ph" or "cs") to search a whole archive at once.
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | Filter by top-level group (e.g., "cs", "math", "physics"). Returns all categories if omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notice | No | Guidance when the group filter returns no categories. |
| categories | Yes | arXiv categories matching the filter. |
| totalCount | Yes | Total number of categories returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds useful context beyond that, such as that it lists subject classes only and that arxiv_search can accept a bare archive code. It also clarifies the scope of categories returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, each contributing meaningful information: what it lists, why it's useful, and a key distinction from arxiv_search. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter schema, the presence of an output schema, and the readOnly annotation, the description fully covers the tool's purpose and usage context. It explains the essential nuance about subject classes vs. archive codes, making the tool complete for its intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single optional 'group' parameter with an enum and clear description, achieving 100% schema coverage. The tool description adds no additional parameter-specific semantics but does not need to; the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists arXiv category codes and names, making the resource and action explicit. It also distinguishes itself from sibling tools by referencing arxiv_search and clarifying the difference between subject classes and bare archive codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: it is useful for discovering valid category filters for arxiv_search. It also gives an alternative behavior (arxiv_search accepts bare archive codes) effectively indicating when this tool may not be needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arxiv_read_paperArxiv Read PaperARead-onlyInspect
Fetch the full text of an arXiv paper. Tries arxiv.org/html first, falls back to ar5iv.labs.arxiv.org, and falls back again to text extracted from the PDF when neither has an HTML render — check the source field to know which one answered. Page through long papers with start and max_characters, or pass max_characters null to get the entire body in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| start | No | Character offset into the cleaned body to begin reading from. Defaults to 0. Use with max_characters to page through long papers — e.g., start=100000 with max_characters=100000 returns chars 100,000–199,999. The total length is reported as body_characters in the response. | |
| paper_id | Yes | arXiv paper ID (e.g., "2401.12345" or "2401.12345v2"). | |
| max_characters | No | Maximum characters of paper body to return, counted after boilerplate stripping. Defaults to 100,000; pass null to return the entire body in one call. Whole-paper reads can exceed a client tool-result size cap — math-heavy bodies run 300KB-1MB+ — so prefer the default plus start-based paging unless the full text is needed. When truncated, a notice and the total character count are included. |
Output Schema
| Name | Required | Description |
|---|---|---|
| start | Yes | Character offset of the first character in content within the cleaned body. |
| title | Yes | Paper title (from metadata, not parsed from HTML). |
| source | Yes | Which upstream artifact the body was read from. arxiv_html and ar5iv are HTML renders; pdf_text is text extracted from the PDF, where prose is reliable but math, tables, and heading structure are flattened. |
| content | Yes | Paper body for the requested slice — cleaned HTML when source is arxiv_html or ar5iv, plain text when source is pdf_text. Empty when start is past body_characters. |
| pdf_url | Yes | Direct PDF download URL. |
| paper_id | Yes | arXiv paper ID. |
| truncated | Yes | True when more body content exists past this slice (start + content.length < body_characters). |
| abstract_url | Yes | arXiv abstract page URL for attribution. |
| body_characters | Yes | Character count of the full cleaned body. Use with start and max_characters to page. Typically 3-4× smaller than total_characters for math-heavy HTML papers. |
| total_characters | Yes | Character count of the body before cleaning — the unprocessed HTML body for arxiv_html and ar5iv, and equal to body_characters for pdf_text, which needs no cleaning. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is rich with behavioral insights beyond the readOnlyHint annotation: it discloses the multi-source fallback strategy (arxiv.org/html → ar5iv → PDF extraction), the presence of a 'source' field to identify the answering renderer, the character-based paging mechanism, and the note that whole-paper reads can be 300KB-1MB+ and may exceed tool-result caps. This gives the agent actionable knowledge about how the tool behaves, not just what it does.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, each earning its place. The first sentence states the core purpose and discloses the fallback chain and source field. The second sentence provides paging instructions and the null option in a compact, well-structured way. There is no fluff, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-source fallback, paging, character limits), the description is remarkably complete. It covers the main behavioral facets, mentions the response field 'source' and 'body_characters,' and provides enough guidance for safe usage. The output schema fills in return value details, and the annotations cover the read-only safety, so the description focuses on the highest-value contextual information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has detailed documentation. The description text adds complementary value by framing start and max_characters as a paging system (e.g., 'start=100000 with max_characters=100000 returns chars 100,000–199,999') and by warning about result size limits for null max_characters. This enhances the agent's ability to choose appropriate parameter values, going slightly beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Fetch the full text of an arXiv paper,' which is a specific verb and resource that clearly distinguishes it from the sibling tools (metadata, list categories, search). It goes beyond a simple restatement of the title by detailing the source fallback chain and paging behavior, making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool—whenever full text of an arXiv paper is needed—and includes practical usage notes about paging with start/max_characters and the null option for full-body reads. It doesn't explicitly contrast with sibling tools, but the siblings are functionally different enough that exclusion isn't necessary, and the guidance is strong enough to warrant a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arxiv_searchArxiv SearchARead-onlyInspect
Search arXiv papers by query with category and sort filters. Returns paper metadata including title, authors, abstract, categories, and links.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query. Field prefixes: ti: (title), au: (author — token-based; quote multi-token names like au:"hinton g" or pair with a topical clause to disambiguate common surnames), abs: (abstract), cat: (category — a leaf code matches exactly, a bare archive code such as cat:astro-ph matches its whole subtree), co: (comment), jr: (journal ref), all: (all fields). Boolean operators: AND, OR, ANDNOT. Examples: "au:bengio AND ti:attention", "all:transformer AND cat:cs.CL". | |
| start | No | Pagination offset (0-10000). Use with max_results to page through results. E.g., start=10 with max_results=10 returns results 11-20. Matches beyond offset 10000 + max_results are unreachable by paging — carve the search into submitted_from/submitted_to windows and page within each. | |
| sort_by | No | Sort criterion. Use "submitted" for newest papers, "relevance" for best query matches. | relevance |
| category | No | Restrict results to an arXiv category. A leaf code ("cs.CL", "math.AG") matches exactly. A bare archive code ("astro-ph", "cond-mat", "cs", "math") matches the whole archive — its subject classes plus the legacy flat papers filed before the archive was subdivided. Note "physics" is the general-physics archive (physics.*), not the wider physics group: astro-ph, cond-mat, hep-*, quant-ph and the rest are separate archive codes. Use arxiv_list_categories to discover subject classes. | |
| sort_order | No | Sort direction. "descending" returns newest/most relevant first. | descending |
| max_results | No | Maximum results to return (1-50). Default 10. Each result includes title, authors, abstract, and metadata — keep low to limit response size. | |
| submitted_to | No | Latest submission date to include, inclusive, as a UTC YYYY-MM-DD date. Omit for no upper bound. Both bounds are inclusive, so consecutive windows ("2024-01-01".."2024-01-15" then "2024-01-16".."2024-01-31") cover the matches with no gap; a paper submitted at exactly the midnight seam between two windows appears in both, so de-duplicate collected results by paper id. That is the way to reach matches past the start ceiling: split the date range, then page within each window. | |
| submitted_from | No | Earliest submission date to include, inclusive, as a UTC YYYY-MM-DD date. Omit for no lower bound. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The max_results limit applied to this page. |
| shown | No | Papers returned on this page. |
| notice | No | Recovery guidance when results are empty or paging overshot. Absent on successful pages. |
| papers | Yes | Matching papers with full metadata. |
| pageStart | Yes | Pagination offset of this result page. |
| truncated | No | True when more matching papers exist beyond this page (totalFound > start + shown). |
| totalFound | Yes | Total matching papers reported by arXiv (before pagination). |
| effectiveQuery | Yes | The query as actually searched, carrying every filter applied — the category subtree and submitted-date window folded into arXiv syntax alongside the supplied terms. Replaying it as `query` with no other filters reproduces this exact result set. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the readOnlyHint annotation. It does not disclose any rate limits, pagination quirks (though these are in the schema), or other side effects. There is no contradiction, but the description itself is silent on behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: the first establishes the purpose with a clear verb and object, the second lists the return content. No wasted words and information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the extremely detailed input schema and the presence of an output schema, the description is adequate for a search tool. It gives the essential purpose and return type, though it could be slightly more explicit about usage boundaries relative to sibling tools for a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema. The description only mentions 'category and sort filters' at a high level, adding no new meaning beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Search arXiv papers by query with category and sort filters', using a specific verb and resource. This distinguishes it from sibling tools like arxiv_get_metadata (retrieval of specific papers) and arxiv_list_categories (listing categories).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for query-based paper search but does not explicitly state when to use this tool vs alternatives, nor does it mention any exclusion criteria or when to prefer arxiv_get_metadata for a known paper ID. It is clear but not instructive beyond the obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables searching and retrieving academic papers from arXiv by various criteria including title, author, and category, with support for extracting full text content from PDFs.4MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to search arXiv papers, retrieve metadata, browse categories, and read paper text.4MIT
- AlicenseBqualityDmaintenanceEnables searching academic papers on arXiv and retrieving detailed information such as title, authors, summary, and PDF link.17MIT
- Alicense-qualityFmaintenanceEnables searching arXiv papers and retrieving full paper content as Markdown, with smart sorting, category filtering, and pagination.9MIT
Your Connectors
Sign in to create a connector for this server.