# cern-opendata-mcp-server [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/cyanheads/cern-opendata-mcp-server  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/cern-opendata-mcp-server

## Description
Search CERN Open Data, fetch records, files, analysis environments, CMS good-run lists, HLT paths.

## Tools
Capabilities this server exposes over MCP:

- **cern_opendata_search_records** — Search datasets, software, environments, documentation and supplementary records with exact-vocabulary filters and live facet counts
- **cern_opendata_get_records** — Fetch full metadata for 1–20 records by recid, DOI, CMS dataset path or documentation slug, with license and citation
- **cern_opendata_list_files** — Page through a record's file indexes and files: XRootD URIs, HTTPS URLs, sizes, checksums, tape availability
- **cern_opendata_get_analysis_env** — Assemble a record's analysis environment: container images, CMSSW release, global tag, linked environment and software records, guide sections
- **cern_opendata_get_validated_runs** — Get a CMS validated-run (good-run) list for a dataset, a list or a run period, with luminosity-section ranges
- **cern_opendata_search_trigger_paths** — Look up CMS High-Level Trigger paths by name or prefix, parsed into run ranges, versions and L1 seeds
- **cern_opendata_list_reference** — Decode the vocabulary the other tools accept: experiments, record types, energies, formats, physics categories, LHCb stripping, identifiers, query syntax, licensing, run periods

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `bunx` (confidence: high):

```json
"mcpServers": {
  "cern-opendata-mcp-server": {
    "command": "bunx",
    "args": ["@cyanheads/cern-opendata-mcp-server@latest"]
  }
}
```

## Documentation

## What cern-opendata-mcp-server does

The cern-opendata-mcp-server MCP server connects MCP clients to the CERN Open Data Portal. It covers collision, simulated, and derived datasets, software, analysis environments, documentation, and supplementary records from experiments including ALICE, ATLAS, CMS, and LHCb.

Its record search accepts exact-vocabulary filters and returns compact hits with live facet counts. Agents can then retrieve complete metadata using record IDs, DOIs, CMS dataset paths, or documentation slugs. Returned metadata can include licensing details, citations, variables, physics categories, pile-up information, keywords, and LHCb-specific fields.

## How it works

The package can run as a STDIO process or as a Streamable HTTP server. A public hosted endpoint is available at `https://cern-opendata.caseyjhand.com/mcp`, while local deployments can be configured for MCP clients that launch commands or connect over HTTP.

Search results can be sorted by relevance, publication date, or title and paged within the service's result window. Record responses have a size budget; oversized records are deferred for later retrieval, and long documentation bodies can be read in sections using offsets. File listings use pagination cursors and expose portal-provided identifiers, checksums, sizes, XRootD URIs, and HTTPS links when available.

The server also provides a `cern-opendata://record/{recid}` resource containing record metadata, licensing, and citation information. Clients without resource support can obtain the same data through the record tool.

## Setup and configuration

Install the package through the published npm package with `npx`, or use the provided Claude Desktop, Cursor, and VS Code installation links. The repository also publishes a Docker image and an installable MCP bundle for Claude Desktop. The README describes STDIO and Streamable HTTP operation but does not specify required environment variables.

For a hosted connection, configure the client to use the public MCP URL. For a local connection, configure the client to launch the package as an MCP command. The available reference tool can explain accepted experiments, record types, identifiers, query syntax, licensing values, run periods, and other filter vocabularies.

## Tools and capabilities

- `cern_opendata_search_records` searches datasets, software, environments, documentation, and supplementary records with filters for experiment, type, energy, format, availability, year, event count, and other fields.
- `cern_opendata_get_records` retrieves one to twenty records per call and reports missing or unresolved identifiers without failing the entire request.
- `cern_opendata_list_files` lists record indexes and files, including tape availability, checksums, file sizes, XRootD addresses, and possible HTTPS URLs.
- `cern_opendata_get_analysis_env` assembles container images, CMSSW releases, global tags, linked environment and software records, and excerpts from analysis guides.
- `cern_opendata_get_validated_runs` returns CMS good-run information with run bounds and luminosity-section ranges. It supports dataset, list, and run-period queries, including full and muons-only variants.
- `cern_opendata_search_trigger_paths` finds CMS High-Level Trigger paths by exact name or prefix and parses run ranges, versions, datasets, and L1 seeds.
- `cern_opendata_list_reference` documents the controlled vocabularies used by the other tools.

## Limitations and notes

The validated-run functionality is CMS-specific; unsupported records return a `no_validated_runs` result. Files marked on demand remain on tape and must first be requested through the record's portal page. Umbrella records may contain child record IDs rather than their own files.

Search pagination beyond the supported 10,000-result window fails. Record retrieval is limited to twenty identifiers per call and a 64,000-byte response, while documentation slices and guide excerpts have their own character limits. The analysis-environment tool marks linked content as separately licensed and may return notices when linked records or guides cannot be read.

Use cern-opendata-mcp-server MCP server when an agent needs portal metadata and experiment-specific lookup functions rather than unrestricted access to the underlying data files themselves.

_Full upstream README: https://allmcps.com/mcp/cern-opendata-mcp-server/readme_

