MCP-Server

Dieses Thema beschreibt, wie Sie das Cortex Code Agent-SDK mit externen MCP (Model Context Protocol)-Servern erweitern können. MCP-Server ermöglichen es Ihrem Agenten, externe Tools neben integrierten Tools wie Read, Edit und Bash aufzurufen.

Übersicht

Die aktuelle Cortex-Laufzeitumgebung unterstützt externe MCP-Server über diese Transporte:

  • stdio

  • http

  • sse

Verbinden externer MCP-Server

Stdio-Server

Stdio-Server sind externe Prozesse, die über Standardeingaben und -ausgaben kommunizieren.

import { query } from "cortex-code-agent-sdk";

for await (const message of query({
  prompt: "Search our docs for authentication best practices",
  options: {
    cwd: process.cwd(),
    permissionMode: "bypassPermissions",
    allowDangerouslySkipPermissions: true,
    mcpServers: {
      "my-tools": {
        command: "node",
        args: ["my-mcp-server.js"],
      },
    },
  },
})) {
  // Handle messages...
}

HTTP- undSSE-Server

Für Remote-MCP-Server, die über HTTP oder Server-Sent Events (SSE) kommunizieren:

import { query } from "cortex-code-agent-sdk";

for await (const message of query({
  prompt: "Look up customer data",
  options: {
    cwd: process.cwd(),
    permissionMode: "bypassPermissions",
    allowDangerouslySkipPermissions: true,
    mcpServers: {
      "remote-api": {
        type: "http",
        url: "https://my-mcp-server.example.com/mcp",
        headers: { "Authorization": "Bearer ${MCP_TOKEN}" },
      },
    },
  },
})) {
  // Handle messages...
}

Sie können auch "type": "sse" für Server verwenden, die SSE-Transport nutzen.

Kontrollieren, welcheMCP-Tools erlaubt sind

MCP-Tools werden mit dem Präfix mcp__ im Format mcp__<server-name>__<tool-name> mit einem Namespace versehen. Verwenden Sie allowedTools (TypeScript) oder allowed_tools (Python) zur Steuerung der Tools, die der Agent aufrufen kann:

import { query } from "cortex-code-agent-sdk";

for await (const message of query({
  prompt: "Search our documentation",
  options: {
    cwd: process.cwd(),
    permissionMode: "bypassPermissions",
    allowDangerouslySkipPermissions: true,
    allowedTools: [
      "mcp__my-tools__search_docs",
      "mcp__my-tools__*",
    ],
    mcpServers: {
      "my-tools": { command: "node", args: ["my-mcp-server.js"] },
    },
  },
})) {
  // Handle messages...
}

Sie können auch disallowedTools /disallowed_tools verwenden, um bestimmte Tools zu blockieren.

Deaktivieren von MCP

Zum Deaktivieren aller MCP-Server für eine Sitzung verwenden Sie eine der folgenden Optionen: noMcp (TypeScript) oder``no_mcp`` (Python):

const session = await createCortexCodeSession({
  cwd: process.cwd(),
  noMcp: true,
});

Vergleich der Features

Feature

Python

TypeScript

Externe MCP-Server (stdio)

Ja (mcp_servers)

Ja (mcpServers)

Externe MCP-Server (HTTP /SSE)

Ja (mcp_servers)

Ja (mcpServers)

allowedTools / allowed_tools

Ja

Ja

noMcp / no_mcp

Ja

Ja