Skip to the content.

Manifest Schema Reference

Manifests are YAML or JSON files passed to scoped-mcp via --manifest.

Top-level fields

Field Type Required Description
agent_type string yes Role identifier (e.g. “research”, “build”, “monitor”)
description string no Human-readable description of this agent role
modules object yes Map of module name → module config (at least one required)
credentials object no Credential source config (defaults to source: env)

Module config

Each key under modules is a module name. The value is:

Field Type Default Description
mode "read" or "write" null Tool mode. read = read-only tools; write = read + write tools; null = all tools (write-only modules like ntfy)
config object {} Module-specific configuration

Credential source config

Field Type Default Description
source "env" or "file" "env" Where to read credentials from
path string Path to a YAML secrets file (required when source: file)

Secrets file format

When source: file, the file must be a YAML mapping of key names to values:

NTFY_TOKEN: your-token-here
SMTP_PASSWORD: your-password-here
GRAFANA_SERVICE_ACCOUNT_TOKEN: glsa_abc123

Complete example

agent_type: ops
description: "Operations agent with infrastructure access"

credentials:
  source: file
  path: /run/secrets/ops-agent.yml

modules:
  filesystem:
    mode: write
    config:
      base_path: /data/agents

  sqlite:
    mode: write
    config:
      db_dir: /data/sqlite       # each agent gets /data/sqlite/agent_{agent_id}.db

  influxdb:
    mode: write
    config:
      org: "homelab"
      buckets:
        - "metrics"
        - "alerts"

  grafana:
    mode: write

  ntfy:
    config:
      topic: "ops-{agent_id}"
      max_priority: urgent

  http_proxy:
    mode: read
    config:
      allowed_services:
        - name: "status_api"
          base_url: "https://status.internal"
          credential_key: "STATUS_API_TOKEN"