Crossref Cite Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Crossref Cite Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server for resolving paper citations via Crossref API. Supports multiple output formats including CSL-JSON, BibTeX, RIS, and formatted text. Designed for LLM tools like Claude Desktop, Cursor, etc.
[中文文档](README_CN.md)
mailto parameter for higher Crossref rate limits# Using uv (recommended)
uv pip install crossref-cite-mcp
# Or using pip
pip install crossref-cite-mcp# Clone the repository
git clone https://github.com/h-lu/crossref-cite-mcp.git
cd crossref-cite-mcp
# Install with uv
uv pip install -e .
# Or use pip
pip install -e .Set environment variables (or create a .env file):
# Required: Your email for Crossref polite pool
export [email protected]
# Optional: Cache configuration
export CROSSREF_CACHE_BACKEND=json # "memory" or "json"
export CROSSREF_CACHE_PATH=~/.crossref-cite/cache.json
export CROSSREF_CACHE_TTL=1209600 # 14 days in seconds
# Optional: Logging
export LOG_LEVEL=INFOEdit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"crossref-cite": {
"command": "uvx",
"args": ["crossref-cite-mcp"],
"env": {
"CROSSREF_MAILTO": "[email protected]"
}
}
}
}{
"mcpServers": {
"crossref-cite": {
"command": "crossref-cite-mcp",
"args": [],
"env": {
"CROSSREF_MAILTO": "[email protected]"
}
}
}
}{
"mcpServers": {
"crossref-cite": {
"command": "uv",
"args": ["run", "--directory", "/path/to/crossref-cite-mcp", "python", "-m", "crossref_cite"],
"env": {
"CROSSREF_MAILTO": "[email protected]"
}
}
}
}#### resolve_citation
Resolve a paper and return citations in multiple formats.
Arguments:
query (required): Paper title, DOI, arXiv ID, or PMIDformats: List of formats (["csl-json", "bibtex", "ris", "formatted"])style: CSL style for formatted output (default: "apa")locale: Locale for formatted output (default: "en-US")rows: Number of Crossref candidates (default: 5)Example:
{
"query": "Attention Is All You Need",
"formats": ["bibtex", "formatted"],
"style": "apa"
}#### search_papers
Search Crossref for papers (metadata only, no citation fetching).
Arguments:
query (required): Search queryrows: Number of results (default: 10, max: 20)filter_from_year: Publication year filter (start)filter_to_year: Publication year filter (end)filter_type: Work type filter (e.g., "journal-article")# Test with JSON-RPC request
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"resolve_citation","arguments":{"query":"10.1038/nature12373","formats":["bibtex"]}}}' | python -m crossref_cite# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run with coverage
pytest tests/ -v --cov=crossref_cite
# Lint
ruff check src tests
# Type check
mypy src/crossref_citeTo record new HTTP interaction cassettes for tests:
# Delete existing cassettes and re-record
rm -rf tests/cassettes/
pytest tests/ -v --vcr-record=new_episodes# Build image
docker build -t crossref-cite-mcp .
# Run
docker run -e [email protected] crossref-cite-mcpThis implementation follows Crossref REST API best practices:
mailto parameter for polite pool accessquery.bibliographic for citation-like searchesCitation formats are fetched via DOI content negotiation:
| Format | Accept Header |
|---|---|
| CSL-JSON | application/vnd.citationstyles.csl+json |
| BibTeX | application/x-bibtex |
| RIS | application/x-research-info-systems |
| Formatted | text/x-bibliography; style=apa; locale=en-US |
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.