Skip to main content
Glama

Status

Current milestone

KIHACHI MUSIC AI Studio 統合 / 実機スモークテスト済み(Live 12.4.5、2026-09-28、CURRENT_SYSTEM_STATUS)

最短手順は docs/QUICKSTART.md。初回インストールは scripts/インストール.command、詳しい操作は docs/MANUAL.md、macOSアプリのビルドと署名は docs/MAC_APP.md を参照してください。

KIHACHI Brain

Brain MCP for the KIHACHI MUSIC AI Platform.

KIHACHI MUSIC AI is not an AI music generator.

It is an AI music production platform.

The Brain creates musical plans.

KIHACHI builds them inside Ableton Live.

Memory learns from every song.

Review improves every iteration.

このリポジトリは Brain(FastMCP)です。ジャンル知識から SongSpec と ProjectPlan を作り、承認を経て Ableton Live の Session View と Arrangement View を組み立てます。詳細は docs/BRAIN.md と docs/VISION.md。

Related MCP server: Ableton MCP Extended

制作画面の起動

日常の制作では Cursor や Codex を開く必要はありません。

./scripts/setup.sh      # 初回のみ
./scripts/kihachi-studio.command  # http://127.0.0.1:8765/

または scripts/kihachi-studio.command をダブルクリックします。画面の説明は docs/STUDIO_GUIDE.md、手順と復旧は docs/STUDIO.md、困ったときは docs/TROUBLESHOOTING.md。Ollama は docs/OLLAMA_SETUP.md、Live は docs/ABLETON_SETUP.md。

CLI

uv run kihachi doctor
uv run kihachi create "110 BPM、D# minor。Mutation Funk。Swing 54%。約5分。"
uv run kihachi projects
uv run kihachi inspect <候補ID>
uv run kihachi review <候補ID>
uv run kihachi revise <候補ID> --scope bass --bars 33-49 [--accept]
uv run kihachi approve <候補ID>
uv run kihachi ableton plan|dry-run|execute|verify <候補ID>

制作画面・CLI・MCP は同じ StudioRuntime を使います。Live に触れる ableton dry-run / execute / verify は起動中の制作画面を通します。

前提

この4点は仕様です。

  • Google Lyria は廃止済みです。音声生成機能はありません。成果物は編集可能な Live Set です。

  • Live への変更には人間承認が必要です。承認トークンは帯域外(所有者のみ読めるファイル)で渡します。

  • 既存内容を自動上書きしません。 利用者所有のトラック・Clip・Arrangement 領域は変更しません。

  • 自動再実行しません。読戻し成功まで完了扱いしません。CIでは実機接続しません。

公開 Tool

Tool

役割

hello

接続確認

generate_songspec

SongSpec を JSON で返す

create_project_from_songspec

SongSpec から ProjectPlan を JSON で返す

create_ableton_plan

ProjectPlan を Ableton 向け構造へ変換

create_midi_plan

ProjectPlan から決定論的なMIDIクリップ計画を生成

prepare_ableton_handoff

Live へ渡す前の静的検証

inspect_live_state

Live の接続確認と状態読取り(変更しない)

live_device_catalogue

KIHACHI がロードを許可する Live 標準デバイス一覧

create_live_mutation_plan

Session View の変更計画を作る(実行しない)

request_live_execution

承認待ちの Live 実行要求を作る

execute_live_request

承認済み要求を1回だけ実行し receipt を返す

verify_live_execution

Live を読み直して receipt を再確認

expand_session_to_arrangement

検証済み Session を Arrangement へ展開する計画を作る

review_songspec

SongSpec を検証し ReviewResult を返す

remember_song

SongSpec とReview結果をMemoryへ保存

search_memory

ジャンル・全文・Review品質・順位でMemoryを検索

orchestrate_song

生成・Review・Memory・Project作成を一括実行

preview_local_ai_song

制作画面と同じ経路で MIDI 候補を返す(Live は変更しない)

create_song

制作指示から候補を作って保存する

list_projects / get_project

保存済みの候補の一覧・詳細(SongSpec・構成・トラック・レビュー・履歴)

