Brain MCP
Hermes Brain
Hermes Agent 用のマルチエージェントオーケストレーション
並列Hermesエージェントを生成します。共有の脳(Brain)を与え、1つのコマンドでデプロイしましょう。SQLiteをバックエンドとし、Pythonで調整を行うため、調整のためのトークン消費はゼロです。
インストール · クイックスタート · 仕組み · CLI · ツール · メモリバンク · 開発
インストール
オプション1 — ソースからブートストラップ(Hermesにはこちらを推奨)
curl -fsSL https://raw.githubusercontent.com/DevvGwardo/brain-mcp/main/install.sh | bashインストーラーの動作:
Node.js MCPサーバー (
brain-mcp) をビルドPythonオーケストレーションパッケージ (
hermes-brain) をインストールBrainをHermesのMCPサーバーとして登録
オプション2 — 手動インストール
git clone https://github.com/DevvGwardo/brain-mcp.git
cd brain-mcp
npm install
npm run build
pip install -e .
hermes mcp add brain --command node --args "$PWD/dist/index.js"注意: npmパッケージはまだ公開されていないため、現時点ではリポジトリのインストールパスがサポート対象となります。
確認:
hermes mcp list | grep brain
hermes mcp test brain
hermes-brain --help前提条件: Python 3.10+、Node.js 18+、Hermes Agent
友人と共有する場合: 各個人のBrainは独立したSQLite DBであるため、ネットワーク設定は不要です。同じワンライナーがどこでも動作します。
Dockerユーザー: tmuxペインはヘッドレスコンテナ内でレンダリングできないため、layout: "headless" でエージェントを生成してください:
brain_wake({ task: "...", layout: "headless" })Related MCP server: mcp-comms
クイックスタート
Hermesエージェントの艦隊をオーケストレーションする1つのコマンド:
hermes-brain "Build a REST API with auth, users, and posts" \
--agents api-routes auth-layer db-models tests動作内容:
Pythonコンダクターが4つのバックグラウンドHermesエージェント (
hermes -q) を生成各エージェントがファイルを確保し、コントラクトを公開し、コードを書き、ハートビートを送信
コンダクターが統合ゲートを実行 — プロジェクトをコンパイルし、エラーをDM経由で担当エージェントにルーティング
エージェントが自己修正。ゲートはクリーンになるまで再試行
サマリーを表示: エージェント、コントラクト、メモリ、メトリクス、完了。
その他の実行方法:
# Auto-named agents
hermes-brain "Add error handling to the whole codebase"
# Mix models per task
hermes-brain "Build a game" --agents engine ui store --model claude-sonnet-4-5
# Cheap model for boilerplate
hermes-brain "Generate 10 test files" --model claude-haiku-4-5
# JSON pipeline with multiple phases
hermes-brain --config pipeline.jsonまたはHermes内から(インタラクティブ):
hermes> Use register, then wake to spawn 3 agents
that each refactor a different module.仕組み
graph TB
subgraph "Python Conductor"
CLI["hermes-brain CLI"]
ORCH["Orchestrator<br/><small>spawn · wait · gate · retry</small>"]
end
subgraph "Hermes Agents"
direction LR
H1["Agent 1<br/><small>hermes -q</small>"]
H2["Agent 2<br/><small>hermes -q</small>"]
H3["Agent 3<br/><small>hermes -q</small>"]
end
CLI --> ORCH
ORCH -->|spawn| H1
ORCH -->|spawn| H2
ORCH -->|spawn| H3
subgraph "Brain (shared SQLite)"
DB[("brain.db")]
PULSE["Heartbeats"]
MX["Mutex Locks"]
KV["Shared State"]
CON["Contracts"]
MEM["Memory"]
PLAN["Task DAG"]
end
ORCH <--> DB
H1 <--> DB
H2 <--> DB
H3 <--> DB
subgraph "Integration Gate"
GATE["tsc · mypy · cargo · go vet"]
ROUTE["DM errors → agents"]
end
ORCH --> GATE
GATE --> ROUTE
ROUTE -.->|DM| H1
ROUTE -.->|DM| H2
style CLI fill:#9333EA,stroke:#7C3AED,color:#fff
style ORCH fill:#9333EA,stroke:#7C3AED,color:#fff
style H1 fill:#3B82F6,stroke:#2563EB,color:#fff
style H2 fill:#10B981,stroke:#059669,color:#fff
style H3 fill:#F59E0B,stroke:#D97706,color:#000
style DB fill:#1E293B,stroke:#334155,color:#fff
style GATE fill:#EF4444,stroke:#DC2626,color:#fffアーキテクチャ
この図はbrain-mcpの内部アーキテクチャと、各コンポーネントがどのように相互作用するかを示しています:
graph TB
subgraph "External Clients"
HERMES["Hermes CLI"]
CLAUDE["Claude Code"]
ANY["Any MCP Client"]
end
subgraph "brain-mcp (Node.js)"
SERVER["src/index.ts<br/>MCP Request Router"]
CONDUCTOR["brain-conductor<br/>Zero-token Orchestration CLI"]
GATE["src/gate.ts<br/>Integration Gate"]
end
subgraph "pi-agent-core Runtime"
PI_CORE["src/pi-core-agent.ts<br/>In-process Agent Runner"]
PI_CORE_TOOLS["src/pi-core-tools.ts<br/>14 Brain Tools as AgentTools"]
PI_AGENT["pi-agent-core Agent<br/>model + tools + events"]
end
subgraph "BrainDB (SQLite)"
DB[("brain.db<br/>sessions, state, messages,<br/>claims, contracts, memory")]
end
HERMES & CLAUDE & ANY --> SERVER
SERVER <--> DB
SERVER --> CONDUCTOR
CONDUCTOR --> PI_CORE
PI_CORE --> PI_CORE_TOOLS
PI_CORE --> PI_AGENT
PI_CORE_TOOLS --> DB
PI_AGENT -->|beforeToolCall<br/>pulse| DB
CONDUCTOR --> GATE
GATE -->|DM errors| CONDUCTOR
style HERMES fill:#FF6B6B,stroke:#DC2626,color:#fff
style CLAUDE fill:#3B82F6,stroke:#2563EB,color:#fff
style ANY fill:#7C3AED,stroke:#6D28D9,color:#fff
style SERVER fill:#1E293B,stroke:#334155,color:#fff
style CONDUCTOR fill:#9333EA,stroke:#7C3AED,color:#fff
style GATE fill:#EF4444,stroke:#DC2626,color:#fff
style PI_CORE fill:#10B981,stroke:#059669,color:#fff
style PI_CORE_TOOLS fill:#059669,stroke:#047857,color:#fff
style PI_AGENT fill:#06B6D4,stroke:#0891B2,color:#fff
style DB fill:#1E293B,stroke:#334155,color:#fffpi-agent-core はLLMエージェントランタイムであり、モデルの対話ループ、ツール実行、イベント購読を処理します。brain-mcp は、piエージェントが呼び出すツールとして調整レイヤー(状態、メッセージング、ハートビート、ロック、コントラクト)を提供します。コンダクター は、フェーズ、ゲート、tmuxレイアウトを使用してすべてを統合します。
トークン消費ゼロの調整。 コンダクターは純粋なPythonであり、LLMトークンは実際の作業にのみ消費されます。ハートビート、確保、コントラクト、ゲート、再試行はすべてローカルで実行されます。
管理するサーバーは不要。 各エージェントはBrainへの独自のstdio接続を開きます。SQLiteのWALモードが同時アクセスを安全に処理します。
同じBrain、任意のCLI。 Hermes、Claude Code、MiniMaxなど、すべてのクライアントが同じSQLite DBにアクセスします。HermesとClaudeエージェントの混成艦隊が同じタスクで調整可能です。
hermes-brain CLI
hermes-brain <task> [options]フラグ | デフォルト | 説明 |
|
| 並列生成するエージェント名 |
|
| 各エージェントに渡すモデル |
| off | 統合ゲートをスキップ |
|
| ゲートの最大再試行回数 |
|
| エージェントごとのタイムアウト |
| マルチフェーズパイプラインの読み込み | |
|
| カスタムBrain DB |
パイプライン設定ファイル
{
"task": "Build a todo app",
"model": "claude-sonnet-4-5",
"gate": true,
"max_gate_retries": 3,
"phases": [
{
"name": "foundation",
"parallel": true,
"agents": [
{ "name": "types", "files": ["src/types/"], "task": "Define all TS types" },
{ "name": "db", "files": ["src/db/"], "task": "Set up Prisma schema" }
]
},
{
"name": "feature",
"parallel": true,
"agents": [
{ "name": "api", "files": ["src/api/"], "task": "REST endpoints" },
{ "name": "ui", "files": ["src/ui/"], "task": "React components" }
]
},
{
"name": "quality",
"parallel": true,
"agents": [
{ "name": "tests", "task": "Write unit + integration tests" }
]
}
]
}フェーズは順次実行されます。フェーズ内のエージェントは並列実行されます。統合ゲートはフェーズ間で実行されます。
Brainツール
12カテゴリ、35以上のツール。 Hermes、Claude Code、およびMCP互換エージェントすべてで利用可能です。
アイデンティティと健全性
ツール | 説明 |
| このセッションに名前を付ける |
| アクティブなセッションを一覧表示 |
| セッション情報とルームを表示 |
| ステータスと進捗を含むハートビート(保留中のDMを返す) |
| 全エージェントのライブ健全性(ステータス、ハートビート経過時間、確保状況) |
メッセージング
ツール | 説明 |
| チャンネルに投稿 |
| チャンネルから読み取り |
| 他のエージェントにダイレクトメッセージ |
| DMを読み取る |
共有状態とメモリ
ツール | 説明 |
| 一時的なキーバリューストア |
| キーの一覧表示 / 削除 |
| 永続的な知識を保存 ( |
| 前のセッションからのメモリを検索 |
| 古いメモリを削除 |
ファイルロック
ツール | 説明 |
| ファイル/リソースをロック (TTLベースのミューテックス) |
| ロック解除 |
| アクティブなロックを一覧表示 |
コントラクト(統合バグを防ぐ)
ツール | 説明 |
| モジュールが提供/期待するものを公開 |
| コーディング前に他のエージェントのコントラクトを読み取る |
| 全コントラクトを検証 — パラメータの不一致や不足関数を検出 |
統合ゲート
ツール | 説明 |
| コンパイルとコントラクトチェックを実行し、エラーを責任エージェントにDM |
| ゲートをループ実行し、修正を待ち、クリーンになるまで再試行 |
タスク計画 (DAG)
ツール | 説明 |
| 依存関係を持つタスクDAGを作成 |
| 依存関係が満たされたタスクを取得 |
| タスクを完了/失敗としてマーク (依存先を自動昇格) |
| 全体的な進捗 |
| 自然言語の目標をフェーズ、エージェント、ファイルスコープ、コンダクター設定に変換 |
| コンパイルされたワークフローをBrain状態とタスクDAGに永続化、オプションでコンダクターJSONを書き出し |
オーケストレーション
ツール | 説明 |
| 新しいエージェントを生成 (hermes, claude, またはheadless) |
| 1回の呼び出しで複数のエージェントを生成 |
| 失敗したエージェントをリカバリコンテキスト付きで置換 |
| エージェントごとの成功率、期間、エラー数 |
コンテキスト台帳(追跡の喪失を防ぐ)
ツール | 説明 |
| アクション/発見/決定/エラーを記録 |
| 台帳を読み取る |
| コンテキストリカバリ用の要約ビュー |
| 完全な作業状態を保存 |
| コンテキスト圧縮後に復元 |
ハートビートとコントラクトプロトコル
生成されたすべてのエージェントは、オーケストレーターが強制する2つのプロトコルに従います:
ハートビート — エージェントは2〜3回のツール呼び出しごとに、ステータスと短い進捗メモを添えて brain_pulse を呼び出します。コンダクターはこれを使用して以下を行います:
ターミナルにライブステータスを表示 (
● working — editing src/api/routes.ts)停止したエージェントを検出 (60秒間パルスがない場合 →
stale)保留中のDMをパルスの戻り値として配信 (余分なラウンドトリップなし)
コントラクト — エージェントはコードを書く前に brain_contract_get を呼び出し、他のエージェントが何をエクスポートしているかを確認します。書き込み後、brain_contract_set で自身のコントラクトを公開します。完了とマークする前に、brain_contract_check が艦隊全体を検証し、以下を検出します:
関数シグネチャの不一致 (2引数期待に対し3引数取得)
不足しているエクスポート (エージェントAが
getUserをインポートしているが、エージェントBがエクスポートしていない)型のドリフト (
Userを期待していたが{name, email}を取得)
これが、単一エージェントの統合品質と並列艦隊を両立させる鍵です。
統合ゲート
sequenceDiagram
participant O as Orchestrator
participant C as Compiler
participant DB as Brain DB
participant A as Agent
O->>C: Run tsc / mypy / cargo / go vet
C-->>O: Errors with file:line:message
O->>DB: Query: who claimed this file?
DB-->>O: Agent X owned src/api/routes.ts
O->>A: DM: "Fix these errors in your files"
Note over A: Agent reads DM on next pulse
Note over A: Fixes code, pulses done
O->>C: Re-run compiler
C-->>O: Clean
O->>DB: Record metricsゲートはプロジェクト言語を自動検出し、適切なチェッカーを実行します:
言語 | チェッカー |
TypeScript |
|
Python |
|
Rust |
|
Go |
|
エラーは解析され、失敗したファイルを確保したエージェントと照合され、DMとしてルーティングされます。エージェントは次のパルスでエラーを拾い、自己修正します。ループは --retries 回まで再試行し、その後諦めます。
混成艦隊
Brain DBはすべてのMCPクライアント間で共有されます。1つのプロジェクトで以下が可能です:
graph LR
subgraph "Fleet"
direction TB
HA["Hermes Agent<br/><small>fast local inference</small>"]
CC["Claude Code<br/><small>deep reasoning</small>"]
MM["MiniMax<br/><small>cheap boilerplate</small>"]
end
subgraph "Brain"
DB[("brain.db")]
end
HA <--> DB
CC <--> DB
MM <--> DB
style HA fill:#F59E0B,stroke:#D97706,color:#000
style CC fill:#9333EA,stroke:#7C3AED,color:#fff
style MM fill:#3B82F6,stroke:#2563EB,color:#fff
style DB fill:#1E293B,stroke:#334155,color:#fffタスクタイプごとにルーティングします。日常業務にはHermes、アーキテクチャの決定にはClaude、定型作業には安価なモデルを使用します。すべて同じBrainを通じて調整し、コントラクト、ゲート、メモリを共有します。
Claude Codeから:
brain_wake({ task: "...", cli: "hermes", layout: "headless" })
brain_wake({ task: "...", cli: "claude", layout: "horizontal" })高度な機能
以下は技術的な詳細を網羅しています。
パフォーマンス
ベンチマークを自分で実行してください:
node benchmark.mjs # SQLite direct layer (1000 iterations)
node benchmark-mcp.mjs # MCP tool layer (30 iterations per tool)SQLite直接レイヤー (2026-04-06, M4 Pro, WALモード)
操作 | 平均 | p50 | p95 | p99 | スループット |
session_register | 0.021ms | 0.011ms | 0.027ms | 0.039ms | ~47K/s |
message_post (1 msg) | 0.014ms | 0.011ms | 0.019ms | 0.031ms | ~70K/s |
message_read (50 msgs) | 0.042ms | 0.042ms | 0.045ms | 0.066ms | ~24K/s |
state_get | 0.002ms | 0.002ms | 0.002ms | 0.003ms | ~570K/s |
claim_query (all) | 0.001ms | 0.001ms | 0.002ms | 0.002ms | ~670K/s |
heartbeat_pulse (update) | 0.002ms | 0.002ms | 0.002ms | 0.003ms | ~464K/s |
session_query (by id) | 0.002ms | 0.002ms | 0.002ms | 0.003ms | ~455K/s |
直接SQLite: すべてのコア調整操作はサブミリ秒です。KVストア (state_get) は ~570K 読み取り/秒 を維持します。高頻度の調整 (ハートビート、確保、状態) は1msを大幅に下回ります。
MCPツールレイヤー (2026-04-06, stdio JSON-RPC, 各30回呼び出し)
ツール | 平均 | p50 | p95 | 最小 | 最大 |
brain_status | 12.2ms | 12.0ms | 15.6ms | 8.8ms | 21.2ms |
brain_sessions | 1.9ms | 1.7ms | 3.6ms | 0.9ms | 4.7ms |
brain_keys | 1.6ms | 1.6ms | 2.6ms | 0.8ms | 4.5ms |
brain_claims | 2.0ms | 1.8ms |
This server cannot be deployed
Maintenance
Related MCP Connectors
The team layer for AI coding agents: shared contracts, collision alerts, E2EE sessions.
Shared memory and mail for your AI agents. Verified with Claude Code; other MCP clients in testing.
Shared workspace where Claude, ChatGPT, Codex and Grok share files, tasks, decisions and handoffs.
Your AI apps as one team: hand work to Codex or Claude Code, with a shared logbook of results.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceEnables two live Claude Code instances on the same workstation to exchange synchronous questions and answers via a shared SQLite file.-
- FlicenseNot gradedqualityDmaintenanceEnables multiple AI agents to communicate and coordinate via a shared SQLite-backed message log, supporting directed messages, broadcasts, and session discovery.-
- FlicenseNot gradedqualityDmaintenanceSQLite-backed MCP server for Claude Code session persistence and multi-agent coordination. Provides tools for session management, event logging, decision tracking, file locking, agent registry, and plan tracking.-
- AlicenseNot gradedqualityDmaintenanceEnables multiple Claude Code sessions to communicate, share state, and coordinate tasks through session management, message passing, and task scheduling, supporting a three-role collaboration workflow.2MIT