Skip to main content
Glama

An MCP server that lets your assistant read Hugging Face Papers — search them, pull the daily curated list, fetch metadata, and generate citations.

Ask "what shipped on (your interest) this week?" and get real papers with upvote counts and abstracts, instead of whatever was in the model's training data.

Demo: daily papers, keyword search, and BibTeX citation over MCP

(Recorded with vhs via vhs demo.tape — the session runs bin/demo.js, a real MCP client against the live API.)

Install

Point your MCP client (Claude Desktop, Claude Code, or any MCP host) at it:

{
  "mcpServers": {
    "hf-papers": {
      "command": "npx",
      "args": ["-y", "hf-papers-mcp"]
    }
  }
}

Or from source: git clone https://github.com/QEbellavita/hf-papers-mcp and point command: node, args: [/absolute/path/to/hf-papers-mcp/server.js] at the checkout.

Pure Node (>= 18), one dependency (@modelcontextprotocol/sdk), no Python. No API key needed — everything is a public read. If HF_TOKEN is set (or you're logged in via hf auth login), it's sent along, which helps with rate limits.

Related MCP server: semantic-scholar-mcp

Tools

Tool

What it does

hf_papers_search

Search papers by keyword

hf_papers_daily

The daily curated list, optionally for a past date

hf_papers_info

Full metadata for an arXiv ID — title, authors, abstract, URLs

hf_papers_citation

BibTeX, APA or MLA

hf_papers_check

Whether a paper is indexed on HF

hf_papers_index

Trigger indexing of an arXiv paper on HF

Example

> what were the top papers on Hugging Face yesterday?

  [1] Domino: Decoupling Causal Modeling from Autoregressive Drafting
      in Speculative Decoding
      arXiv: 2605.29707  |  Upvotes: 152

Bulk digests

Pull a date range in one go:

node bin/daily.js 2026-07-01 2026-07-14

Writes JSON keyed by date to /tmp/, and records the window in .hf_papers_last_run.json so a bare node bin/daily.js picks up where the last run finished.

Tests

npm test                      # hermetic — no network
HF_PAPERS_E2E=1 npm test      # adds live API tests

The default suite is offline and covers tool definitions plus a real MCP handshake over stdio. The live tests hit the Hugging Face API and assert that responses come back as parsed JSON — a regression guard, because diagnostics written to stdout used to corrupt the JSON stream and silently degrade structured responses into raw strings.

Notes

Every call is a direct HTTPS request to the public Hugging Face / arXiv APIs — no daemon, no cached state, nothing persisted beyond the optional bin/daily.js run marker. Diagnostics go to stderr, since stdout is the MCP transport and anything else written there breaks the protocol.

Earlier versions shelled out to a Python sidecar (scripts/paper_manager.py via uv); v1.1.0 ported the six exposed operations to native Node, so cold-start latency dropped from ~12s to nothing and the uv/Python requirement is gone.

Citing

If this server is useful in your research workflow, cite it via the repo's CITATION.cff (GitHub's "Cite this repository" button), or the Zenodo DOI, 10.5281/zenodo.21484748 — a concept DOI that always resolves to the latest archived version.

Licence

MIT — see LICENSE.

Available Tools

6 tools
hf_papers_checkC

Check if a paper is indexed on Hugging Face and get its metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
arxiv_idYesarXiv paper ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavior. It states the tool 'checks' and 'gets metadata' but does not explain what happens if the paper is not indexed, the return format, or potential side effects (e.g., rate limits, errors). This is a significant gap for a tool that could return different outcomes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the tool's purpose. There is no wasteful language or repetition of the tool name, making it appropriately concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter, no output schema, no annotations), but the description still fails to explain the return value or behavior for absent papers. It mentions 'get its metadata' but does not indicate whether the result is a boolean, metadata object, or error, leaving an important gap for an agent to correctly interpret the outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a clear description ('arXiv paper ID') for the single required parameter. The tool description does not add extra parameter details (e.g., expected format like '2301.12345'), but the schema is already sufficient, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('check if a paper is indexed') and the resource ('on Hugging Face'), and adds that metadata is retrieved. However, it does not explicitly distinguish from sibling tools like hf_papers_info, which may also return metadata for a single paper, so it is clear but not fully differentiating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, typical use cases, or exclusions. The name implies a verification use case, but the description does not articulate when to prefer this over hf_papers_search or hf_papers_info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hf_papers_citationA

Generate a citation for a paper. Returns raw text in BibTeX, APA, or MLA format as { result: "..." }.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoCitation formatbibtex
arxiv_idYesarXiv paper ID

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the return format as raw text in a JSON object, which is a key behavior. It does not mention error handling or network dependencies, but for a non-destructive citation tool this is sufficient. The description adds value beyond the schema by explaining the response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant information. It states the action, the resource, and the output format, all in a compact and readable manner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has low complexity (2 parameters, no output schema), and the description explains the return format, making it complete for straightforward invocation. It lacks edge-case details (e.g., invalid arxiv_id), but these are not expected for a simple citation tool. The description sufficiently covers purpose and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (arxiv_id and format) fully described, including an enum for format. The description adds no parameter-specific details beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate a citation for a paper' with a specific verb and resource. It also specifies the output formats (BibTeX, APA, MLA), which distinguishes it from sibling tools like search, info, and daily that serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool's purpose is self-evident: use it when you need a citation for a paper. There are no explicit alternative references, but the context is clear enough that an agent would know when to invoke it versus the paper-related siblings. No exclusions or preconditions are needed for a simple citation generator.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hf_papers_dailyA