review_song

送る予定のノートを規則でレビューする

revise_song

指摘・対象・小節範囲だけを局所修正する(accept=True で採用)

approve_song

候補を承認する(送信の前提)

dry_run_ableton_plan

送信内容を確認する(Live は変更しない)

execute_ableton_plan

承認済み候補を1回だけ送信する(confirmed=True が必要)

verify_ableton_project

Live から読み戻して計画と比較する

ollama_status / doctor

AI と環境の状態

save_live_set は実装していません。設計のみ docs/issues/ISSUE-0021.md にあります。

詳細は docs/API.md。

必要環境

  • Python 3.12+

  • uv

  • Live 自動操作を使う場合: Ableton Live 11 以降 + Max for Live(必須)

uv sync --group dev

Live 自動操作は外部 API キーを必要としません。秘密情報はループバック用のセッショントークン1つだけで、起動ごとに生成され、Git には入りません。

Memoryを再起動後も保持する場合は保存先を設定します。未設定ならプロセス内のみです。

export KIHACHI_MEMORY_PATH="$HOME/.kihachi/memory.json"

承認記録と使用済み idempotency key を再起動後も保持する場合は次を設定します。未設定ならプロセス内のみです。

export KIHACHI_LIVE_APPROVAL_PATH="$HOME/.kihachi/live-approvals.json"

設定例は .env.example を参照してください。

Ableton Live セットアップ

  1. maxforlive/README.md の手順で KIHACHI Live Device.amxd を作ります。.amxd バイナリはリポジトリに含まれていません(偽のデバイスファイルを置かないため)。JavaScript ソース、プロトコル仕様、パッケージ化手順が揃っています。

  2. Live で Set を開き、デバイスをトラックへロードします。

  3. inspect_live_state で health.connected が true になることを確認します。

macOS と Windows の両方に対応しています。パス差は kihachi_mcp.services.live_paths と kihachi_mcp.models.live_paths に閉じています。

用途

macOS

Windows

ハンドシェイク

~/Library/Application Support/KIHACHI/

%LOCALAPPDATA%\KIHACHI\

プロトコル仕様は docs/MAXFORLIVE.md。

実行の流れ

inspect_live_state          Live を読む
create_live_mutation_plan   計画を作る(何も変わらない)
request_live_execution      承認トークンをファイルへ書く(何も変わらない)
                            ← ここで人間がファイルを開いてトークンを読む
execute_live_request        1回だけ実行し readback で検証
verify_live_execution       Live を読み直して再確認
expand_session_to_arrangement   verified のときだけ Arrangement へ展開

verified は「全操作が適用され、かつ全操作が読み戻して一致した」ことのみを意味します。partially_applied と verification_failed は verified ではありません。復旧手順は docs/RECOVERY.md。

確認

uv run pytest
uv run ruff check src tests server.py
uv run fastmcp list server.py

fastmcp list の期待値: Tools (29) — 上の表のすべて。

テストは fake transport のみを使い、Ableton Live も Max も起動しません。実機のスモークテストは ./scripts/verify_live.sh(送信前に確認あり)。その他の実機手順は docs/MANUAL_LIVE_TESTS.md。

Python package structure

kihachi-mcp/
├── server.py                 # 互換エントリ
├── src/kihachi_mcp/          # 実装(ADR-0001)
│   ├── server.py
│   ├── api/
│   ├── models/               # live_state / live_mutation / live_receipt ほか
│   ├── services/             # inspector / planner / gate / executor / bridge
│   └── tools/                # 薄いJSONアダプター
├── maxforlive/
│   ├── kihachi.device.js     # Live Object Model 操作
│   └── README.md             # パッチ作成とパッケージ化手順
├── tests/
└── docs/
    ├── BRAIN.md
    ├── VISION.md
    ├── DEVELOPMENT.md
    ├── ROADMAP.md
    ├── ARCHITECTURE.md
    ├── API.md
    ├── MAXFORLIVE.md         # プロトコル仕様
    ├── MANUAL_LIVE_TESTS.md  # 手動実機テスト手順
    ├── RECOVERY.md           # 障害時の復旧手順
    ├── issues/
    └── adr/

