mcpField
M
MCP-Agent

MCP-Agent

github.com/shane-kerchevalフレームワーク・SDK2488 週間前に更新

MCP-Agent について

DSPy を使用して MCP サーバーと対話するコマンドラインツールで、Claude Desktop のような体験を提供します。MCP 設定を読み込み、エージェントが複数のサーバーからツールを呼び出して要件を完了できます。

主な機能

  1. 01DSPy エージェント自動ツール呼び出し
  2. 02Claude Desktop 設定フォーマット対応
  3. 03マルチサーバーツール統合
  4. 04OpenAI モデル統合

活用シーン

  1. 01エージェント対話による複雑なタスク自動化
  2. 02ローカル MCP サーバーとの連携
  3. 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 build
  • make chat
    • ./servers/mcp_fake_server_config.json 設定を使用して chat コマンドを実行し、MCP サーバー ./servers/mcp_fake_server.py を起動します。
      • この MCP サーバーは count_characters や calulator_multiply などの簡単なツールが含まれています。
    • このコマンドは 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"
      ]
    }
  }
}

インストールコマンドから直接これを行う方法はないようです。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。