MCP Coding Assistant with support for OpenAI + other LLM Providers について
MCP Coding Assistant は Claude Code を Python で再実装したもので、OpenAI、Anthropic などの複数の LLM プロバイダーに対応しています。コマンドラインのコーディングアシスタントとして動作するほか、MCP サーバーや MCP クライアントとしても実行でき、コストを管理しながらワークフローをカスタマイズしたい開発者に向いています。
主な機能
- 01複数の LLM プロバイダーへの対応
- 02MCP サーバーとしての実行
- 03任意の MCP サーバーに接続する内蔵クライアント
- 04協調動作するマルチエージェントモード
- 05ツール実行状況のリアルタイム表示
- 06トークン使用量の追跡と予算上限の設定
活用シーン
- 01自然言語によるコマンドラインからのファイルの閲覧、編集、検索
- 02Claude Desktop から MCP サーバーとして利用
- 03既存の MCP サーバーへの接続と、Claude による推論の利用
MCP 対応
serve コマンドでツールを Claude Desktop などの MCP クライアントに公開し、mcp-client コマンドで任意の MCP サーバーに接続してそのツールを呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OpenAI + その他の LLM プロバイダーに対応した MCP コーディングアシスタント
リアルタイムの視覚化、コスト管理、Model Context Protocol(MCP)サーバー機能を強化した、Claude Code の強力な Python による再実装です。このツールは、複数の LLM プロバイダーに対応した、ソフトウェア開発タスク向けの自然言語インターフェースを提供します。
主な機能
- 複数プロバイダーへの対応: OpenAI、Anthropic、その他の LLM プロバイダーで動作します
- Model Context Protocol との統合:
- Claude Desktop やその他のクライアントで使用できる MCP サーバーとして実行
- 組み込みの MCP クライアントで任意の MCP サーバーに接続
- 複雑な問題解決のための複数エージェント同期
- ツール実行のリアルタイム可視化: ツールの実行状況と結果をリアルタイムで確認できます
- コスト管理: 予算管理機能を使ってトークン使用量と費用を追跡できます
- 包括的なツール群: ファイル操作、検索、コマンド実行など
- 強化された UI: 進行状況インジケーターと構文ハイライトを備えた、リッチなターミナルインターフェース
- コンテキストの最適化: スマートな会話の圧縮とメモリ管理
- エージェントの連携: 役割の異なる特化型エージェントがタスクで協力できます
インストール
- このリポジトリをクローンします
- 依存関係をインストールします:
pip install -r requirements.txt
- API キーを含む
.envファイルを作成します:
# Choose one or more providers
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
# Optional model selection
OPENAI_MODEL=gpt-4o
ANTHROPIC_MODEL=claude-3-opus-20240229
使い方
CLI モード
デフォルトのプロバイダー(利用可能な API キーから決定)で CLI を実行します:
python claude.py chat
プロバイダーとモデルを指定します:
python claude.py chat --provider openai --model gpt-4o
コストを管理するために予算上限を設定します:
python claude.py chat --budget 5.00
MCP サーバーモード
Model Context Protocol サーバーとして実行します:
python claude.py serve
MCP Inspector を使って開発モードで起動します:
python claude.py serve --dev
ホストとポートを設定します:
python claude.py serve --host 0.0.0.0 --port 8000
追加の依存関係を指定します:
python claude.py serve --dependencies pandas numpy
ファイルから環境変数を読み込みます:
python claude.py serve --env-file .env
MCP クライアントモード
推論エンジンとして Claude を使用して MCP サーバーに接続します:
python claude.py mcp-client path/to/server.py
Claude のモデルを指定します:
python claude.py mcp-client path/to/server.py --model claude-3-5-sonnet-20241022
付属のサンプルサーバーを試します:
# In terminal 1 - start the server
python examples/echo_server.py
# In terminal 2 - connect with the client
python claude.py mcp-client examples/echo_server.py
複数エージェント MCP モード
同期されたエージェントを備えた複数エージェントクライアントを起動します:
python claude.py mcp-multi-agent path/to/server.py
カスタムのエージェント設定ファイルを使用します:
python claude.py mcp-multi-agent path/to/server.py --config examples/agents_config.json
echo サーバーを使った例:
# In terminal 1 - start the server
python examples/echo_server.py
# In terminal 2 - launch the multi-agent client
python claude.py mcp-multi-agent examples/echo_server.py --config examples/agents_config.json
利用可能なツール
- View: 行数制限を任意で指定してファイルを読み取ります
- Edit: 正確なテキスト置換でファイルを変更します
- Replace: ファイルを作成または上書きします
- GlobTool: パターンマッチングでファイルを検索します
- GrepTool: 正規表現を使ってファイルの内容を検索します
- LS: ディレクトリの内容を一覧表示します
- Bash: シェルコマンドを実行します
チャットコマンド
- /help: 利用可能なコマンドを表示します
- /compact: トークンを節約するために会話履歴を圧縮します
- /version: バージョン情報を表示します
- /providers: 利用可能な LLM プロバイダーを一覧表示します
- /cost: コストと使用状況を表示します
- /budget [amount]: 予算上限を設定します
- /quit, /exit: アプリケーションを終了します
アーキテクチャ
Claude Code Python Edition は、モジュール式アーキテクチャで構築されています:
/claude_code/
/lib/
/providers/ # LLM provider implementations
/tools/ # Tool implementations
/context/ # Context management
/ui/ # UI components
/monitoring/ # Cost tracking & metrics
/commands/ # CLI commands
/config/ # Configuration management
/util/ # Utility functions
claude.py # Main CLI entry point
mcp_server.py # Model Context Protocol server
Model Context Protocol での使用
Claude Code を MCP サーバーとして使用する
MCP サーバーの起動後、Claude Desktop またはその他の MCP 対応クライアントから接続できます:
-
MCP サーバーをインストールして実行します:
python claude.py serve -
ブラウザーで設定ページを開きます:
http://localhost:8000 -
以下を含む、Claude Desktop の設定手順に従います:
- JSON 設定をコピーする
- 自動設定済みの JSON ファイルをダウンロードする
- ステップごとのセットアップ手順
Claude Code を MCP クライアントとして使用する
Claude Code を使用して任意の MCP サーバーに接続するには:
- Anthropic API キーが環境変数または .env ファイルに設定されていることを確認します
- 接続先の MCP サーバーを起動します
- MCP クライアントを使って接続します:
python claude.py mcp-client path/to/server.py - インタラクティブなチャットインターフェースで質問を入力します
マルチエージェントモードの使用
複雑なタスクでは、マルチエージェントモードを使うと、複数の特化したエージェントが協力できます。
- エージェント設定ファイルを作成するか、用意されているサンプルを使用します
- MCP サーバーを起動します
- マルチエージェントクライアントを起動します。
python claude.py mcp-multi-agent path/to/server.py --config examples/agents_config.json - コマンドインターフェースを使って複数のエージェントとやり取りします。
- メッセージを入力すると、すべてのエージェントに一斉送信できます
/talk Agent_Name messageを使用すると、特定のエージェントと直接やり取りできます/agentsを使用すると、利用可能なすべてのエージェントを確認できます/historyを使用すると、会話履歴を確認できます
コントリビュート
- リポジトリをフォークします
- 機能ブランチを作成します
- テストを追加して変更を実装します
- プルリクエストを送信します
ライセンス
MIT
謝辞
このプロジェクトは Anthropic の Claude Code CLI ツールに着想を得ており、可視性の向上、コスト管理、MCP サーバー機能などの追加機能を備えた Python 版として再実装されています。# OpenAI Code Assistant
OpenAI API を関数呼び出しとストリーミングで利用する、強力なコマンドラインおよび API ベースのコーディングアシスタントです。
機能
- コーディング支援のための対話型 CLI
- 他のアプリケーションと連携するための Web API
- Model Context Protocol(MCP)サーバーの実装
- 高可用性を実現するレプリケーションのサポート
- 拡張性を考慮したツールベースのアーキテクチャ
- ツールを最適化するための強化学習
- ブラウザーから操作できる Web クライアント
インストール
- リポジトリをクローンします
- 依存関係をインストールします。
pip install -r requirements.txt - OpenAI API キーを設定します。
export OPENAI_API_KEY=your_api_key
使用方法
CLI モード
対話型 CLI モードでアシスタントを実行します。
python cli.py
オプション:
--model、-m:使用するモデルを指定します(デフォルト:gpt-4o)--temperature、-t:応答生成の temperature を設定します(デフォルト:0)--verbose、-v:追加情報を含む詳細な出力を有効にします--enable-rl/--disable-rl:ツール最適化のための強化学習を有効または無効にします--rl-update:RL モデルの更新を手動で実行します
API サーバーモード
アシスタントを API サーバーとして実行します。
python cli.py serve
オプション:
--host:バインドするホストアドレス(デフォルト:127.0.0.1)--port、-p:待ち受けるポート(デフォルト:8000)--workers、-w:ワーカープロセス数(デフォルト:1)--enable-replication:インスタンス間のレプリケーションを有効にします--primary/--secondary:プライマリインスタンスかセカンダリインスタンスかを指定します--peer:レプリケーション対象のピアインスタンス(host:port)。複数回指定できます
MCP サーバーモード
アシスタントを Model Context Protocol(MCP)サーバーとして実行します。
python cli.py mcp-serve
オプション:
--host:バインドするホストアドレス(デフォルト:127.0.0.1)--port、-p:待ち受けるポート(デフォルト:8000)--dev:追加のログ出力を有効にする開発モードを有効にします--dependencies:インストールする追加の Python 依存関係--env-file:環境変数を含む .env ファイルへのパス
MCP クライアントモード
アシスタントを推論エンジンとして使用し、MCP サーバーに接続します。
python cli.py mcp-client path/to/server.py
オプション:
--model、-m:推論に使用するモデル(デフォルト:gpt-4o)--host:MCP サーバーのホストアドレス(デフォルト:127.0.0.1)--port、-p:MCP サーバーのポート(デフォルト:8000)
デプロイスクリプト
デプロイを簡単にするには、用意されているスクリプトを使用します。
./deploy.sh --host 0.0.0.0 --port 8000 --workers 4
レプリケーションを有効にするには:
# Primary instance
./deploy.sh --enable-replication --port 8000
# Secondary instance
./deploy.sh --enable-replication --secondary --port 8001 --peer 127.0.0.1:8000
Web クライアント
Web クライアントを使用するには、ブラウザーで web-client.html を開きます。API サーバーが実行中であることを確認してください。
API エンドポイント
標準 API エンドポイント
POST /conversation:新しい会話を作成しますPOST /conversation/{conversation_id}/message:会話にメッセージを送信しますPOST /conversation/{conversation_id}/message/stream:メッセージ応答をストリーミングしますGET /conversation/{conversation_id}:会話の詳細を取得しますDELETE /conversation/{conversation_id}:会話を削除しますGET /health:ヘルスチェック用エンドポイント
MCP プロトコルエンドポイント
GET /:ヘルスチェック(MCP プロトコル)POST /context:プロンプトテンプレートのコンテキストを取得GET /prompts:利用可能なプロンプトテンプレートを一覧表示GET /prompts/{prompt_id}:特定のプロンプトテンプレートを取得POST /prompts:新しいプロンプトテンプレートを作成PUT /prompts/{prompt_id}:既存のプロンプトテンプレートを更新DELETE /prompts/{prompt_id}:プロンプトテンプレートを削除
レプリケーション
レプリケーションシステムを使用すると、状態を同期したアシスタントの複数のインスタンスを実行できます。これにより、次のことが可能になります。
- 高可用性
- 負荷分散
- フォールトトレランス
レプリケーションを設定するには:
--enable-replicationを指定してプライマリーインスタンスを起動します--enable-replication --secondary --peer [primary-host:port]を指定してセカンダリーインスタンスを起動します
ツール
アシスタントには、さまざまなツールが含まれています。
- Weather:場所の現在の天気を取得します
- View:ファイルシステムからファイルを読み取ります
- Edit:ファイルを編集します
- Replace:ファイルを書き込みます
- Bash:bash コマンドを実行します
- GlobTool:ファイルパターンで検索します
- GrepTool:コンテンツを検索します
- LS:ディレクトリの内容を一覧表示します
- JinaSearch:Jina.ai を使用してウェブを検索します
- JinaFactCheck:Jina.ai を使用してファクトチェックを行います
- JinaReadURL:ウェブページを読み取り、要約します
CLI コマンド
/help:ヘルプメッセージを表示します/compact:トークンの使用量を減らすため、会話を圧縮します/status:トークンの使用量とセッション情報を表示します/config:現在の設定を表示します/rl-status:RL ツールオプティマイザーの状態を表示します(有効な場合)/rl-update:RL モデルを手動で更新します(有効な場合)/rl-stats:ツールの使用統計を表示します(有効な場合)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
