{"ok":true,"site":{"host":"witnessdesk-webmcp.vercel.app","url":"https://witnessdesk-webmcp.vercel.app/","type":"live","desc":"A simulated water-safety decision rehearsal where humans and agents build one auditable evidence trace with WebMCP.","tools":[{"name":"inspect_case","kind":"act","impl":"imperative","description":"Read the active case brief, decision state, hypotheses, and evidence coverage before taking another action.","title":"Inspect active case","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"case_id":{"type":"string","minLength":1,"maxLength":64,"description":"Optional case identifier. Omit it to inspect the active case."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"search_evidence","kind":"answer","impl":"imperative","description":"Search the case evidence ledger by text, source kind, and minimum reliability. Returns compact source-linked matches.","title":"Search case evidence","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","minLength":1,"maxLength":160,"description":"Plain-language search terms. Use short factual phrases."},"kinds":{"type":"array","minItems":1,"maxItems":6,"uniqueItems":true,"items":{"type":"string","enum":["sensor_reading","lab_sample","operations_log","field_report","public_health_signal","control_sample"]},"description":"Optional evidence source kinds to include."},"reliability_floor":{"type":"number","minimum":0,"maximum":1,"description":"Optional minimum source reliability from 0 through 1."},"limit":{"type":"integer","minimum":1,"maximum":10,"description":"Maximum number of matches to return."}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"trace_provenance","kind":"act","impl":"imperative","description":"Trace one evidence item to its source, collection context, transformations, and corroborating or conflicting items.","title":"Trace evidence provenance","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"evidence_id":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._:-]*$","description":"Evidence identifier shown in the case workspace."},"depth":{"type":"integer","enum":[1,2],"description":"Trace depth. Use 1 for direct lineage or 2 for linked context."}},"required":["evidence_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"compare_hypotheses","kind":"act","impl":"imperative","description":"Compare selected or all case hypotheses against selected or all evidence, including support, conflict, and unknowns.","title":"Compare hypotheses","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"hypothesis_ids":{"type":"array","minItems":2,"maxItems":3,"uniqueItems":true,"items":{"type":"string","enum":["actual_contamination","sensor_artifact","localized_cross_connection"]},"description":"Hypotheses to compare. Omit to compare all three."},"evidence_ids":{"type":"array","minItems":1,"maxItems":12,"uniqueItems":true,"items":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._:-]*$","description":"Evidence identifier shown in the case workspace."},"description":"Evidence subset to use. Omit to use the full ledger."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"simulate_action","kind":"act","impl":"imperative","description":"Project a response action under one hypothesis. This is observational and does not stage or approve a decision.","title":"Simulate a response action","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"action_id":{"type":"string","enum":["monitor","targeted_advisory","citywide_advisory"],"description":"Response action to simulate."},"hypothesis_id":{"type":"string","enum":["actual_contamination","sensor_artifact","localized_cross_connection"],"description":"Hypothesis assumed for the simulation."},"assumptions":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160},"description":"Optional explicit assumptions to stress-test."}},"required":["action_id","hypothesis_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"stage_decision","kind":"act","impl":"imperative","description":"Stage a reversible decision draft with cited evidence. It never seals or publishes; a human must review and seal in the UI.","title":"Stage a decision for review","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"hypothesis_id":{"type":"string","enum":["actual_contamination","sensor_artifact","localized_cross_connection"],"description":"Primary hypothesis supporting the draft decision."},"action_id":{"type":"string","enum":["monitor","targeted_advisory","citywide_advisory"],"description":"Response action proposed for human review."},"rationale":{"type":"string","minLength":12,"maxLength":500,"description":"Concise reasoning that connects the cited evidence to the action."},"evidence_ids":{"type":"array","minItems":1,"maxItems":12,"uniqueItems":true,"items":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._:-]*$","description":"Evidence identifier shown in the case workspace."},"description":"Evidence identifiers supporting or qualifying the decision."},"acknowledged_conflict_ids":{"type":"array","minItems":1,"maxItems":12,"uniqueItems":true,"items":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9][a-z0-9._:-]*$","description":"Evidence identifier shown in the case workspace."},"description":"Optional contradictory evidence IDs the draft explicitly preserves for human review."},"expected_revision":{"type":"integer","minimum":0,"maximum":9007199254740990,"description":"Current workspace revision from inspect_case; prevents stale writes."},"idempotency_key":{"type":"string","minLength":8,"maxLength":80,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$","description":"Stable unique key so a retried request cannot create a duplicate."}},"required":["hypothesis_id","action_id","rationale","evidence_ids","expected_revision","idempotency_key"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"audit_decision","kind":"act","impl":"imperative","description":"Audit a staged decision for citation coverage, contradictions, stale state, and unresolved uncertainty without sealing it.","title":"Audit a staged decision","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"decision_id":{"type":"string","minLength":1,"maxLength":64,"description":"Decision identifier. Omit to audit the current staged draft."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"favicon":"/favicons/witnessdesk-webmcp.vercel.app.svg","apiSurface":"spec","category":"Developer Tools","toolCount":7}}