Skip to main content
Glama

Guitar Practice Routine App — Chord Charts

Get a chord chart by id

get_chord_chart_by_id
Read-only

Fetch one specific chord voicing by its numeric id, as returned by get_chord_chart_by_name. Use this to re-render a chart the user already saw without looking it up again.

Input Schema

NameRequiredDescriptionDefault
idNoNumeric chord id, e.g. 123 (a numeric string like "123" also works).
formatNoWhich representations to return. Defaults to "text", which includes a direct URL to a PNG of the chart — embed that where your surface renders images. Use "image" or "both" only if you need the PNG bytes inline; they cost image tokens and many clients bury them.
contextYesExplain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution."

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / id / description
      Previous value: -"Numeric chord id."New value: +"Numeric chord id, e.g. 123 (a numeric string like \"123\" also works)."
    • removedInput schema / properties / id / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / id / minimum
      Removed value: --9007199254740991
    • changedInput schema / properties / id / type
      Previous value: -"integer"New value: +[
      +  "number",
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / llm_model
      Removed value: -{
      -  "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.",
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "context",
      -  "llm_model"
      -]New value: +[
      +  "context"
      +]
  2. Changed1 schema field changed
    • changedInput schema / required
      Previous value: -[
      -  "id",
      -  "context",
      -  "llm_model"
      -]New value: +[
      +  "context",
      +  "llm_model"
      +]
  3. Changed5 schema fields changed
    • changedInput schema / properties / context / description
      Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\""
    • removedInput schema / properties / id / exclusiveMinimum
      Removed value: -0
    • addedInput schema / properties / id / minimum
      Added value: +-9007199254740991
    • addedInput schema / properties / llm_model
      Added value: +{
      +  "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "id",
      -  "context"
      -]New value: +[
      +  "id",
      +  "context",
      +  "llm_model"
      +]
  4. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful provenance context (the id originates from get_chord_chart_by_name) but says nothing about failure behavior for invalid ids or what the returned chart representation looks like, so it clears the lower annotated bar only modestly.

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

Conciseness5/5

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

Two tight sentences with the core action front-loaded and the motivating use case second. No filler, no restatement of the title, and every clause carries information.

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 full schema coverage, a clear read-only annotation set, and no output schema to explain, the description covers what an agent needs: what is fetched, what key identifies it, the id's source, and the intended scenario. Only the invalid-id/error path is left unaddressed, which is a minor gap for a simple read tool.

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%, so id, format, and context are already well documented, including defaults and enum tradeoffs for format. The description reinforces that the id is numeric and where it comes from but adds no syntax or format detail beyond the schema, which is the expected baseline when the schema carries the load.

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 (Fetch), resource (one specific chord voicing), and key (numeric id), and explicitly ties the id back to the sibling tool get_chord_chart_by_name. This lets an agent distinguish it from the by-name lookup sibling without opening either schema.

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 a clear use case: re-rendering a chart the user already saw, avoiding a redundant name lookup, which implicitly routes id-known cases here and lookups to get_chord_chart_by_name. It does not explicitly state when not to use it, but the context is unambiguous in practice.

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.