qwen-cli-mcp
qwen-cli-mcp
ローカルにインストールされた Qwen Code CLI にコーディングタスクを委任する MCP サーバーです。
実際の qwen バイナリをラップするだけで、エージェントの独自コピーを同梱しません。そのため、すべての呼び出しはあなたの qwen の認証、モデル、MCP サーバー、設定を引き継ぎます。モデルスタックに関するものはここでは複製されず、qwen をアップグレードしてもサーバーがずれることはありません。
pi-cli-mcp の兄弟プロジェクトです。同じアーキテクチャ、同じ原則で、ハンドルは qwen が握ります。権威ある設計文書は SPEC.md です。
プライマリエージェント(Claude Code、Cursor、pi 自身、任意の MCP クライアント)が qwen に作業を渡したいときに使います。異なるモデルファミリーからのセカンドオピニオン、メインのコンテキストウィンドウから外しておきたい調査、並行作業などに適しています。
インストール
npx -y qwen-cli-mcp # no install
npm install -g qwen-cli-mcp # or globalNode ≥ 22 と、PATH 上で動作する qwen が必要です(npm i -g @qwen-code/qwen-code)。
Claude Code
claude mcp add-json qwen -s user '{
"type": "stdio",
"command": "npx",
"args": ["-y", "qwen-cli-mcp"],
"timeout": 3600000
}'
claude mcp list | grep '^qwen:' # expect: ✔ Connected余裕のある timeout が重要です。実際に委任されたタスクは数分間実行されることがあります。
その他の MCP クライアント
{
"mcpServers": {
"qwen": { "command": "npx", "args": ["-y", "qwen-cli-mcp"] }
}
}サーバー名は短く(qwen)保ってください。モデルが表示するツール名の一部になります。
⚠️ デフォルトの承認モードは
yoloです。 委任はデリゲートが行動できる場合にのみ有用なので、このサーバーはデフォルトで qwen を完全なツール承認付きで起動します。cwd内で、あなたのユーザーとして実行されます。QWEN_MCP_APPROVAL_MODE、呼び出しごとのapproval_mode、またはallowed_toolsで絞り込んでください。分析専用の作業では、allowed_tools: "read,grep,ls"形式の許可リストを渡してください。
ツール
ツール | 目的 |
| セッションを開始します。 |
| 終了した、または中断されたセッションを続行します。タイムアウトで終了したものも含みます。 |
| qwen が現在実際に到達できるモデルを一覧表示します(コントロールプレーンを介したライブプローブ)。 |
| 現在実行中のターンに配信します( |
|
|
| 既知のセッションを作業ディレクトリ付きで新しい順に一覧表示します。 |
qwen
引数 | メモ |
| 必須。自己完結している必要があります。qwen はあなたの会話を見ることができません。 |
| 絶対パス。デフォルトはこのサーバーの cwd です。 |
|
|
|
|
| カンマ区切りのツール許可リスト。 |
|
|
| この実行の qwen のシステムプロンプトに追加されます。 |
|
|
| この実行の壁時計。期限で終了した実行は |
戻り値
qwen の最終結果と集計統計のみが返ります。トランスクリプト、ツール引数、生の stdout は返りません。
[session: 0927adc5-a840-4b68-93ca-5ca344c9fafb]
Refactored retry() in src/http.rs; all 12 tests pass.
---
qwen: qwen3-coder-plus · 6 turns · 5 tool calls: bash×2, read×2, edit · 18k in / 310 out · 41s回答は、qwen がターン終了時に出力する result エンベロープです。回答選択の推測はありません。エラーエンベロープ(error_max_turns、error_during_execution)は、qwen が言えた内容をすべて保持しつつ呼び出しを失敗させます。これにより作業は再開可能なままです。結果エンベロープなしで終了したストリームは壊れていると報告され、生の出力に静かに置き換えられることはありません。
セッション
qwen はセッション ID を返します。qwen_reply は --resume でそれを再開します。会話は qwen 自身のセッションストアに保存されるため、このサーバーを再起動してもフォローアップは機能し続けます。セッション → ディレクトリのマップは ~/.local/state/qwen-mcp/sessions.json に永続化されます。
1つのセッションへの同時返信は、サーバープロセスごとに直列化されます。2つの qwen プロセスが1つのセッションファイルに書き込むと破損するためです。クロスプロセスの注意点: 2つの MCP クライアントを2つのサーバープロセスに対して実行し、両方が 同じ セッション ID に同時に返信する場合、それらを直列化するものはありません。実際には1つのクライアントがセッションを所有します。確実な保証が必要な場合は、サーバープロセスを1つに保ってください。
トランスポート
|
| |
コマンド |
|
|
プロセス | 起動したまま、stdin でコントロールプレーンを話す | ターンごとに1プロセス、完了すると終了 |
実行中の配信 |
| 不可能: qwen は作業中に何も読み取らない |
期限 / キャンセル | まず qwen 自身の | SIGTERM、その後 SIGKILL |
stream がデフォルトなのは、スーパーセットだからです。同じメッセージストリームに加えて、実行中のターンは到達可能なままで、中断されたターンはプロトコル内で終了し、ストリームの末尾が保持されます。呼び出しごとに transport で選択するか、QWEN_MCP_TRANSPORT=print でデフォルトを設定できます。
このサーバーは、qwen に独自に何かを送信することはありません。 期限前の自動ラップアップや注入された指示はありません。qwen_send は呼び出し元が呼び出した場合にのみ発火します。
環境変数
変数 | デフォルト | 意味 |
|
| qwen バイナリへのパス。 |
|
| すべての呼び出しのデフォルト承認モード。上記の警告を参照。 |
| 未設定 | すべての呼び出しのデフォルトモデル。 |
|
| デフォルトのトランスポート: |
|
| デフォルトの壁時計。 |
|
|
|
|
| 同時実行の qwen プロセス数。 |
| 未設定 | 回答の上限。未設定は切り詰めなしを意味します。 |
|
| 応答に含まれる stderr の末尾。 |
| 未設定 |
|
|
| 暴走ストリームに対する読み取りバッファのガード。 |
|
| qwen からの最も長い単一メッセージ行。それを超えると破棄されます。 |
|
| クライアントからの最も長い単一 JSON-RPC フレーム。 |
|
| 最も古いセッションが破棄される前に記憶されるセッション数。 |
|
| SIGTERM → SIGKILL の猶予期間。 |
|
|
|
|
| 初期化ハンドシェイクのタイムアウト(ストリームのみ)。 |
|
|
|
|
| セッション → cwd のマップ。 |
| 未設定 | コマンドプレフィックス。例: qwen を囲むサンドボックスラッパー。 |
設計
呼び出しごとにプロセス。 qwen 自身のセッションファイルが真実の源であり、これによりフォローアップがこのサーバーの再起動後も生き残ります。
ワイヤー契約は qwen 自身の stream-json プロトコル を直接話します。stdout の改行区切りメッセージ、stdin の制御要求とユーザーターン。その形状は
@qwen-code/sdkからimport typeで借用しているため、上流の変更はサーバーではなくビルドを壊します。ランタイム依存関係はゼロです。qwen からのものはすべて失敗側に倒す。 未知の結果サブタイプ、失敗したハンドシェイク、解析できない行は、成功に正規化されることなく、そのように報告されます。
リクエストを超えてプロセスが生き残ることはありません。 タイムアウト、キャンセル、シャットダウンは qwen プロセスツリー全体を刈り取り、どのパスでも何も残しません。
開発
TypeScript(ネイティブ tsc)、Biome、Vitest。テストは、qwen のプロトコルを話すフィクスチャに対して stdio 経由で実際のサーバーバイナリを駆動します。インストール済みの qwen に対するライブテストはオプトインです。
npm run hooks # once per clone: git hooks from .githooks/
npm run build # tsc -> dist/
npm test # unit + type tests, no API access, no tokens
npm run test:live # 4 live tests against the real qwen binary (spends tokens)
npm run check # format + types + tests
npm run fix # biome --writeライセンス
MIT
This server cannot be installed
Maintenance
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/minmax/qwen-cli-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server