設定MCP

MCP

Bob ShellはModel Context Protocol(モデル・コンテキスト・プロトコル、MCP)をサポートしており、外部サービスやツールに接続してBobの機能を拡張できます。このガイドでは、Bob ShellでMCPサーバーを設定して使用する方法を説明します。

MCPとは?

MCP(Model Context Protocol、モデル・コンテキスト・プロトコル)サーバーは、Bobとデータベース、API、カスタム・スクリプトなどの外部サービスとの橋渡しとして機能します。MCPを使用すると、Bobの組み込み機能を超えて機能を拡張できます。

MCPサーバーはBobに以下を提供します:

  • ツール検出: 説明とパラメーターを含む利用可能なツールへのアクセス
  • ツール呼び出し: 引数を使用して特定のツールを呼び出し、構造化された応答を受け取る機能
  • リソース・アクセス: 特定のリソースからデータを読み取る機能

MCPを使用する理由

  • 機能の拡張: デフォルトでは利用できないカスタム機能をBobに追加
  • サービスとの統合: Bobをデータベース、API、その他のシステムに接続
  • ワークフローの自動化: 特定のニーズに合わせた専門的なツールを作成
  • 機能の共有: チーム内で有用なツールを配布

MCPサーバーの設定

MCPサーバー設定は2つのレベルで管理できます:

  1. グローバル設定:<USER_HOME>/.bob/mcp_settings.jsonの設定はすべてのワークスペースに適用
  2. プロジェクト・レベル設定:.bob/mcp.jsonの設定は現在のプロジェクトにのみ適用

サーバー名がグローバル設定とプロジェクト設定の両方に存在する場合、プロジェクト・レベル設定が優先されます。

MCP設定ファイルの編集

Bob IDEまたは他のテキスト・エディターを使用してMCP設定ファイルを変更します。

以下の例を参照してください:

{
  "mcpServers": {
    "server1": {
      "command": "python",
      "args": ["/path/to/server.py"],
      "env": {
        "API_KEY": "your_api_key"
      },
      "alwaysAllow": ["tool1", "tool2"],
      "disabled": false
    }
  }
}

設定プロパティ

各サーバー設定には、これらのプロパティーのいずれかが必要です:

  • command:stdioトランスポート用の実行可能ファイルへのパス
  • url:リモート・サーバー用のSSEエンドポイントURL
  • httpURL:ストリーム可能なhttp用のHTTPエンドポイントURL

オプションのプロパティーには以下が含まれます:

  • args:stdioトランスポート用のコマンド・ライン引数
  • headers:SSEトランスポート用のカスタムHTTPヘッダー
  • env:サーバー・プロセスの環境変数
  • cwd:stdioトランスポート用の作業ディレクトリ
  • timeout:リクエスト・タイムアウト(ミリ秒)(デフォルト:600,000ms; 10min)
  • alwaysAllow: 自動承認するツール名。Bob Shell は mcp.json からこれらのエントリを読み込み、各タスクの開始時に適用します。これにより、リストされたツールは承認を求めません。
  • disabled:サーバーを無効にする場合はtrueに設定

トランスポート・タイプ

MCPはサーバーとの通信に2つの方法をサポートします:

STDIOトランスポート

STDIOトランスポートはコンピューター上でローカルにサーバーを実行します:

  • 通信に標準入出力ストリームを使用
  • 低レイテンシとより良いセキュリティーを提供
  • コンピューター上で子プロセスとして実行

設定例:

{
 "mcpServers": {
   "local-server": {
     "command": "node",
     "args": ["server.js"],
     "cwd": "/path/to/project/Bob",
     "env": {
       "API_KEY": "your_api_key"
     },
     "alwaysAllow": ["tool1", "tool2"]
   }
 }
}

SSEトランスポート

SSEトランスポートはHTTP/HTTPS経由でリモート・サーバーに接続します:

  • Server-Sent Eventsプロトコルを使用
  • 異なるコンピューターでホストされているサーバーで動作
  • ネットワーク・アクセスが必要

設定例:

{
 "mcpServers": {
   "remote-server": {
     "url": "https://your-server-url.com/mcp",
     "headers": {
       "Authorization": "Bearer your-token"
     },
     "alwaysAllow": ["tool3"]
   }
 }
}

Streamable HTTPトランスポート

Streamable HTTPトランスポートはHTTPを使用してリモートサーバーに接続します:

  • 双方向HTTP接続を使用
  • リクエスト/レスポンスとサーバープッシュメッセージの両方をサポート
  • 異なるマシンにホストされているサーバーで動作

設定例:

{
 "mcpServers": {
   "remote-server": {
     "httpURL": "https://your-server-url.com/mcp"
   }
 }
}

プラットフォーム固有の例

Windows設定

{
  "mcpServers": {
    "puppeteer": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@modelcontextprotocol/server-puppeteer"
      ]
    }
  }
}

macOSおよびLinux設定

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-puppeteer"
      ]
    }
  }
}

ランタイム・バージョン・マネージャー設定

asdfmiseなどのバージョン・マネージャーを使用する場合:

{
  "mcpServers": {
    "mcp-batchit": {
      "command": "mise",
      "args": [
        "x",
        "--",
        "node",
        "/Users/myself/workspace/mcp-batchit/build/index.js"
      ],
      "alwaysAllow": [
        "search",
        "batch_execute"
      ]
    }
  }
}
このトピックはいかがですか?