{
  "name": "Setoku MCP tools",
  "description": "The tool surface of a Setoku box. Which tools a session actually sees depends on its token's role: an analyst may read the lake but cannot commit knowledge; a curator may commit knowledge but cannot read the lake.",
  "version": "0.21.0",
  "roles": {
    "analyst": "Reads data and curated context. May only propose knowledge changes.",
    "curator": "Commits curated knowledge. Cannot read the data lake.",
    "janitor": "Drafts and auto-rejects pending corrections. Commits nothing."
  },
  "tools": [
    {
      "name": "find_context",
      "title": "Find business context (verified + unverified)",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "list_entities",
      "title": "List documented business entities",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "describe_entity",
      "title": "Full context doc for one entity",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "get_metric",
      "title": "Canonical metric definition",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "report_correction",
      "title": "Record a context correction / clarification",
      "role": "analyst",
      "readOnly": false
    },
    {
      "name": "list_corrections",
      "title": "List pending knowledge corrections",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "resolve_correction",
      "title": "Resolve a pending correction (curator)",
      "role": "curator",
      "readOnly": false
    },
    {
      "name": "upsert_context",
      "title": "Create or update a knowledge doc (generate/curate workflows)",
      "role": "curator",
      "readOnly": false
    },
    {
      "name": "draft_correction",
      "title": "Attach a drafted doc-edit to a pending correction (auto-draft)",
      "role": "janitor",
      "readOnly": false
    },
    {
      "name": "reject_correction",
      "title": "Auto-reject a pending correction (janitor, reject-only)",
      "role": "janitor",
      "readOnly": false
    },
    {
      "name": "list_sources",
      "title": "List connected data sources (capabilities)",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "get_schema",
      "title": "Queryable schema (biz.* mirror + lake, permission-scoped)",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "run_query",
      "title": "Run a read-only SQL query (capped + audited)",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "app_guide",
      "title": "How to build a Setoku app (read before publish_app / update_app)",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "publish_app",
      "title": "Publish a live app to the box (team-shareable URL)",
      "role": "analyst",
      "readOnly": false
    },
    {
      "name": "update_app",
      "title": "Edit an app you published (in place, same link)",
      "role": "analyst",
      "readOnly": false
    },
    {
      "name": "list_apps",
      "title": "List apps published to the box",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "get_app",
      "title": "Inspect an app — its full template + panels (how it's built)",
      "role": "analyst",
      "readOnly": true
    },
    {
      "name": "unpublish_app",
      "title": "Archive a published app",
      "role": "analyst",
      "readOnly": false
    }
  ],
  "note": "Generated by scripts/build-site-api.ts from the Setoku source tree — do not edit by hand."
}
