/ ディレクトリ / プレイグラウンド / mcp-use
● コミュニティ mcp-use ⚡ 即起動

mcp-use

作者 mcp-use · mcp-use/mcp-use

複数のMCPサーバーを1つのLangChainエージェントに接続するPythonライブラリ。LLMなしのヘッドレス実行にも対応しています。

mcp-useはクライアントサイドのPythonフレームワークです。N個のMCPサーバー設定(stdioまたはHTTP)を指定し、LangChain互換の任意のLLMでMCPAgentにラップすることで、マルチサーバーエージェントが動作します。また、LLMを介さずMCPClientで直接ツールを呼び出すことも可能で、スクリプトによる自動化に適しています。

なぜ使うのか

主な機能

ライブデモ

実際の動作

mcp-use.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-use": {
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-use": {
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-use": {
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-use": {
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-use",
      "command": "uvx",
      "args": [
        "mcp-use"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-use": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-use"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add mcp-use -- uvx mcp-use

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: mcp-use

playwright + filesystem + postgresを使ったカスタムエージェントの構築

👤 バーティカルエージェントを構築するPython開発者 ⏱ ~45 min intermediate

使うタイミング: Claude Desktopではなく、ブラウザ+ファイル+DBを連携させる再現可能な自動化が必要な場合。

前提条件
  • Python 3.10以上、uvまたはpip — 標準的なセットアップ
  • LLM APIキー(OpenAI / Anthropic) — LangChainモデルが参照する環境変数として設定
フロー
  1. サーバー設定を定義する
    playwright(npx経由のstdio)、postgres(uvx経由のstdio)、filesystem(スコープ指定のローカルパス)に接続するmcp-useコンフィグを書いてください。✓ コピーしました
    → スキーマに準拠したJSON/dict設定
  2. エージェントを組み立てる
    ChatAnthropic(claude-sonnet-4)と上記の設定を使ってMCPAgentを作成してください。最大イテレーション数 = 15。✓ コピーしました
    .run()可能なエージェントインスタンス
  3. タスクを実行する
    実行: 'docs.example.comをクロールし、各ページを./knowledge/に保存し、タイトルをpostgresのdocsテーブルにインデックスする。' ログでツール呼び出しを確認してください。✓ コピーしました
    → タスクが完了し、データが想定どおりの場所に格納される

結果: スケジュール実行、デプロイ、組み込みが可能なスクリプタブルなエージェント。デスクトップクライアントに依存しません。

注意点
  • エージェントがサーバー間でループし、トークンを消費し続ける — 厳密なmax_iterationsを設定し、指示に忠実なLLMを使用すること。GPT-4o-miniは複雑なチェーンでループしやすいため、より強力なモデルを使用してください
  • クラッシュ後にstdioサーバーがゾンビ化する — 必ず非同期コンテキストマネージャーパターンを使用すること。クリーンアップを自動で処理します。プロセスを自前で管理しないでください
組み合わせ: fastmcp · mcp-agent

LLMなしでPythonからMCPツールを呼び出す

👤 運用タスクを自動化するエンジニア ⏱ ~20 min intermediate

使うタイミング: MCPツールをPythonパイプラインの一部として決定論的に呼び出したい場合。

フロー
  1. クライアントを直接接続する
    MCPClientを使ってfilesystem MCPに接続し、利用可能なツールを一覧表示してください。✓ コピーしました
    → ツール名とスキーマが出力される
  2. 型付き引数でツールを呼び出す
    write_fileをpath='./out.txt'、content='hello'で呼び出し、戻り値を確認してください。✓ コピーしました
    → ファイルが書き込まれ、LLMは関与しない
  3. ビジネスロジックに組み込む
    これをMCPツールを呼び出す関数save_report(df)にラップし、既存のPython ETLに統合してください。✓ コピーしました
    → 再利用可能な関数

結果: MCPをライブラリとして利用: Claude Desktopで使用するサーバーと同じものを、通常のPythonからも呼び出せます。

注意点
  • エラーが自然にバブルアップしない — MCPエラーはisError: trueを持つ結果オブジェクトとして返される — 毎回result.isErrorを確認すること。成功を前提にしないでください

リクエストに応じて適切なMCPを選択するルーターエージェントの構築

👤 エージェント製品を開発するチーム ⏱ ~60 min advanced

使うタイミング: ユーザーがコード・データ・Webなど多様なリクエストを送信し、50個のツールを持つモノリシックなプロンプトでは精度が低下する場合。ルーティングが必要です。

フロー
  1. サーバーグループを定義する
    MCPサーバーを3つのグループに分割してください: 'code'(git、github)、'data'(postgres、bigquery)、'web'(firecrawl、playwright)。✓ コピーしました
    → 3つの個別のエージェント設定
  2. ルーターレイヤーを追加する
    ユーザーの意図に基づいてグループを1つ選択する分類プロンプトを作成し、対応するMCPAgentをオンデマンドでインスタンス化してください。✓ コピーしました
    → 分類器が{code, data, web}のいずれかを返す
  3. 混合トラフィックでテストする
    多様な10件のリクエストをルーターに通し、各リクエストをどのグループが処理したか、回答が正しかったかをログに記録してください。✓ コピーしました
    → 精度テーブル+レイテンシ統計

結果: 各リクエストが関連するツールのみを参照するモジュラーなエージェントシステム。精度が向上し、トークンコストが削減されます。

注意点
  • 2つのグループが必要なエッジケース(例: 'スクレイピング+DBに保存') — 4つ目の'cross'グループを定義するか、mcp-agentのOrchestratorパターンにフォールバックする
組み合わせ: mcp-agent

組み合わせ

他のMCPと組み合わせて10倍の力を

mcp-use + mcp-agent

サーバー接続にはmcp-useを、ワークフローパターン(orchestrator/evaluator)にはmcp-agentを使用

ライターエージェントがmcp-use経由でfilesystem + gitにアクセスし、クリティックエージェントが同じサーバーを使って出力をレビューする、evaluator-optimizerループを構築してください。✓ コピーしました
mcp-use + fastmcp

FastMCPでサーバーを作成し、mcp-useでスクリプトから呼び出す — エンドツーエンドのPythonエージェントスタック

サーバー: 価格APIをFastMCPで公開。クライアント: mcp-useを使って価格シミュレーションスクリプトから呼び出す。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
MCPClient(config) server config dict/path mcp-useスクリプトのエントリーポイント free
MCPAgent(llm, client, max_steps) LangChain chat model + MCPClient LLM駆動のツール選択が必要な場合 LLM calls only
client.list_tools() server_name? 呼び出し前に利用可能なツールを確認する free
client.call_tool(name, args) tool_name, dict LLMなしの決定論的な直接呼び出し depends on tool
MCPServer decorator API @server.tool() on functions 使用頻度は低い。サーバー構築にはFastMCPの方が一般的に適しています free

コストと制限

運用コスト

APIクォータ
mcp-use自体にはなし。LLMおよび下流のMCPに依存
呼び出しあたりのトークン
LLM駆動の呼び出しはトークンを消費します — 通常のLangChainエージェントのコストモデルと同様
金額
ライブラリは無料、LLMの利用は有料
ヒント
決定論的なフローではclient.call_toolを直接使用し、LLMをスキップしてください。MCPAgentは本当に曖昧なタスクにのみ使用します。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: 各MCPの仕様に依存 — mcp-useは独自のレイヤーを追加しません
データ送信先: LLMプロバイダー+接続されたすべてのMCP

トラブルシューティング

よくあるエラーと対処法

stdioサーバー起動時のConnectionError

コンフィグのcommandがPATHに存在しないか、パッケージがインストールされていません。手動でテスト: 同じnpx -y ...をターミナルで先に実行してください。

確認: which npx && npx -y @modelcontextprotocol/server-filesystem --help
エージェントがツールを正しく呼び出すが回答が間違っている

通常はLLMの問題です。より強力なモデルを試してください。GPT-4o-miniやオープンソースの7Bモデルはツールの結果を誤って解釈することがよくあります。

Event loop already running エラー

非同期コンテキスト内から同期APIを呼び出しています。awaitと非同期クライアントメソッドを一貫して使用してください。

サーバーAのツール名がサーバーBの名前と衝突する

コンフィグでサーバーごとにツール名にプレフィックスを付けるか、ライブラリ組み込みの名前空間処理(namespace=Trueを設定)を利用してください。

代替案

mcp-use 他との比較

代替案代わりに使う場面トレードオフ
mcp-agentワークフローパターン(orchestrator、router、evaluator)が組み込まれたものが必要な場合より規約重視。素のLangChainを使いたい場合は柔軟性が低い
Official Python MCP SDK最も低レベルなクライアントが必要な場合 — LangChainなし、抽象化なしより多くの配管コードが必要
LangGraph + MCPチェックポイント付きのステートフルなマルチターングラフが必要な場合学習曲線が急。シンプルなエージェントにはオーバースペック

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る