Search / io.github.cyanheads/datacite-mcp-server
datacite-mcp-server
R0· no sign-inSearch DataCite datasets and software, fetch DOI metadata, trace relations, format citations.
v0.1.3 · active · repository · descriptor JSON · versions
Search / io.github.cyanheads/datacite-mcp-server
R0· no sign-inSearch DataCite datasets and software, fetch DOI metadata, trace relations, format citations.
v0.1.3 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"datacite-mcp-server": {
"type": "http",
"url": "https://datacite.caseyjhand.com/mcp"
}
}
}claude mcp add --transport http datacite-mcp-server https://datacite.caseyjhand.com/mcp[mcp_servers.datacite-mcp-server]
url = "https://datacite.caseyjhand.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"datacite-mcp-server": {
"type": "remote",
"url": "https://datacite.caseyjhand.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"datacite-mcp-server": {
"type": "http",
"url": "https://datacite.caseyjhand.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=datacite-mcp-server&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZGF0YWNpdGUuY2FzZXlqaGFuZC5jb20vbWNwIn0%3D"
}{
"servers": {
"datacite-mcp-server": {
"type": "http",
"url": "https://datacite.caseyjhand.com/mcp"
}
}
}{
"mcpServers": {
"datacite-mcp-server": {
"httpUrl": "https://datacite.caseyjhand.com/mcp"
}
}
}extensions:
"datacite-mcp-server":
enabled: true
name: "datacite-mcp-server"
type: streamable_http
uri: "https://datacite.caseyjhand.com/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations6 of 6 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: datacite_get_citation (destructiveHint); datacite_search_works (destructiveHint); datacite_trace_relations (destructiveHint); …tools.token_costabout 5,288 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes4 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvabledeps.dev does not know @cyanheads/[email protected], @cyanheads/[email protected]datacite_search_repositorieschangedinput schemadatacite_trace_relationschangedinput schema, output schemadatacite_get_workchangeddescription, input schema, output schemaFetch the full deposited DataCite metadata for one DOI: titles, creators and contributors with ORCID iDs and ROR affiliations, publisher, dates, version, subjects, descriptions, funding, geolocations, rights, sizes and formats, related identifiers with their relation types, repository and provider, and citation, reference, version, part, view, and download counts. Long lists are capped with their full counts reported; use datacite_trace_relations for the complete relation graph. A DOI DataCite does not hold returns found: false naming the registration agency that does, or saying the DOI does not exist.
Fetch the full deposited DataCite metadata for one DOI: titles, creators and contributors with ORCID iDs and ROR affiliations, publisher, dates, version, subjects, descriptions, funding, geolocations, rights, sizes and formats, related identifiers with their relation types, repository and provider, and citation, reference, version, part, view, and download counts. Long lists are capped with exact list/offset continuation recipes; select a list to retrieve later entries without losing the other metadata. datacite_trace_relations maps a bounded graph (at most 100 nodes and 1,000 edges). A DOI DataCite does not hold returns found: false naming the registration agency that does, or saying the DOI does not exist.
datacite_search_workschangedinput schema, output schemaFull history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +reachable +uptime-100% +updated-2d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
@cyanheads/[email protected] npmthis version is not known to the dependency resolver
@cyanheads/[email protected] npmthis version is not known to the dependency resolver
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://datacite.caseyjhand.com/mcp streamable-http | none | yes | 100% | 205 ms | 2026-07-28 | 2026-10-20 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
@cyanheads/datacite-mcp-server | npm | 0.1.3 | npx | |
@cyanheads/datacite-mcp-server | npm | 0.1.3 | npx |
datacite_get_citationread-only | Render one DataCite DOI as a formatted citation in a CSL style and locale (APA in US English by default), or as a machine-readable record: CSL JSON, BibTeX, RIS, DataCite JSON or XML, Schema.org JSON-LD, Codemeta, or JATS. A style the upstream renderer does not support — an unknown id or a dependent journal style — is rejected instead of silently rendered as APA. Formatted text comes back as plain text alongside the upstream HTML markup. A DOI DataCite does not hold returns found: false naming the registration agency that does. |
datacite_get_workread-only | Fetch the full deposited DataCite metadata for one DOI: titles, creators and contributors with ORCID iDs and ROR affiliations, publisher, dates, version, subjects, descriptions, funding, geolocations, rights, sizes and formats, related identifiers with their relation types, repository and provider, and citation, reference, version, part, view, and download counts. Long lists are capped with exact list/offset continuation recipes; select a list to retrieve later entries without losing the other metadata. datacite_trace_relations maps a bounded graph (at most 100 nodes and 1,000 edges). A DOI DataCite does not hold returns found: false naming the registration agency that does, or saying the DOI does not exist. |
datacite_list_referenceread-only | Look up the controlled vocabularies and identifier forms the other datacite_* tools accept: resource types, relation types with their inverses and groups, related-identifier types, date and contributor types, fields of science, common license ids, repository types, certificates, software platforms, client types, sort orders, query-syntax field paths, citation formats, verified citation styles and locales, accepted identifier forms (DOI, ORCID iD, ROR ID, Crossref Funder ID, country, language, repository, and provider ids), and coverage and rate-limit rules. Offline; makes no upstream request. |
datacite_search_repositoriesread-only | Find DataCite repository accounts by name or description text, field of science, repository type, certification (e.g. CoreTrustSeal), software platform, client type, or parent provider, or look up known repository IDs. Returns each repository's repositoryId — the value datacite_search_works takes in repository_ids — with its providerId, name, type, certificates, software, subjects, homepage, and re3data link. To rank repositories by how many works they hold on a topic, run datacite_search_works with that topic and include_facets: true; its repositories facet lists the top ten with counts. |
datacite_search_worksread-only | Search DataCite DOI metadata for datasets, software, samples, workflows, and other research outputs. Combine plain words (`text`) or OpenSearch query syntax (`query`) with filters for resource type, creator (ORCID iD or name), affiliation (ROR ID or name), affiliation country, funder (ROR ID, Crossref Funder ID, or name), subject, field of science, repository, provider, license, language, geographic place, publication-year range, and minimum citation count. Returns the total match count and compact rows — DOI, title, first creators, year, type, repository, licenses, and citation/view/download counts — plus optional top facet counts. Page numbers reach the first 10,000 ranked matches; pass cursor "*" to walk any result set in full, in registration order. |
datacite_trace_relationsread-only | Map the relation graph around one DOI — versions, parts, supplements, derivations, documentation, citations, references, and every other DataCite relation type — as nodes and directed edges that keep the relationType exactly as asserted and name each edge's source: the DOI's own metadata, other DataCite records that point at it, or DataCite Event Data (citation links harvested from Crossref and other sources). Accepts any DOI, including a journal article's DOI, to find the datasets and software it cites and those that cite, supplement, or derive from it. DataCite DOIs are hydrated with title, type, year, repository, and citation count; other identifiers stay leaf nodes. Depth 1 by default, at most 2, with a node cap (default 50, max 100) disclosed when it binds. An absent edge is not evidence that no relationship exists. |
Schemas: list_tools.
And 140 more from this publisher.
{
"name": "io.github.cyanheads/datacite-mcp-server",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://datacite.caseyjhand.com/mcp",
"type": "streamable-http"
}
],
"version": "0.1.3",
"packages": [
{
"version": "0.1.3",
"transport": {
"type": "stdio"
},
"identifier": "@cyanheads/datacite-mcp-server",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "MCP_LOG_LEVEL",
"format": "string",
"default": "info",
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
},
{
"name": "DATACITE_CONTACT_EMAIL",
"format": "string",
"description": "Contact email sent in the User-Agent as mailto: (never a URL parameter). Moves requests to DataCite's identified tier (1,000 per 5 minutes per IP instead of 500)."
},
{
"name": "DATACITE_MAX_REQUESTS_PER_5MIN",
"format": "number",
"description": "Request budget per 5-minute window, 50-1000. Default 800 with a contact email, 400 without; divide it across replicas sharing one egress IP."
}
]
},
{
"version": "0.1.3",
"transport": {
"url": "http://localhost:3010/mcp",
"type": "streamable-http"
},
"identifier": "@cyanheads/datacite-mcp-server",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "MCP_TRANSPORT_TYPE",
"value": "http",
"format": "string",
"description": "Selects the HTTP transport."
},
{
"name": "MCP_HTTP_HOST",
"format": "string",
"default": "127.0.0.1",
"description": "The hostname for the HTTP server."
},
{
"name": "MCP_HTTP_PORT",
"format": "string",
"default": "3010",
"description": "The port to run the HTTP server on."
},
{
"name": "MCP_HTTP_ENDPOINT_PATH",
"format": "string",
"default": "/mcp",
"description": "The endpoint path for the MCP server."
},
{
"name": "MCP_AUTH_MODE",
"format": "string",
"default": "none",
"description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
},
{
"name": "MCP_LOG_LEVEL",
"format": "string",
"default": "info",
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
},
{
"name": "DATACITE_CONTACT_EMAIL",
"format": "string",
"description": "Contact email sent in the User-Agent as mailto: (never a URL parameter). Moves requests to DataCite's identified tier (1,000 per 5 minutes per IP instead of 500). Set it on any hosted deployment."
},
{
"name": "DATACITE_MAX_REQUESTS_PER_5MIN",
"format": "number",
"description": "Request budget per 5-minute window, 50-1000. Default 800 with a contact email, 400 without; divide it across replicas sharing one egress IP."
}
]
}
],
"repository": {
"url": "https://github.com/cyanheads/datacite-mcp-server",
"source": "github"
},
"description": "Search DataCite datasets and software, fetch DOI metadata, trace relations, format citations."
}