Skip to main content
Glama

cern-opendata-mcp-server

List CERN Open Data Record Files

cern_opendata_list_files
Read-onlyIdempotent

List one record's files: its file indexes (groups of up to ~1,500 files) with their XRootD URI-list URLs, and per file the XRootD URI, HTTPS download URL, size, adler32 checksum and availability. Without index, returns the record's indexes and its regular files; with index, reads only that index and pages through its files. Files marked on demand sit on tape and must be requested on the record's portal page before download.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
indexNoA file index key from the indexes list, matched exactly (a .txt ending is read as .json). Omit to list the record's indexes and regular files.
limitNoFiles per page, 1-500.
recidYesRecord id: up to 12 digits (6004), optionally after an experiment prefix (atlas-160006); recid:6004 or a portal record URL also work. cern_opendata_search_records and cern_opendata_get_records return it.
cursorNonext_cursor from the previous page, unchanged, with the same recid and index. Omit for the first page.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
capNoThe page size (limit) applied to this call.
errorNoPresent when the call failed. Absent on success.
filesNoThis page of files: regular files in record scope, the index's files in index scope.
recidNoThe record id.
scopeNorecord: the record's indexes and regular files; index: one index's files.
shownNoNumber of items returned on this page.
titleNoRecord title.
noticeNoGuidance for the next call: how to page on, why nothing matched and what to change, or a caveat about the results.
indexesNoEvery file index in record scope; only the selected one in index scope.
childrenNoSet only for an umbrella record holding no files itself: the child recids whose files make it up. Empty otherwise.
has_moreNoTrue when more files remain past this page.
truncatedNoTrue when more results remain past this page; notice says how to reach them.
portal_urlNoThe record page, where on-demand (tape) files are requested.
totalCountNoFiles in scope: regular files in record scope, index files in index scope.
next_cursorNoPass as cursor, with the same recid and index, for the next page.
availabilityNoRecord-level availability: online, partial, ondemand or requested.
availability_detailsNoFile counts by availability state for the whole record.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds valuable behavior beyond annotations: the paging mechanism via cursor with same recid/index, the index file limit (~1,500 files per index), and the tape/on-demand requirement to request files on the portal before download. This is meaningful operational context not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences that front-load the primary purpose and then describe the mode split and the on-demand tape caveat. There is almost no waste, though the enumeration of every returned field is lengthy and partly redundant with the output schema, slightly reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively complex (4 params, paging, index modes) and the description plus schema plus output schema cover most needs. It explains the index/no-index behavior, paging cursor usage, and the on-demand availability caveat. Minor gaps remain, such as error behavior or how the ~1,500-file index grouping affects paging, but these are not critical for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with detailed per-parameter descriptions (index exact match and .txt-to-.json handling, limit 1-500, recid pattern, cursor semantics). The description mentions the index mode but does not add syntax or format details beyond the schema. A baseline 3 is appropriate because the schema fully documents parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('List one record's files') and immediately enumerates the return contents (indexes with XRootD URI-list URLs, per-file XRootD URI, HTTPS URL, size, adler32, availability). This clearly distinguishes it from siblings like get_records and search_records, which operate at the record level rather than the file level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the two modes: 'Without index, returns the record's indexes and its regular files; with index, reads only that index and pages through its files.' This is useful conditional guidance tied to the index parameter. However, it does not explicitly name alternatives or state when not to use this tool (e.g., to find a record, use search_records).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.