BluesPrince/thiri-mcp

🎨 Art & Culture
0 Views
0 Installs

πŸ“‡ ☁️ 🏠 - Deterministic music-theory server: chord & Roman-numeral analysis, voicing, and reharmonization β€” computed, not hallucinated. Hosted at mcp.thiri.ai, no third-party account required. npx @bluesprincemedia/thiri-mcp

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "bluesprince-thiri-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "bluesprince-thiri-mcp"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

🎷 THIRI Chord Intelligence β€” MCP Server

npm npm downloads CI license MCP Glama score

Give your AI real music theory. THIRI is the deterministic music theory MCP server + API for AI builders β€” it lets Claude, Cursor, or any MCP agent analyze chords, run roman-numeral analysis, generate voicings, and reharmonize progressions with answers that are computed, not guessed.

LLMs hallucinate music theory: wrong notes, fake roman numerals, voicings that don't voice-lead. THIRI is a deterministic engine (pitch-class-set theory over β„€/12) behind a hosted API β€” so C7sus4 keeps its suspension, Caug spells C E G#, and "Coltrane changes on Dm7 G7 Cmaj7" returns Cmaj7 Ab7 Abmaj7 E7, every time.

Downstream of Suno / Udio or any generator? Wrap the output and get a correct chord chart your agent can trust. And unlike tonal.js or music21, THIRI is hosted and agent-native (no install, any language) β€” and it reharmonizes and voice-leads, not just looks chords up.

⭐ If this is useful, star the repo β€” it helps other musicians and agent builders find it.

Musicians: 2-minute setup (no code)

  1. Get a free key at build.thiri.ai/developers
  2. In Claude: Settings β†’ Connectors β†’ Add custom connector β†’ URL https://mcp.thiri.ai/mcp β†’ paste your sk_live_ key
  3. Ask Claude: "Reharmonize Dm7 G7 Cmaj7 with Coltrane changes."

That's it β€” no install, no config file. Builders: full install options (Claude Code, Desktop config, raw HTTP) are below.

What you can ask

"Analyze Dm7b5 in C." β†’ iiΓΈ7, half-diminished, borrowed predominant, + scale options "What notes are in C7sus4?" β†’ C F G Bb (the suspension survives) "Give me a rootless Cmaj7 voicing, then voice-lead into Dm7." β†’ voicings + a voice-leading score "Reharmonize Dm7 G7 Cmaj7 with Coltrane changes." β†’ Cmaj7 Ab7 Abmaj7 E7

Tools

ToolWhat it does
analyze_chordChord β†’ root, quality, intervals, roman numeral & harmonic function (secondary dominants, modal-interchange labels)
resolve_chordChord β†’ spelled notes (enharmonically correct), frequencies, MIDI, scale recommendations
generate_voicingInstrument-ready voicings (rootless/bill_evans, shell, triad, pad, guide-tones, drop-2/3); pass previousNotes for a voice-leading score; colorPreferences for explicit tensions
reharmonizeProgression reharmonization β€” 8 techniques: tritone_sub, ii_v_insertion, modal_interchange, diminished_passing, secondary_dominant, chain_of_dominants, coltrane_changes, backdoor (or auto)
conduct_bandNatural-language band conduct β†’ lanes + MIDI (hosted MCP v0.3+)

Runs on the v2 grid engine β€” correct sus chords, real triads, enharmonic spelling, all altered dominants β€” with request timeouts, quota reporting, and structured errors.

Local Csound MCP (Desktop only)

For hear-it agent loops (conduct β†’ Csound score β†’ WAV), add a second local server alongside hosted theory tools:

{
  "mcpServers": {
    "thiri": {
      "command": "npx",
      "args": ["-y", "@bluesprincemedia/thiri-mcp"],
      "env": { "THIRI_API_KEY": "sk_live_your_key" }
    },
    "thiri-conductor": {
      "command": "npx",
      "args": ["-y", "@bluesprincemedia/thiri-mcp", "thiri-conductor-mcp"],
      "env": { "THIRI_API_KEY": "sk_live_your_key" }
    },
    "thiri-composition": {
      "command": "npx",
      "args": ["-y", "@bluesprincemedia/thiri-mcp", "thiri-composition-mcp"]
    }
  }
}
BinTools
thiri-conductor-mcpconduct_band, build_csound_score, render_csound_wav, play_audio, search_csound_corpus, render_with_tension
thiri-composition-mcpComposition IR tools + play_composition (fluidsynth preview)

Requires Csound CLI on PATH for WAV render. Proof: npm run test:conductor Β· live docs: build.thiri.ai/lab/conductor-mcp Β· agent recipes.

