The org graph and its eviction, the disclosure settings cache, Redis hash operations and the run context endpoints (KamoCollab CP07 Task 15)
Declare the disclosure recorder, carry the policy columns, and pre-mint the audit id in a CallLedger (KamoCollab CP08 Task 9)
DisclosureLedgerConfig declares DisclosureRecorder, with **************** joining @EnableJpaRepositories in the same commit. mcp_tool_call_audit gains policy_de...
The link reference text names the six kinds CP05 appends (KamoCollab CP05 Task 7)
A team chat line is SEND_INTERNAL_MESSAGE, free while no charter layer names it (KamoCollab CP04 Task 20)
Defect 5: ChatPack plans a CHAT post as SEND_INTERNAL_MESSAGE (support stays SEND_WEBCHAT_MESSAGE), chat_send/chat_mention declare it in alsoClasses, and chat_f...
DDL for the SI tool-call policy verdict columns (KamoCollab CP08 T2)
Three nullable ADD COLUMN IF NOT EXISTS on mcp_tool_call_audit: policy_decision, policy_rule, disclosure_event_id (spec §5.1, D11; master §6.10). Hand-applied b...
Phone_call says plainly when the org's outbound policy blocks a number, and names text or email instead (SP93 T12)
K6 refuses a number the phone server's toll-fraud guards block with 409 BLOCKED_BY_OUTBOUND_POLICY (SP93 T11). phone_call now answers it as its own status, with...
A verified request from someone who may approve is the approval: an ON_REQUEST row, the action at once, its outcome on K3b (SP95 T34)
When the charter asks for approval and the AI cites a verified request (onRequestOf), K3 is asked with mode ON_REQUEST, the requester and the reference. An APPR...
An AI may cite the request it acts on (onRequestOf), checked by reading it; a run's taint says where it came from (SP95 T31)
Every AI write that may need approval takes the optional onRequestOf (chat:<conversation>/<message>, task:<item>, task:<item>/comment:<id>) on tools/list. The p...
Rag_search takes audience PUBLIC, the search the public may read (SP95 T12)
An AI on a phone call answers an anonymous caller, so it searches only the published articles the public may read, never notes (spec D12). The optional audience...
Approvals_request sends a class a tool performs to that tool; the charter stamp keeps tools fresh (SP95 T10)
approvals_request refuses an action class a catalogue tool performs with INVALID_ARGUMENTS USE_TOOL {tool, tools, actionClass}, or NO_TOOL_FOR_YOU when the call...
Phone_call calls a colleague by memberId, as PLACE_INTERNAL_CALL (SP95 T9)
A colleague is named by memberId, never by number: the planner reads their SecurityService call card and dials the cell, else the phone, else the work number on...
Documents, translation and OCR packs
docs_search, docs_read, translate_text and ocr_document (spec 4.20). A document is routed by DocsService's description before any byte is fetched: text is decod...
The AI's workstation — computer_* tools with auto-wake and lease, workstation pack
Approvals pack — decision-only approvals and approval status
approvals_request asks the AI's approver through kamoai-service K3 with toolName null (nothing is re-executed on APPROVE); a class the charter forbids is refuse...
Phone and SMS packs — consent-checked calls, call history, texting
phone_call posts K6 with the caller's run and key; a reason-less 404 is not deployed, a reasoned one (NOT_ENROLLED) is the endpoint's answer. sms_send opens the...
Knowledge base, sales scripts, RAG, directory and notifications packs
Contacts, leads and accounts packs — search, read, create, update, notes, status, claim, history
The 12 CRM tools of spec §4.20 against EmailService and SecurityService as they are on main (SP05-T27): a status without a sub-status clears the old one; a cont...
Calendar and meetings packs — events, availability, scheduled work, dial-in, invites
Beyond the brief (spec SP05-T26-build): no guessed zone (EmailService applies the member's effective zone); reminders only when asked on a create and never re-s...
Tasks pack — lists, create, update, status, assignment, comments, links
Beyond the brief (SP05-T25): an assignee is read as the member id KBService reads (beyond a long is INVALID_ARGUMENTS), an update that changes nothing or both s...
Notes pack — search, read, create, update, journal, links, master note
What KBService really answers shapes three choices (SP05-T24). notes_search matches the query over the title, body, category and tags as the Notes wall does, be...
Chat pack — conversations, unread, read, send, direct chats, mentions
Beyond the brief (SP05-T23): a mention into a support conversation is a web chat message like chat_send; only a team chat or a support conversation takes a post...
Mail pack — read, search, threads, send, reply, forward, drafts, move, flags
Text helpers, id-safe projections and the fake Kamo services harness for packs
HtmlText lays mail HTML out the way a browser shows it (one jsoup walk: collapsed source whitespace, br, block and paragraph breaks, cells, pre); ThreadIds repr...
Org MCP servers as ext_* tools over Streamable HTTP and legacy SSE; STDIO retired
A server's own words reach a caller only inside the untrusted wrap; nothing sent is definitive (D45); the URL guard runs on every use; one session and one tool ...
MCP 2025-06-18 server at /mcp (stateless streamable HTTP, JSON responses)
One JSON-RPC message per POST: initialize, ping, tools/list, tools/call; notifications and responses answer 202; GET and DELETE answer 405. The body is read aft...
The tools/call pipeline — policy, approvals, limits, idempotency, dry run, taint, audit
A stored idempotency entry is answered before the planner reads again (SP05-T11-order); an approved call in a tainted run still answers to the capability and ch...
Tool call audit, 180-day retention purge and internal audit read
The insert's transaction is the repository's save (REQUIRES_NEW), begun and committed inside the writer's catch, so no audit failure reaches a tool call. Rows a...
Tool visibility by rights, apps, PHI, risk ceiling, taint, capability and charter
The capability gate caches the router's answer per member (SP04 filter 10 narrows candidates by the member's access policies), keeps a failure to get one for 30...
Charter policy, approvals, outreach gate and external recipients
The charter policy compiles SP03's resolved approvals and limits (fail closed when unreachable, refused or without a resolved block); approvals are created and ...
Downstream calls with the caller's session, internal client, live refresh
Kamo services are called through the BFF's own door per service (*** or a single-use OTK), with the org's workspace host, the actor/run/key headers and spec 4.1...
Idempotency, limits, run taint, rate limit and OTK minting on Redis
Tool descriptors, schema builder and validator, registry
A pattern in a tool's schema is untrusted input: ext_* tools carry their org MCP server's own schema. One Java cannot compile is left to the upstream (and refus...
Refuse MCP tool execution for a tenant that handles PHI
executeTool forwards operator-supplied arguments to an operator-typed URL and can spawn a stdio process, with no allowlist, no SSRF guard and no destination aud...
Point at YugabyteDB and use PostgreSQLDialect
CockroachDB has been replaced by YugabyteDB. Connection strings move from cockroachdb-public:26257 to yb-tserver-service:5433, and the Hibernate dialect from **...
Scaffold MCPGatewayService with auth, controllers, transports, and health monitoring
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
