diff --git a/packages/coordinator-mcp/src/tools.ts b/packages/coordinator-mcp/src/tools.ts index b1c31a3..c62c04b 100644 --- a/packages/coordinator-mcp/src/tools.ts +++ b/packages/coordinator-mcp/src/tools.ts @@ -271,6 +271,10 @@ export interface ToolAnnotations { */ const READ_ONLY = new Set([ "chap.workspace.describe", "chap.audit.read", "chap.audit.verify_chain", "chap.audit.verify_receipt", + // Submitting reads the chain and sends it onward. It changes nothing here, + // which is what readOnlyHint claims; openWorldHint carries the fact that it + // reaches a service outside this coordinator. + "chap.audit.submit_to_scitt", ]); /** Overwrites, removes, or settles state irreversibly. */ diff --git a/packages/coordinator-py/chap_coordinator/transports/mcp_tools.py b/packages/coordinator-py/chap_coordinator/transports/mcp_tools.py index 1fa3b74..ffccdc0 100644 --- a/packages/coordinator-py/chap_coordinator/transports/mcp_tools.py +++ b/packages/coordinator-py/chap_coordinator/transports/mcp_tools.py @@ -356,7 +356,7 @@ }, "chap.audit.submit_to_scitt": { "title": "Anchor audit log in SCITT", - "readOnlyHint": False, + "readOnlyHint": True, "destructiveHint": False, "idempotentHint": False, "openWorldHint": True,