THIRI Chord Intelligence

oficial

Motor de teoría musical determinista para que agentes de IA analicen, resuelvan, vozen y rearmen acordes.

¿Qué puedes hacer con THIRI Chord Intelligence MCP?

  • Analizar cualquier símbolo de acorde — Obtén fundamental, cualidad, intervalos, numeral romano y función armónica (incluyendo dominantes secundarias e intercambio modal) con analyze_chord.
  • Resolver un acorde a sus notas escritas — Obtén alturas enarmónicamente correctas, frecuencias, números MIDI y sugerencias de escalas mediante resolve_chord.
  • Generar voicings listos para instrumentos — Solicita estilos de voicing específicos como sin fundamental, shell, drop-2 o guía-tonos, y obtén una puntuación de conducción de voces pasando notas anteriores a generate_voicing.
  • Reharmonizar una progresión de acordes — Aplica técnicas como sustitución de tritono, cambios de Coltrane o resolución por puerta trasera a una progresión usando reharmonize.
  • Dirigir una banda con lenguaje natural — Describe una textura musical para recibir pistas de instrumentos y datos MIDI de conduct_band.

Documentación

🎷 THIRI Chord Intelligence — Servidor MCP

npm npm downloads CI license MCP Glama score

Dale a tu IA teoría musical real. THIRI es el servidor MCP + API de teoría musical determinista para creadores de IA — permite que Claude, Cursor o cualquier agente MCP analice acordes, ejecute análisis de números romanos, genere voicings y rearmonice progresiones con respuestas calculadas, no adivinadas.

Los LLM alucinan teoría musical: notas incorrectas, números romanos falsos, voicings sin conducción de voces. THIRI es un motor determinista (teoría de conjuntos de clases de alturas sobre ℤ/12) detrás de una API alojada — así C7sus4 mantiene su suspensión, Caug deletrea C E G#, y "cambios de Coltrane en Dm7 G7 Cmaj7" devuelve Cmaj7 Ab7 Abmaj7 E7, siempre.

¿Después de Suno / Udio o cualquier generador? Envuelve la salida y obtén una tabla de acordes correcta en la que tu agente pueda confiar. Y a diferencia de tonal.js o music21, THIRI está alojado y es nativo para agentes (sin instalación, cualquier lenguaje) — y rearmoniza y conduce voces, no solo busca acordes.

⭐ Si esto es útil, dale estrella al repositorio — ayuda a otros músicos y creadores de agentes a encontrarlo.

Músicos: configuración en 2 minutos (sin código)

  1. Obtén una clave gratuita en build.thiri.ai/developers
  2. En Claude: Configuración → ConectoresAgregar conector personalizado → URL https://mcp.thiri.ai/mcp → pega tu clave sk_live_
  3. Pregúntale a Claude: "Rearmoniza Dm7 G7 Cmaj7 con cambios de Coltrane."

Eso es todo — sin instalación, sin archivo de configuración. Creadores: las opciones completas de instalación (Claude Code, configuración de escritorio, HTTP directo) están abajo.

Lo que puedes preguntar

"Analiza Dm7b5 en C."iiø7, semidisminuido, predominante prestado, + opciones de escala "¿Qué notas hay en C7sus4?"C F G Bb (la suspensión sobrevive) "Dame un voicing sin fundamental de Cmaj7, luego conduce las voces hacia Dm7." → voicings + una puntuación de conducción de voces "Rearmoniza Dm7 G7 Cmaj7 con cambios de Coltrane."Cmaj7 Ab7 Abmaj7 E7

Herramientas

