Skip to main content
Glama

cern-opendata-mcp-server

Search CMS Trigger Paths

cern_opendata_search_trigger_paths
Read-onlyIdempotent

Look up CMS High-Level Trigger paths by exact name (HLT_IsoMu24) or prefix pattern (HLT_IsoMu*), optionally for one data-taking year. Paths outside the HLT_ family, such as AlCa_EcalPi0, DST_ and DQM_ paths, output modules and HLTriggerFinalPath, are found by their own names, in the case given. Each match is a per-year path record parsed into the primary datasets its title names, the first and last run the path was seen online, per-version run ranges, the L1 seed, and links to the HLT menu records. Covers CMS open data from 2011-2016. Prescale factors are not returned: each HLT menu record holds a configuration file (cern_opendata_list_files with a menu_recid) whose PrescaleService block lists the prescale in each column of every path it prescales (a path it leaves out has prescale 1), and the CMS luminosity records (collection CMS-Luminosity-Information) hold prescale files that log which column applied by run and luminosity section.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "path": "<path>"
    },
    "name": "cern_opendata_search_trigger_paths"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNoPage number, from 1, counting pages of the limit applied. page × limit may not exceed 10,000.
pathYesTrigger path name (HLT_IsoMu24, AlCa_EcalPi0) or prefix with one trailing wildcard (HLT_IsoMu*): a letter or digit, then letters, digits and underscores. A path starting HLT_ in any case is searched as given, with the prefix case fixed, and matches path names in any case. Any other path is matched against record path names in the case given, the whole name or, with a trailing *, its start (AlCa_EcalPi0, AlCa_*), and is also searched with HLT_ prepended (IsoMu24 finds HLT_IsoMu24, 60Jet10 finds HLT_60Jet10). A trailing version suffix (_v3 or _v*) is dropped, since records list versions as V<n>.
yearNoData-taking year, such as 2012. Trigger records cover 2011-2016.
limitNoRecords per page, 1-50. A value above 50 is served at 50.

Output Schema

