https://www.lawtte.ai/api/mcp (streamable HTTP, OAuth or
Authorization: Bearer lawtte_sk_…). The Agent Builder tools need the call
permissions: list_agents and get_agent need calls:read, the rest need
calls:write.
Rules
- Read before you write. Call
list_agentsfirst. Use only the ids, tool keys, mailbox ids and text-line ids it returns. Never invent them. - Confirm before anything that sends. Ask the user before
manage_agentwithgo_liveorcheck_nowon a live agent,update,remove, and beforeapply_agent_change. These tools are marked destructive. - Test mode first.
launchalways starts in Test mode, which sends nothing. Show the user aprevieworpractice_runbefore you suggest going live. - Follow the house rules. Every firm keeps standing rules (
house_rules, one per line) that every agent must follow. Read them before you design or change an agent;list_agents,get_builder_settingsandsave_agent_draftall return them. Copy the phrases and wording the user gives you exactly. - Save standing instructions as house rules. When the user says “always…” or
“never…” about how agents behave, offer to add it with
update_builder_settings(add_house_rules) so every future agent follows it too. - Fix what Lawtte tells you. When
launch_problemsisn’t empty, or a tool returns an error, it says what to change in plain words. Fix that and retry, or ask the user. - Check a call before placing it. For a call agent, run
manage_agentwithcall_checkfirst, thencall_placeonce the user confirms. Both go through the same checks asplace_call: consent, calling hours, Do Not Call and daily limits. - No sensitive data. Don’t put Social Security, card or bank numbers, dates of birth, passwords or medical details in any field.
Build a new agent
1
list_agents
Returns
agents (each with agent_id like recipe:… or builtin:…, its
request_id, name and status), builds (with built_with), tools (keys for
blueprint steps, and whether each is connected), mailboxes, text_lines and
house_rules.2
save_agent_draft
Send the blueprint, and a
recipe if it’s one Lawtte can run itself (see below).
Returns request_id, ready_to_launch, open_questions, launch_problems and
the dashboard link. Call it again with request_id to change the draft;
fields you leave out keep their values.3
manage_agent: launch
{ "id": "<request_id>", "action": "launch" }. It starts in Test mode. If the
blueprint still has open_questions, either answer them with
save_agent_draft, or pass "accept_defaults": true after the user agrees.4
manage_agent: preview or practice_run
preview shows what it would pick up now. practice_run replays the last two
weeks of real threads. Both only read.5
manage_agent: go_live (after the user confirms)
From here it sends by itself.
recipe fits what the user wants, save the blueprint without one and use
manage_agent with send_to_lawtte_team. Lawtte’s team builds it, and the user sees
the status in their dashboard.
Blueprint fields
Recipe formats
trigger,
and nobody outside the firm replies within the wait, Lawtte replies in that same
thread with body. It repeats up to maxFollowups times.
Call agents:
recipientType is client, witness, adjuster, business_office or
other. collect is up to 10 short items, and voicemail is leave or hang_up.
Change an existing agent
Turn it on or off. Usemanage_agent with the agent’s request_id or
recipe: agent_id: pause, resume, back_to_test_mode, go_live or remove.
Change its settings. Pick one of two ways:
- Propose, then apply.
get_agentreturns itseditablefields. Send only what changes topropose_agent_changeasdesired. You get back each change with anid, abeforeand anafter. Show them to the user, then callapply_agent_changewith theproposal_id(andacceptto apply only some). This is the only way to change built-in agents (builtin:…). - Replace the config.
manage_agentwithaction: "update"and the full newrecipe(and an optionalname). It’s forrecipe:agents only.
desired: { "status": "live" } (or
paused, resume, removed) on its own to propose_agent_change.
House rules and settings
get_builder_settings returns the house rules, the Agent Builder’s name and how it
talks, the default inbox, text line and calling number, and every inbox, text line
and number the firm has.
update_builder_settings changes them. Fields you leave out keep their values.
New house rules apply to agents designed from then on. Existing agents keep their
wording until you change them, so offer to update the ones a new rule affects.
Phone numbers
- Studio account with no number:
get_calling_setup_status, thenset_up_calling. - A new number, or the firm’s name on caller ID:
request_phone_numberwithkind: "new"(optionalarea_code) orkind: "brand"(withphone), pluscaller_id_name: up to 15 letters, numbers and spaces, likeOCONNOR LAW. The Lawtte team sets it up by hand, usually within a business day. - Connecting an inbox needs a Microsoft 365 or Google sign-in in the dashboard: Agents → Settings → Channels → Connect an inbox. Send the user there.
manage_agent actions
Errors
Errors come back as tool results with plain text, for example “This agent is already launched or with the Lawtte team. Change it with propose_agent_change.”, or a list oflaunch_problems. They’re written so you can act on them: fix the field or ask the
user. An unexpected error says nothing was changed.
Every build records the app that made it (built_with), from the name your client
registered at sign-in. API keys record as Lawtte MCP.
See connector tools for the full tool list.
