MCP-Agent について
DSPy を使用して MCP サーバーと対話するコマンドラインツールで、Claude Desktop のような体験を提供します。MCP 設定を読み込み、エージェントが複数のサーバーからツールを呼び出して要件を完了できます。
主な機能
- 01DSPy エージェント自動ツール呼び出し
- 02Claude Desktop 設定フォーマット対応
- 03マルチサーバーツール統合
- 04OpenAI モデル統合
活用シーン
- 01エージェント対話による複雑なタスク自動化
- 02ローカル MCP サーバーとの連携
- 03MCP サーバーの開発とテスト
MCP 対応
このツールは MCP 設定ファイルで定義されたサーバーを読み込み、DSPy エージェントがそれらのサーバーが公開するすべてのツールにアクセスして呼び出せるようにします。
詳細
MCP-Agent
./clients/mcp_client.py は DSPy を使用して MCP サーバーと対話するコマンドラインツールです。目的は Claude Desktop と同様のエクスペリエンスを提供することです。特に、DSPy エージェントは MCP サーバーで定義されたツール定義を使用して、ユーザーのリクエストを実現するためにツールを自律的かつ反復的に使用します。
このコマンドラインプログラムは Claude Desktop が使用するのと同じフォーマットの設定ファイルを受け取り、設定内のすべてのサーバーを読み込みます。すべてのサーバー間のツールはエージェントが使用できます。
プロジェクトの実行
プロジェクトを実行するための便利なコマンドは Makefile に記載されています。
クイックスタート
- プロジェクトディレクトリに
.envファイルを作成し、OPENAI_API_KEYキーと値を追加します。 ./servers/mcp_fake_server_config.jsonのこのパス/Users/shanekercheval/repos/mcp-client-agent/serversを適切に調整します。make buildmake chat./servers/mcp_fake_server_config.json設定を使用してchatコマンドを実行し、MCP サーバー./servers/mcp_fake_server.pyを起動します。- この MCP サーバーは
count_charactersやcalulator_multiplyなどの簡単なツールが含まれています。
- この MCP サーバーは
- このコマンドは
openai/gpt-4o-miniをモデルとして使用し(DSPy モデルパスフォーマット)、.envファイルに設定されたOPENAI_API_KEYが必要です。
make chat コマンドと mcp_fake_server.py を使用した例:
次の 2 つのテキストの文字数を掛け合わせてください:「Lorem ipsum odor amet, consectetuer adipiscing elit. Nisl ligula molestie nec a sodales morbi vel. Diam interdum metus ante semper, lorem ornare massa. Accumsan dapibus lacus venenatis; elementum varius nascetur nibh sodales ipsum. Suspendisse mauris cubilia sit elit netus mattis. Rhoncus vivamus ridiculus nostra sociosqu bibendum. Eleifend ultricies orci proin maecenas justo felis sagittis. Elit blandit mattis dis consectetur morbi quisque penatibus.」と「Lorem ipsum odor amet, consectetuer adipiscing elit. Proin maximus condimentum fusce nam, dictum adipiscing maximus. Lacinia pellentesque magna senectus adipiscing massa cras elementum tortor. Habitant hendrerit sodales, consectetur amet conubia ullamcorper. Suscipit aliquet curae lobortis imperdiet, montes lectus. Hendrerit penatibus commodo semper laoreet viverra eu elit nisl.」
count_characters と calculator_multiply ツールが使用され、結果は 455 * 381 = 173,355 となるはずです。
Claude 起動時のエラー
uv run mcp install ./servers/mcp_fake_server.py でサーバーをインストール後、Claude を起動するときにこれらのエラーが表示されました。これらのエラーは Docker コンテナを使用する場合には発生しません。1 つの問題は、uv コマンドが完全なパス(which uv で見つけることができます)を指定しない限り見つからないことです。もう 1 つの問題は、MCP サーバーがインポートしようとしている異なるディレクトリからのファイルを見つけられないことです。
以下は表示されるエラーです(tail -n 20 -F ~/Library/Logs/Claude/mcp*.log でデバッグするのに役立ちました):
Error in MCP connection to server Demo: Error: spawn uv ENOENT
[error] Could not start MCP server Demo: Error: spawn uv ENOENT
解決策は command に完全なパスを追加し、サーバーによってインポートされるソースファイルのプロジェクトディレクトリを参照する --directory フラグを追加することでした:
{
"mcpServers": {
"fake-server": {
"command": "/Users/shanekercheval/.local/bin/uv",
"args": [
"run",
"--directory",
"/Users/shanekercheval/repos/mcp-client-agent",
"--with",
"mcp",
"mcp",
"run",
"servers/mcp_fake_server.py"
]
}
}
}
インストールコマンドから直接これを行う方法はないようです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。