crossref-complete-mcp
v3.2.0
Published
MCP server for accessing all Crossref API endpoints including works, journals, funders, members, and types
Downloads
121
Maintainers
Readme
Crossref Complete MCP Server
A Model Context Protocol (MCP) server for accessing all Crossref API endpoints including works, journals, funders, members, and types. This package provides seamless integration with AI assistants and research tools through the MCP protocol.
✨ Features
- 🔍 Complete API Coverage - Access all Crossref API endpoints
- 📚 Academic Works - Search and retrieve academic papers, references, and citations
- 📖 Journals - Search journals and retrieve journal information
- 🏛️ Funders - Search funding organizations and their supported works
- 🏢 Members - Search member organizations and their publications
- 📋 Types - Get all academic work types
- ⚡ Fast Response - 30-second timeout with optimized performance
- 🛡️ Robust Error Handling - Comprehensive error management
- 📊 Detailed Logging - Debug-friendly logging system
- 🔧 Easy Integration - Simple MCP protocol implementation
🚀 Quick Start
Installation
npm install -g crossref-complete-mcpUsage
As a Global Command
crossref-complete-mcpAs an MCP Server
The server will start and listen for MCP protocol messages via stdio.
Integration with Claude Desktop
To use this MCP server with Claude Desktop, add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"crossref-complete-mcp": {
"command": "npx",
"args": ["-y", "crossref-complete-mcp"]
}
}
}After adding this configuration, restart Claude Desktop and you'll be able to access all Crossref API functionality directly through the MCP interface.
Development Installation
git clone https://github.com/crossref-complete-mcp/crossref-complete-mcp.git
cd crossref-complete-mcp
npm install
npm start📖 Usage
Available Tools
The server provides 14 tools for accessing Crossref API:
Academic Works (4 tools)
search_works- Search academic worksget_work_by_doi- Get work details by DOIget_work_references- Get work referencesget_work_cited_by- Get works that cite this work
Journals (3 tools)
search_journals- Search journalsget_journal_by_issn- Get journal details by ISSNget_journal_works- Get works published in a journal
Funders (3 tools)
search_funders- Search funding organizationsget_funder_by_id- Get funder details by IDget_funder_works- Get works funded by an organization
Members (3 tools)
search_members- Search member organizationsget_member_by_id- Get member details by IDget_member_works- Get works from a member organization
Types (1 tool)
get_types- Get all academic work types
Examples
Search Academic Works
{
"name": "search_works",
"arguments": {
"query": "artificial intelligence",
"rows": 10,
"filter": "type:journal-article",
"sort": "published",
"order": "desc"
}
}Get Work by DOI
{
"name": "get_work_by_doi",
"arguments": {
"doi": "10.1038/nature12373"
}
}Search Journals
{
"name": "search_journals",
"arguments": {
"query": "Nature",
"rows": 5
}
}Search Funders
{
"name": "search_funders",
"arguments": {
"query": "National Science Foundation",
"rows": 10
}
}🔧 Technical Details
- Timeout: 30 seconds
- Headers: Automatic Content-Type and User-Agent
- Error Handling: Distinguishes between network, API, and timeout errors
- Logging: Detailed request and response logging
- Base URL: https://api.crossref.org
🛠️ Error Handling
The server handles the following error types:
- Timeout Errors: Requests exceeding 30 seconds
- Network Errors: Unable to connect to API server
- API Errors: Server returning error status codes
- Parameter Errors: Missing required parameters or incorrect types
🧪 Testing
Run the test suite:
npm testThis will test:
- API connectivity
- Parameter validation
- Error handling
📁 Project Structure
├── server.js # Main server file
├── package.json # Project configuration and dependencies
├── README.md # Project documentation
├── LICENSE # MIT License
├── mcp-config-example.json # Example MCP configuration
└── test/
└── test-api.js # Test suite