Skip to main content
Cursor Extension API, mcp.json dosyalarını doğrudan düzenlemeden MCP sunucularını kaydetmek ve yönetmek için programatik erişim sağlar. Bu, özellikle kurumsal ortamlar, işe alıştırma araçları (onboarding) veya MCP sunucularını dinamik olarak yapılandırması gereken MDM sistemleri için faydalıdır.

Genel Bakış

MCP Extension API şunları yapmana olanak tanır:
  • MCP sunucularını programatik olarak kaydetmek
  • Hem HTTP/SSE hem de stdio taşıma yöntemlerini desteklemek
  • mcp.json ile aynı yapılandırma şemasını kullanmak
  • Sunucu kaydını dinamik olarak yönetmek
Bu API, aşağıdaki ihtiyaçları olan kurumlar için kullanışlıdır:
  • MCP yapılandırmalarını programatik olarak dağıtmak
  • MCP kurulumunu işe alım/onboarding süreçlerine entegre etmek
  • MCP sunucularını kurumsal araçlar üzerinden yönetmek
  • mcp.json dosyasını elle değiştirmekten kaçınmak

API Referansı

vscode.cursor.mcp.registerServer

Cursor’ın iletişim kurabileceği bir MCP sunucusunu kaydeder. İmza:
vscode.cursor.mcp.registerServer(config: ExtMCPServerConfig): void
Parametreler:
  • config: ExtMCPServerConfig - Sunucu yapılandırma nesnesi

vscode.cursor.mcp.unregisterServer

Daha önce kaydedilmiş bir MCP sunucusunun kaydını kaldırır. İmza:
vscode.cursor.mcp.unregisterServer(serverName: string): void
Parametreler:
  • serverName: string - Kaydı silinecek sunucunun adı

Tür Tanımları

Tür kontrolü için şu TypeScript tanımlarını kullan:
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;
          /**
           * Bu sunucuya yapılacak her isteğe eklenecek, isteğe bağlı HTTP başlıkları (ör. kimlik doğrulama için).
           * Anahtarlar başlık adlarını, değerler ise başlık değerlerini temsil eder.
           */
          headers?: Record<string, string>;
        }
      }

      export type ExtMCPServerConfig = StdioServerConfig | RemoteServerConfig;
      
      /**
       * Cursor uzantısının iletişim kurabileceği bir MCP sunucusunu kaydet.
       *
       * Sunucu, HTTP(S) (SSE/akışlanabilir HTTP) **üzerinden** ya da yerel bir
       * stdio süreci olarak erişime açılabilir.
       */
      export const registerServer: (config: ExtMCPServerConfig) => void;
      export const unregisterServer: (serverName: string) => void;
    }
  }
}

Yapılandırma Türleri

HTTP/SSE Sunucu Yapılandırması

HTTP ya da Server-Sent Events üzerinde çalışan sunucular için:
interface RemoteServerConfig {
  name: string;
  server: {
    url: string;
    headers?: Record<string, string>;
  }
}
Özellikler:
  • name: Sunucu için benzersiz tanımlayıcı
  • server.url: HTTP uç noktasının URL’si
  • server.headers (isteğe bağlı): Kimlik doğrulama veya diğer amaçlar için HTTP üstbilgileri

Stdio Sunucu Yapılandırması

Standart giriş/çıkış üzerinden iletişim kuran yerel sunucular için:
interface StdioServerConfig {
  name: string;
  server: {
    command: string;
    args: string[];
    env: Record<string, string>;
  }
}
Özellikler:
  • name: Sunucu için benzersiz tanımlayıcı
  • server.command: Yürütülebilir komut
  • server.args: Komut satırı parametreleri
  • server.env: Ortam değişkenleri

Örnekler

HTTP/SSE Sunucusu

Kimlik doğrulama ile uzak bir MCP sunucusunu kaydet:
vscode.cursor.mcp.registerServer({
  name: 'my-remote-server',
  server: {
    url: 'https://api.example.com/mcp',
    headers: {
      'Authorization': 'Bearer belirteci-buraya-gir',
      'X-API-Key': 'api-anahtarın'
    }
  }
});

Stdio Sunucusu

Yerel bir MCP sunucusu kaydet:
vscode.cursor.mcp.registerServer({
  name: 'my-local-server',
  server: {
    command: 'python',
    args: ['-m', 'my_mcp_server'],
    env: {
      'API_KEY': 'senin-api-anahtarın',
      'DEBUG': 'true'
    }
  }
});

Node.js Sunucusu

Node.js tabanlı bir MCP sunucusunu kaydet:
vscode.cursor.mcp.registerServer({
  name: 'nodejs-server',
  server: {
    command: 'npx',
    args: ['-y', '@company/mcp-server'],
    env: {
      'NODE_ENV': 'production',
      'CONFIG_PATH': '/path/to/config'
    }
  }
});

Sunucuları Yönetme

Bir Sunucunun Kaydını Kaldır

// Daha önce kaydedilmiş bir sunucunun kaydı silinir
vscode.cursor.mcp.unregisterServer('my-remote-server');

Koşullu Kaydolma

// Yalnızca henüz kayıtlı değilse kaydet
if (!isServerRegistered('my-server')) {
  vscode.cursor.mcp.registerServer({
    name: 'my-server',
    server: {
      url: 'https://api.example.com/mcp'
    }
  });
}