MCP を介して Qwen Code をツールに接続する
Qwen Code は、Model Context Protocol (MCP) を通じて外部のツールやデータソースに接続できます。MCP サーバーにより、Qwen Code はあなたのツール、データベース、API にアクセスできるようになります。
MCP でできること
MCP サーバーが接続されると、Qwen Code に以下のようなことを依頼できます:
- ファイルやリポジトリの操作(読み取り/検索/書き込み、有効化したツールによる)
- データベースへのクエリ発行(スキーマ確認、クエリ実行、レポート作成)
- 社内サービスとの統合(API を MCP ツールとしてラップ)
- ワークフローの自動化(ツール/プロンプトとして公開された繰り返し可能なタスク)
「すぐに始めるためのワンコマンド」をお探しの場合は、クイックスタートに進んでください。
クイックスタート
Qwen Code は、settings.json 内の mcpServers から MCP サーバーを読み込みます。サーバーの設定方法は以下のいずれかです:
settings.jsonを直接編集するqwen mcpコマンドを使用する(CLI リファレンスを参照)
最初のサーバーを追加する
- サーバーを追加します(例:リモート HTTP MCP サーバー):
qwen mcp add --transport http my-server http://localhost:3000/mcp- 正しく追加されたことを確認します:
qwen mcp list- 同じプロジェクトで Qwen Code を再起動するか(またはまだ実行されていない場合は起動して)、そのサーバーからのツールを使用するようモデルに指示してください。
設定が保存される場所(スコープ)
ほとんどのユーザーは以下の2つのスコープのみを使用します:
- プロジェクトスコープ(デフォルト):プロジェクトルートにある
.qwen/settings.json - ユーザースコープ:マシン上のすべてのプロジェクトで共通の
~/.qwen/settings.json
ユーザースコープに書き込む場合:
qwen mcp add --scope user --transport http my-server http://localhost:3000/mcp高度な設定レイヤー(システムデフォルト/システム設定および優先順位ルール)については、Settings を参照してください。
サーバーの設定
トランスポートの選択
| トランスポート | 使用するタイミング | JSON フィールド |
|---|---|---|
http | リモートサービス向けに推奨;クラウド MCP サーバーで良好に動作します | httpUrl(+ オプションの headers) |
sse | Server-Sent Events のみをサポートするレガシー/非推奨サーバー向け | url(+ オプションの headers) |
stdio | ローカルプロセス(スクリプト、CLI、Docker)向け | command、args(+ オプションの cwd、env) |
サーバーが両方をサポートしている場合、SSE よりも HTTP を優先してください。
settings.json と qwen mcp add による設定
どちらの方法でも、settings.json 内の mcpServers エントリは同じになります。お好みの方法をお使いください。
Stdio サーバー(ローカルプロセス)
JSON (.qwen/settings.json):
{
"mcpServers": {
"pythonTools": {
"command": "python",
"args": ["-m", "my_mcp_server", "--port", "8080"],
"cwd": "./mcp-servers/python",
"env": {
"DATABASE_URL": "$DB_CONNECTION_STRING",
"API_KEY": "${EXTERNAL_API_KEY}"
},
"timeout": 15000
}
}
}CLI(デフォルトではプロジェクトスコープに書き込み):
qwen mcp add pythonTools -e DATABASE_URL=$DB_CONNECTION_STRING -e API_KEY=$EXTERNAL_API_KEY \
--timeout 15000 python -m my_mcp_server --port 8080HTTPサーバー(リモートストリーミングHTTP)
JSON:
{
"mcpServers": {
"httpServerWithAuth": {
"httpUrl": "http://localhost:3000/mcp",
"headers": {
"Authorization": "Bearer your-api-token"
},
"timeout": 5000
}
}
}CLI:
qwen mcp add --transport http httpServerWithAuth http://localhost:3000/mcp \
--header "Authorization: Bearer your-api-token" --timeout 5000SSEサーバー(リモートServer-Sent Events)
JSON:
{
"mcpServers": {
"sseServer": {
"url": "http://localhost:8080/sse",
"timeout": 30000
}
}
}CLI:
qwen mcp add --transport sse sseServer http://localhost:8080/sse --timeout 30000セキュリティと制御
信頼(確認プロンプトをスキップ)
- サーバー信頼 (
trust: true): そのサーバーに対する確認プロンプトをバイパスします(控えめに使用してください)。
ツールフィルタリング(サーバーごとの許可・拒否ツール)
includeTools / excludeTools を使用して、サーバーが公開するツールを制限します(Qwen Code の観点から)。
例:いくつかのツールのみを含める場合
{
"mcpServers": {
"filteredServer": {
"command": "python",
"args": ["-m", "my_mcp_server"],
"includeTools": ["safe_tool", "file_reader", "data_processor"],
"timeout": 30000
}
}
}グローバルな許可・拒否リスト
settings.json 内の mcp オブジェクトは、すべての MCP サーバーに対するグローバルなルールを定義します:
mcp.allowed:MCP サーバー名の許可リスト(mcpServers内のキー)mcp.excluded:MCP サーバー名の拒否リスト
例:
{
"mcp": {
"allowed": ["my-trusted-server"],
"excluded": ["experimental-server"]
}
}トラブルシューティング
qwen mcp listでサーバーが「Disconnected」を表示する場合: URL/コマンドが正しいことを確認し、次にtimeoutを増やしてください。- Stdio サーバーの起動に失敗する場合: 絶対パスの
commandを使用し、cwd/envを再度確認してください。 - JSON 内の環境変数が解決されない場合: Qwen Code が実行される環境にそれらが存在することを確認してください(シェルと GUI アプリの環境は異なる場合があります)。
リファレンス
settings.json 構造
サーバー固有の設定 (mcpServers)
settings.json ファイルに mcpServers オブジェクトを追加します:
// ... ファイルには他の設定オブジェクトが含まれる
{
"mcpServers": {
"serverName": {
"command": "path/to/server",
"args": ["--arg1", "value1"],
"env": {
"API_KEY": "$MY_API_TOKEN"
},
"cwd": "./server-directory",
"timeout": 30000,
"trust": false
}
}
}設定プロパティ:
必須(以下のいずれか1つ):
| プロパティ | 説明 |
|---|---|
command | Stdio トランスポート用の実行可能ファイルのパス |
url | SSE エンドポイント URL(例:"http://localhost:8080/sse") |
httpUrl | HTTP ストリーミング エンドポイント URL |
任意:
| プロパティ | 型/デフォルト値 | 説明 |
|---|---|---|
args | 配列 | Stdio トランスポート用のコマンドライン引数 |
headers | オブジェクト | url または httpUrl 使用時のカスタム HTTP ヘッダー |
env | オブジェクト | サーバープロセスの環境変数。値には $VAR_NAME または ${VAR_NAME} 構文を使用して環境変数を参照できます |
cwd | 文字列 | Stdio トランスポートの作業ディレクトリ |
timeout | 数値 (デフォルト:600,000) | リクエストタイムアウト(ミリ秒単位、デフォルト:600,000ms = 10分) |
trust | 真偽値 (デフォルト:false) | true の場合、このサーバーに対するすべてのツール呼び出し確認をバイパスします(デフォルト:false) |
includeTools | 配列 | この MCP サーバーから含めるツール名のリスト。指定された場合、ここにリストされたツールのみがこのサーバーから利用可能になります(許可リストの動作)。指定されていない場合、サーバーからのすべてのツールがデフォルトで有効になります。 |
excludeTools | 配列 | この MCP サーバーから除外するツール名のリスト。ここにリストされたツールは、サーバーによって公開されていてもモデルからは利用できなくなります。 注: excludeTools は includeTools よりも優先されます — 両方のリストに同じツールがある場合は除外されます。 |
targetAudience | 文字列 | アクセスしようとしている IAP 保護アプリケーションで許可リストに登録された OAuth クライアント ID。authProviderType: 'service_account_impersonation' と共に使用します。 |
targetServiceAccount | 文字列 | 模倣する Google Cloud サービスアカウントのメールアドレス。authProviderType: 'service_account_impersonation' と共に使用します。 |
qwen mcp で MCP サーバーを管理する
MCP サーバーは常に settings.json を手動で編集して設定できますが、CLI の方が通常はより高速です。
サーバーの追加 (qwen mcp add)
qwen mcp add [options] <name> <commandOrUrl> [args...]| 引数/オプション | 説明 | デフォルト | 例 |
|---|---|---|---|
<name> | サーバーの一意の名前。 | — | example-server |
<commandOrUrl> | 実行するコマンド(stdio用)またはURL(http/sse用)。 | — | /usr/bin/python or http://localhost:8 |
[args...] | stdio コマンド用のオプション引数。 | — | --port 5000 |
-s, --scope | 設定スコープ(ユーザーまたはプロジェクト)。 | project | -s user |
-t, --transport | 通信タイプ(stdio、sse、http)。 | stdio | -t sse |
-e, --env | 環境変数を設定します。 | — | -e KEY=value |
-H, --header | SSEおよびHTTP通信で使用するHTTPヘッダーを設定します。 | — | -H "X-Api-Key: abc123" |
--timeout | 接続タイムアウトをミリ秒単位で設定します。 | — | --timeout 30000 |
--trust | サーバーを信頼する(すべてのツール呼び出し確認プロンプトをバイパス)。 | — (false) | --trust |
--description | サーバーの説明を設定します。 | — | --description "Local tools" |
--include-tools | 含めるツールのカンマ区切りリスト。 | すべてのツールが含まれる | --include-tools mytool,othertool |
--exclude-tools | 除外するツールのカンマ区切りリスト。 | なし | --exclude-tools mytool |
サーバーの一覧表示 (qwen mcp list)
qwen mcp listサーバーの削除 (qwen mcp remove)
qwen mcp remove <name>