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" })クイックスタート
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 installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevvGwardo/brain-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server