Skip to content

Configuration schema

Kata files are validated on load. This page documents schema version 1 (the version: 1 declared in each file).

config.yaml

FieldTypeDefaultDescription
version1- (required)Schema version
targetsmap{}Target id -> target config
targets.<id>.enabledbooleantrueWhether plan/apply include this target
targets.<id>.optionsmap{}Adapter-specific options bag
composestring[][]Shared packages, in order - ./path or npm:<pkg> (details)
yaml
version: 1
targets:
  claude-code:
    enabled: true
compose:
  - npm:@company/kata-standards

mcp/servers.yaml

FieldTypeDefaultDescription
version11Schema version
serversmap{}Server name -> server definition

Server definition

FieldTypeDefaultDescription
transportstdio | http | ssestdioHow the tool talks to the server
commandstring-Executable to launch. Required for stdio
argsstring[][]Command arguments
envmap{}Environment variables for the server process
urlstring-Server endpoint. Required for http/sse
headersmap{}HTTP headers (http/sse only)
scopeproject | globalprojectWhere native config is written: global servers go to the tool's user-level MCP config (e.g. ~/.claude.json, ~/.codex/config.toml)

String values in env, headers, args, and url may contain ${env:VAR} references.

yaml
version: 1
servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: ${env:GITHUB_TOKEN}
  remote:
    transport: http
    url: https://mcp.example.com/mcp
    headers:
      Authorization: Bearer ${env:EXAMPLE_TOKEN}

instructions/*.md

Plain markdown, no frontmatter. Files are composed in file-name order into a single instruction block. See Kata format.

Released under the MIT License.