AI and memory
AI settings, classifier guidance, memory, the sandbox and compliance research.
45 actions
Give an AI assistant only these actions with the ai MCP toolset.
https://app.getoatmilk.com/api/mcp?toolset=aiagents
agents.playground
- GET
agents.playground.matchDry run of the receipt matcher for one receipt entry (entryId): return the shortlisted bank and card candidates in ranked order and the matcher's judgement with the organization's saved model and thresholds. Nothing is saved or matched. - GET
agents.playground.receiptDry run of the receipt reader: read a sample receipt (filename, mimeType, contentBase64 of up to 2 MB; JPEG, PNG, WebP, HEIC, PDF or .eml) the same way intake does and return the extracted facts and validation flags. Nothing is saved: no submission, evidence, entry or run.
ai.keys
- GET
ai.keys.getWhich AI providers this organization brought its own keys for (TypeSafe, Vercel AI Gateway, OpenAI, Google Gemini, Z.ai), each with the key's last four characters and when it was checked, never the key itself; whether Oatmilk's own AI credits are on for it; and whether its keys cover decisions (categorizing, matching, sorting) and reading documents. - POST
ai.keys.removeRemove this organization's key for one AI provider, at the current revision. Features that need it ask for a key again unless Oatmilk's AI credits are on. Administrators only, from the dashboard. - POST
ai.keys.saveSave or replace this organization's key for one AI provider, at the current revision (0 for the first key). Oatmilk checks the key with the provider first and saves it encrypted. Administrators only, from the dashboard.
ai.models
ai.sandbox
ai.settings
- GET
ai.settings.getRead the organization's effective matching and routing automation settings, including models, thresholds, and revision. - POST
ai.settings.updateRevise matching and routing models, thresholds, and automatic matching with revision and idempotency checks. Changes apply to future evaluations only; stored decisions keep their recorded provenance.
chiefOfStaff.channels
chiefOfStaff.general
chiefOfStaff.people
chiefOfStaff.rules
- POST
chiefOfStaff.rules.deleteRemove a rule for people. Pass its revision as expectedRevision. History can put it back. Only the platform owner's workspace has a Chief of Staff. Administrator access required. - POST
chiefOfStaff.rules.saveAdd or change a rule for some people: by Discord person or role, optionally only in some channels, give them tools, take tools away, answer them with a profile, or add instructions. A tool turned off anywhere else stays off. Pass id and expectedRevision to change a rule. Only the platform owner's workspace has a Chief of Staff. Administrator access required.
chiefOfStaff.schedules
chiefOfStaff.servers
- GET
chiefOfStaff.servers.listList the Discord servers the Chief of Staff can see, with each connected server's channels (grouped by category) and roles, read live from Discord. Pass refresh to skip the one-minute cache. Only the platform owner's workspace has a Chief of Staff. Finance access required. - POST
chiefOfStaff.servers.updateChange how the Chief of Staff behaves in one Discord server: turn it on or off there, choose how it replies in channels that don't say otherwise, a default profile, and instructions for the whole server. Pass the server's revision as expectedRevision (0 the first time). Only the platform owner's workspace has a Chief of Staff. Administrator access required.
chiefOfStaff.settings
chiefOfStaff
classifier.mailboxes
- GET
classifier.mailboxes.listList organization email types, receiving addresses, and classifier guidance. - POST
classifier.mailboxes.saveCreate a receiving email type or revise its routing and category classifier guidance with revision and idempotency checks. Credential screening and human review remain mandatory.
complianceLibrary.entries
- POST
complianceLibrary.entries.createPlatform administrators only: write a new compliance library entry (title, topic, and optional summary, keyPoints, meaning and markdown notes). A person's entry is protected: an agent's later change to it is proposed, never applied. - POST
complianceLibrary.entries.updatePlatform administrators only: edit a compliance library entry's title, topic, summary, keyPoints, meaning or markdown notes at its current revision, archive or restore it (archived), or mark it looked at (resolved). Editing protects the entry from agent overwrites.
complianceLibrary.files
- POST
complianceLibrary.files.confirmPlatform administrators only: confirm an uploaded library file. Oatmilk checks its size, hash and type, then an agent reads it as untrusted data, summarises it, links it to the right entry or suggests a new one, and flags entries it may affect. - POST
complianceLibrary.files.preparePlatform administrators only: prepare a private upload of a PDF, Word document, text file or picture (up to 25 MB) for the library. Returns a signed uploadUrl; then call complianceLibrary.files.confirm.
complianceLibrary
- GET
complianceLibrary.getOne compliance library guide by id or slug with its official sources and check dates and its history. The platform's administrators also see the changes waiting for a person and the links and files added to it. - GET
complianceLibrary.listThe compliance library Oatmilk keeps for every organization: guides by topic on hiring, contractors, agreements, employment standards, payroll, privacy and taxes, each with its plain-words summary, key points, what it means for a company, status (Current, Needs a look or Out of date) and when its official sources were last checked. editable says whether this member keeps the library; only the platform's administrators also see what was recently added and suggested new entries.
complianceLibrary.inputs
- POST
complianceLibrary.inputs.addUrlPlatform administrators only: add an official government page to the library. An agent reads it, links it to the right entry or updates it with the page as its source. Pages that are not on an official government host are refused. The page is untrusted data. - POST
complianceLibrary.inputs.retryPlatform administrators only: read again a link or file that failed to be read.
complianceLibrary.proposals
compliancePortal
- GET
compliancePortal.overviewThe compliance portal's home for this member: topics with how many library guides each has, recently updated guides, rules from official sources coming into force soon, what waits for a decision (this organization's regulation updates for administrators; for the platform's administrators also changes only an Oatmilk update can follow and library changes), and the search index. platformAdmin says whether this member runs research for the platform. - GET
compliancePortal.searchSearch the compliance portal in plain words: library guides, rules from official sources, decisions waiting for this member and topics. Word matching shortlists candidates and a fast classifier (Jev) ranks what the person means. Optional kinds (entry, rule, item, topic) narrows it, limit up to 20. Each hit has its kind, title, the passage that matched and how relevant the classifier judged it.
complianceResearch.chat
- POST
complianceResearch.chat.askPlatform administrators only: ask the research agent about official tax sources, look up recent changes, or explicitly start the full compliance research flow. Ad-hoc answers do not change organization settings or tax calculations. - GET
complianceResearch.chat.historyPlatform administrators only: read your own recent compliance research conversation and cited official sources.
complianceResearch.findings
complianceResearch
- GET
complianceResearch.overviewPlatform administrators only (the platform's own organization): the compliance research agent's schedule, official sources, memory of verified facts with their effective dates and sources, and findings, each an organization suggestion or a platform notice with its status and how organizations decided. - POST
complianceResearch.runPlatform administrators only: start a compliance research run now. It reads the official sources, remembers new facts, suggests setting changes to the organizations they apply to and tells platform administrators about changes only code can make. Returns the runId to follow with runs.get.
complianceResearch.settings
complianceResearch.sources
- POST
complianceResearch.sources.addAdd an https page on an official Canadian or U.S. federal, provincial, state or territorial government host, a label and its jurisdiction (CA, US, CA-ON or US-TX style). Facts found on an organization's own source are suggested to that organization only. - POST
complianceResearch.sources.removeStop reading one of this organization's compliance research sources.
complianceResearch.suggestions
- POST
complianceResearch.suggestions.decideDecide a regulation update: accept applies it through the usual audited action (autopilot.settings.update, categories.addRecommended and categories.update, or tax.gifi.update); decline or keep leaves the setting as it is. - GET
complianceResearch.suggestions.listRegulation updates for this organization: open suggestions to change a setting (receipt minimum, recommended category, GIFI line), each with the current and suggested value, whether a person set the current value, and its official source, plus recent decisions and this organization's own sources.