npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@qmediat.io/cursor-mcp

v1.0.1

Published

MCP server for Cursor CLI — access Composer 2, Claude, GPT, Gemini, and Grok models through Model Context Protocol

Readme

@qmediat.io/cursor-mcp

npm version License: MIT TypeScript

MCP server for Cursor CLI — access Composer 2, Claude, GPT, Gemini, and Grok models through the Model Context Protocol.

Why this server?

  • Multi-model access — Composer 2, Claude 4.6 Opus, GPT-5.4, Gemini 3 Pro, Grok, Kimi K2.5 through a single interface
  • 5 tools — agent execution, session continuation, model listing, session listing, health check
  • Parallel execution — run multiple models simultaneously with built-in concurrency control (semaphore)
  • Security-firstspawn (no shell), auto-approve gated by env var (never LLM-controllable), AbortSignal cancellation
  • Minimal dependencies — only @modelcontextprotocol/sdk + zod
  • Session management — resume conversations across calls

Quick Start

Prerequisites

  1. Node.js >= 22.0.0
  2. Cursor CLI installed and authenticated:
# Install cursor-agent
curl https://cursor.com/install -fsS | bash

# Authenticate (requires Cursor Pro/Business subscription)
cursor-agent login

Install

npm install -g @qmediat.io/cursor-mcp

Or run directly with npx:

npx @qmediat.io/cursor-mcp

Configuration

Claude Code (~/.claude.json)

{
  "mcpServers": {
    "cursor-cli": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@qmediat.io/cursor-mcp"]
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "cursor-cli": {
      "command": "npx",
      "args": ["-y", "@qmediat.io/cursor-mcp"]
    }
  }
}

Local development

{
  "mcpServers": {
    "cursor-cli": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/cursor-mcp/dist/index.js"]
    }
  }
}

Environment Variables

| Variable | Required | Default | Description | |----------|----------|---------|-------------| | CURSOR_MAX_CONCURRENCY | No | 3 | Maximum concurrent cursor-agent processes | | CURSOR_ALLOW_YOLO | No | false | Enable --force mode (auto-approve all tool calls). DANGEROUS — only for trusted environments |

Available Tools

| Tool | Description | Key Parameters | |------|-------------|----------------| | cursor_agent | Execute a prompt using Cursor's AI agent | prompt, model, mode, workspace, cloud, timeout_seconds | | cursor_reply | Continue an existing agent session | prompt, session_id, model, timeout_seconds | | cursor_models | List all available AI models | — | | cursor_sessions | List agent sessions (this server instance) | — | | cursor_health | Check installation, auth, and config | — |

Models

| Model | Description | Pricing (input/output per 1M tokens) | |-------|-------------|---------------------------------------| | auto | Cursor auto-selects (default) | varies | | composer-2 | Cursor Composer 2 — 200K context | $0.50 / $2.50 | | composer-2-fast | Composer 2 fast variant | $1.50 / $7.50 | | cursor/claude-4-sonnet | Claude 4 Sonnet via Cursor | varies | | cursor/claude-4.5-sonnet | Claude 4.5 Sonnet via Cursor | varies | | cursor/claude-4.6-opus-high | Claude 4.6 Opus via Cursor | varies | | cursor/gpt-5.1 | GPT-5.1 via Cursor | varies | | gpt-5.4 | GPT-5.4 | varies | | cursor/gemini-3-flash | Gemini 3 Flash via Cursor | varies | | gemini-3-pro | Gemini 3 Pro | varies | | cursor/grok | Grok via Cursor | varies | | kimi-k2.5 | Moonshot Kimi K2.5 | varies |

Modes

| Mode | Description | |------|-------------| | agent | Full capabilities — file edit, terminal, search (default) | | plan | Design-focused — asks clarifying questions before acting | | ask | Read-only exploration — no file modifications |

Parallel Execution

Run multiple models simultaneously by making parallel tool calls:

# In Claude Code, spawn 3 Agent subprocesses:
Agent 1: cursor_agent with model=composer-2 → "Review this code"
Agent 2: cursor_agent with model=cursor/claude-4-sonnet → "Review this code"
Agent 3: cursor_agent with model=gpt-5.4 → "Review this code"

