拡張機能 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 エンドポイントの URLserver.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.json、hooks/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");