HerramientaQué hace
analyze_chordAcorde → fundamental, calidad, intervalos, número romano y función armónica (dominantes secundarias, etiquetas de intercambio modal)
resolve_chordAcorde → notas deletreadas (enarmónicamente correctas), frecuencias, MIDI, recomendaciones de escala
generate_voicingVoicings listos para instrumento (sin fundamental/bill_evans, shell, tríada, pad, notas guía, drop-2/3); pasa previousNotes para una puntuación de conducción de voces; colorPreferences para tensiones explícitas
reharmonizeRearmonización de progresión — 8 técnicas: tritone_sub, ii_v_insertion, modal_interchange, diminished_passing, secondary_dominant, chain_of_dominants, coltrane_changes, backdoor (o auto)
conduct_bandDirección de banda en lenguaje natural → carriles + MIDI (MCP alojado v0.3+)

Funciona en el motor de cuadrícula v2 — acordes sus correctos, tríadas reales, deletreo enarmónico, todos los dominantes alterados — con tiempos de espera de solicitud, informe de cuota y errores estructurados.

Csound MCP local (solo escritorio)

Para bucles de agente escúchalo (dirección → partitura Csound → WAV), agrega un segundo servidor local junto con las herramientas de teoría alojadas:

{
  "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"]
    }
  }
}
BinHerramientas
thiri-conductor-mcpconduct_band, build_csound_score, render_csound_wav, play_audio, search_csound_corpus, render_with_tension
thiri-composition-mcpHerramientas de IR de composición + play_composition (vista previa fluidsynth)

Requiere CLI de Csound en PATH para renderizado WAV. Prueba: npm run test:conductor · documentación en vivo: build.thiri.ai/lab/conductor-mcp · recetas de agente.

Agente Conductor (composición vibe)

Persona integral para composición vibe local — habilidad, CLI y panel de tablero de banda:

EntradaComando / ruta
Habilidad CursorCopia 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"
Tableronpm run dev:studiolocalhost:5173/band → panel Vibe Conduct
Prueba de laboratoriobuild.thiri.ai/lab/conductor-agent

Configuración MCP dual arriba + mapConductResultToStudioModules después de cada conduct_band. El último renderizado CLI escribe ~/.thiri/conductor-last.json (solo local, no confirmado).

Receta de agente insignia (analizar → dirigir → renderizar → criticar)

Pega en orden después de la configuración MCP dual arriba:

  1. Analizar"Analiza Dm7 G7 Cmaj7 en clave C con analyze_chord; resume números romanos y tensión."
  2. Dirigir"conduct_band: pad Rhodes cálido, bajo caminante, batería con escobillas, 8 compases swing medio en C."
  3. Renderizar"build_csound_score desde carriles, luego render_csound_wav a tempo 120."
  4. Criticar"play_audio; critica la conducción de voces y el equilibrio de registro; sugiere una revisión."

Indicaciones completas: build.thiri.ai/lab/agent-recipes

Límite alojado vs local

SuperficieCsound WAV
mcp.thiri.ai / conector alojadoNo — solo teoría + carriles conduct_band
thiri-conductor-mcp localSí — requiere CLI de Csound en tu máquina

Instalar

Obtén una clave gratuita en build.thiri.ai/developers, luego elige una ruta:

Claude Desktop / web / móvil — alojado (conector personalizado de un clic, nada que instalar): Configuración → Conectores → Agregar conector personalizado → URL https://mcp.thiri.ai/mcp → pega tu clave sk_live_ en la página de consentimiento. Mismas 4 herramientas, misma clave, misma cuota — sin archivo de configuración, sin npx.

Claude Code (una línea):

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" }
    }
  }
}

¿Prefieres HTTP directo? (sin necesidad de MCP)

El mismo motor es una 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"}'

Cuatro endpoints: /v2/analyze, /v2/resolve, /v2/voicing, /v2/reharmonize, /v2/conduct. Ver openapi.yaml.

Variables de entorno

VariablePredeterminadoDescripción
THIRI_API_KEY(ninguno)Token de portador (sk_live_…) — obtén uno en build.thiri.ai/developers
THIRI_API_URLhttps://chords.thiri.aiBase de API (anular solo para desarrollo local)

Desarrollo

npm install && npm run build && npm start

Licencia

MIT — © 2026 Blues Prince Media. El cliente es abierto; el motor es un servicio alojado.