This commit is contained in:
ray zhou
2026-06-29 14:51:55 +08:00
parent 225fb2bd28
commit 2dd9f17da9
319 changed files with 29461 additions and 9412 deletions

View File

@@ -0,0 +1,16 @@
The cursor-app-control MCP allows you to control the Cursor application itself. Use it to:
- Move the current agent to a new root workspace directory (move_agent_to_root) — use this after creating a worktree or whenever the conversation should continue from a different workspace root
- Move the current agent to a verbatim clone of the current workspace (move_agent_to_cloned_root) — use this ONLY when the target is a sibling clone already on the agent's branch (for example from cursorfs-clone); skips the migration git fetch / ff-merge that the generic move performs
- Create a new project at a given path (create_project) — creates the directory if missing and initializes a git repository. Use this to bootstrap a new project before moving to it with move_agent_to_root
- Open a resource by URI in Glass (open_resource) — opens files in the right-hand editor panel (workspace paths or anything under ~/.cursor), focuses terminals, opens output channels, opens web links according to the Glass browser setting, or delegates other schemes to the default workbench opener
- Open the Automations UI in Glass (open_automation) — opens the new automation form, with optional templateId and structured prefillWorkflowData sent only to the active Glass view
- Run Cursor-specific actions (cursor_dialog) — currently supports item="rule" and scope="user" with action="list", "add", "update", or "remove" for user rules after asking what the user wants Cursor to remember
- Rename the current chat conversation (rename_chat) — sets the current chat title to the provided value
Use move_agent_to_root when you want the current conversation to adopt a different root workspace directory. This updates the visible work surface and the default cwd for new terminals.
Use move_agent_to_cloned_root when the target is a freshly-made sibling clone of the current workspace.
Use create_project when you need to create a brand new project directory with an initialized git repository.
Use open_resource when you need to reveal a file, terminal, output channel, or URL for the current agent.
Use open_automation when you need to show or prefill the Glass Automations UI; never put raw automation prefill payloads in cursor:// URLs.
Use rename_chat when you need to set a specific title for the current chat conversation.
Use cursor_dialog for onboarding and preference-learning workflows. Always list rules first to avoid duplicate memories, and only write rules the user has agreed should be remembered.

View File

@@ -0,0 +1,4 @@
{
"serverIdentifier": "cursor-app-control",
"serverName": "cursor-app-control"
}

View File

@@ -0,0 +1,18 @@
{
"name": "create_project",
"description": "Create a new project at the given path. Creates the directory if it does not exist and initializes a git repository. Use this to bootstrap a new project before moving the agent to it with move_agent_to_root.",
"arguments": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"path": {
"description": "Absolute path where the new project should be created (e.g. \"/Users/name/projects/my-new-app\")",
"type": "string"
}
},
"required": [
"path"
],
"additionalProperties": false
}
}

View File

@@ -0,0 +1,41 @@
{
"name": "move_agent_to_cloned_root",
"description": "Move the current agent to a root workspace directory that is a verbatim clone of the current workspace (for example produced by `cursorfs-clone`) and is already on the agent's recorded branch. Skips the migration-path `git fetch` and ff-merge that `move_agent_to_root` performs. Use ONLY when you already know the target is a sibling clone of the current workspace on the same branch; otherwise use `move_agent_to_root`.",
"arguments": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"type": "object",
"properties": {
"rootPath": {
"description": "Absolute path to the directory that should become the agent root workspace (e.g. \"/Users/name/projects/my-app\")",
"type": "string",
"minLength": 1
}
},
"required": [
"rootPath"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"rootPaths": {
"description": "Array of absolute paths used to create/switch to a multi-root workspace.",
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"rootPaths"
],
"additionalProperties": false
}
]
}
}

View File

@@ -0,0 +1,41 @@
{
"name": "move_agent_to_root",
"description": "Move the current agent to a new root workspace directory. Use this after creating a worktree or whenever the conversation should continue from a different workspace root. If the destination was just produced by `cursorfs-clone` (under `~/.cursor/cursorfs-clone/...`), use `move_agent_to_cloned_root` instead — this generic tool runs `git fetch origin <branch>` against the destination and will fail with \"Remote branch not found on origin\" on local-only branches.",
"arguments": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"type": "object",
"properties": {
"rootPath": {
"description": "Absolute path to the directory that should become the agent root workspace (e.g. \"/Users/name/projects/my-app\")",
"type": "string",
"minLength": 1
}
},
"required": [
"rootPath"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"rootPaths": {
"description": "Array of absolute paths used to create/switch to a multi-root workspace.",
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"rootPaths"
],
"additionalProperties": false
}
]
}
}

View File

@@ -0,0 +1,40 @@
{
"name": "open_automation",
"description": "Open the Glass Automations UI, optionally opening an existing automation by automationId or starting a new automation from a templateId and/or structured prefillWorkflowData. Use this instead of opening cursor.com automation URLs or putting raw prefill data in cursor:// URLs. Calls with prefillWorkflowData require tool approval before the data is trusted by the form, and prefill data is sent only to the active Glass view.",
"arguments": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"automationId": {
"description": "Optional existing automation id to open in the Automations UI.",
"type": "string",
"minLength": 1,
"maxLength": 512
},
"view": {
"description": "Which existing automation view to open. Defaults to edit. Requires automationId.",
"type": "string",
"enum": [
"edit",
"view",
"runs"
]
},
"templateId": {
"description": "Optional automation template id to preselect in the new automation form.",
"type": "string",
"minLength": 1,
"maxLength": 512
},
"prefillWorkflowData": {
"description": "Optional workflow data JSON object used to prefill the new automation form. The payload is sent only to the active Glass view and is not put in a URL or browser storage.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"additionalProperties": false
}
}

View File

@@ -0,0 +1,20 @@
{
"name": "rename_chat",
"description": "Rename the current chat conversation tab title. Uses the active conversation when composerId is not provided by the caller.",
"arguments": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"title": {
"description": "New title for the current chat conversation.",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"title"
],
"additionalProperties": false
}
}