crossref-local
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CROSSREF_LOCAL_DB | Yes | Path to the CrossRef SQLite database file. |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_worksA | Search for academic works by title, abstract, or authors. Uses FTS5 full-text search index for fast searching across 167M+ papers. Supports FTS5 query syntax: AND, OR, NOT, "exact phrases". |
| search_by_doiB | Get detailed information about a work by DOI. |
| get_statusA | Report local CrossRef database status — path, work count (~167M), FTS5 index size, citation-graph edge count, and access mode (DB vs HTTP). Use when the user asks "is the CrossRef db ready?", "how many papers do I have?", "check crossref-local status", or before running a search to confirm the db is usable. Returns: JSON string with database path, work count, FTS index count, and citation count. |
| enrich_doisA | Enrich DOIs with full metadata including citation counts and references. Use this after search() to get detailed metadata for papers. The search() tool returns basic info (title, authors, year, journal). This tool adds: citation_count, references, volume, issue, publisher, etc. Typical workflow:
|
| check_citationsA | Check citations against the local CrossRef database. Validates whether DOIs exist in the database and checks metadata completeness. |
| check_bibtexA | Check all citations in a BibTeX file against the local database. |
| cache_createA | Create a paper cache from search query. Fetches full metadata for papers matching query and saves to disk cache. Use this to build a reusable paper collection for a research topic. |
| cache_queryA | Query cached papers with field filtering. Returns minimal data to reduce context usage. Specify only fields needed. |
| cache_statsB | Get cache statistics. Returns year distribution, top journals, citation stats without loading full data. |
| cache_listA | List all available caches. Returns: JSON array of cache info (name, path, paper_count, size) |
| cache_top_citedB | Get top cited papers from cache. |
| cache_citation_summaryA | Get citation statistics for cached papers. Returns mean, median, max citations and counts of highly cited papers. |
| cache_plot_scatterA | Generate year vs citations scatter plot. Saves plot to file and returns top cited papers. |
| cache_plot_networkB | Generate citation network visualization. Creates interactive HTML graph showing citation relationships. |
| cache_exportC | Export cache to file. |
| crossref_local_skills_listA | List the names of every skill page shipped by crossref-local. Returns |
| crossref_local_skills_getA | Fetch the full Markdown content of one crossref-local skill page. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools have distinct purposes (search, DOI lookup, cache management, visualization, status). However, cache_stats and cache_citation_summary overlap in providing citation statistics, and search_by_doi and enrich_dois both fetch metadata by DOI, which could confuse an agent.
The naming generally follows a verb_noun pattern with clear prefixes like cache_, search_, check_, and enrich_. Minor inconsistencies exist, such as get_status vs. cache_* verbs and the crossref_local_skills_* prefix, but overall the pattern is predictable.
17 tools is on the heavier side but appropriate for the scope: searching, enriching, caching, citation checking, visualization, and skill navigation. Each tool has a specific role, and the count is not excessive given the domain.
The tool surface covers core workflows: search, metadata enrichment, DOI validation, BibTeX checking, cache creation/querying/export/visualization, and status. Minor gaps exist, such as no cache deletion or cache update tool, but these are not critical for the primary use case.