THIRI Chord Intelligence

ai.thiri由 thiri.ai 发布官方发布者v0.5.2更新于 Oct 24, 2026

Deterministic music theory for agents: analyze, voice, reharmonize, conduct — computed, not guessed

已验证Streamable HTTP可网页运行媒体与设计AI 与机器学习

概览

AI 生成的概览

一个确定性的乐理服务器,让助手分析和弦、拼写音符、生成声部配置并重新和声进行。

可以做什么
分析和弦,给出根音、性质、音程、罗马数字与和声功能,同时返回爵士与古典读法、其他可行解读,并可为小调传入音阶。将和弦解析为正确拼写的音符、频率、MIDI 编号与推荐音阶。按风格生成可直接演奏的声部配置,如无根音、shell、三和弦、pad、导音与 drop-2/3,传入前一组音符还可得到声部进行评分。用三全音替代、ii-V 插入、调式交替、减和弦经过、副属和弦、属和弦链、Coltrane 变化与后门等手法重新和声进行,也可自动选择。
适用场景
适合需要可靠计算而非猜测的乐理结果的场景:和弦谱、罗马数字分析、编曲声部配置,或为进行提供重新和声思路。也适合核对或修正音乐生成器输出的和弦。
运行要求
需要 THIRI API 密钥,通过环境变量 THIRI_API_KEY 提供,或在添加托管连接器时于授权页粘贴。可使用远程端点,或用 npx 运行本地 npm 包;需要访问 THIRI API 的网络连接。免费密钥由服务方提供。
安装前请注意
API 密钥是正式密钥,应避免写入共享配置或代码仓库。请求会发送到第三方托管 API,和弦与进行数据会离开本机。用量受与该密钥绑定的配额限制。托管端点只提供乐理与乐队声部数据,音频渲染需另装本地服务器。

安装

在 SourceWeft 中

  1. 打开 控制台中的 THIRI Chord Intelligence,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/ai.thiri%2Fchord-intelligence/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "thiri-chord-intelligence": {
      "type": "http",
      "url": "https://mcp.thiri.ai/mcp"
    }
  }
}

README

🎷 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.

👥 Join the AI Music Builders: Want elevated rate limits, direct founder support, and early access to upcoming tools? Join our developer community on Skool — T.H.I.R.I. Builders.

Musicians: 2-minute setup (no code)

  1. Get a free key at build.thiri.ai/keys
  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.

Conductor & composition companions (Desktop only)

For hear-it agent loops (conduct → server-side render → WAV through your speakers), add a second local server alongside hosted theory tools:

json
{  "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, render_audio (server-side Csound via POST /v2/render), play_audio, search_corpus
thiri-composition-mcpComposition IR tools + play_composition (fluidsynth preview)

Rendering runs server-side as of v0.5.0 — no Csound install needed. 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 — "render_audio from the conduct result 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

SurfaceAudio render
mcp.thiri.ai / hosted connectorNo — theory + conduct_band lanes only
Local thiri-conductor-mcpYes — WAV rendered server-side (POST /v2/render), played locally; no Csound install needed

Install

Get a free key at build.thiri.ai/keys, 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 5 tools, same key, same quota — no config file, no npx.

Claude Code (one line):

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

Claude Desktop (claude_desktop_config.json):

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:

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

Five 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/keys
THIRI_API_URLhttps://chords.thiri.aiAPI base (override only for local dev)

Development

sh
npm install && npm run build && npm start

License

PolyForm Noncommercial 1.0.0 — © 2026 Blues Prince Media. Free for personal, research, and noncommercial use; commercial use requires a license ([email protected]). See LICENSE. Versions published at or before v0.5.0 remain under the MIT/PolyForm dual license they shipped with.

As of v0.5.0 the composition engine and Csound renderer run server-side behind the hosted API (POST /v2/compose, POST /v2/render); their source no longer ships in this package.

来源:README.md,提交 4dce404

工具

4

analyze_chord

Analyze Chord

Parse a chord into root, quality, intervals, and (with a key) roman numeral + function. Numerals use the jazz convention by default (Cmaj7 in Am = ♭IIIΔ7); both jazz and classical numerals are always returned in `numerals`, and other valid readings in `alternatives`. Pass `scale` to read a minor key as harmonic or melodic minor.

输入参数keychord必填scaleconvention

resolve_chord

Resolve Chord

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

输入参数chord必填

generate_voicing

Generate Voicing

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

输入参数chord必填styleoctavekeyContextpreviousNotes

reharmonize

Reharmonize Progression

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

输入参数keytechniqueprogression必填

版本历史

1
  1. v0.5.2最新Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。