設定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つのレベルで管理できます:
- グローバル設定:
<USER_HOME>/.bob/mcp_settings.jsonの設定はすべてのワークスペースに適用 - プロジェクト・レベル設定:
.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エンドポイントURLhttpURL:ストリーム可能な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"
]
}
}
}ランタイム・バージョン・マネージャー設定
{
"mcpServers": {
"mcp-batchit": {
"command": "mise",
"args": [
"x",
"--",
"node",
"/Users/myself/workspace/mcp-batchit/build/index.js"
],
"alwaysAllow": [
"search",
"batch_execute"
]
}
}
}このトピックはいかがですか?