paper-fetch-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| resolve_paperA | Resolve a DOI, URL, or title query into a normalized paper candidate. |
| fetch_paperA | Fetch one paper as structured article, Markdown, and/or metadata with provenance, quality, trace, and token estimates. Defaults are modes=article+markdown, provider-default assets, metadata-only fallback enabled, include_refs=null, max_tokens=full_text, prefer_cache=false, no_download=false, artifact_mode=markdown-assets and save_markdown=false. The call may access remote services and write provider artifacts, assets, and an MCP cache sidecar. no_download=true suppresses those writes; save_markdown=true is an explicit separate write and returns a path instead of inline full text. artifact_mode=none suppresses provider artifacts but retains MCP cache semantics. asset_profile=none|body|all controls local assets; body/all may return bounded ImageContent. Use prefer_cache=true only with matching request semantics. Current provider/source/runtime/asset-default facts are at resource://paper-fetch/provider-catalog. Access controls and manual-auth boundaries are never bypassed. |
| list_cachedA | List DOI-proven cached downloads from the current cache index without touching the network or scanning loose files. |
| get_cachedB | Look up DOI-proven cached files within one download_dir without touching the network. detail=compact returns preferred entries plus request-sensitive acceptance/asset summaries; preferred_only omits non-preferred entry arrays. |
| batch_resolveA | Resolve multiple DOI, URL, or title queries with shared transport reuse and optional cross-host concurrency. |
| batch_fetchA | Fetch 1..50 papers with bounded concurrency and input-ordered compact manifest/acceptance results. It may access remote services and write the same cache, artifacts, or Markdown as fetch_paper. detail=bounded returns only a batch-wide bounded text sample. batch_results atomically writes the final input-ordered JSONL result; overwrite defaults false. Each batch checks managed Camoufox once at start, including HTTP/cache hits (default official/prerelease; explicit channel/pins take priority). |
| batch_checkA | Probe one or more papers using cheap metadata and landing-page signals, with optional cross-host concurrency. mode defaults to metadata and accepts only metadata; article mode and the standalone has_fulltext tool are removed. Read probe_state, evidence, and errors from input-ordered results (results[0] for one query). Never fetches full bodies or writes downloads. Use batch_fetch for real fetching and judge results by acceptance. |
| browser_preflightA | Live-check the shared browser HTML path for one provider or all browser providers. This prepares managed Camoufox before launch, opens publisher pages, and may update filtered storage-state; it never runs PDF fallback or automatic authentication. |
| provider_statusA | Inspect filtered static provider configuration and local dependency readiness. This never opens Camoufox or publisher pages; use browser_preflight for live health. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| provider_catalog | Runtime-derived provider, source, browser/preflight, and asset-default catalog. |
TDQS
Scored across 9 tools
Most tools occupy a distinct niche: resolve_paper vs batch_resolve, fetch_paper vs batch_fetch, and browser_preflight vs provider_status are separated by clear singular/batch, live/static, and fetch/probe language in their descriptions. The weakest boundary is get_cached vs list_cached, which both operate on the offline cache index and require careful reading of 'one download_dir' vs 'cache index' to tell apart, and batch_check vs resolve_paper can look similar for overlapping queries.
Almost everything is snake_case with a clear verb_noun shape (fetch_paper, resolve_paper, get_cached, list_cached) and batch_* prefixes map predictably onto their singular counterparts. The only deviations are the noun-first resource tools browser_preflight and provider_status, which break the verb-first pattern but remain readable and unique.
Nine tools is well within the sweet spot and each tool maps to a real operation: resolve, check, fetch (single and batch), browser preflight, provider status, and cache inspection. Nothing looks like filler, and the deliberate removal of a redundant standalone fulltext/check path shows the surface was pruned rather than accreted.
The lifecycle is covered end-to-end: resolve a query, probe cheaply, fetch full text (singly or in batch), and inspect what is already cached locally, plus diagnostics via provider_status and browser_preflight. Minor gaps remain around cache management (no clear/prune of cached entries) and there is no singular lightweight check counterpart to batch_check, though batch_check with one query and its reliance on manual auth boundaries makes these workable.