Fetch daily curated papers from Hugging Face. Check what is trending in AI research.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate in YYYY-MM-DD format (default: today)
limitNoMax papers to return

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool is a read-only fetch operation, but it does not mention any authentication requirements, rate limits, or details about what 'trending' means (e.g., based on likes, views). It is sufficient for a simple fetch tool but lacks deeper behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the primary action and resource. Every word adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with only two parameters and no output schema, the description is adequately complete. It clearly explains the purpose and context. It could be slightly improved by explicitly stating that it returns a list of papers, but that is implied by 'Fetch papers.'

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters (date and limit), so the schema already documents them. The description adds no additional parameter-specific meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches daily curated papers from Hugging Face and is used to check AI research trends. The verb 'Fetch' plus the specific resource 'daily curated papers' distinguishes it from sibling tools like hf_papers_search, which handles search queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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—when you want daily trending papers—but it does not explicitly mention alternatives or exclusions. It implies a specific use case without naming sibling tools for different needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hf_papers_indexB

Trigger indexing of a paper on Hugging Face from arXiv.

ParametersJSON Schema
NameRequiredDescriptionDefault
arxiv_idYesarXiv paper ID

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Trigger indexing' implies a side effect, but the description does not state whether the operation is asynchronous, what happens if the paper is already indexed, whether it returns a status, or if any permissions are required. This is a significant gap for a mutating action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that front-loads the action and resource. Every word earns its place, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple tool with one parameter and no output schema, so the description is minimally adequate. However, for a trigger operation, it lacks context about what happens after indexing is triggered, any potential delays, or failure modes. Given the low complexity, a score of 3 reflects that it is sufficient but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the sole parameter arxiv_id as 'arXiv paper ID', and the tool description mentions 'from arXiv', which is consistent but does not add new meaning. With 100% schema coverage, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Trigger indexing of a paper on Hugging Face from arXiv.' It uses a specific verb ('trigger indexing') and identifies the resource (a paper from arXiv on Hugging Face). This distinguishes it from sibling tools like search, info, and daily, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. The purpose implies use for indexing, but the description does not mention any exclusions, prerequisites, or compare with sibling tools. This leaves the agent without clear direction on when to choose this over hf_papers_check or hf_papers_info, for example.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hf_papers_infoA

Get full metadata for a paper from Hugging Face — title, authors, abstract, URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
arxiv_idYesarXiv paper ID (e.g., "2301.12345")

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that it retrieves metadata and specifies key return fields, but it does not mention error handling (e.g., what happens if the paper isn't found), rate limits, or the exact nature of 'URLs'. This is a simple read operation, so the risk is low, but more context would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the verb and resource, and every word adds value. It is concise without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, no output schema), the description provides sufficient context by listing the return fields. However, it does not explain the relationship to sibling tools (e.g., hf_papers_check might verify existence) or note that the arxiv_id is required to obtain metadata, though the schema makes that clear. Slightly more context would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the only parameter 'arxiv_id' clearly with an example ('2301.12345'), achieving 100% schema coverage. The description does not add any parameter-specific semantics beyond this, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('full metadata for a paper from Hugging Face'), listing specific return fields (title, authors, abstract, URLs). This distinguishes it from sibling tools like hf_papers_search (finding papers) and hf_papers_daily (listing daily papers).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need full metadata for a specific paper, but it does not explicitly mention when to use alternatives (e.g., search to find an arxiv_id first) or any exclusions. Without such guidance, it's at the 'implied usage' level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 6 tool updatesv1.1.1
    • First observedhf_papers_check
    • First observedhf_papers_citation
    • First observedhf_papers_daily
    • First observedhf_papers_index
    • First observedhf_papers_info
    • First observedhf_papers_search

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation4/5

Tools are mostly distinct: daily, search, citation, and index each target different actions. However, hf_papers_info and hf_papers_check both return metadata, which could cause an agent to select the wrong one.

Naming Consistency4/5

All tools share the consistent hf_papers_ prefix, but the suffixes mix parts of speech (daily is an adjective, info and citation are nouns, while search, check, and index are verbs). The naming is readable and predictable, but not perfectly uniform verb_noun.

Tool Count5/5

With 6 tools covering discovery, search, metadata, citation, verification, and indexing, the count is well-scoped for a Hugging Face papers server. No redundant or missing tools at this granularity.

Completeness5/5

The tool surface covers the key research workflow: discovering papers (daily), searching (search), retrieving details (info), citing (citation), checking availability (check), and adding new papers (index). No obvious dead ends or missing core operations.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching, fetching, and analyzing scientific papers from ArXiv, ACL Anthology, Semantic Scholar, and Hugging Face datasets, with optional LLM-powered document QA and research proposal workflows.
    389 PyPI
    91
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and retrieving academic paper metadata from Semantic Scholar, including paper details, citations, and author information.
    21
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to search arXiv papers, retrieve metadata, browse categories, and read paper text.
    4
    MIT