開発ルールは docs/DEVELOPMENT.md。設計は docs/ARCHITECTURE.md。変更履歴は CHANGELOG.md。Live 自動操作の決定は docs/adr/0006-ableton-live-automation.md。

Available Tools

12 tools
create_ableton_planCreate Ableton PlanC

Translate a ProjectPlan JSON value into an Ableton plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_planYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The verb 'Translate' implies a pure data transformation, but the description does not disclose whether the operation has side effects, requires prior state, or behaves differently on invalid input. This is minimal behavioral disclosure for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, grammatically clean sentence with no wasted words, which is structurally sound. However, it is too sparse for the tool's complexity—it omits useful context that could be added without bloating the description, so it is under-specification rather than ideal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists and covers return values, the description does not explain what an 'Ableton plan' is, how it relates to the ProjectPlan input, or how this tool fits in the workflow. This leaves an agent without the contextual knowledge needed to invoke it correctly, especially given related sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes project_plan only as an object with additionalProperties true, providing no structural detail. The description adds the domain term 'ProjectPlan JSON value,' which gives some semantic meaning, but it does not explain what fields or constraints the ProjectPlan must have. With 0% schema description coverage, this is insufficient compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Translate') and resource ('ProjectPlan JSON value' into 'Ableton plan'), clearly indicating the tool's purpose. It is not a tautology and provides enough specificity to distinguish it from unrelated siblings, though it does not explicitly differentiate from closely related Ableton-handoff tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives like prepare_ableton_handoff or execute_live_request. The description lacks any context about prerequisites, workflow position, or conditions that would direct an agent to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_project_from_songspecCreate Project From SongspecC

Build a ProjectPlan, optionally including its arrangement.

ParametersJSON Schema
NameRequiredDescriptionDefault
songspecYes
include_arrangementNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the full burden. It only states that a ProjectPlan is built and may include an arrangement, with no disclosure of side effects, permissions, reversibility, or whether it is a persistent creation. 'Build' implies mutation but little else.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the core action and the optional flag, with no filler or redundancy. It is concise and easy to scan, though it sacrifices informativeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a nested input object and an output schema, the description lacks essential context: what a songspec is, what 'arrangement' means in this domain, and how this tool relates to similar siblings like create_ableton_plan. An agent would not have enough information to invoke it correctly with confidence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It adds some meaning to include_arrangement ('optionally including its arrangement') but provides no explanation of songspec, which is the only required parameter, leaving its semantics to inference from the tool name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Build') and resource ('ProjectPlan') and mentions the optional arrangement. It differentiates from sibling create_ableton_plan by the type of plan produced, though it relies on the tool name to convey the 'from songspec' input.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives. The sibling list includes create_ableton_plan, generate_songspec, and orchestrate_song, but the description does not mention any of them or provide conditions for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

execute_live_requestExecute Live RequestC

Attempt an approved Live request through the configured adapter boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes
approvedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden, but it only says 'Attempt... through the configured adapter boundary.' It hints the operation may fail and involves some adapter boundary, but it does not disclose side effects, authentication needs, whether it mutates Ableton state, or what 'approved' means in behavioral terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no fluff and the main action is front-loaded. It earns its place, though the brevity borderline under-specifies rather than being elegantly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, 0% parameter coverage, a nested request object, and a sibling named request_live_execution, this description is far too sparse. An agent cannot reliably decide when to call this tool, what to pass in request, whether approved must be true, or what side effects to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented request and approved parameters. It does not explain the shape of request, how to set approved, or what values are valid; the word 'approved' is too thin to add meaningful semantics beyond the schema's boolean field name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: execute a Live request. The word 'approved' loosely separates it from the sibling request_live_execution, implying this runs a request that has already been approved, but it does not explicitly name or contrast the sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for already-approved Live requests, giving some context about when to use it. However, it gives no explicit exclusions, no guidance about the request_live_execution sibling, and no instruction about what happens if the request is not approved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_audioGenerate AudioC