NameRequiredDescriptionDefault
capNoThe page size (limit) applied to this call.
pageNoThe page returned.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of items returned on this page.
noticeNoContinuation, empty-result guidance or result caveats; absent when none.
has_moreNoNext page has matches within the first 10,000; false at the reachable end even if more exist (see truncated/notice).
triggersNoMatching trigger path records on this page.
truncatedNoTrue when more results remain past this page; notice says how to reach them.
totalCountNoTrigger path records matching the path (and year).
effectiveQueryNoThe query sent, after normalization (version suffix dropped): an HLT_ path as given; any other path as title clauses matching it as a record path name, OR HLT_ plus the path.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedOutput schema / properties / has_more / description
      Previous value: -"True when the next page holds matches and lies within the first 10,000. False on the last reachable page even when more matches exist; truncated and notice say so."New value: +"Next page has matches within the first 10,000; false at the reachable end even if more exist (see truncated/notice)."
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance for the next call: how to page on, why nothing matched and what to change, or a caveat about the results."New value: +"Continuation, empty-result guidance or result caveats; absent when none."
    • changedOutput schema / properties / triggers / items / properties / dataset / description
      Previous value: -"Primary dataset named in the title, such as SingleMu, when the title names exactly one; absent when it names several (see datasets)."New value: +"Title dataset (e.g. SingleMu) only if exactly one is named; absent for several (see datasets)."
    • changedOutput schema / properties / triggers / items / properties / datasets / description
      Previous value: -"Every primary dataset the title names, in order, such as [\"DoubleMu\", \"DoubleMuParked\"]; absent when it names none."New value: +"All title datasets in order (e.g. [\"DoubleMu\", \"DoubleMuParked\"]); absent when none named."
    • changedOutput schema / properties / triggers / items / properties / first_seen / properties / menu_recid / description
      Previous value: -"Recid of the HLT menu record (Supplementaries::Configuration HLT), when linked; cern_opendata_get_records reads it."New value: +"Linked HLT-menu recid (Supplementaries::Configuration HLT); read with cern_opendata_get_records."
    • changedOutput schema / properties / triggers / items / properties / last_seen / properties / menu_recid / description
      Previous value: -"Recid of the HLT menu record (Supplementaries::Configuration HLT), when linked; cern_opendata_get_records reads it."New value: +"Linked HLT-menu recid (Supplementaries::Configuration HLT); read with cern_opendata_get_records."
  2. Changed5 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Records per page, 1-50."New value: +"Records per page, 1-50. A value above 50 is served at 50."
    • changedInput schema / properties / limit / maximum
      Previous value: -50New value: +10000
    • changedInput schema / properties / page / description
      Previous value: -"Page number, from 1. page × limit may not exceed 10,000."New value: +"Page number, from 1, counting pages of the limit applied. page × limit may not exceed 10,000."
    • changedInput schema / properties / path / description
      Previous value: -"Trigger path name (HLT_IsoMu24, AlCa_EcalPi0) or prefix with one trailing wildcard (HLT_IsoMu*): a letter or digit, then letters, digits and underscores. Trimmed. A path starting HLT_ in any case is searched as given, with the prefix case fixed, and matches path names in any case. Any other path is matched against record path names in the case given, the whole name or, with a trailing *, its start (AlCa_EcalPi0, AlCa_*), and is also searched with HLT_ prepended (IsoMu24 finds HLT_IsoMu24, 60Jet10 finds HLT_60Jet10). A trailing version suffix (_v3 or _v*) is dropped, since records list versions as V<n>."New value: +"Trigger path name (HLT_IsoMu24, AlCa_EcalPi0) or prefix with one trailing wildcard (HLT_IsoMu*): a letter or digit, then letters, digits and underscores. A path starting HLT_ in any case is searched as given, with the prefix case fixed, and matches path names in any case. Any other path is matched against record path names in the case given, the whole name or, with a trailing *, its start (AlCa_EcalPi0, AlCa_*), and is also searched with HLT_ prepended (IsoMu24 finds HLT_IsoMu24, 60Jet10 finds HLT_60Jet10). A trailing version suffix (_v3 or _v*) is dropped, since records list versions as V<n>."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `page_window_exceeded`: page × limit exceeds 10,000, the deepest match the portal pages to. `rate_limited`: The portal's 60-a-minute budget is spent: it answered 429, or the request could not start within the call's deadline. data.retryAfter is set. `upstream_unreadable`: The portal answered with a body the server could not read: not JSON, missing the expected envelope, or over the byte ceiling (then data.retryable is false). Also raised when a search answers 404. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `page_window_exceeded`: page × limit, the limit applied (at most 50), exceeds 10,000, the deepest match the portal pages to. `rate_limited`: The portal's 60-a-minute budget is spent: it answered 429, or the request could not start within the call's deadline. data.retryAfter is set. `upstream_unreadable`: The portal answered with a body the server could not read: not JSON, missing the expected envelope, or over the byte ceiling (then data.retryable is false). Also raised when a search answers 404. Other values are possible when a failure originates below the handler."
  3. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, open-world semantics, yet the description adds real behavioral detail beyond them: what each match contains (primary datasets, first/last online run, per-version run ranges, L1 seed, HLT menu links), the 2011-2016 coverage window, and an explicit negative — prescale factors are not returned — with the exact route to obtain them. Disclosing a missing field and its workaround is the kind of context that prevents a wrong tool call.

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

Conciseness3/5

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

The lead sentence is well front-loaded, but the final sentence ballooning into PrescaleService blocks and luminosity-section columns is heavy for a search tool and reads as documentation prose rather than invocation guidance. Roughly half the text serves the prescale digression instead of telling the agent how to call the tool.

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?

With an output schema present, return-value structure need not be explained, and the description nonetheless flags the notable omission (no prescales) and the year coverage limit, which are the gaps an agent would otherwise trip on. Pagination is left entirely to the schema, which is acceptable, but a note on expected match volume would have completed the picture.

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%, and the path/year parameter docs already spell out case handling, wildcard rules, the HLT_ auto-prepend, version-suffix dropping, and the 2011-2016 range. The description restates the exact-name-vs-prefix distinction and the optional year but adds little beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource ('Look up CMS High-Level Trigger paths') and immediately pins the accepted key forms (exact name HLT_IsoMu24 or prefix HLT_IsoMu*), which separates it from the generic cern_opendata_search_records / get_records siblings. The scope line ('Covers CMS open data from 2011-2016') adds the domain boundary an agent needs to know when this tool will not help.

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?

Gives clear usage context — use it with a path name or prefix, optionally narrowed to one data-taking year — and explicitly names sibling tools (cern_opendata_list_files with a menu_recid, plus the CMS-Luminosity-Information collection) for the prescale data this tool does not return. It stops short of stating when to prefer this over cern_opendata_search_records, so it is context-rich but not a full when/when-not/alternative matrix.

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.