Skip to main content
Glama
BluesPrince

THIRI Chord Intelligence — Music Theory MCP Server

Server Quality Checklist

92%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.3.1

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: analyze_chord parses chord symbols, generate_voicing creates instrument voicings, reharmonize replaces progressions, and resolve_chord outputs note details. No functional overlap.

    Naming Consistency5/5

    All tools follow verb_noun pattern with underscores (e.g., analyze_chord, generate_voicing). The naming is uniform and predictable.

    Tool Count5/5

    Four tools is appropriate for a focused music theory server. Each tool earns its place by covering core chord operations without redundancy.

    Completeness4/5

    The set covers essential chord intelligence tasks: analysis, voicing, reharmonization, and resolution. Minor gaps exist (e.g., no progression generation tool), but the core workflow is well-supported.

  • Average 4.3/5 across 4 of 4 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 44 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is failing
  • This repository is licensed under PolyForm Noncommercial License 1.0.0.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • This repository includes a glama.json configuration file.

  • This server has been verified by its author.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

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

    Annotations already declare readOnlyHint and idempotentHint, so the description's primary transparency contribution is listing the returned data types (note names, frequencies, MIDI numbers, scales). This adds useful behavioral context beyond what annotations provide.

    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?

    The description is a single sentence that efficiently enumerates four distinct output categories. Every word contributes value, no repetition or fluff.

    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?

    Despite lacking an output schema, the description adequately lists the main return values. However, it could be more complete by noting error handling or format details. Still, for a simple lookup tool, it is reasonably complete.

    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?

    The single parameter 'chord' has 100% schema description coverage with examples. The description does not add extra meaning about the parameter syntax or format beyond the schema, so a baseline score of 3 is appropriate.

    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 uses the specific verb 'resolve' and identifies the resource as a chord symbol. It clearly lists the outputs (note names, frequencies, MIDI numbers, scales), which distinguishes it from sibling tools like analyze_chord (analysis) and generate_voicing (voicing).

    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?

    The description implies this tool is for retrieving detailed chord data, but it does not explicitly state when to prefer it over siblings (e.g., analyze_chord, reharmonize). No usage context or exclusions are provided.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds behavioral detail (returns a voiceLeadingScore) without contradicting annotations.

    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 sentences: first defines the core purpose, second adds voice leading usage. No wasted words, front-loaded, and all information is relevant.

    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?

    With no output schema, the description could detail the return format (e.g., a JSON object with voicing notes and score). The current description mentions 'instrument-ready voicings' and 'voiceLeadingScore' but is vague on structure. Adequate but not complete.

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

    Parameters4/5

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

    Schema coverage is 100%, so baseline is 3. The description adds value by explaining the relationship between previousNotes and previousVoicing and returning a voiceLeadingScore, which goes beyond the individual parameter descriptions.

    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 uses a specific verb ('generate') and resource ('instrument-ready voicings') and lists all supported styles. It clearly distinguishes from sibling tools (analyze_chord, reharmonize, resolve_chord) which serve different purposes.

    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?

    The description explains how to use previousNotes or previousVoicing for voice leading, which provides clear context. It doesn't explicitly exclude scenarios or compare to siblings, but the context is sufficient for an AI to decide when to use this tool.

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

  • Behavior5/5

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

    Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which matches the parse-only behavior described. The description adds value by listing specific return components (root, quality, intervals, extensions, harmonic function) and conditional fields with key, beyond what annotations provide.

    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?

    The description is two sentences, no wasted words, and front-loads the primary function. Every sentence adds value, making it efficient and easy to parse.

    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?

    No output schema exists, so the description bears full burden. It clearly explains return values for both with and without key scenarios, covering the main outputs. It could mention error handling or invalid input, but what's provided is sufficient for most use cases.

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

    Parameters4/5

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

    Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining that providing a key returns Roman numeral, scale degree, and diatonic status, which is not in the schema. This clarifies the key parameter's effect on output, earning a 4.

    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 explicitly states it parses a chord symbol into root, quality, intervals, extensions, and harmonic function. It distinguishes itself from sibling tools like 'generate_voicing' (creates voicings) and 'reharmonize' (changes harmony), so purpose is clear and specific.

    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?

    No explicit when-to-use or when-not-to-use guidance is provided. Usage is implied by the tool name and description, but the description does not mention alternatives or exclusions, so guidance is insufficient.

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

  • Behavior4/5

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

    Description adds value beyond annotations by specifying browser/client synthesis and local rendering path for WAV. Annotations already declare readOnlyHint=true, which is consistent as no external state is mutated.

    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 sentences, no wasted words, front-loaded with core purpose. Every sentence adds value.

    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?

    Describes outputs (tempo, lanes, lead sheet, MIDI) and synthesis context despite no output schema. For a complex creative tool, this is reasonably complete.

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

    Parameters4/5

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

    Schema coverage is 100%, baseline 3. Description adds meaningful example for prompt ('12-second neo-soul band in Eb...') and clarifies durationSec as optional override, enhancing understanding.

    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?

    Specific verb 'Arrange a 4-piece band' with clear resource and outcome. Distinct from sibling chord-analysis tools.

    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?

    States output and local rendering requirement explicitly, providing context for use vs alternatives. No when-not-to-use guidance, but siblings are clearly different.

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

  • Behavior4/5

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

    Annotations already provide readOnly and idempotent hints. Description adds behavioral details: returns one alternative per technique with progression, changes, explanation; 'auto' returns all applicable techniques. No contradictions.

    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 focused sentences plus a list and note. Front-loaded with core purpose. No extraneous words; every sentence adds value.

    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?

    Adequately covers return format, technique behavior, and prerequisites. No output schema, but description explains outputs. Could briefly explain each technique, but not essential given jazz context.

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

    Parameters4/5

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

    Schema covers all parameters with descriptions (100% coverage). Description adds value by explaining default technique behavior and key requirement for certain techniques, exceeding schema info.

    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?

    Clearly states 'Reharmonize a chord progression using jazz techniques' with specific verb and resource. Distinguishes from sibling tools (analyze_chord, generate_voicing, resolve_chord) by focusing on reharmonization. Lists techniques and return format.

    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?

    Indicates when to use (reharmonization context) and notes conditions for some techniques (require key). Does not explicitly compare to alternatives, but sibling tool names imply distinct purposes.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

thiri-mcp MCP server

Copy to your README.md:

Score Badge

thiri-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BluesPrince/thiri-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server