Generate one audio target through the configured Google Lyria boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptNo
output_pathYes
project_planYes
target_trackYes
negative_promptNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'generate one audio target', implying creation but not explaining side effects, whether output_path is written, cost, or reversibility. It also introduces the unexplained 'configured Google Lyria boundary' without clarifying what that entails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no redundancy, making it concise. However, the phrase 'configured Google Lyria boundary' is vague jargon, and the brevity comes at the expense of essential context, so the structure is efficient but under-specifying.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five parameters, one nested object, and no annotations, this description is too thin. It does not explain the workflow context, the role of the required inputs, or when in the project lifecycle it should be invoked, despite an output schema being present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to explain project_plan, target_track, output_path, prompt, and negative_prompt. It does not reference any of these parameters or their meanings, leaving the agent to infer entirely from bare property names, which is especially problematic for the nested project_plan object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states the verb 'generate', the resource 'audio target', and the count 'one', which clearly identifies the operation. It distinguishes from sibling generate_songspec by specifying audio rather than a spec, even though it doesn't name the alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No information about when to choose this tool over siblings such as generate_songspec or create_ableton_plan. The description provides no prerequisites, ordering, or exclusionary conditions, so an agent cannot determine when this tool is the appropriate choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_songspecGenerate SongspecB

Generate a SongSpec via Brain, filling omitted values from knowledge.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
moodNo
genreYes
tempoNo
length_minutesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It does disclose that the tool invokes 'Brain' and fills omitted fields, which is the core behavior. However, it does not state whether the operation is read-only, whether it persists anything, or what to expect beyond the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler or redundancy. It sacrifices a small amount of helpful detail, but as pure content density it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with no annotations, 0% schema description coverage, and an output schema, the description covers the basic generation behavior but leaves usage context and parameter semantics to inference. It is minimally viable but not enough for an agent to understand the full flow relative to siblings like create_project_from_songspec or orchestrate_song.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for documenting the five parameters. The only parameter-related signal is the general statement that omitted values are filled from knowledge; individual parameters like key, mood, tempo, and length_minutes are not explained (e.g., key is ambiguous and tempo units are unstated).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete action ('Generate a SongSpec') and adds method scope ('via Brain, filling omitted values from knowledge'). It distinguishes from obvious siblings like generate_audio or review_songspec by targeting the SongSpec artifact, but it never names an alternative or clarifies what a SongSpec is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'filling omitted values' implies this tool is for completing partial song specifications, giving the agent a rough trigger condition. No explicit when-to-use / when-not-to-use guidance or alternative routing is provided, so this is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

helloHelloA

Return a simple health-check greeting.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool returns a greeting, which implies a read-only, side-effect-free operation, but it does not describe response format, error behavior, or any access requirements. For a trivial health-check tool this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It is appropriately sized for the tool's trivial complexity and front-loads the key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter health-check tool, the description is entirely complete. An agent knows exactly what to expect and how to invoke it; no further information is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema, so there is nothing for the description to explain. Per the rubric, a baseline of 4 applies when there are no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Return') and a clear resource ('simple health-check greeting'), which unambiguously states what the tool does. It is clearly distinct from the sibling music-production tools, so an agent can easily understand this is a health-check endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance about when to use this tool versus alternatives, nor does it mention exclusions. However, the purpose of a health-check greeting is self-evident and implies usage for verifying service availability, so the usage context is implicitly clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orchestrate_songOrchestrate SongC

