{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "protocol": "Model Context Protocol",
  "protocolRevision": "2025-06-18",
  "name": "palo-governance-server",
  "version": "2.5.0",
  "releaseStatus": "developer-preview",
  "productionUse": false,
  "disclaimer": "Full-cycle developer-preview contract for isolated evaluation only. It demonstrates trusted in-process executor and verifier boundaries but is not an audited production authorization service, universal exactly-once executor, authenticated approval service, compliance certification, or production evidence platform.",
  "implementations": {
    "stdio": "packages/palo-mcp-server/index.js",
    "authenticatedStreamableHttp": "packages/palo-mcp-server/http.js",
    "connectorRestGateway": "packages/palo-mcp-server/gateway.js"
  },
  "persistence": "Prototype SQLite WAL store with FULL synchronous commits and append-only evidence triggers; cross-state atomicity, backup, retention, and tamper-resistant anchoring are not provided.",
  "authentication": "A shared bearer token is mandatory for Streamable HTTP and REST testing. It does not provide principal identity, RBAC, administrative authorization, reviewer authentication, rotation, rate limiting, or TLS termination.",
  "environment": {
    "PALO_OPA_URL": "Required for reference evaluation; absence or outage returns a denial response.",
    "PALO_DATA_DIR": "Private runtime directory containing palo-agentic.sqlite.",
    "PALO_HMAC_KEYS_JSON": "Protected keyId-to-secret map; each secret must contain at least 32 bytes.",
    "PALO_MCP_HTTP_TOKEN": "Bearer token of at least 24 bytes for Streamable HTTP.",
    "PALO_GATEWAY_TOKEN": "Bearer token of at least 24 bytes for the connector REST gateway."
  },
  "tools": [
    { "name": "palo_register_agent", "contract": "locally registered versioned agent and authority profile; publisher identity is not authenticated" },
    { "name": "palo_register_policy", "contract": "locally registered versioned OPA policy manifest; bundle attestation is not provided" },
    { "name": "palo_register_executor", "contract": "versioned executor manifest; executable handler is operator-provisioned" },
    { "name": "palo_register_verifier", "contract": "versioned authoritative verifier manifest; handler is operator-provisioned" },
    { "name": "palo_get_registry", "contract": "secret-free registry inventory" },
    { "name": "palo_verify_action_authority", "contract": "normalized Action Claim and bound approval" },
    { "name": "palo_execute_governed_action", "contract": "Action Claim 1.2 execution through one-time capability, receipt and outcome verification" },
    { "name": "palo_get_execution_status", "contract": "governed execution, receipt, attestation and linked incident" },
    { "name": "palo_verify_outcome", "contract": "authoritative effect re-verification" },
    { "name": "palo_request_approval", "contract": "exact-digest approval request" },
    { "name": "palo_get_approval_status", "contract": "single approval state" },
    { "name": "palo_list_approvals", "contract": "approval work queue" },
    { "name": "palo_resolve_approval", "contract": "one terminal transition with a caller-supplied identity label and rationale" },
    { "name": "palo_submit_evidence", "contract": "deprecated local compatibility path; governed execution produces trusted evidence internally" },
    { "name": "palo_verify_evidence", "contract": "HMAC envelope verification" },
    { "name": "palo_verify_ledger", "contract": "complete signature and hash-chain verification" },
    { "name": "palo_list_incidents", "contract": "assurance incident work queue" },
    { "name": "palo_get_incident", "contract": "single mismatch or inconclusive incident" },
    { "name": "palo_resolve_incident", "contract": "acknowledge or resolve without implicit rollback" }
  ]
}
