CodeBrain
CodeBrain
Claude Codeが、自身のハードウェアで実行されているローカルLLMに大量の作業をオフロードできるようにするMCPサーバーです。
これは何なのか(何ではないのか)
何なのか: Claude Codeがサブエージェントのバックエンドとして登録するModel Context Protocol (MCP) サーバーです。14Bクラスのローカルコーダーモデルが得意とするタスク(イベントテンプレートの50個生成、Reactコンポーネント20個の推敲、ボイラープレートの作成など)が含まれるセッションにおいて、Claude Codeは自身の出力トークンを消費する代わりにCodeBrainを呼び出します。ローカルモデルがドラフトを作成し、Claudeがそれをレビューして適用します。
何ではないのか: Claudeの代替品ではありません。推論、アーキテクチャの決定、デバッグ、そして「そこそこ」では不十分なあらゆる作業はClaudeが担当します。CodeBrainはClaudeのオフローダーであり、Claudeの競合相手ではありません。
なぜ必要なのか: 大量のコンテンツ作成や推敲作業は、Claudeのコンテキストとレート制限を急速に消費します。無制限に実行できるローカルモデルは呼び出しごとの追加コストがかからず、セッションの重要な部分のためにClaudeの貴重なコンテキストを温存できます。
Related MCP server: ollama-mcp
ステータス
フェーズ1〜4完了、フェーズ5は延期。 9つのツールを公開済み。.brain/context.mdのパススルー機能、ファイルごとのBrain要約スキャナー、検証ループ、コンセンサスデコーディングが実装されています。MCP統合は実際のClaude Codeセッションで検証済みです。フェーズ5(RAG)は「必要な場合のみ」と定義されていましたが、現在の使用状況ではファイル横断検索がボトルネックになっていないため、延期とします。
仕組み
Claude Code session CodeBrain MCP server Local machine
───────────────────── stdio ─────────────────── ─────────────
Claude delegates a ────────► codebrain_generate() ────► Ollama HTTP
bulk / polish task codebrain_explain() (localhost:11434)
codebrain_status() │
▼
Qwen2.5-Coder 14B
(GPU)
Claude reviews, ◄──────── tool result string ◄──── streamed response
applies, or pushes back現在、9つのツールが公開されています:
ツール | Claudeが呼び出すタイミング |
| 大量のコンテンツ、ボイラープレート、反復的な変換、初稿作成 |
| 共通のシステムメッセージを用いたN個のプロンプトの逐次実行。インデックス安定エラーにより、1つの失敗でバッチ全体が中断されない |
| 既存テキストに対するターゲット変換(短縮、言い換え、翻訳、引き締め)。出力が変化しない場合は自動再試行 |
| Claudeのコンテキストを消費しない、読み取り専用のクイック解説 |
| 決定論的な検証ループを伴う生成:単語数/正規表現スキーマチェック、違反時の指示強化再試行 |
| N個の候補を生成し、判定呼び出しを経て最適な出力を選択。分散の大きいタスクに使用 |
| リポジトリのワンショットオンボーディング:スタックを検出し、 |
| 1つの |
| ツリーを走査してスキャン。ハッシュ管理されており、ファイルごとの失敗でバッチ全体が中断されない |
| ローカルにインストールされているモデルを確認 |
生成ツールにあるuse_brainフラグは、現在の作業ディレクトリにある.brain/context.mdをシステムプロンプトの先頭に自動的に追加します。これにより、Claudeが手動で渡さなくても、プロジェクト固有のコンテキストがすべての呼び出しに引き継がれます。
要件
Python 3.11+
Ollama — OS用をダウンロード。Windowsネイティブで
localhost:11434経由の通信でテスト済み。ローカルにプルされたコーダーモデル:
ollama pull qwen2.5-coder:14b約9GBのダウンロード。Q5設定で12GBのVRAMに収まります。他のモデル(DeepSeek-Coder、利用可能な場合はQwen3など)も動作します。
CODEBRAIN_MODEL環境変数で設定してください。Claude Code CLI(サーバーを呼び出すマシン上)。
インストール
git clone <this repo> CodeBrain
cd CodeBrain
python -m venv .venv
.venv\Scripts\activate # on Windows
# source .venv/bin/activate # on macOS / Linux
pip install -e .Claude Codeの設定
Claude CodeのMCP設定にCodeBrainを追加します。Windowsの場合、通常は~/.claude.jsonです(パスはクローンした場所に合わせて調整してください):
{
"mcpServers": {
"codebrain": {
"command": "C:\\Users\\YOU\\Desktop\\CodeBrain\\.venv\\Scripts\\python.exe",
"args": ["-m", "codebrain"]
}
}
}Claude Codeセッションを再起動すると、5つのcodebrain_*ツールが利用可能なツールリストに表示されるはずです。
Brainファイルを自動的に同期する
リポジトリでcodebrain_initを実行し、codebrain_scan_repoでスキャンした後、Claudeがソースを編集するたびにBrainファイルを自動的に更新したい場合があるでしょう。以下の2つを設定します:
1. プロジェクトのCLAUDE.mdスニペット — ソースを開く前にBrainファイルを読み込むようClaudeに指示します:
## Brain files
This repo has per-file `.brain` summaries next to each source file.
Before reading a full source file, read its `<path>.brain` sibling first.
Only open the source when the brain file is insufficient for the task.2. PostToolUseフック — 編集/書き込みのたびにBrainを再生成します。
リポジトリルートの.claude/settings.jsonに追加します:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "python -c \"import asyncio, json, sys; from codebrain.brain_scanner import scan_file; d = json.load(sys.stdin); p = d.get('tool_input', {}).get('file_path'); p and p.endswith(('.py', '.ts', '.tsx', '.js', '.jsx', '.java', '.go', '.rs')) and print(asyncio.run(scan_file(p)))\""
}
]
}
]
}
}このフックは編集されたパスを検査し、拡張子フィルターでソース以外のファイルをスキップしてスキャンを開始します。ハッシュ管理されているため、変更されていないファイルはQwenに送信されません。
動作確認
Claude Codeセッション内で、Claudeに次のように尋ねます:
codebrain_statusを呼び出して、何がインストールされているか教えて。
Ollamaが実行中でモデルがプルされていれば、リストにqwen2.5-coder:14bが表示されます。
設定
バックエンドが読み取る環境変数:
変数 | デフォルト | 説明 |
|
| リモートのOllamaを指定(例:LAN上の推論ボックス) |
|
| プルした任意のモデルに切り替え可能 |
|
| 1回の生成を待機する秒数 |
プロジェクト構造
CodeBrain/
├── codebrain/
│ ├── __init__.py
│ ├── __main__.py # `python -m codebrain` entry
│ ├── backend.py # Ollama HTTP client
│ ├── server.py # FastMCP server + tool definitions
│ ├── brain_scanner.py # scan_file / scan_repo + hash gate
│ ├── brain_init.py # one-shot .brain/context.md seeding
│ ├── verifier.py # deterministic output checks
│ └── prompts/
│ └── brain_few_shot.md # few-shot for brain-file generation
├── tests/ # 96 unit + integration tests
├── .spec/
│ ├── CURRENT.md # phase state
│ └── brain-file-format.md # brain-file format v1
├── pyproject.toml
├── LICENSE
└── README.mdロードマップ
フェーズ1 — スキャフォールド ✓
[x] エラーハンドリング付きOllama HTTPクライアント
[x] stdioトランスポートを備えたFastMCPサーバー
[x] 3つのコアツール:
generate,explain,status[x] ドキュメント化されたセットアップ + Claude Code設定
[x] 実際のClaude Codeセッションでの検証
フェーズ2 — バッチとコンテキスト ✓
[x] 共通のシステムプロンプトを用いた大量コンテンツ生成用の
codebrain_batch_generate、インデックス安定エラー[x] 再生成ではなくターゲット変換(短縮/言い換え/翻訳)を行う
codebrain_polish[x]
.brain/context.mdパススルー — すべての生成呼び出しにcwdプロジェクトコンテキストを自動付与[x] ドッグフーディング: コーディングタスクは堅牢、テキスト変換タスクで真の限界が判明(フェーズ3に反映)
フェーズ2.5 — Brainシステム ✓
ファイルごとの<source>.brain要約が各ソースファイルの隣に配置されます。ClaudeはまずBrainを読み、Brainで不十分な場合にのみソースを開きます。
[x]
codebrain_scan_file(path, force)— 1つのBrainファイルを生成または更新[x]
codebrain_scan_repo(root, force, extensions, exclude_dirs)— 一括走査 + スキャン[x]
codebrain_init(root, force)— スタック検出付きで.brain/context.mdをシード[x] ハッシュ管理された再生成 (SHA256) — 冪等な再実行
[x] プログラムによるフロントマター — 決定論的な
source,source_hash,model; Qwenは5つのセクションのみを記述[x] 多層防御バリデーション: フェンス除去、空ソースのスキップ(10文字未満)、セクションの存在/順序、無効時の再試行
[x] CLAUDE.md規約 + このREADME内のPostToolUseフックスニペット
フェーズ3 — VERIFIERループ ✓
ドッグフーディングにより、ローカルモデルがテキスト変換でドリフトすることが判明しました。検証機能は、Claudeに到達する前に、ノーオペレーション、長さ違反、スキーマ不一致を決定論的にキャッチします。
[x]
detect_noop— 空白を正規化した等価性チェック(codebrain_polish内で自動再試行)[x]
check_word_count(min_words, max_words)— 境界ウィンドウゲート[x]
check_regex_schema(pattern)— 構造化出力チェック[x]
codebrain_generate_verified(prompt, min_words, max_words, must_match, max_retries)— 強化された再試行指示を伴うループ。検証失敗時は[codebrain warning] ...を返す
フェーズ4 — コンセンサスデコーディング ✓
[x]
codebrain_consensus_generate(prompt, n)— N個の候補を生成([2,5]に制限)、Qwenが最適なものを逐語的に選択。N+1回の推論呼び出しにより、分散の大きいタスクの品質を向上。マルチパス(スケルトン→ロジック→エッジ→推敲): 延期(測定値が低く、個々のツールで既に構成可能なため)。
フェーズ5 — RAG (延期 — ボトルネックではないため)
Brainファイルが既にインデックスとして機能しています。ファイル横断RAGは、将来的にインデックス作成がボトルネックであると判明した場合にのみ意味を持ちます。現在のところその兆候はないため、構築していません。
ライセンス
MIT — LICENSEを参照。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceMCP server that lets Claude Code delegate mechanical tasks to a local LLM for summarization, classification, extraction, and drafting.99MIT
- Flicense-qualityCmaintenanceMCP server that lets Claude Code offload simple tasks like code explanation, writing tests, and adding comments to a local Ollama model, saving Claude API tokens.
- Alicense-qualityBmaintenanceA local MCP server that delegates coding tasks to local Qwen and cloud Gemini models, enabling orchestrators like Claude Code to offload routine code generation and receive verified results with automatic correction logging.MIT
- Alicense-qualityDmaintenanceAn MCP server that allows Claude Code to offload mechanical tasks such as summarization, classification, and drafting to a local LLM, reducing API costs while keeping Claude in control of complex reasoning and quality review.9MIT
Related MCP Connectors
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Tschonsen/CodeBrain'
If you have feedback or need assistance with the MCP directory API, please join our Discord server