The built-in semaphore (default: 3) queues excess requests to prevent rate limit errors.

Security

  • No shell executionchild_process.spawn with argument arrays, preventing injection
  • No credentials stored — cursor-agent handles its own OAuth
  • No HTTP requests — pure CLI wrapper, no network access beyond cursor-agent
  • Process cleanup — AbortSignal kills child processes on client disconnect or timeout
  • Auto-approve gated--force requires explicit CURSOR_ALLOW_YOLO=true env var, never controllable by LLMs
  • Concurrency limited — semaphore prevents resource exhaustion

See SECURITY.md for full details.

Supervised Coding Skill

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-cli MCP server (this package) must be installed and configured in Claude Code first.

Usage

/cursor-code <task>                          # default: composer-2
/cursor-code --model gpt-5.4 <task>          # explicit model
/cursor-code --model cursor/grok <task>      # any model from cursor_models

Run cursor_models to list all available model IDs.

Install the skill

mkdir -p ~/.claude/skills/cursor-code

Create ~/.claude/skills/cursor-code/SKILL.md with the following content:

---
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". Supports all models from cursor_models (Composer 2, GPT 5.4,
  Gemini 3.1 Pro, Grok 4.20, Claude 4.6 Sonnet, Kimi K2.5, etc.).
metadata:
  version: 1.0.0
---

# Supervised Coding: Claude Code (Supervisor) -> Cursor (Coder)

You are the **supervisor** (Claude Code). A Cursor model is the **coder**.
You give precise instructions, the coder writes code, you review and iterate.

## Parsing

Extract from user input:
- `--model <id>` -> model to use (default: `composer-2`)
- Everything else -> the task description

If user says a model name naturally (e.g. "use gpt-5.4", "with gemini", "z grok"),
extract it and map to the cursor_models ID.

## Workflow

### Step 1: Analyze
- Read the relevant files to understand current state
- Break the user's task into a single, focused coding instruction
- Identify: target files, constraints, acceptance criteria

### Step 2: Instruct
Call `cursor_agent` with:
- `model`: extracted model or `composer-2`
- `workspace`: current working directory
- `prompt`: precise instruction with file paths, function names, constraints
- Keep prompt focused -- one task per call, not an entire feature
- Extract and store the `session_id` from the response for use in Step 4

Output before calling: `[cursor-cli -> <model>]`

### Step 3: Verify
After the coder returns:
- Run `git diff --name-only` to discover ALL files the coder modified
- Read EVERY modified file from disk (use Read tool) -- not just the ones from your prompt
- Diff against expectations
- Check: correctness, edge cases, security, type safety

### Step 4: Iterate (max 3 rounds)
If issues found:
- Call `cursor_reply` with the same session_id
- Give specific fix instructions (file:line, what's wrong, what to do)
- Re-verify after each round
- If the coder is fundamentally off-track (wrong approach, not just small bugs),
  abandon the session early and start fresh with a more explicit prompt

### Step 5: Report
Summarize to the user:
- Model used (confirm from response, not just request)
- What was done
- Files changed
- Rounds needed (1 = clean, 2-3 = corrections applied)
- Any manual fixes Claude Code applied directly

## Rules
- ONE task per cursor_agent call -- don't batch entire features
- ALWAYS read files from disk after coder finishes
- NEVER trust cached file contents -- Cursor writes directly to disk
- Set timeout_seconds appropriately (30-120s for typical tasks)
- If the task is trivial (< 5 lines) -- just do it yourself, don't delegate
- Follow model transparency rules -- always state [cursor-cli -> model] before call
- If cursor_agent/cursor_reply fails (timeout, auth, CLI not found) -- report the error to the user and run cursor_health to diagnose. Do not retry silently
- If unsure about valid model IDs -- call cursor_models first

Restart Claude Code after creating the skill file.

Development

git clone https://github.com/qmediat/cursor-mcp.git
cd cursor-mcp
npm install
npm run build
node dist/index.js

See CONTRIBUTING.md for guidelines.

License

MIT - Quantum Media Technologies sp. z o.o.