[Go to site: main page, start]

Skip to main content

Command Palette

Search for a command to run...

はじめに

拡張機能 API リファレンス

Cursor では、プログラムから設定を行うための拡張機能 API を vscode.cursor で提供しています。VS Code 拡張機能からこれらの API を使用すると、設定ファイルを編集せずに MCP サーバーやプラグインのパスを登録できます。

型定義

型チェックのため、以下の declare module ブロックを拡張機能プロジェクトにコピーしてください。

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;          /**           * このサーバーへの各リクエストに含める任意の HTTP ヘッダー           * (例:認証用)。           */          headers?: Record<string, string>;        };      }      export type ExtMCPServerConfig = StdioServerConfig | RemoteServerConfig;      /**       * Cursor が通信できる MCP サーバーを登録します。       * HTTP(S)(SSE/ストリーミング対応 HTTP)とローカルの stdio プロセスをサポートします。       */      export const registerServer: (config: ExtMCPServerConfig) => void;      export const unregisterServer: (serverName: string) => void;    }    export namespace plugins {      /**       * ディレクトリをプラグインソースとして登録します。Cursor はこのディレクトリ内の       * 有効なプラグインを検出して読み込みます。       */      export const registerPath: (path: string) => void;      export const unregisterPath: (path: string) => void;    }  }}

MCP サーバー

実行時に MCP サーバーを登録・管理します。mcp.json を編集するのが現実的でないエンタープライズ環境や、オンボーディングツール、自動セットアップのワークフローで役立ちます。

vscode.cursor.mcp.registerServer

MCP サーバーを登録します。

シグネチャ:

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

パラメータ:

  • config: ExtMCPServerConfig - サーバー設定オブジェクト

vscode.cursor.mcp.unregisterServer

登録済みの MCP サーバーの登録を解除します。

シグネチャ:

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

パラメータ:

  • serverName: string - 登録解除するサーバー名

設定の種類

HTTP/SSE サーバー

HTTP または Server-Sent Events 上で動作するサーバーの場合:

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

プロパティ:

  • name: サーバーの一意の識別子
  • server.url: HTTP エンドポイントの URL
  • server.headers (任意) : 認証などに使用する HTTP ヘッダー

Stdio サーバー

標準入出力で通信するローカルサーバーの場合:

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

プロパティ:

  • name: サーバーの一意の識別子
  • server.command: 実行するコマンド
  • server.args: コマンドライン引数
  • server.env: 環境変数

MCP の例

HTTP/SSE サーバー

認証を使用するリモート MCP サーバーを登録します。

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",    },  },});

Stdio サーバー

ローカルの MCP サーバーを登録します:

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

Node.js サーバー

Node.js ベースの MCP サーバーを登録します。

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

サーバーの登録解除

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

条件付き登録

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

プラグインのパス

実行時に追加のプラグインディレクトリを登録します。拡張機能はこの API を使用して、ユーザーがファイルを ~/.cursor/plugins/local/ に手動でコピーすることなく、プラグインの場所を Cursor に通知できます。

.cursor-plugin/plugin.json マニフェストは省略可能です。マニフェストがない場合、Cursor はフォルダーベースの自動検出を使用し、デフォルトの場所 (rules/skills/agents/commands/mcp.jsonhooks/hooks.json) からコンポーネントを検出します。たとえば、スキルを追加するには、skills/ サブフォルダーを含むディレクトリを登録できます。マニフェストは必要ありません。

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

マニフェストの完全なスキーマとすべてのコンポーネント形式については、プラグインガイドおよびプラグインリファレンスを参照してください。

vscode.cursor.plugins.registerPath

ディレクトリパスをプラグインソースとして登録します。Cursor はディレクトリ内で検出された有効なプラグインを読み込みます。

シグネチャ:

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

パラメータ:

  • path: string - プラグインを含むディレクトリの絶対ファイルシステムパス

vscode.cursor.plugins.unregisterPath

登録済みのプラグインパスを削除します。

シグネチャ:

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

パラメータ:

  • path: string - 登録解除するパス

プラグインパスの例

バンドルされたプラグインディレクトリを登録する

拡張機能では、プラグインをバンドルし、有効化時に登録できます。

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),  });}

ワークスペース相対パスを登録する

Cursor で、モノレポ内の共有プラグインディレクトリを指定します。

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

プラグインパスの登録解除

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