mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-30 20:35:22 +08:00
---
title: "MCP サーバー"
description: "MCP(Model Context Protocol)サーバーを LangBot に接続し、外部ツールやデータソースで AI ボットを拡張。"
---
LangBot は MCP サーバー由来のツールを利用できます。MCP サーバーを追加すれば、ツール使用を有効にしたモデルを持つ組み込み Agent が会話中にそのツールを呼び出せます。
<Info title="MCP は Streamable HTTP、SSE、stdio の 3 モードに対応しています。">
まずは [LangBot Space](https://space.langbot.app) からのインストールを推奨します。掲載されている MCP サーバーは設定済みで、そのまま使えます。
[ModelScope](https://modelscope.cn/mcp)、[mcp.so](https://mcp.so)、[composio.dev](https://composio.dev/toolkits) から入手して、後述の手動追加で登録することも可能です。
</Info>
## 3 つの通信モード
| モード | 適した場面 | 備考 |
|------|----------|------|
| Streamable HTTP (`mode: "http"`) | Streamable HTTP に対応したリモート MCP | LangBot がリモート URL に直接接続 |
| SSE | SSE に対応したリモート MCP | LangBot がリモート URL に直接接続 |
| stdio | ローカルコマンドで起動する MCP サーバー | Box Runtime が利用可能なときのみサポート |
<Note>
MCP ツールを使うには、パイプラインで**組み込み Agent** を選択し、**ツール使用が有効化されたモデル**を使用する必要があります。[モデル](../models/readme)を参照。Dify、n8n、Langflow、Coze などの外部 Runner は各プラットフォームのツール機構を使います。
</Note>
## MCP サーバーをインストール
### LangBot Space から(推奨)
[LangBot Space](https://space.langbot.app) は LangBot 公式のマーケットプレイスで、設定済みの MCP サーバーが多数掲載されています。WebUI の `プラグイン管理` → `MCP 管理` から閲覧して 1 クリックでインストールでき、URL、コマンド、モードなどのパラメータはマーケット側が提供するため、手動入力は不要です。
ほとんどのケースはこれで十分です。掲載されていないサービスを利用する場合は、下記の手動追加を使ってください。
### 手動で追加
`プラグイン管理` → `MCP 管理` を開きます:
<img width="1000px" src="/images/zh/deploy/mcp/mcp02.png" alt="MCP 管理ページ" />
右上の `追加` → `MCP サーバーを追加` をクリック。URL(HTTP/SSE)またはコマンド(stdio)を入力し、`テスト` で接続を確認、`送信` で保存します:
<img width="400px" src="/images/zh/deploy/mcp/mcp03.png" alt="MCP サーバー作成" />
保存後、カードのスイッチをオンにして接続します。カードをクリックすると詳細を確認できます:
<img width="400px" src="/images/zh/deploy/mcp/mcp05.png" alt="MCP サーバー詳細" />
## パイプラインで有効化
MCP サーバーを追加したあと、パイプライン拡張設定で Agent から見える MCP を決めます:
- 「すべての MCP サーバーを有効化」をオン、または
- 指定した MCP サーバーのみをバインド
バインドしていない MCP のツールはそのパイプラインのツール一覧に入りません。
## 高度な設定:stdio MCP
stdio MCP は Box Runtime によってホストされます。接続前に LangBot は以下を行います:
1. 共有の MCP Box session を作成または再利用
2. コマンドからローカルプロジェクトのパスを推測できれば、プロジェクトをワークスペースに staging
3. プロジェクトに `requirements.txt`、`pyproject.toml`、`setup.py`、`setup.cfg` がある場合は依存をインストール
4. WebSocket relay 経由で MCP プロセスの stdin/stdout に接続
マウント、ネットワーク、タイムアウトを細かく調整したい場合、MCP 設定の `extra_args` に `box` オーバーライドを追加できます:
```json
{
"mode": "stdio",
"extra_args": {
"command": "python",
"args": ["server.py"],
"env": {},
"box": {
"host_path": "/path/to/mcp-project",
"network": "on",
"host_path_mode": "ro",
"startup_timeout_sec": 120,
"image": "python:3.11-slim"
}
}
}
```
主なフィールド:
| フィールド | 説明 |
|------|------|
| `host_path` | ホスト上の MCP プロジェクトディレクトリ。`box.local.allowed_mount_roots` の許可範囲内である必要があります |
| `network` | ネットワークを許可するか(依存インストールでよく使う) |
| `host_path_mode` | `host_path` を staging するときのアクセスモード。デフォルトは `ro`。stdio MCP は通常ワークスペースに staging されます |
| `startup_timeout_sec` | Box 準備と依存インストールのタイムアウト、デフォルト 120 秒。接続待ちで約 30 秒追加されます |
| `image` | Docker バックエンドで使用するランタイムイメージ |
<Warning>
stdio MCP は Box 内で実行されます。依存インストールとプロセス起動は sandbox profile、ネットワーク権限、リソース制限、マウント許可リストの影響を受けます。
</Warning>
## よくある問題
| 症状 | 確認項目 |
|------|--------|
| MCP の接続に失敗 | URL、コマンド、引数、環境変数が正しいか |
| stdio MCP が接続中のまま | Box Runtime の状態、`startup_timeout_sec` が短すぎないか |
| 依存インストールに失敗 | sandbox がネットワークを許可しているか、依存ファイルが正しいか |
| ローカルファイルにアクセスできない | `host_path` が存在し、`allowed_mount_roots` 内にあるか |
| Agent が MCP ツールを認識しない | パイプラインで組み込み Agent を使っているか、モデルでツール使用を有効にしているか、MCP がパイプラインにバインドされているか |