Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Cursor's agent (cursor-agent CLI) through MCP: any model your plan offers, resumable sessions.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
CURSOR_MAX_CONCURRENCY, CURSOR_ALLOW_YOLO, CURSOR_SANDBOX, CURSOR_KILL_GRACE_MS你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"cursor": {
"command": "npx",
"args": [
"-y",
"@qmediat.io/cursor-mcp"
],
"env": {
"CURSOR_MAX_CONCURRENCY": "your-value",
"CURSOR_ALLOW_YOLO": "your-value",
"CURSOR_SANDBOX": "your-value",
"CURSOR_KILL_GRACE_MS": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add cursor --env CURSOR_MAX_CONCURRENCY=your-value --env CURSOR_ALLOW_YOLO=your-value --env CURSOR_SANDBOX=your-value --env CURSOR_KILL_GRACE_MS=your-value -- npx -y @qmediat.io/cursor-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"cursor": {
"command": "npx",
"args": [
"-y",
"@qmediat.io/cursor-mcp"
],
"env": {
"CURSOR_MAX_CONCURRENCY": "your-value",
"CURSOR_ALLOW_YOLO": "your-value",
"CURSOR_SANDBOX": "your-value",
"CURSOR_KILL_GRACE_MS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"cursor": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@qmediat.io/cursor-mcp"
],
"env": {
"CURSOR_MAX_CONCURRENCY": "your-value",
"CURSOR_ALLOW_YOLO": "your-value",
"CURSOR_SANDBOX": "your-value",
"CURSOR_KILL_GRACE_MS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
CURSOR_MAX_CONCURRENCY envCURSOR_ALLOW_YOLO envCURSOR_SANDBOX envCURSOR_KILL_GRACE_MS env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 qmediat 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.2.0)于32天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Microsoft Exchange Online MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Exchange Online admin for MSPs: forwarding audits, EWS posture and offboarding, no PowerShell
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
MCP server for the Cursor CLI (cursor-agent): run Cursor's agent with any model id your plan offers — the Composer, Claude, GPT, Gemini and Grok families — through the Model Context Protocol.
model id is passed to cursor-agent --model as given; cursor_models lists what your CLI offers (Composer, Claude, GPT, Gemini, Grok families on your plan)spawn without a shell, auto-approve only through the operator's environment (never a tool parameter), the client's cancellation and the timeout kill the child and its process group (SIGTERM, SIGKILL 5 s later; on Windows cursor-agent itself only)@modelcontextprotocol/sdk + zodnpm run lint's Babel 8 — needs 22.18 or 24.11)# Install the Cursor CLI (installs `agent`; `cursor-agent` stays as a legacy alias — the one this server resolves)
curl https://cursor.com/install -fsS | bash
agent login
Requires Node.js 22 or newer.
claude mcp add --scope user cursor-cli -- npx -y @qmediat.io/cursor-mcp
or by hand (below). npm install -g @qmediat.io/cursor-mcp installs the cursor-mcp command, which can replace the npx line in any config.
~/.claude.json){
"mcpServers": { "cursor-cli": { "type": "stdio", "command": "npx", "args": ["-y", "@qmediat.io/cursor-mcp"] } } }
claude_desktop_config.json){
"mcpServers": { "cursor-cli": { "command": "npx", "args": ["-y", "@qmediat.io/cursor-mcp"] } } }
{
"mcpServers": { "cursor-cli": { "type": "stdio", "command": "node", "args": ["/path/to/cursor-mcp/dist/index.js"] } } }
| Variable | Required | Default | Description |
|---|---|---|---|
CURSOR_MAX_CONCURRENCY | No | 3 | Maximum concurrent cursor-agent processes — an integer from 1 to 64; anything else is the default |
CURSOR_ALLOW_YOLO | No | false | true runs cursor_agent and cursor_reply with --force (auto-approve every tool call). Without it cursor-agent in headless mode only proposes file changes and applies none (Cursor's headless docs). DANGEROUS — only for trusted environments, best with CURSOR_SANDBOX=enabled |
CURSOR_SANDBOX | No | the CLI's default | enabled or disabled, passed as --sandbox : the sandbox confines what an auto-approved agent may run; any other value ends the server at startup |
CURSOR_KILL_GRACE_MS | No | 5000 | After SIGTERM (timeout or cancellation), a child still alive this long is sent SIGKILL — an integer of milliseconds from 1 to 2147483647 (what a timer can wait); anything else is the default |
| Tool | Description | Key Parameters |
|---|---|---|
cursor_agent | Execute a prompt using Cursor's AI agent | prompt (≤ 100 000 chars), model, mode, workspace, timeout_seconds (10–3600, default 600) |
cursor_reply | Continue an existing agent session | prompt, session_id, model, timeout_seconds |
cursor_models | List the model ids the installed CLI offers | — |
cursor_sessions | List agent sessions (this server instance) | — |
cursor_health | Check installation, auth, and config | — |
Both agent tools run cursor-agent with --output-format stream-json: the answer, its session_id, request_id, the model cursor-agent reported, the duration, the number of tool calls and the files changed (write/edit targets, each once) come back as text and as structuredContent (outputSchema published). A client that sends a progress token on the request gets one notifications/progress per event (model, tool call, assistant message), so a ten-minute run never looks dead.
model is passed to cursor-agent --model as given, so every id the installed CLI accepts works — the current list and prices are on cursor.com/docs/models-and-pricing, and cursor_models returns what your CLI reports (cursor-agent models). auto (the default) lets Cursor choose. This README names no ids on purpose: Cursor adds and retires models faster than this package releases, and a list here was what made 1.0.x reject every current model.
| Mode | Description |
|---|---|
agent | Tools, terminal, search (default). In headless mode file changes are proposed in the answer, not applied, unless the operator set CURSOR_ALLOW_YOLO=true (--force) |
plan | Read-only planning — analyses and proposes a plan, makes no edits (in headless mode a clarifying question cannot be answered) |
ask | Read-only exploration — no file modifications |
Run multiple models simultaneously by making parallel tool calls:
# In Claude Code, spawn 3 Agent subprocesses:
Agent 1: cursor_agent with model= → "Review this code" Agent 2: cursor_agent with model= → "Review this code" Agent 3: cursor_agent with model= → "Review this code"
The built-in semaphore (default: 3) queues excess requests to prevent rate limit errors.
child_process.spawn with argument arrays; the prompt follows a -- separator and the session id must be one word, so neither can read as a cursor-agent option (a prompt or session id of -f cannot turn into --force)CURSOR_KILL_GRACE_MS (5 s); the call and its concurrency slot are released only once the child itself has exited; the server's own shutdown ends every running group the same way, so no agent outlives it--force requires explicit CURSOR_ALLOW_YOLO=true env var, never controllable by LLMs; without it the agent only proposes changes; CURSOR_SANDBOX=enabled confines an auto-approved agent; it applies to cursor_agent and cursor_reply alikecursor-agent --trust on the given workspace (the server's cwd by default), so the agent is not prompted about the directory: point workspace only at directories you intend it to operate inSee SECURITY.md for full details.
Optional Claude Code skill that lets Claude Code act as a supervisor while any Cursor model does the coding.
How it works: Claude Code analyzes the task, sends precise instructions to Cursor via cursor_agent, reviews the output by reading actual files from disk, and iterates with cursor_reply until satisfied (max 3 rounds).
Prerequisite: The
cursor-cliMCP server (this package) must be installed and configured in Claude Code first.
/cursor-code <task> # default: auto (Cursor chooses)
/cursor-code --model # any id cursor_models lists
Run cursor_models to list the ids your CLI offers.
mkdir -p ~/.claude/skills/cursor-code
Create ~/.claude/skills/cursor-code/SKILL.md with the following content:
SKILL.md (click to expand)
---
name: cursor-code description: Delegate coding to any Cursor model while Claude Code supervises. Use when user says "cursor-code", "delegate to cursor", "cursor code this", or "/cursor-code". Works with any model id cursor_models lists (the Composer, Claude, GPT, Gemini and Grok families on your Cursor plan). metadata: version: 1.1.0
You are the supervisor (Claude Code). A Cursor model is the coder. You give precise instructions, the coder writes code, you review and iterate.
Extract from user input:
--model -> model to use (default: auto, Cursor chooses)If user says a model name naturally (e.g. "use composer", "with gemini", "z grok"), extract it and map to an id from cursor_models.
Call cursor_agent with:
model: extracted model or autoworkspace: current working directoryprompt: precise instruction with file paths, function names, constraintssession_id from the response for use in Step 4Output before calling: [cursor-cli -> ]
After the coder returns:
git diff --name-only to discover ALL files the coder modifiedIf issues found:
cursor_reply with the same session_idSummarize to the user:
只显示了开头部分;其余内容请在仓库中阅读