# Cursor

The AI code editor. Agent, Tab, and Inline Edit backed by frontier models.

Schema: 1.0 · Data: ee5de863c30bdbe4fe7dd3e07c7e22ea9bf4ab2248dbc7c35cdbf60bc28be1db

## Configuration

### MCP

Status: supported

Configure MCP servers via mcp.json. Supports stdio, SSE, and Streamable HTTP, with OAuth and config interpolation.

- project: `.cursor/mcp.json` (json) — key: mcpServers
- global: `~/.cursor/mcp.json` (json) — key: mcpServers
- `type`: "stdio" — Server connection type for local command servers.
- `command`: string — Command to start a stdio server executable (e.g. npx, node, python, docker).
- `args`: string[] — Arguments passed to the command.
- `env`: record<string, string> — Environment variables for the server. Supports ${env:NAME} interpolation.
- `envFile`: string — Path to an environment file to load (stdio servers only).
- `url`: string — Endpoint URL for a remote HTTP or SSE server.
- `headers`: record<string, string> — HTTP headers for remote servers (e.g. Authorization).
- `auth`: { CLIENT_ID: string, CLIENT_SECRET?: string, scopes?: string[] } — Static OAuth client credentials for remote servers.
- transports: stdio, sse, http
- auth: oauth, headers, static-oauth
- Tools: supported
- Prompts: supported
- Resources: supported
- Roots: supported
- Elicitation: supported
- Apps: supported — Interactive UI views returned by MCP tools (MCP Apps extension).

Local stdio server
```json
{
  "mcpServers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "mcp-server"],
      "env": { "API_KEY": "value" }
    }
  }
}

```


Remote server
```json
{
  "mcpServers": {
    "server-name": {
      "url": "http://localhost:3000/mcp",
      "headers": { "API_KEY": "value" }
    }
  }
}

```

Source: https://cursor.com/docs/context/mcp
Checked: 2026-06-21

### Skills

Status: supported

SKILL.md skills loaded from .cursor/skills and .agents/skills, invoked with / or @. Also reads Claude and Codex skill dirs.

- project: `.cursor/skills/<name>/SKILL.md` (markdown)
- project: `.agents/skills/<name>/SKILL.md` (markdown) — Shared agent-skills directory (cross-tool standard).
- global: `~/.cursor/skills/<name>/SKILL.md` (markdown)
- global: `~/.agents/skills/<name>/SKILL.md` (markdown)
- `name`: string — Skill name. Defaults to the containing folder name.
- `description`: string — What the skill does; helps Agent decide when to load it.
- `paths`: string | string[] — Glob patterns that scope the skill to matching files.
- invocation: /skill-name, @skill-name
- For compatibility, Cursor also loads skills from .claude/skills, .codex/skills, ~/.claude/skills, and ~/.codex/skills.
- Skills in nested project dirs (e.g. apps/web/.cursor/skills/) are scoped to files in that dir.

Scoped skill
```markdown
---
name: react-component-patterns
description: Conventions for writing React components.
paths:
  - "**/*.tsx"
---

# React component patterns
...

```

Source: https://cursor.com/docs/context/skills
Checked: 2026-06-21

### Rules

Status: supported

Project rules as .mdc files with frontmatter, plus plain-markdown AGENTS.md (root and nested).

- project: `.cursor/rules/*.mdc` (mdc) — Version-controlled, scoped via path patterns. Organize in subfolders.
- project: `AGENTS.md` (markdown) — Plain-markdown instructions in project root and any subdirectory (nested).
- `description`: string — When set with alwaysApply false, Agent pulls the rule in when relevant.
- `globs`: string — Comma-separated glob patterns; auto-attaches the rule for matching files.
- `alwaysApply`: boolean — When true, the rule is included in every chat session.
- invocation: @rule-name

Always-applied rule (.mdc)
```markdown
---
alwaysApply: true
---

- All source files must include the company copyright header
- Never modify generated files in dist/ or build/

```

Source: https://cursor.com/docs/context/rules
Checked: 2026-06-21

### Hooks

Status: supported

hooks.json defines scripts that observe, block, or modify the agent loop. Command and prompt hook types. Claude Code hook compatible.