Run generation, review, memory, and project preparation.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
moodNo
genreYes
tempoNo
length_minutesNo
stop_on_review_failureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only names high-level phases. It does not explain ordering, side effects such as writing to memory or creating project files, failure handling, or what 'project preparation' actually does. The stop_on_review_failure parameter hints at review behavior, but the description never connects them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one non-redundant sentence, which is concise, but it is so terse that it under-specifies the tool. It reads more like a label than a usable definition and does not front-load any distinguishing or actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter orchestrator with no annotations, the description is severely incomplete. It omits workflow order, side effects, parameter semantics, and criteria for selecting this over sibling tools. The mention of 'memory' and 'project preparation' implies persistent changes, but those consequences are never described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so none of the six parameters are explained, and the description adds no parameter-level meaning. genre, key, mood, tempo, length_minutes, and stop_on_review_failure are left entirely to inference, with no compensation for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a verb ('Run') and lists concrete phases (generation, review, memory, project preparation), which signals this is a workflow orchestrator rather than a single-step tool. However, it does not name the specific resource being orchestrated or explicitly distinguish itself from siblings like generate_songspec, review_songspec, or prepare_ableton_handoff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to call orchestrate_song versus any of the sibling tools. There are no conditions, prerequisites, exclusions, or mention that this tool is the high-level entry point that wraps the individual steps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_ableton_handoffPrepare Ableton HandoffA

Validate an Ableton plan before a future Live handoff.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_planYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Validate' implies a non-destructive check, but the description does not state whether the tool modifies the plan, produces intermediate artifacts, or has side effects. It also does not explain what happens on validation failure, leaving key behavioral traits undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every word contributes to conveying the tool's purpose and timing. The word 'future' is mildly redundant but does not detract from the clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter validation tool, the description conveys the core purpose and position in the pipeline. However, it lacks behavior on invalid plans, whether it is safely repeatable, and what the output schema contains. The presence of an output schema reduces the need to document return values, but the failure semantics remain a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the sole parameter project_plan is an undocumented object. The description only implies that project_plan should be the Ableton plan, but gives no detail about its required fields, nesting, or validation criteria. The description provides minimal compensation for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Validate' with the resource 'Ableton plan' and the temporal context 'before a future Live handoff.' This clearly distinguishes the tool from siblings like create_ableton_plan (creation) and execute_live_request (execution). An agent can identify the tool's role in the pipeline without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before a future Live handoff' gives clear contextual guidance on when this tool should be used: after a plan is created and before execution. However, it does not explicitly name alternatives or state when not to use it, falling just short of the highest bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remember_songRemember SongC

Remember a SongSpec and optional ReviewResult.

ParametersJSON Schema
NameRequiredDescriptionDefault
reviewNo
songspecYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states that a SongSpec is remembered. It does not explain whether this persists data, overwrites existing entries, requires prior context, or has side effects, which is a significant gap for a storage operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler or redundancy. It is concise and easy to parse, though it sacrifices useful behavioral and usage context for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with nested open-object parameters and no annotations, the description is too thin to give an agent full confidence in when and how to invoke it. The output schema may cover return values, but the description still lacks context about the role of this tool in the broader song workflow and the meaning of 'remember' in this domain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It identifies 'songspec' as the required value and 'review' as optional, which adds marginal meaning, but it does not describe the shape, purpose, or constraints of the nested objects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Remember') and a clear resource ('a SongSpec and optional ReviewResult'), which conveys the tool's storage purpose. It is distinguishable from siblings like generate_songspec, review_songspec, and search_memory, though it does not explicitly name its relationship to them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as search_memory or create_project_from_songspec. There are no stated conditions, prerequisites, or exclusions, leaving the agent to infer usage solely from the verb 'remember'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_live_executionRequest Live ExecutionA

Prepare one approval-gated Live mutation request without executing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_planYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It clearly discloses that the tool does not execute the mutation and that the request is approval-gated, which are the key behavioral traits. It does not detail the approval workflow or side effects of preparing the request, but the core non-execution behavior is explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action and boundary. Every word earns its place, and there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with an output schema, the high-level purpose is clear, but the description omits guidance on what project_plan should contain and the relationship to execute_live_request. The output schema likely covers return values, but parameter construction and workflow context are left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description never mentions project_plan by name or structure. 'Live mutation request' weakly implies that project_plan is the content of the request, but with a single required object parameter and no schema documentation, the agent is left to infer the expected shape. This does not compensate for the missing schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('Prepare'), a singular object ('one approval-gated Live mutation request'), and an explicit boundary ('without executing it'). This clearly distinguishes it from the sibling tool execute_live_request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'approval-gated' signals when this tool is appropriate, and 'without executing it' separates it from execution tools. However, it does not explicitly name an alternative or give when-not-to-use conditions, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_songspecReview SongspecC

