THIRI Chord Intelligence
officielMoteur déterministe de théorie musicale permettant aux agents d'IA d'analyser, résoudre, voicer et réharmoniser des accords.
Que pouvez-vous faire avec THIRI Chord Intelligence MCP ?
- Analyser la fonction d’accord — Demandez à
analyze_chordde renvoyer la fondamentale, la qualité, les intervalles, le chiffrage romain et la fonction harmonique pour tout accord dans une tonalité. - Résoudre les notes de l’accord — Utilisez
resolve_chordpour obtenir des notes orthographiées de manière enharmonique correcte, les valeurs MIDI, les fréquences et des recommandations de gammes. - Générer des voicings instrumentaux — Demandez
generate_voicingavec des styles comme rootless, shell ou drop-2, ainsi que des scores de conduite de voix lorsque vous passez des notes précédentes. - Réharmoniser des progressions — Appliquez des techniques de
reharmonizetelles que la substitution tritonique, les changements Coltrane ou les dominantes secondaires à toute séquence d’accords. - Diriger un groupe — Utilisez
conduct_bandpour traduire des instructions en langage naturel en pistes instrumentales et données MIDI.
Documentation
🎷 THIRI Chord Intelligence — Serveur MCP
Donnez à votre IA une vraie théorie musicale. THIRI est le serveur MCP + API de théorie musicale déterministe pour les constructeurs d'IA — il permet à Claude, Cursor, ou tout agent MCP d'analyser des accords, d'effectuer une analyse en chiffres romains, de générer des voicings et de réharmoniser des progressions avec des réponses qui sont calculées, pas devinées.
Les LLM hallucinent la théorie musicale : mauvaises notes, faux chiffres romains, voicings sans conduite de voix. THIRI est un moteur déterministe (théorie des ensembles de classes de hauteurs sur ℤ/12) derrière une API hébergée — ainsi C7sus4 conserve sa suspension, Caug épelle C E G#, et "Coltrane changes sur Dm7 G7 Cmaj7" renvoie Cmaj7 Ab7 Abmaj7 E7, à chaque fois.
En aval de Suno / Udio ou de tout générateur ? Enveloppez la sortie et obtenez une grille d'accords correcte à laquelle votre agent peut se fier. Et contrairement à tonal.js ou music21, THIRI est hébergé et natif pour les agents (pas d'installation, tout langage) — et il réharmonise et conduit les voix, il ne se contente pas de rechercher des accords.
⭐ Si cela vous est utile, mettez une étoile au dépôt — cela aide d'autres musiciens et constructeurs d'agents à le trouver.
Musiciens : configuration en 2 minutes (sans code)
- Obtenez une clé gratuite sur build.thiri.ai/developers
- Dans Claude : Paramètres → Connecteurs → Ajouter un connecteur personnalisé → URL
https://mcp.thiri.ai/mcp→ collez votre clésk_live_ - Demandez à Claude : "Réharmonisez Dm7 G7 Cmaj7 avec les changements de Coltrane."
C'est tout — pas d'installation, pas de fichier de configuration. Constructeurs : les options d'installation complètes (Claude Code, configuration Desktop, HTTP brut) sont ci-dessous.
Ce que vous pouvez demander
"Analysez Dm7b5 en Do." →
iiø7, demi-diminué, prédominante empruntée, + options de gammes "Quelles notes composent C7sus4 ?" →C F G Bb(la suspension survit) "Donnez-moi un voicing de Cmaj7 sans fondamentale, puis conduisez les voix vers Dm7." → voicings + un score de conduite de voix "Réharmonisez Dm7 G7 Cmaj7 avec les changements de Coltrane." →Cmaj7 Ab7 Abmaj7 E7
Outils
| Outil | Ce qu'il fait |
|---|---|
analyze_chord | Accord → fondamentale, qualité, intervalles, chiffre romain & fonction harmonique (dominantes secondaires, étiquettes d'échange modal) |
resolve_chord | Accord → notes épelées (enharmoniquement correctes), fréquences, MIDI, recommandations de gammes |
generate_voicing | Voicings prêts pour l'instrument (sans fondamentale/bill_evans, shell, triade, pad, notes guides, drop-2/3) ; passez previousNotes pour un score de conduite de voix ; colorPreferences pour des tensions explicites |
reharmonize | Réharmonisation de progression — 8 techniques : tritone_sub, ii_v_insertion, modal_interchange, diminished_passing, secondary_dominant, chain_of_dominants, coltrane_changes, backdoor (ou auto) |
conduct_band | Direction d'orchestre en langage naturel → pistes + MIDI (MCP hébergé v0.3+) |
Fonctionne sur le moteur de grille v2 — accords suspendus corrects, vraies triades, épellation enharmonique, toutes les dominantes altérées — avec des délais d'attente de requête, des rapports de quota et des erreurs structurées.
Compagnons Chef d'orchestre & composition (Desktop uniquement)
Pour les boucles d'agent d'écoute (diriger → rendu côté serveur → WAV via vos haut-parleurs), ajoutez un second serveur local aux côtés des outils de théorie hébergés :
{
"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"]
}
}
}
| Binaire | Outils |
|---|---|
thiri-conductor-mcp | conduct_band, render_audio (Csound côté serveur via POST /v2/render), play_audio, search_csound_corpus |
thiri-composition-mcp | Outils IR de composition + play_composition (aperçu fluidsynth) |
Le rendu s'exécute côté serveur à partir de la v0.5.0 — aucune installation de Csound nécessaire. Preuve : npm run test:conductor · documentation en direct : build.thiri.ai/lab/conductor-mcp · recettes d'agent.
Agent Chef d'orchestre (composition d'ambiance)
Persona de bout en bout pour la composition d'ambiance locale — compétence, CLI et panneau de tableau de bord Groupe :
| Entrée | Commande / chemin |
|---|---|
| Compétence Cursor | Copiez THIRI/lab/skills/thiri-conductor-agent/SKILL.md → ~/.cursor/skills/thiri-conductor-agent/SKILL.md |
| CLI | cd thiri-mcp && npm run conductor:vibe -- "gospel ballad in F minor" |
| Tableau de bord | npm run dev:studio → localhost:5173/band → panneau Vibe Conduct |
| Preuve Lab | build.thiri.ai/lab/conductor-agent |
Double configuration MCP ci-dessus + mapConductResultToStudioModules après chaque conduct_band. Le dernier rendu CLI écrit ~/.thiri/conductor-last.json (local uniquement, non commité).
Recette d'agent phare (analyser → diriger → rendre → critiquer)
Collez dans l'ordre après la double configuration MCP ci-dessus :
- Analyser — "Analysez Dm7 G7 Cmaj7 en tonalité de Do avec analyze_chord ; résumez les chiffres romains et la tension."
- Diriger — "conduct_band : nappe Rhodes chaleureuse, basse walking, batterie balais, 8 mesures swing medium en Do."
- Rendre — "render_audio à partir du résultat de conduct au tempo 120."
- Critiquer — "play_audio ; critiquez la conduite des voix et l'équilibre des registres ; suggérez une révision."
Invites complètes : build.thiri.ai/lab/agent-recipes
Frontière hébergé vs local
| Surface | Rendu audio |
|---|---|
mcp.thiri.ai / connecteur hébergé | Non — théorie + pistes conduct_band uniquement |
thiri-conductor-mcp local | Oui — WAV rendu côté serveur (POST /v2/render), lu localement ; aucune installation de Csound nécessaire |
Installation
Obtenez une clé gratuite sur build.thiri.ai/developers, puis choisissez une voie :
Claude Desktop / web / mobile — hébergé (connecteur personnalisé en un clic, rien à installer) :
Paramètres → Connecteurs → Ajouter un connecteur personnalisé → URL https://mcp.thiri.ai/mcp → collez votre clé sk_live_ sur la page de consentement. Mêmes 5 outils, même clé, même quota — pas de fichier de configuration, pas de npx.
Claude Code (une ligne) :
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" }
}
}
}
Vous préférez le HTTP brut ? (pas besoin de MCP)
Le même moteur est une API REST simple :
curl -X POST https://chords.thiri.ai/v2/analyze \
-H "Authorization: Bearer YOUR_KEY" -H "content-type: application/json" \
-d '{"chord":"Dm7b5","key":"C"}'
Cinq points de terminaison : /v2/analyze, /v2/resolve, /v2/voicing, /v2/reharmonize, /v2/conduct. Voir openapi.yaml.
Variables d'environnement
| Variable | Par défaut | Description |
|---|---|---|
THIRI_API_KEY | (aucune) | Jeton porteur (sk_live_…) — obtenez-en un sur build.thiri.ai/developers |
THIRI_API_URL | https://chords.thiri.ai | Base de l'API (remplacez uniquement pour le développement local) |
Développement
npm install && npm run build && npm start
Licence
PolyForm Noncommercial 1.0.0 — © 2026 Blues Prince Media. Gratuit pour un usage personnel,
de recherche et non commercial ; l'utilisation commerciale nécessite une licence
(dennison@bluesprincemedia.com). Voir LICENSE. Les versions publiées à ou
avant la v0.5.0 restent sous la double licence MIT/PolyForm avec laquelle elles ont été livrées.
À partir de la v0.5.0, le moteur de composition et le moteur de rendu Csound s'exécutent côté serveur derrière l'API hébergée (
POST /v2/compose,POST /v2/render) ; leur source n'est plus livrée dans ce paquet.