Skip to main content
Glama
minmax

qwen-cli-mcp

qwen-cli-mcp

用于将你的编码任务委派给本机安装Qwen Code CLI 的 MCP 服务器。

它包装了真正的 qwen 二进制文件,而不是自行捆绑 agent 副本,因此每次调用都会继承你的 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 global

需要 Node ≥ 22,并且 PATH 上有可用的 qwennpm 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_modeallowed_tools 来收紧范围。对于纯分析工作,请传入 allowed_tools: "read,grep,ls" 风格的允许列表。

工具

工具

用途

qwen

开始一个会话。返回 [session: <uuid>]、结果和统计信息。

qwen_reply

继续一个已完成或已中断的会话——包括因超时被终止的会话。

qwen_models

列出 qwen 当前实际可以访问到的模型(通过控制平面实时探测)。

qwen_send

向当前正在执行的一个轮次投递(abort / steer / follow_up;仅 stream 传输)。

qwen_running

列出当前正在执行、且 qwen_send 能够到达的轮次。

qwen_sessions

列出已知会话,最新的优先,并包含各自的工作目录。

qwen

参数

说明

prompt

必需。必须自包含——qwen 看不到你的对话上下文。

cwd

绝对路径;默认为该服务器的 cwd。

model

-m 的值。默认为 qwen 自身的设置;qwen_models 会列出有效值。

approval_mode

plan | default | auto-edit | auto | yolo。服务器默认值:参见上面的警告。

allowed_tools

逗号分隔的工具允许列表,会作为 --allowed-tools 传入。

effort

lowmax 推理强度。仅 stream 传输——qwen 没有对应的 CLI 标签。

system_prompt_append

附加到本轮 qwen 系统提示内容的后面。

transport

stream(默认)或 print。通常省略。

timeout_ms

本次运行的墙钟时间。到达期限被杀掉的运行仍可继续通过 qwen_reply 恢复。

返回什么

只返回 qwen 的最终结果和聚合统计——绝不返回 transcript、工具调用或原始 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_turnserror_during_execution)会让调用失败,同时完整保留 qwen 能说到的一切,因此工作仍然可以恢复。如果一个流在没有 result 信封时结束,则会被报告为损坏的,绝不会被静默替换成原始输出。

会话

qwen 返回会话 ID,qwen_reply--resume 恢复它。会话内容存在于 qwen 自己的会话存储中,所以该服务器重启后后续请求仍然有效——会话 → 目录映射持久化在 ~/.local/state/qwen-mcp/sessions.json

同一会话的并发回复会通过服务器进程内的串行化处理:两个 qwen 进程同时工作同一个会话文件会导致文件损坏。跨进程注意: 如果你用两个 MCP 客户端连接两个服务器进程,并且两者同时回复 同一个 会话 ID,则不会有任何串行化机制。通常一个进程会自己一个客户端;如果需要严格保证,请只保留一个服务器进程。

传输方式

stream(默认)

print

命令

--input-format stream-json --output-format stream-json

-p --output-format stream-json

进程

保持运行,在 stdin 上使用控制平面语言

每个轮次一个进程,结束后退出

运行中接收消息

qwen_send(interrupt / steer / follow_up)

不可能:qwen 在工作中不读任何消息

期限 / 取消

先拦截后 respawn;先用 qwen 自己的 interrupt,然后信号 fallback

SIGTERM,然后 SIGKILL

stream 是默认选项,因为它是一个超集:同一消息递增,轮次运行中仍可继续,中断的轮次会在协议内结束,而不会丢弃流尾。每次调用可用 transport 选择,或用 QWEN_MCP_TRANSPORT=print 设置默认值。

该服务器永远不会自行向 qwen 发送任何内容。 没有计划好的收尾,没有注入的指令:只有当调用方发起时,才会触发 qwen_send

环境变量

变量

默认值

含义

QWEN_MCP_BIN

qwen

qwen 可执行文件的路径。

QWEN_MCP_APPROVAL_MODE

yolo

每次调用的默认 approval_mode。参见上面的警告。

QWEN_MCP_MODEL

未设置

每次调用的默认模型。

QWEN_MCP_TRANSPORT

stream

默认传输方式:streamprint

QWEN_MCP_TIMEOUT_MS

1800000

默认墙钟时间;每次调用可被 timeout_ms 覆盖。

QWEN_MCP_MAX_TIMEOUT_MS

86400000

timeout_ms 可请求的最大值上限。

QWEN_MCP_MAX_CONCURRENT

4

并发 qwen 进程数。

QWEN_MCP_MAX_OUTPUT

未设置

答案的上限。未设置表示不截断。

QWEN_MCP_STDERR_LIMIT

1500

响应中追加的 stderr 尾部。

QWEN_MCP_STDERR_KEEP_EVENTS

未设置

1 时,原样转发 stderr,并包含协议行。

QWEN_MCP_MAX_CAPTURE

16000000

读取缓冲保护,用于避免流失控。

QWEN_MCP_MAX_LINE

8000000

qwen 的单条消息行超过该长度将被丢弃。

QWEN_MCP_MAX_FRAME

8000000

来自客户端的单个 JSON-RPC 帧的最大长度。

QWEN_MCP_MAX_SESSIONS

200

记住的会话数,超过时丢弃最旧的。

QWEN_MCP_KILL_GRACE_MS

5000

SIGTERM → SIGKILL 的宽限期。

QWEN_MCP_INTERRUPT_GRACE_MS

5000

在信号之前,interrupt 等待的时间(仅 stream)。

QWEN_MCP_INIT_TIMEOUT_MS

15000

初始化握手超时(仅 stream)。

QWEN_MCP_MODELS_TIMEOUT_MS

60000

qwen_models 探测的整体运行预算。

QWEN_MCP_STATE

~/.local/state/qwen-mcp/sessions.json

会话 → cwd 映射。

QWEN_MCP_WRAP

未设置

命令前缀,例如 qwen 的 configurable wrapper(沙箱包裹)。

设计

  • 每次调用一个进程。 qwen 自身的会话文件是唯一的真实来源,这使得后续请求在本服务器重启后仍可继续工作。

  • 线上协议是 qwen 自身的 stream-json 协议,直接在语言-neutral 的输出/输入流上通信,ccl-defined messages, control requests and user turns on stdin。其类型通过 @qwen-code/sdkimport type 继承,因此上游变更会触发编译失败而不是运行时损坏。零运行时依赖。

  • 对来自 qwen 的任何失败(fail-closed)。 未知的结果类型、失败握手、无法解析的内容行为,都会如实报告,而不会伪装成成功。

  • 任何进程都不会存活超过其请求。 超时、取消和服务正常关闭都会回收整个 qwen 进程树;任何情况下都不会留下残留。

开发

TypeScript(使用原生 tsc),Biome,Vitest。测试通过 stdio 驱动真实服务器的二进制,并在一个会说 qwen 协议的 configurable fixture 上运行;针对已安装 qwen 的 live tests 是可选的。

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

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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