Review a SongSpec through the Brain review boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
songspecYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It gives no indication of whether this is a read-only review, whether it persists results, returns feedback, or blocks further workflow steps. The vague 'review boundary' phrase hints at a gate but does not explain its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, which is good, but the phrase 'Brain review boundary' adds obscurity rather than clarity. It is under-specified rather than elegantly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the tool is part of a larger song workflow and accepts a single complex open object. The description does not explain what input the SongSpec should contain, what 'review' entails, or how this step fits among the sibling tools. An agent would be guessing at the invocation contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and an open object type, the description must compensate by explaining what a SongSpec is or what fields matter, but it only reuses the name 'SongSpec'. The parameter remains effectively opaque to an agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('review') and resource ('SongSpec'), which is more than a tautology. However, the phrase 'through the Brain review boundary' is unexplained jargon and the description does not clarify how this tool differs from related siblings like generate_songspec or create_project_from_songspec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives, no workflow context, and no mention of prerequisites or follow-up steps. The single sentence states what it does but not when an agent should select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_memorySearch MemoryC

Search memory by genre and optional review quality filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
genreNo
limitNo
queryNo
sort_byNorecent
min_scoreNo
approved_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Search', which implies a read operation, but it does not explain what memory records look like, whether results are paginated, whether all stored memories are included by default, or how quality filters affect results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise, front-loaded sentence with no wasted words. It is efficient but slightly too sparse to be highly informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With six parameters, no annotations, and no schema descriptions, this one-sentence description is not enough. It never states the default behavior when all optional filters are omitted, what 'review quality' means, or which sort options are supported.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for six undocumented parameters. It only adds meaning for genre and loosely groups min_score/approved_only under 'review quality filters', while query, limit, sort_by, and their interactions remain unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Search'), resource ('memory'), and mentions the main axes of filtering ('genre' and 'optional review quality filters'). It is clear enough to identify this as the retrieval counterpart to remember_song, though it never defines what 'memory' contains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, when not to use it, or how it relates to sibling tools like review_songspec or remember_song. The description implies it is for searching saved memories but does not state a decision rule for selecting it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.1.0
    • First observedcreate_ableton_plan
    • First observedcreate_project_from_songspec
    • First observedexecute_live_request
    • First observedgenerate_audio
    • First observedgenerate_songspec
    • First observedhello
    • First observedorchestrate_song
    • First observedprepare_ableton_handoff
    • First observedremember_song
    • First observedrequest_live_execution
    • First observedreview_songspec
    • First observedsearch_memory

TDQS

B3.2/5.0

Scored across 12 tools

Disambiguation4/5

Most tools map cleanly to distinct pipeline stages: spec generation, review, audio generation, project planning, Ableton planning, and memory operations. The pairs execute_live_request/request_live_execution and create_ableton_plan/prepare_ableton_handoff create mild ambiguity, but their descriptions clarify intent. Overall, an agent can usually select the right tool without much trouble.

Naming Consistency4/5

All tools except hello follow a clear snake_case verb_noun pattern using domain-specific objects like songspec, project, plan, audio, and memory. hello is a minor exception, reading more like a interjection than a verb_noun action, but it is semantically a health check. This is very close to fully consistent naming.

Tool Count5/5

Twelve tools is well within the expected range for a focused domain and maps to a coherent music-generation lifecycle. Each tool serves a meaningful role whether that is orchestration, individual pipeline stages, or memory access. There is no obvious bloat or redundancy.

Completeness4/5

The surface covers the main workflow: generate, review, audio generation, project planning, Ableton planning, approval-gated execution, memory storage/retrieval, and orchestration. Gaps like direct retrieval/update/delete of remembered artifacts or editing existing plans would require workarounds but are not dead ends. Core user journeys are coherent and actionable.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers