Skip to main content
Glama
dam2452

crossref-mcp

by dam2452
README.md
# crossref-mcp

[Polski](README.pl.md)

Crossref REST API MCP server. Wraps the public Crossref REST API (works, journals, funders, members, types, licenses) — no API key required.

## Table of contents

- [Tools](#tools)
- [Environment variables](#environment-variables)
- [Wiring it up](#wiring-it-up)
- [Local run](#local-run)

## Tools

| Tool | Parameters | Description |
|------|-----------|------|
| `search_works` | `query, filter, select, sort, order, rows=20, offset=0, cursor` | Search Crossref works (publications) |
| `get_work` | `doi: str` | Full metadata for a single work by DOI |
| `get_work_agency` | `doi: str` | Registration agency for a DOI |
| `list_journals` | `query, rows=20, offset=0, cursor` | List or search journals |
| `get_journal` | `issn: str` | Journal metadata by ISSN |
| `get_journal_works` | `issn, query, filter, rows=20, offset=0, cursor` | Works published in a journal |
| `list_funders` | `query, filter, rows=20, offset=0` | List or search funding bodies |
| `get_funder` | `funder_id: str` | Funder metadata by Funder Registry ID |
| `list_members` | `query, filter, rows=20, offset=0` | List or search Crossref members (publishers) |
| `list_types_and_licenses` | none | Available work types and licenses |

## Environment variables

| Variable | Required | Description |
|---------|----------|------|
| `CROSSREF_MCP_MAILTO` | no | Email address for Crossref's "polite pool" — higher rate limits, faster responses |

## Wiring it up

Only requirement: `uv` (https://docs.astral.sh/uv/). Nothing else to install.

### Claude Code

```
claude mcp add crossref-mcp -- uvx --from git+https://github.com/dam2452/crossref-mcp.git crossref-mcp
```

With the polite pool email set:

```
claude mcp add crossref-mcp -e CROSSREF_MCP_MAILTO=you@example.com -- uvx --from git+https://github.com/dam2452/crossref-mcp.git crossref-mcp
```

### Claude Desktop / other MCP client

```json
{
  "mcpServers": {
    "crossref-mcp": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/dam2452/crossref-mcp.git", "crossref-mcp"],
      "env": { "CROSSREF_MCP_MAILTO": "you@example.com" }
    }
  }
}
```

After pushing a new version: `uv cache clean` and restart the client.

## Local run

```
uv run --directory . crossref-mcp
```

Tests (manual):

```
uv run --directory . --with pytest pytest test/
```

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a unique entity or operation (funder, journal, work, member, license), with clear boundaries between general search and entity-specific lookups.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case (e.g., get_funder, list_journals, search_works), making the action and target immediately clear.

Tool Count5/5

10 tools is well-scoped for the domain of querying Crossref metadata, covering all major entity types without unnecessary redundancy.

Completeness5/5

The tool set provides get and list/search for all core entities (works, journals, funders, members) plus additional utilities (work agency, types/licenses), leaving no obvious gaps for a read-only API.

Maintenance

ActivityStale
ResponsivenessNo issues