Lldb_mcp について
Lldb_mcpは、MCPクライアントを実行中のLLDBセッションに接続し、2つのツールでデバッガーコマンドを実行します。コマンド出力を直接取得し、デバッグやリバースエンジニアリング向けの小さなツール構成を保ちます。
主な機能
- 01lldb_initとlldbの2コマンド
- 02LLDBコマンド出力の取得
- 03出力とエラーの返却
- 04コマンド連結の禁止
活用シーン
- 01MCPクライアントからLLDBコマンドを実行
- 02手動コピーなしでデバッガー出力を確認
MCP 対応
lldb_initとlldbツールを通じて、実行中のLLDBセッションをMCPクライアントに公開します。サーバーはLLDBセッション内で手動起動する必要があります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
lldb_mcp
依存関係を最小限に抑え、すべての機能を備えた、適切でシンプルな lldb MCP サーバーです。コマンドは lldb_init と lldb の 2 つだけなので、ツールが煩雑になりません。o4-mini や Gemini 2.5 Pro との相性も非常に良好です。操作の主導権は常にユーザーにあります。
出力は自動的に取得されるため、コピー&ペーストする必要はありません。
セットアップ
git clone https://github.com/stableversion/lldb_mcp
cd lldb_mcp && python3 -m venv venv && source venv/bin/activate && pip3 install fastmcp
{
"mcpServers": {
"lldb": {
"command": "/path/to/ldb_mcp/venv/bin/python",
"args": ["/path/to/ldb_mcp/lldb_mcp.py"]
}
}
}
(lldb) command script import /path/to/lldb_mcp/lldb_server.py
アーキテクチャ
コードベース全体は 200 行未満です。その理由は次のとおりです。
- 同期 LLDB: debugger.SetAsync(False) を呼び出すと、HandleCommand がブロックされ、すべての出力を直接取得できます。これにより、複雑なイベントリスナー(SBListener)やポーリングが不要になります。
- シンプルなコントローラー: LLDBController は HandleCommand 経由でコマンドを実行し、受け取った出力とエラーをすべて返します。
- 標準ライブラリ: Python 組み込みの socketserver と json を使用します。
安全性
lldb は任意のコマンドを実行できるため、それを防ぐ必要があります。
- lldb セッションでサーバーを手動で起動する必要があります。
- 一部のコマンドはブラックリストに登録されています。lldb_server.py を確認してください。
- コマンドの連結は禁止されています(o4-mini は特に連結を好みます)。
注意事項
- o4 mini は、メモリーコマンドで --address を幻覚する傾向があります。
- 出力なしで「成功」するコマンドがあり、LLM にとって紛らわしいため、代わりに「Executed successfully」を返します。
- 「Continue」はブレークポイントに到達するまで無期限に実行されることがあり、MCP が出力を永久に待ち続ける可能性があります(skip と continue を活用してください)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。