THIRI logo
build.thiri.ai
Solana · Seeker · Cadenza

Lab · Flagship recipe

Agent Recipes

Three MCP servers, one agent loop. Hosted thiri handles theory and conduct_band; local companions render Csound WAV on your machine. Requires Csound CLI on PATH for steps 3–4.

Dual MCP config (Cursor / Claude Desktop)

{
  "mcpServers": {
    "thiri": {
      "command": "npx",
      "args": ["-y", "@bluesprincemedia/thiri-mcp"],
      "env": { "THIRI_API_KEY": "sk_live_…" }
    },
    "thiri-conductor": {
      "command": "npx",
      "args": ["-y", "@bluesprincemedia/thiri-mcp", "thiri-conductor-mcp"],
      "env": { "THIRI_API_KEY": "sk_live_…" }
    },
    "thiri-composition": {
      "command": "npx",
      "args": ["-y", "@bluesprincemedia/thiri-mcp", "thiri-composition-mcp"]
    }
  }
}

Hosted connector at mcp.thiri.ai/mcp covers theory only — no Csound render. See /developers for the boundary table.

Flagship: analyze → conduct → render → critique

Paste each prompt in order; wait for tool results before the next step.

  1. Step 1

    Analyze the harmonic goal

    Tools: thiri · analyze_chord, generate_voicing

    Analyze this progression in key of C: Dm7 G7 Cmaj7. For each chord call analyze_chord and summarize roman numerals, function, and tension. List voicing constraints for a jazz quartet (piano, bass, drums, pad).
  2. Step 2

    Conduct the band

    Tools: thiri · conduct_band

    Using conduct_band, arrange a medium-swing jazz quartet for: "warm Rhodes pad, walking bass, brush drums, sparse piano comp — 8 bars in C, ii–V–I feel." Return lanes JSON.
  3. Step 3

    Build score and render WAV

    Tools: thiri-conductor · build_csound_score, render_csound_wav

    Take the conduct_band lanes from the previous step. Call build_csound_score to assemble a .csd, then render_csound_wav (tempo 120, 8 bars). Report the output path and duration.
  4. Step 4

    Critique and iterate

    Tools: thiri-conductor · play_audio · thiri · analyze_chord

    Listen via play_audio if available. Critique: (1) voice-leading gaps, (2) register balance across lanes, (3) whether drums feel sparse or busy. Suggest one conduct_band revision and re-render if needed.

Composition critic (single paste)

Full loop for Composition IR + Csound — see also /lab/composition-critic.

You are a composition critic with dual MCP servers (thiri + thiri-composition + thiri-conductor).

1. create_composition in key C, gospel_jazz_minor template, 4 bars.
2. revoice_progression with bill_evans style on bar 1.
3. render_composition — note event count and duration.
4. build_csound_score from the rendered events (or conduct equivalent lanes).
5. render_csound_wav — compare duration to render_composition output.
6. inspect_composition — list ops; flag any set_chord that broke voice-leading.
7. If duration > 16s or lead sheet has parallel fifths, reharmonize_section on bar 2 and repeat steps 3–6.