Changelog
Notable changes to the Zihin API.
2026-07-02 — MCP Skills + @zihin/mcp-server 1.4.0
Added — Skills (6 expert playbooks)
- 6 skills served by the MCP Server as resources
zihin://skills/{slug}(total resources: 13 → 19):mcp(router),criar-agente,tools-de-agente,triggers-e-canais,diagnostico,governanca-e-operacao. Skills encode multi-tool workflows, decision trees and silent-failure gotchas — the server's instructions direct the model to read the relevant skill before multi-step flows (zero-install in any MCP client).
Added — npm package @zihin/mcp-server 1.4.0
install-skillssubcommand: installs the skills in each IDE's native format —--client claude|cursor|windsurf|codex|all,--dir,--global(claude),--bundled(offline). Fetches from the live server by default (always current).- Claude Code plugin:
claude plugin marketplace add zihin-ai/zihin-mcp+claude plugin install zihin@zihin— MCP server + skills in one command.
2026-07-01 — MCP Server v2.4.0
Added — MCP Tools (13 new, total now 96)
- Budget (OE-1):
get_agent_budget,list_agent_budgets(read),set_agent_budget(write) — per-agent USD spend cap, counts every LLM call including BYOK - Approvals — HITL:
list_approvals,list_approval_policies,get_approval_policy(read),create_approval_policy,update_approval_policy(write) - Observability:
get_agent_lineage,get_tenant_health,get_execution_trace,get_session_agent_tree— aggregated in SQL, no row caps - Consumer Profile:
list_consumer_sessions— sessions of a specific consumer, cross-agent update_agentnow acceptschat_enabled(native chat channel gate)list_agent_sessionsnew filters:control_mode,consumer_key,roots_only
Added — Formal contracts and client UX
- 10 new resources
zihin://schemas/{type}— the exact JSON Schema the server validates with (Ajv), plus anmcp_usagefield explaining granularity (schema_datapayloads vs full entities with server-injected fields) ToolAnnotationson all 96 tools (read-only/destructive/idempotent/open-world hints + titles) — clients can auto-approve reads and confirm destructive calls- Role-aware server instructions sent on
initialize(workflows, critical rules, contract-first flow)
Changed
- RBAC hardening: tool registration is now filtered by role —
editorno longer sees write tools intools/list; write guards derive from a single category registry (previously 5 write tools lacked a call-time guard:toggle_schema,test_trigger,refresh_connection_schema,test_mcp_server,delete_agent_memory) ZIHIN_ROLE(stdio) is now downgrade-only — it can no longer escalate above the API Key's roleget_agent_metricsaggregates LLM metrics in SQL (fixes silent undercount past ~1000 rows) and addserrors,success_rate,latency_p50_ms/latency_p95_ms,last_call_at; tool usage is sampled with an explicitsample_truncatedflag- MCP role counts:
admin/owner83 → 96,editor42 → 52,member5 (unchanged)
Removed
- Legacy schema types
knowledgeandpolicyremoved fromcreate_schema/update_schemaenums and fromzihin://schema-templates(no production usage; superseded by canonical types)
2026-05-29 — Session Control Lifecycle
Added — Session Control endpoints
POST /api/v1/sessions/:id/suspend— pause the agent on a specific sessionPOST /api/v1/sessions/:id/resume— resume the agent (control_mode='engaged')POST /api/v1/sessions/:id/handoff— markcontrol_mode='manual_handoff'POST /api/v1/sessions/:id/cancel— abort an in-progress turn (mid-LLM, mid-tool)POST /api/v1/sessions/:id/manual-message— operator sends a message through the agent's outbound channel; supportsIdempotency-KeyheaderGET /api/v1/sessions— new filters:control_mode,consumer_key- Session detail payload now includes
control_modeandcontrol_metadata
Added — Consumers endpoints
GET /api/v1/consumers— paginated list of cross-session consumers (filters:search,blocked)GET /api/v1/consumers/:key— aggregated profile (channels, total sessions, total turns)GET /api/v1/consumers/:key/sessions— sessions associated with a consumerPOST /api/v1/consumers/:key/deny— add to tenant-wide denylist (telemetry:write)DELETE /api/v1/consumers/:key/deny— remove from denylist
Added — MCP Tools (5 new, total now 83)
- Consumer Profile (owner, admin, editor):
get_consumer_profile,list_consumers - Consumer Ops (owner, admin):
set_consumer_denylist,set_session_control,send_manual_message,cancel_agent_turn
Changed
- MCP role counts:
admin/owner76 → 83,editor39 → 42,member5 (unchanged) - Webhook responses use empty TwiML (
<Response></Response>) when a gate blocks (denylist, suspended session). No LLM call, no quota consumed.
Workroom Realtime Events (new)
Tenant-scoped events emitted on the workroom:{tenantId} channel:
session_control_changed— whencontrol_modechanges (suspend/resume/handoff/auto-expire)consumer_denylist_changed— when a consumer is added or removed from the denylistmanual_message_sent— when an operator sends a manual messageturn_cancelled— when an agent turn is cancelled
Error Codes (new)
INVALID_SESSION_STATE(409) — manual-message attempted whilecontrol_mode='engaged'NO_TRIGGER_HISTORY(422) — manual-message on a session with no prior webhook historyNO_CALLBACK_CONFIG(422) — manual-message on a trigger without an outbound callback configuredDELIVERY_FAILED(502) — outbound channel (e.g., Twilio) returned an error
2026-02-17
Added
- Public documentation portal at docs.zihin.ai
- Auto-synced docs from service repositories
- N8N integration nodes documentation
- Zihin Watch observability documentation
Infrastructure
- Docs pipeline: each service repo owns its public docs
- Automated sync on every build
For feature requests and bug reports, contact the Zihin team or open an issue in the relevant repository.