Skip to main content

Overview

Kilo Code uses Model Context Protocol (MCP) to connect its coding assistant to external tools and services. By wiring Operator in as an MCP server, you give Kilo Code a dedicated, adaptive search layer for live documentation, GitHub issues, changelogs, and technical blogs. This guide shows how to add Operator as an MCP server in Kilo Code using the standard HTTP transport, configure per-user API keys, and understand where global vs project-level configuration lives.

How MCP works in Kilo Code

Kilo Code reads MCP server configuration from two places, both using a JSON format with a top-level mcpServers object:
  • Global configuration: stored in mcp_settings.json and managed from the Kilo Code MCP settings view. Applies across all workspaces unless overridden.
  • Project configuration: stored in .kilocode/mcp.json at the root of your repo. Lets you share MCP servers via version control.
When a server name exists in both places, the project-level .kilocode/mcp.json entry takes precedence over the global settings.

Global Operator configuration (mcp_settings.json)

To add Operator globally, open the Kilo Code MCP settings view, choose Edit Global MCP, and add an entry under mcpServers:
{
  "mcpServers": {
    "operator": {
      "type": "streamable-http",
      "url": "https://mcp.operator.io/mcp",
      "headers": {
        "Authorization": "Bearer ${OPERATOR_API_KEY}"
      }
    }
  }
}
This uses the recommended Streamable HTTP transport so Kilo Code can talk to the hosted Operator MCP server. You can keep other servers (local STDIO or additional HTTP endpoints) alongside this entry.

Project-level Operator configuration (.kilocode/mcp.json)

For project-specific setup, create a .kilocode/mcp.json file in your repository and add the same Operator server block. Kilo Code will automatically detect and load this file:
{
  "mcpServers": {
    "operator": {
      "type": "streamable-http",
      "url": "https://mcp.operator.io/mcp",
      "headers": {
        "Authorization": "Bearer ${OPERATOR_API_KEY}"
      }
    }
  }
}
When you commit .kilocode/mcp.json to your repo, teammates get the same Operator configuration automatically, each using their own API key.

Setting your Operator API key & transport options

Each developer uses their own Operator API key, which Kilo Code passes to the MCP server via HTTP headers. Set your key as an environment variable before launching Kilo Code:
export OPERATOR_API_KEY="sk_your_api_key_here"
You can create and manage your key at operator.io. The Operator MCP server supports the following transports:
  • Streamable HTTP (recommended): use url: "https://mcp.operator.io/mcp" and an Authorization: Bearer ... header as shown above.
  • SSE (legacy): if your Kilo Code version still supports SSE transport, you can connect via url: "https://mcp.operator.io/sse" with the same headers.
If you prefer, you can send the API key using an x-api-key header instead of Authorization:
{
  "mcpServers": {
    "operator": {
      "type": "streamable-http",
      "url": "https://mcp.operator.io/mcp",
      "headers": {
        "x-api-key": "${OPERATOR_API_KEY}"
      }
    }
  }
}

Using Operator tools inside Kilo Code

Once Operator is configured in mcp_settings.json or .kilocode/mcp.json, Kilo Code will detect the Operator MCP server and list its tools in the MCP settings view.
  • Ask Kilo Code about build errors, stack traces, or migrations.
  • Let the agent call Operator tools when it needs external docs or GitHub context.
  • Use Kilo Code’s MCP tooling UI to enable/disable specific Operator tools or set auto-approval.
In practice, you keep working in the Kilo Code chat interface. Operator becomes the live search layer the agent calls when it needs up to date information beyond your repo.