The tools
The three MCP tools Reeve exposes to Claude — chat, get_context, and resolve_gate.
The tools
Reeve exposes exactly three tools to Claude. You don't call these directly — you talk to Claude naturally and it calls them on your behalf. Understanding what each tool does helps you know what to ask for.
chat
Talk to your Reeve workspace. This is the main tool — Claude sends your request to Reeve and returns the reply.
chat(message, thread_id?, brand_id?)| Parameter | Type | Required | Description |
|---|---|---|---|
message | string | yes | Your message to Reeve |
thread_id | string | no | Conversation id from a previous chat call. Pass to continue a conversation; omit to start a new one. |
brand_id | string | no | Scope the conversation to a specific brand. Get the id from get_context. |
Returns: an object with reply (Reeve's response text), thread_id (use this on follow-ups), and attachments (any Drive URLs in the reply).
A reply may include a gate — a pending action (for example, launching paid spend or publishing content) that requires your explicit approval. When Claude sees a gate in the reply, it will surface the details and wait for you to confirm before calling resolve_gate.
chat requires an authenticated user. It cannot be called with a programmatic service credential.
get_context
Returns your Reeve workspace details: your organizations, user info, and brand list. Claude calls this when it needs to know which brands you have, so it can pass a brand_id to chat.
get_context()No parameters.
Returns: your org(s), user info, and a list of brands — each with an id, name, org_id, and relationship (self for your own brands, competitor for tracked competitors). Pass a brand's id to chat's brand_id parameter to scope a conversation to that brand.
resolve_gate
Approve or cancel a pending gated action from a previous chat reply.
resolve_gate(thread_id, gate_id, decision)| Parameter | Type | Required | Description |
|---|---|---|---|
thread_id | string | yes | The thread_id from the chat call that returned the gate |
gate_id | string | yes | The gate id from the chat reply |
decision | string | yes | "approve" or "cancel" |
Returns: Reeve's confirmation of the outcome.
Claude will call resolve_gate only after you explicitly confirm. It will always show you the gate details and ask before proceeding.
resolve_gate with decision: "approve" commits the action — for example, it may launch ad spend or publish content. Review the gate details carefully before approving.
How they work together
Most of the time, you just talk to Claude naturally. Here's what happens under the hood:
- You ask Claude something (e.g., "Ask Reeve to draft a Black Friday email")
- Claude calls
chatwith your message — optionally callingget_contextfirst if brand context is needed - Reeve responds with copy, analysis, or a gated action
- If the reply contains a gate, Claude surfaces it and waits for your approval
- You say yes → Claude calls
resolve_gate(thread_id, gate_id, "approve") - Reeve confirms the action is done
Follow-up messages in the same conversation reuse the thread_id so Reeve maintains context.