Skip to main content
Glama
doricomcp

doricomcp

by kulbiq

get_bar_map

Convert bar numbers into score positions and vice versa, using cached time signatures and optional key signatures to locate measures in a Dorico flow.

Instructions

Bar numbers <-> positions, time signatures (read by Dorico's own equality API, cached) and optionally key signatures (include_keys: a letter-entry probe into an empty span; it plays 7 audition notes).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_bar_map"
  }
}

Input Schema

NameRequiredDescriptionDefault
flowNo
include_keysNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations present, the description carries the full burden, and it does disclose real behavior beyond the schema: results come from Dorico's own equality API and are cached, and include_keys performs a letter-entry probe that plays 7 audition notes. That audible side effect is exactly the kind of thing an agent must know before invoking it. However, it never states read-only status explicitly, nor failure behavior or result shape, leaving meaningful gaps for a zero-annotation tool.

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?

The text is dense and front-loaded: the returned data types come first, then the optional flag with its cost. Every clause carries information and there is no filler. The telegraphic phrasing ('Bar numbers <-> positions') and a parenthetical that runs long slightly reduce immediate readability.

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

Completeness3/5

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

For a two-parameter read tool with no annotations and no output schema, the description covers the domain and the risky option well, but leaves the flow parameter and the returned structure undefined. An agent can decide whether to call it, yet must discover the response shape and flow semantics by trial.

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 0%, so the description must compensate, and it does so for only one of the two parameters: include_keys is explained in detail, including the probe mechanism and the audition-note side effect. The flow parameter (defaulting to 0) is never mentioned, so an agent cannot tell what it selects or whether it needs to set it.

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

Purpose4/5

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

The description names the resource (bar map) and enumerates what it yields: bar-number-to-position mapping, time signatures, and optional key signatures. That is specific enough for an agent to know it is a lookup tool rather than a mutation. It does not distinguish itself from near-neighbours like get_score_overview or get_selection, so it stops short of a 5.

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

Usage Guidelines3/5

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

There is no explicit when-to-use/when-not statement or named alternative. The only guidance is implicit and attached to the optional flag: request include_keys when key signatures are needed, with the cost spelled out. An agent must infer the rest of the routing decision.

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