- project: `.cursor/hooks.json` (json) — key: hooks
- global: `~/.cursor/hooks.json` (json) — key: hooks
- enterprise: `/Library/Application Support/Cursor/hooks.json` (json) — key: hooks — macOS MDM path. Linux/WSL: /etc/cursor/hooks.json; Windows: C:\ProgramData\Cursor\hooks.json.
- `version`: number (required) — Config schema version (currently 1).
- `command`: string (required) — Script path or shell command (for command hooks).
- `type`: "command" | "prompt" — Hook execution type. Defaults to command.
- `timeout`: number — Execution timeout in seconds.
- `loop_limit`: number | null — Per-script loop limit for stop/subagentStop hooks. Default 5 for Cursor.
- `failClosed`: boolean — When true, hook failures block the action instead of failing open.
- `matcher`: string — Filter criteria (tool name, subagent type, or command pattern) for when the hook runs.
- events: sessionStart, sessionEnd, beforeSubmitPrompt, preToolUse, postToolUse, postToolUseFailure, beforeShellExecution, afterShellExecution, beforeMCPExecution, afterMCPExecution, beforeReadFile, afterFileEdit, subagentStart, subagentStop, preCompact, stop, afterAgentResponse, afterAgentThought, beforeTabFileRead, afterTabFileEdit, workspaceOpen

Format after edits
```json
{
  "version": 1,
  "hooks": {
    "afterFileEdit": [{ "command": ".cursor/hooks/format.sh" }]
  }
}

```

Source: https://cursor.com/docs/agent/hooks
Checked: 2026-06-21

### Commands

Status: deprecated

Cursor merged slash commands into Skills. Existing user- and workspace-level commands can be converted with /migrate-to-skills; author new workflows as Skills.

- invocation: /command-name
- Both user-level and workspace-level commands are convertible to skills (Cursor 2.4+).
- Use the Skills surface for new reusable workflows.
Source: https://cursor.com/docs/context/skills
Checked: 2026-06-21

### Settings

Status: partial

Most settings live in the Cursor Settings UI. permissions.json controls Run Mode allowlists (MCP tools, terminal commands) and steers the Auto-review classifier.

- project: `.cursor/permissions.json` (json) — Applies to one project directory. Commit it to share guidance with the team.
- global: `~/.cursor/permissions.json` (json) — Applies to all project directories on the machine.
- `mcpAllowlist`: string[] — MCP tools that run without approval, as server:tool patterns (wildcards supported, e.g. *:search). Overrides the in-app MCP allowlist when set.
- `terminalAllowlist`: string[] — Terminal commands that run without approval. Overrides the in-app terminal allowlist when set.
- `autoRun`: { allow_instructions?: string[], block_instructions?: string[] } — Natural-language guidance for the Auto-review classifier: actions to lean toward allowing or blocking.
- permissions.json only takes effect when a Run Mode is enabled in Cursor Settings (Auto-review, Allowlist, or Run Everything).
- When a key is defined in permissions.json it overrides the corresponding in-app allowlist, which becomes read-only.
- Arrays from the global and project files are concatenated before being applied.
- autoRun instructions steer the Auto-review classifier; they have no effect in Allowlist or Run Everything modes.
Source: https://cursor.com/docs/reference/permissions
Checked: 2026-07-22

## Search, browser & identification

### Cursor / Agent / browse

Tool: cursor-browser (built-in)

- Agent overview checked September 6, 2026; exact version range not specified.

- Screenshots: Yes (documented; checked 2026-09-06). Browser can navigate pages, interact with elements, and capture screenshots.
  Source: [Cursor agent tools](https://cursor.com/docs/agent/overview) — Tools: Web and Browser
- Browser engine: Unknown (unknown). Not established by the reviewed official documentation.
- Accept header: Unknown (unknown). Not established by the reviewed official documentation.
- Explicit Markdown preference: Unknown (unknown). Not established by the reviewed official documentation.
- User-Agent: Unknown (unknown). Not established by the reviewed official documentation.
- JavaScript execution: Unknown (unknown). Not established by the reviewed official documentation.
- Cookies and sessions: Unknown (unknown). Not established by the reviewed official documentation.

### Cursor / Agent / search

Tool: cursor-web (built-in)

- Agent overview checked September 6, 2026; exact version range not specified.

- Tool output: Web search results (documented; checked 2026-09-06). Agent generates search queries and performs web searches.
  Source: [Cursor agent tools](https://cursor.com/docs/agent/overview) — Tools: Web and Browser
- Provider: Unknown (unknown). Not established by the reviewed official documentation.
- Accept header: Unknown (unknown). Not established by the reviewed official documentation.
- Explicit Markdown preference: Unknown (unknown). Not established by the reviewed official documentation.
- User-Agent: Unknown (unknown). Not established by the reviewed official documentation.
