Skip to main content
Glama

THIRI Chord Intelligence — Music Theory MCP Server

Server Details

Deterministic Music Theory for Claude, Cursor, and Autonomous AI Agents

Large Language Models (LLMs) frequently hallucinate music theory, leading to incorrect notes, false Roman numerals, and broken voice leading. THIRI solves this by providing a deterministic, mathematical music-theory engine (pitch-class-set theory over ℤ/12) directly to your AI.

It gives AI assistants precise, reproducible harmonic reasoning in milliseconds, allowing them to write correct musical scores, analyze progression

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsC

Average 3/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clear, distinct purpose: analyze parses chord structure, generate creates voicings, reharmonize alters progressions, and resolve provides resolution details. No functional overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (analyze_chord, generate_voicing, reharmonize, resolve_chord), with clear active verbs and specific nouns.

Tool Count4/5

Four tools is slightly below average but appropriate for a specialized music theory server. Each tool addresses a core aspect of chord handling without unnecessary bloat.

Completeness4/5

The set covers chord analysis, voicing generation, reharmonization, and resolution—core tasks in chord intelligence. Minor gaps like chord comparison or scale generation are absent but acceptable given the focused scope.

Available Tools

4 tools
analyze_chordBInspect

Parse a chord into root, quality, intervals, and (with a key) roman numeral + function.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
chordYes
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the parsing action but omits details such as what happens on invalid input, whether the operation is safe/read-only, error handling, or output format. For a tool with zero annotation coverage, this lack of behavioral context is a significant gap.

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 conveys the core functionality without extraneous information. It is front-loaded with the key action and outputs, achieving maximal conciseness.

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

Completeness2/5

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

Despite moderate complexity (music theory knowledge needed), the description is very brief. It lacks details on acceptable chord notation, interval interpretation, harmonic function definition, and return structure. With no output schema and 0% schema coverage, the description should compensate with additional context, but it does not.

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 coverage is 0%, so the description must add meaning. It clarifies that 'chord' is the symbol to parse and 'key' is optional, affecting roman numeral and function output. However, it does not specify the expected format for the chord string (e.g., 'C#m7'), note spelling conventions, or valid key values. This adds some value beyond the empty schema but is not comprehensive.

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 clearly specifies the tool's function: parsing a chord into root, quality, intervals, and optionally roman numeral with function given a key. It uses a specific verb ('Parse') and resource ('chord'), and the outputs are distinctly listed, differentiating it from siblings like 'generate_voicing' or 'reharmonize'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or context for choosing it over siblings like 'resolve_chord' or 'reharmonize'. The usage context is only implicitly understood from the tool's purpose.

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

generate_voicingCInspect

Instrument-ready voicing in a style; pass previousNotes for a voice-leading score.

ParametersJSON Schema
NameRequiredDescriptionDefault
chordYes
styleNo
octaveNo
keyContextNo
previousNotesNo
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It states the tool produces a voicing but does not describe return format, side effects, or permissions. It lacks detail on whether the operation is read-only or modifies state.

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 description is a single sentence that immediately states the main purpose and an optional feature. It is concise and front-loaded, though it sacrifices detail for brevity.

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

Completeness2/5

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

Given the tool has 5 parameters, no output schema, and no annotations, the description is insufficient. It does not clarify what 'instrument-ready' means, how style affects output, or what the return value looks like. The presence of sibling tools heightens the need for more contextual completeness to avoid confusion.

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

Parameters2/5

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

With 0% schema description coverage, the description should explain parameters beyond their names. Only `previousNotes` receives context (used for voice-leading score). Other parameters like `chord`, `style`, `octave`, and `keyContext` are left without explanation, leaving significant ambiguity.

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 clearly indicates the tool generates an instrument-ready voicing in a style, and mentions optional voice-leading via previousNotes. It distinguishes itself from siblings like analyze_chord (analysis) and reharmonize (reharmonization) by focusing on voicing generation. However, the verb 'generate' is implied rather than explicit.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (analyze_chord, reharmonize, resolve_chord). The mention of 'pass previousNotes for a voice-leading score' hints at a specific use case but does not provide selection criteria or exclusions.

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

reharmonizeCInspect

Reharmonize a progression. Techniques: tritone_sub, ii_v_insertion, modal_interchange, diminished_passing, secondary_dominant, chain_of_dominants, coltrane_changes, backdoor (or auto).

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
techniqueNo
progressionYes
Behavior2/5

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

No annotations are provided, so the description bears full burden. It discloses that a technique is applied to a progression, but does not specify whether the tool outputs a new progression or modifies the input, nor any side effects, permissions, or constraints beyond the technique list.

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 description is a single sentence, very concise, and front-loads the core action ('reharmonize a progression'). The techniques are listed efficiently. However, it sacrifices completeness for brevity.

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

Completeness2/5

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

Given 3 parameters (one required), no output schema, and no annotations, the description is incomplete. It does not explain the output (e.g., new progression), how the key parameter affects behavior, or provide usage context. The tool performs a non-trivial operation and needs more detail.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate for missing param documentation. It clarifies that 'progression' is an array of strings and lists allowed 'technique' values, but does not explain 'key' or the fact that 'key' is optional. The meaning of 'technique' is partially covered, but not comprehensively.

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 clearly indicates the tool reharmonizes a chord progression by listing specific techniques. The verb 'reharmonize' and resource 'progression' are specific, and the sibling tools (analyze_chord, generate_voicing, resolve_chord) are distinct in purpose.

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

Usage Guidelines2/5

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

No guidance on when to use reharmonize vs. siblings or which technique to choose. The description implies choosing a technique from the list but does not explain decision criteria or prerequisites (e.g., key requirement).

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

resolve_chordBInspect

Resolve a chord to spelled notes, frequencies, MIDI, and recommended scales.

ParametersJSON Schema
NameRequiredDescriptionDefault
chordYes
Behavior3/5

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

Without annotations, the description carries full behavioral disclosure. It states what the tool does but omits details like input format requirements, behavior on invalid input, or output structure. Adequate but not comprehensive.

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 with no superfluous words. It efficiently conveys the tool's purpose.

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 and no annotations, the description should provide more detail on the return structure. It lists outputs but not their format, which is a gap for a single-parameter tool.

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

Parameters2/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. It implies the 'chord' parameter is a chord name but does not specify accepted formats (e.g., 'C major' vs 'Cmaj7'), leaving ambiguity.

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 clearly states the tool resolves a chord into specific outputs: spelled notes, frequencies, MIDI, and recommended scales. This clearly distinguishes it from sibling tools like analyze_chord, generate_voicing, and reharmonize.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus its siblings. It does not mention contexts, exclusions, or prerequisites.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources