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 les accords avec la théorie musicale — Demandez la fondamentale, la qualité, les intervalles, le chiffrage romain et la fonction harmonique via
analyze_chord, y compris les dominantes secondaires et l'échange modal. - Résoudre l'orthographe des accords — Obtenez des notes enharmoniquement correctes, les fréquences, le MIDI et des recommandations de gammes avec
resolve_chord, comme « Quelles notes dans C7sus4 ? » - Générer des voicings prêts pour l'instrument — Demandez des voicings sans fondamentale, en coquille, en triade ou drop-2 avec
generate_voicing, en passant éventuellementpreviousNotespour les scores de conduite de voix. - Réharmoniser des progressions — Appliquez des techniques comme
tritone_sub,coltrane_changesouautoviareharmonize, par ex., « Réharmonise Dm7 G7 Cmaj7 avec les changements de Coltrane. » - Diriger un groupe en langage naturel — Utilisez
conduct_bandpour transformer des descriptions comme « nappe Rhodes chaleureuse, basse walking, batterie aux balais » en pistes et en MIDI.
Documentation
🎷 THIRI Chord Intelligence — Serveur MCP
Donnez à votre IA une vraie théorie musicale. THIRI est le serveur MCP de théorie musicale + API déterministe pour les créateurs d'IA — il permet à Claude, Cursor, ou à tout agent MCP d'analyser des accords, d'effectuer une analyse en chiffrage romain, de générer des voicings et de réharmoniser des progressions avec des réponses qui sont calculées, non devinées.
Les LLM hallucinent la théorie musicale : mauvaises notes, faux chiffrages romains, voicings qui ne respectent pas le voice-leading. THIRI est un moteur déterministe (théorie des classes de hauteurs sur ℤ/12) derrière une API hébergée — ainsi C7sus4 conserve sa suspension, Caug orthographie 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 (aucune installation, n'importe quel langage) — et il réharmonise et effectue le voice-leading, sans se contenter de rechercher des accords.
⭐ Si cela vous est utile, mettez une étoile au dépôt — cela aide d'autres musiciens et créateurs d'agents à le trouver.
👥 Rejoignez les AI Music Builders : Vous voulez des limites de débit élevées, un support direct du fondateur et un accès anticipé aux outils à venir ? Rejoignez notre communauté de développeurs sur Skool — T.H.I.R.I. Builders.
Musiciens : configuration en 2 minutes (sans code)
- Obtenez une clé gratuite sur build.thiri.ai/keys
- Dans Claude : Paramètres → Connecteurs → Ajouter un connecteur personnalisé → URL
https://mcp.thiri.ai/mcp→ collez votre clésk_live_ - Demandez à Claude : « Réharmonise Dm7 G7 Cmaj7 avec des Coltrane changes. »
C'est tout — aucune installation, aucun fichier de configuration. Créateurs : les options d'installation complètes (Claude Code, configuration Desktop, HTTP brut) sont ci-dessous.
Ce que vous pouvez demander
« Analyse Dm7b5 en C. » →
iiø7, demi-diminué, sous-dominante empruntée, + options de gammes « Quelles notes dans C7sus4 ? » →C F G Bb(la suspension survit) « Donne-moi un voicing Cmaj7 sans fondamentale, puis fais le voice-leading vers Dm7. » → voicings + un score de voice-leading « Réharmonise Dm7 G7 Cmaj7 avec des Coltrane changes. » →Cmaj7 Ab7 Abmaj7 E7
Outils
| Outil | Ce qu'il fait |
|---|---|
analyze_chord | Accord → fondamentale, qualité, intervalles, chiffrage romain et fonction harmonique (dominantes secondaires, étiquettes d'échange modal) |
resolve_chord | Accord → notes orthographiées (correctes enharmoniquement), fréquences, MIDI, recommandations de gammes |
generate_voicing | Voicings prêts pour l'instrument (sans fondamentale/bill_evans, shell, triade, pad, guide-tones, drop-2/3) ; passez previousNotes pour un score de voice-leading ; 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 de groupe en langage naturel → pistes + MIDI (MCP hébergé v0.3+) |
Fonctionne sur le moteur v2 grid — accords suspendus corrects, vraies triades, orthographe enharmonique, toutes les dominantes altérées — avec délais d'expiration des requêtes, rapports de quota et erreurs structurées.
Compagnons chef d'orchestre et composition (Desktop uniquement)
Pour les boucles d'agents hear-it (direction → rendu côté serveur → WAV via vos haut-parleurs), ajoutez un second serveur local aux côtés des outils théoriques 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_corpus |
thiri-composition-mcp | Outils IR de composition + play_composition (aperçu fluidsynth) |
Le rendu s'exécute côté serveur depuis la v0.5.0 — aucune installation Csound nécessaire. Preuve : npm run test:conductor · documentation en direct : build.thiri.ai/lab/conductor-mcp · recettes d'agents.
Agent chef d'orchestre (composition vibe)
Persona de bout en bout pour la composition vibe locale — compétence, CLI et panneau du tableau de bord Band :
| 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 en laboratoire | build.thiri.ai/lab/conductor-agent |
Configuration MCP double 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 configuration MCP double ci-dessus :
- Analyser — « Analyse Dm7 G7 Cmaj7 en tonalité C avec analyze_chord ; résume les chiffrages romains et la tension. »
- Diriger — « conduct_band : pad Rhodes chaleureux, basse walking, batterie balais, 8 mesures swing moyen en C. »
- Rendre — « render_audio à partir du résultat de conduct au tempo 120. »
- Critiquer — « play_audio ; critique le voice-leading et l'équilibre des registres ; suggère 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), joué localement ; aucune installation Csound nécessaire |
Installation
Obtenez une clé gratuite sur build.thiri.ai/keys, puis choisissez un chemin :
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 — aucun 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 | Défaut | Description |
|---|---|---|
THIRI_API_KEY | (aucun) | Jeton Bearer (sk_live_…) — obtenez-en un sur build.thiri.ai/keys |
THIRI_API_URL | https://chords.thiri.ai | Base 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'usage commercial 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é distribuées.
Depuis la v0.5.0, le moteur de composition et le rendu Csound s'exécutent côté serveur derrière l'API hébergée (
POST /v2/compose,POST /v2/render) ; leur code source n'est plus inclus dans ce paquet.