[Go to site: main page, start]

Skip to main content

Command Palette

Search for a command to run...

Comenzar

Referencia de la API de extensiones

Cursor expone las API de extensiones en vscode.cursor para la configuración programática. Usa estas API desde extensiones de VS Code para registrar servidores MCP y rutas de plugins sin editar archivos de configuración.

Definiciones de tipos

Copia este bloque declare module en tu proyecto de extensión para comprobar los tipos:

declare module "vscode" {  export namespace cursor {    export namespace mcp {      export interface StdioServerConfig {        name: string;        server: {          command: string;          args: string[];          env: Record<string, string>;        };      }      export interface RemoteServerConfig {        name: string;        server: {          url: string;          /**           * encabezados HTTP opcionales que se incluyen en cada solicitud a este servidor           * (por ejemplo, para autenticación).           */          headers?: Record<string, string>;        };      }      export type ExtMCPServerConfig = StdioServerConfig | RemoteServerConfig;      /**       * Registra un servidor MCP con el que Cursor pueda comunicarse.       * Es compatible con HTTP(S) (SSE/streamable HTTP) y procesos stdio locales.       */      export const registerServer: (config: ExtMCPServerConfig) => void;      export const unregisterServer: (serverName: string) => void;    }    export namespace plugins {      /**       * Registra un directorio como origen de plugins. Cursor detecta y carga       * cualquier plugin válido que haya en ese directorio.       */      export const registerPath: (path: string) => void;      export const unregisterPath: (path: string) => void;    }  }}

Servidores MCP

Registra y gestiona servidores MCP en tiempo de ejecución. Resulta útil en entornos empresariales, para herramientas de incorporación y flujos de trabajo de configuración automatizada en los que no es práctico editar mcp.json.

vscode.cursor.mcp.registerServer

Registra un servidor MCP.

Firma:

vscode.cursor.mcp.registerServer(config: ExtMCPServerConfig): void

Parámetros:

  • config: ExtMCPServerConfig: objeto de configuración del servidor

vscode.cursor.mcp.unregisterServer

Anula el registro de un servidor MCP registrado anteriormente.

Firma:

vscode.cursor.mcp.unregisterServer(serverName: string): void

Parámetros:

  • serverName: string - El nombre del servidor cuyo registro se va a eliminar

Tipos de configuración

Servidor HTTP/SSE

Para servidores que se ejecutan mediante HTTP o Server-Sent Events:

interface RemoteServerConfig {  name: string;  server: {    url: string;    headers?: Record<string, string>;  };}

Propiedades:

  • name: Identificador único del servidor
  • server.url: URL del endpoint HTTP
  • server.headers (opcional): Encabezados HTTP para autenticación u otros fines

Servidor Stdio

Para servidores locales que se comunican mediante la entrada y salida estándar:

interface StdioServerConfig {  name: string;  server: {    command: string;    args: string[];    env: Record<string, string>;  };}

Propiedades:

  • name: Identificador único del servidor
  • server.command: Comando ejecutable
  • server.args: Argumentos de línea de comandos
  • server.env: Variables de entorno

Ejemplos de MCP

Servidor HTTP/SSE

Registra un servidor MCP remoto con autenticación:

vscode.cursor.mcp.registerServer({  name: "my-remote-server",  server: {    url: "https://api.example.com/mcp",    headers: {      Authorization: "Bearer your-token-here",      "X-API-Key": "your-api-key",    },  },});

Servidor stdio

Registra un servidor MCP local:

vscode.cursor.mcp.registerServer({  name: "my-local-server",  server: {    command: "python",    args: ["-m", "my_mcp_server"],    env: {      API_KEY: "your-api-key",      DEBUG: "true",    },  },});

Servidor de Node.js

Registra un servidor MCP basado en Node.js:

vscode.cursor.mcp.registerServer({  name: "nodejs-server",  server: {    command: "npx",    args: ["-y", "@company/mcp-server"],    env: {      NODE_ENV: "production",      CONFIG_PATH: "/path/to/config",    },  },});

Anular el registro de un servidor

vscode.cursor.mcp.unregisterServer("my-remote-server");

Registro condicional

if (!isServerRegistered("my-server")) {  vscode.cursor.mcp.registerServer({    name: "my-server",    server: {      url: "https://api.example.com/mcp",    },  });}

Rutas de plugins

Registra directorios de plugins adicionales en tiempo de ejecución. Las extensiones pueden usar esta API para indicar a Cursor las ubicaciones de los plugins sin que los usuarios tengan que copiar archivos manualmente en ~/.cursor/plugins/local/.

El manifiesto .cursor-plugin/plugin.json es opcional. Si no existe, Cursor usa el descubrimiento automático basado en carpetas y detecta componentes en las ubicaciones predeterminadas: rules/, skills/, agents/, commands/, mcp.json y hooks/hooks.json. Por ejemplo, para añadir skills, puedes registrar un directorio que contenga una subcarpeta skills/; no se necesita manifiesto.

my-extension/cursor-plugins/team-tools/├── skills/│   └── deploy-helper/│       └── SKILL.md└── rules/    └── coding-standards.mdc

Para consultar el esquema completo del manifiesto y todos los formatos de componentes, consulta la guía de plugins y la referencia de plugins.

vscode.cursor.plugins.registerPath

Registra una ruta de directorio como origen de plugins. Cursor carga los plugins válidos que se encuentren en el directorio.

Firma:

vscode.cursor.plugins.registerPath(path: string): void

Parámetros:

  • path: string - Ruta absoluta del sistema de archivos a un directorio que contiene plugins

vscode.cursor.plugins.unregisterPath

Elimina una ruta de plugin registrada anteriormente.

Firma:

vscode.cursor.plugins.unregisterPath(path: string): void

Parámetros:

  • path: string - La ruta que se va a desregistrar

Ejemplos de rutas de plugins

Registrar un directorio de plugins integrado

Una extensión puede integrar plugins y registrarlos al activarse:

import * as vscode from "vscode";import * as path from "path";export function activate(context: vscode.ExtensionContext) {  const pluginsDir = path.join(context.extensionPath, "cursor-plugins");  vscode.cursor.plugins.registerPath(pluginsDir);  context.subscriptions.push({    dispose: () => vscode.cursor.plugins.unregisterPath(pluginsDir),  });}

Registrar una ruta relativa al espacio de trabajo

Configura Cursor para usar un directorio de plugins compartido en un monorepo:

const workspaceRoot = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath;if (workspaceRoot) {  vscode.cursor.plugins.registerPath(    path.join(workspaceRoot, ".cursor-plugins")  );}

Anular el registro de una ruta de plugin

vscode.cursor.plugins.unregisterPath("/path/to/plugins");