THIRI Chord Intelligence

officiel

Moteur 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_chord de 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_chord pour 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_voicing avec 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 reharmonize telles que la substitution tritonique, les changements Coltrane ou les dominantes secondaires à toute séquence d’accords.
  • Diriger un groupe — Utilisez conduct_band pour traduire des instructions en langage naturel en pistes instrumentales et données MIDI.

Documentation

🎷 THIRI Chord Intelligence — Serveur MCP

npm npm downloads CI license MCP Glama score

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)

  1. Obtenez une clé gratuite sur build.thiri.ai/developers
  2. Dans Claude : Paramètres → ConnecteursAjouter un connecteur personnalisé → URL https://mcp.thiri.ai/mcp → collez votre clé sk_live_
  3. 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

OutilCe qu'il fait
analyze_chordAccord → fondamentale, qualité, intervalles, chiffre romain & fonction harmonique (dominantes secondaires, étiquettes d'échange modal)
resolve_chordAccord → notes épelées (enharmoniquement correctes), fréquences, MIDI, recommandations de gammes
generate_voicingVoicings 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
reharmonizeRé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_bandDirection 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"]
    }
  }
}
BinaireOutils
thiri-conductor-mcpconduct_band, render_audio (Csound côté serveur via POST /v2/render), play_audio, search_csound_corpus
thiri-composition-mcpOutils 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éeCommande / chemin
Compétence CursorCopiez 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"
Tableau de bordnpm run dev:studiolocalhost:5173/band → panneau Vibe Conduct
Preuve Labbuild.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 :

  1. Analyser"Analysez Dm7 G7 Cmaj7 en tonalité de Do avec analyze_chord ; résumez les chiffres romains et la tension."
  2. Diriger"conduct_band : nappe Rhodes chaleureuse, basse walking, batterie balais, 8 mesures swing medium en Do."
  3. Rendre"render_audio à partir du résultat de conduct au tempo 120."
  4. 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

SurfaceRendu audio
mcp.thiri.ai / connecteur hébergéNon — théorie + pistes conduct_band uniquement
thiri-conductor-mcp localOui — 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

VariablePar défautDescription
THIRI_API_KEY(aucune)Jeton porteur (sk_live_…) — obtenez-en un sur build.thiri.ai/developers
THIRI_API_URLhttps://chords.thiri.aiBase 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.