Search and resolve Zenodo datasets, software, and publications by DOI; trace versions and funding.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Search and resolve Zenodo datasets, software, and publications by DOI; trace versions and funding, list files, and preview text files via MCP. STDIO or Streamable HTTP.
Datasets, software releases, and publications from Zenodo, CERN's open research repository, over its public REST API. Search deposits with filters for funder, grant, community, license, and file type; resolve any Zenodo DOI, concept DOI, or URL to its record; walk a deposit's versions; and list, open, and preview its files, including members of .zip archives. Runs as a stdio process or a local Streamable HTTP server.
| Tool | Description |
|---|---|
zenodo_search_records | Search deposits by keyword plus type, community, funder, grant, ORCID, file type, license, access, and date filters, with facet counts |
zenodo_get_record | Resolve one deposit from a record id, DOI, concept DOI, or URL to its full metadata, first 25 files, and an optional citation |
zenodo_list_versions | List every version of a deposit's version series, newest first |
zenodo_list_files | Page a deposit's file manifest, or list the members of one of its .zip files |
zenodo_read_file | Read a byte-capped text excerpt of one file or .zip member |
zenodo_lookup_vocabulary | Resolve community, funder, grant, license, and resource-type names to the ids search filters take |
zenodo_search_records toolquery (terms OR-ed unless joined with AND, quoted phrases, field syntax such as metadata.title:"β¦") plus resource_type, community, funder, award, creator_orcid, file_type, license, access_status, and published_from / published_toresult_window_exceeded past that); latest versions only unless all_versions is truesort: bestmatch, newest, oldest, mostviewed, mostdownloaded, updated-desc, updated-asc (default bestmatch with a query, newest without)facets count resource types, access statuses, file types, subjects, and years over the full match setquery fails as query_is_identifier; a community or funder Zenodo doesn't know fails as unknown_community / unknown_funderzenodo_get_record toolid takes a record id, a Zenodo DOI, a concept DOI or concept record id (resolves to the latest version), another DOI registered to a Zenodo record, or a zenodo.org / doi.org URL; input_kind and resolved_from report how it resolvedlatest_recid, usage counts, and the first 25 filescitation_style: bibtex, csl-json, apa, chicago-author-date, harvard-cite-them-right, ieee, modern-language-association, or naturefound: false with miss_kind (not_found, deleted, restricted, not_on_zenodo) and guidance; a deleted record adds its removal tombstonezenodo_list_versions toolid forms as zenodo_get_record; a concept DOI and any version's DOI list the same seriestotal_versions, latest_recid, and the concept record id and DOIindex, is_latest, file totals, and unique views and downloadsfound: false with the same miss_kind, guidance, and tombstone as zenodo_get_recordzenodo_list_files toolpreviewable, and listable (a .zip); up to 200 per page via offset / limitarchive_key lists the members of one .zip; Zenodo lists at most 1,000 files and directories per archive, flagged by upstream_truncatedkey_contains filters keys or member paths case-insensitively before pagingrecord_not_found / record_deletedzenodo_read_file toolkey from zenodo_list_files, plus archive_member to read inside a .zip without downloading itmax_bytes 256β65,536 (default 16,384); continue a top-level file from next_offset; .zip members read from byte 0 onlystatus is text, not_text, restricted, or empty; excerpts end on a line or character boundaryapplication/octet-stream (LICENSE, Makefile) are returned only when their content is UTF-8 textrights and the download_urlzenodo_lookup_vocabulary toolvocabulary: communities, funders, awards, licenses, or resource_types; query by name, acronym, or keyword, or omit it to browsefilter_param and filter_value name the zenodo_search_records filter and the id to pass itfunder scopes awards to one funder, as a ROR id, ROR URL, or Crossref Funder DOIBuilt on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
Zenodo-specific:
id; URLs are parsed locally and never fetchedtotal; community and funder values are checked before the search runsX-RateLimit-* headers, plus a process-local cache (records 5 min, searches 60 s, vocabularies 1 h).zip member reads, with binary detection before any text is returnedAgent-friendly output:
zenodo_get_record and zenodo_list_versions return found: false with a typed miss_kind, next-step guidance, and a deleted record's tombstoneeffectiveQuery sent to Zenodo and the appliedSort, and every paged tool reports totals with a next page or offset0, '', or falseAdd the following to your MCP client configuration file.
Or with npx (no Bun required):
Or with Docker:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/zenodo-mcp-server)<a href="https://allmcps.com/mcp/zenodo-mcp-server"><img src="https://allmcps.com/api/badge/zenodo-mcp-server?style=directory" alt="Zenodo MCP Server on AllMCPs" /></a>