Conductor Agent (vibe compose)

End-to-end persona for local vibe composition β€” skill, CLI, and Band dashboard panel:

EntryCommand / path
Cursor skillCopy THIRI/lab/skills/thiri-conductor-agent/SKILL.md β†’ ~/.cursor/skills/thiri-conductor-agent/SKILL.md
CLIcd thiri-mcp && npm run conductor:vibe -- "gospel ballad in F minor"
Dashboardnpm run dev:studio β†’ localhost:5173/band β†’ Vibe Conduct panel
Lab proofbuild.thiri.ai/lab/conductor-agent

Dual MCP config above + mapConductResultToStudioModules after each conduct_band. Last CLI render writes ~/.thiri/conductor-last.json (local only, not committed).

Flagship agent recipe (analyze β†’ conduct β†’ render β†’ critique)

Paste in order after dual MCP config above:

  1. Analyze β€” "Analyze Dm7 G7 Cmaj7 in key C with analyze_chord; summarize roman numerals and tension."
  2. Conduct β€” "conduct_band: warm Rhodes pad, walking bass, brush drums, 8 bars medium swing in C."
  3. Render β€” "build_csound_score from lanes, then render_csound_wav at tempo 120."
  4. Critique β€” "play_audio; critique voice-leading and register balance; suggest one revision."

Full prompts: build.thiri.ai/lab/agent-recipes

Hosted vs local boundary

SurfaceCsound WAV
mcp.thiri.ai / hosted connectorNo β€” theory + conduct_band lanes only
Local thiri-conductor-mcpYes β€” requires Csound CLI on your machine

Install

Get a free key at build.thiri.ai/developers, then pick a path:

Claude Desktop / web / mobile β€” hosted (one-click custom connector, nothing to install): Settings β†’ Connectors β†’ Add custom connector β†’ URL https://mcp.thiri.ai/mcp β†’ paste your sk_live_ key on the consent page. Same 4 tools, same key, same quota β€” no config file, no npx.

Claude Code (one line):

claude mcp add thiri --env THIRI_API_KEY=sk_live_your_key -- npx -y @bluesprincemedia/thiri-mcp

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "thiri": {
      "command": "npx",
      "args": ["-y", "@bluesprincemedia/thiri-mcp"],
      "env": { "THIRI_API_KEY": "sk_live_your_key" }
    }
  }
}

Prefer raw HTTP? (no MCP needed)

The same engine is a plain REST API:

curl -X POST https://chords.thiri.ai/v2/analyze \
  -H "Authorization: Bearer YOUR_KEY" -H "content-type: application/json" \
  -d '{"chord":"Dm7b5","key":"C"}'

Four endpoints: /v2/analyze, /v2/resolve, /v2/voicing, /v2/reharmonize, /v2/conduct. See openapi.yaml.

Environment variables

VariableDefaultDescription
THIRI_API_KEY(none)Bearer token (sk_live_…) β€” get one at build.thiri.ai/developers
THIRI_API_URLhttps://chords.thiri.aiAPI base (override only for local dev)

Development

npm install && npm run build && npm start

License

Dual-licensed β€” Β© 2026 Blues Prince Media:

  • Client / MCP glue (root, src/, *-server.mjs, tests, docs): MIT β€” open.
  • vendor/ engine (THIRI composition engine + Csound core): PolyForm Noncommercial 1.0.0 β€” source-available, no commercial use or resale. See vendor/LICENSE.md. Commercial licensing: api@bluesprince.ai.

The composition engine is being migrated behind the API (hosted service); the Csound renderer to a container render service. Until that ships, the engine source lives here under the noncommercial terms above rather than MIT.

Related MCP Servers

8enSmith/mcp-open-library

πŸ“‡ ☁️ - A MCP server for the Open Library API that enables AI assistants to search for book information.

🎨 Art & Culture0 views
abhiemj/manim-mcp-server

🐍 🏠 πŸͺŸ 🐧 - A local MCP server that generates animations using Manim.

🎨 Art & Culture0 views
AceDataCloud/MCPFlux

🐍 ☁️ - Flux AI image generation and editing (Black Forest Labs) via Ace Data Cloud API.

🎨 Art & Culture0 views
AceDataCloud/MCPNanoBanana

🐍 ☁️ - NanoBanana AI image generation and editing with virtual try-on and product placement in realistic scenes.

🎨 Art & Culture0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

Last checked: 7/28/2026, 6:47:14 PM

Unclaimed listing (imported or pending owner verification). Claim it β†’
β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.