Skip to main content
Glama

cursor-agent-sync-mcp

npm GitHub Packages License: MIT

MCP-сервер, который позволяет Claude Code (или любому другому MCP-клиенту) делегировать выполнение ограниченных задач по написанию кода локальному cursor-agent CLI. Один инструмент — cursor_execute — синхронно запускает cursor-agent -p --output-format json --force, дожидается завершения и возвращает компактный отчёт: текст ответа, git diff --stat, git status --short, код возврата и sessionID.

В отличие от orchestrate-cursor-agent-mcp (spawn/check/reply/kill через файловый IPC), здесь один вызов тула блокируется до готового результата — не нужно отдельными командами проверять статус и убивать процесс. Ценой этого теряется многотуровый диалог с subagent'ом: задача должна быть полностью самодостаточной.

Требования

  • cursor-agent CLI, установленный и авторизованный (cursor-agent status).

  • Node.js 18+.

Related MCP server: cursor-agent-bridge

Установка

Вариант 1 — из npm (рекомендуется)

Пакет опубликован как cursor-agent-sync-mcp — полностью публичный, ставится без авторизации:

npm install -g cursor-agent-sync-mcp

Вариант 2 — из исходников

git clone git@github.com:yuriisamohvalov-creator/cursor-mcp.git ~/tools/cursor-mcp
cd ~/tools/cursor-mcp
npm install

Вариант 3 — из GitHub Packages

Тот же пакет также зеркалирован в GitHub Packages под именем @yuriisamohvalov-creator/cursor-agent-sync-mcp. Важно: в отличие от npmjs.org, GitHub Packages требует аутентификации даже для доступа к пакету (репозиторий приватный) — понадобится .npmrc со scoped-registry и GitHub-токеном с правом read:packages:

# ~/.npmrc или в проекте
echo "@yuriisamohvalov-creator:registry=https://npm.pkg.github.com" >> ~/.npmrc
npm login --registry=https://npm.pkg.github.com --scope=@yuriisamohvalov-creator

npm install -g @yuriisamohvalov-creator/cursor-agent-sync-mcp

Подключение к Claude Code

При установке из npm (npm install -g cursor-agent-sync-mcp) бинарник уже в PATH:

claude mcp add --scope user cursor -- cursor-agent-sync-mcp

При установке из исходников:

NODE_BIN="$(which node)"
claude mcp add --scope user cursor -- "$NODE_BIN" "$HOME/tools/cursor-mcp/server.mjs"

Проверка:

claude mcp get cursor
# Status: ✔ Connected

После подключения новой сессии Claude Code (или рестарта текущей) инструмент доступен как mcp__cursor__cursor_execute.

Использование инструмента

{
  "task": "Add a slugify() helper in src/lib/slug.ts with tests. Acceptance: kebab-case, trims whitespace. Verify with `npm test -- slug`.",
  "cwd": "/absolute/path/to/project",
  "model": "gpt-5",            // опционально
  "timeoutMs": 900000            // опционально, по умолчанию 15 минут
}

Ответ:

{
  "ok": true,
  "exitCode": 0,
  "sessionID": "...",
  "text": "...финальный ответ модели...",
  "diffStat": "...git diff --stat...",
  "statusShort": "...git status --short..."
}

Ограничения

  • Одна задача — один синхронный запуск cursor-agent, без параллелизма в рамках одного вызова инструмента и без уточняющих вопросов в процессе (флаг --force заставляет агента додумывать самому, если чего-то не хватает).

  • Долгая задача блокирует вызывающую сессию на всё время выполнения — контролируйте через timeoutMs.

  • Не подменяет ревью: вызывающая сторона должна самостоятельно проверять diffStat/statusShort, а не доверять только полю ok.

Лицензия

MIT

Available Tools

1 tool
cursor_executeB

Execute one bounded coding task through cursor-agent CLI (synchronous, blocks until done) and return a compact JSON report with diff/status context.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdYesAbsolute working directory/repository root.
taskYesBounded coding task with goal, constraints, files, acceptance criteria, and verification command.
modelNoOptional cursor-agent model, e.g. gpt-5, sonnet-4-thinking, composer.
resumeNoResume a specific cursor-agent chat/session id instead of starting a new one.
timeoutMsNoInternal timeout; must be below the MCP client's own per-call timeout.
continueSessionNoContinue the last cursor-agent session; ignored when resume is set.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses blocking/synchronous behavior and the shape of the return ('compact JSON report with diff/status context'), but says nothing about repository side effects, permissions, cost, or rate limits for a tool that runs an agent against a working directory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no waste. Blocking behavior and return shape are packed in efficiently without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter execution/mutation tool with no annotations and no output schema, the description is adequate but thin. It names the return format but omits side-effect scope, filesystem impact, and resume/continue session semantics that an agent would need to call it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters in detail. The description adds no syntax, format, or semantic detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Execute') and resource ('one bounded coding task through cursor-agent CLI'), so an agent knows exactly what capability this provides. It lacks a sibling to contrast against, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the operation is synchronous and bounded, but gives no explicit when-to-use guidance, prerequisites, or conditions under which another approach (e.g. resume, continueSession) should be preferred. Usage is only implied, not directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.2.0
    • First observedcursor_execute

TDQS

B3.4/5.0

Scored across 1 tool

Disambiguation5/5

With only a single tool, there is no possibility of overlap or misselection; cursor_execute has one clearly distinct purpose.

Naming Consistency5/5

The lone tool follows a clean snake_case verb_noun pattern (cursor_execute), which is readable and predictable even without siblings to compare against.

Tool Count3/5

A single tool is thin for a server whose purpose is syncing/executing coding tasks; basic operations like status polling or cancellation are absent, making the surface feel under-scoped.

Completeness2/5

Only a synchronous execute operation exists, with no way to query task status, cancel a running task, or list history, so an agent hitting a long-running or stuck task has no recourse.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers