Documentation

Tools

Every tool the server offers, with inputs and required role.

This page is generated from the tool definitions of the running neo-mcp server. A tool is available only if your connection has its scope and your workspace role is high enough.

Tools Claude can call

status

Workspace status · read only · needs role viewer or higher · scope mcp:read

Shows the connected workspace, your role, how many accounts are connected and healthy, the readiness summary and the number of proposals waiting for approval.

No inputs.

list_connections

List connections · read only · needs role viewer or higher · scope mcp:read

Lists the store and ad accounts connected to this workspace with their status and last sync time. Tokens are never included.

No inputs.

metrics_summary

Performance summary · read only · needs role viewer or higher · scope mcp:read

Spend, platform-reported revenue and ROAS per channel for a date range, plus store revenue and MER (store revenue divided by total ad spend). Defaults to the last 7 days. Amounts are in minor units of the workspace currency.

InputTypeDescription
from (optional)stringStart date, YYYY-MM-DD, inclusive.
to (optional)stringEnd date, YYYY-MM-DD, inclusive.

doctor

Account readiness check · read only · needs role viewer or higher · scope mcp:read

Checks whether the workspace is ready for ad work: store and ad connections, token health, business profile, data freshness and guardrails. Reads stored state only and never contacts the ad platforms.

No inputs.

list_proposals

List proposals · read only · needs role viewer or higher · scope mcp:read

Lists change proposals of this workspace, newest first, optionally filtered by status. Pending proposals wait for a human with the approver role.

InputTypeDescription
status (optional)"pending" | "approved" | "rejected" | "executed" | "failed" | "expired"Only proposals with this status. Omit for all.
limit (optional)integer, 1 to 50Maximum number of proposals, default 20.

propose_change

Propose a change · creates a proposal · needs role editor or higher · scope mcp:write

Creates a pending proposal for a budget change or a campaign pause. Nothing is changed on the ad platform until a human with the approver role approves it. Proposals that break a workspace guardrail are returned as an error that names the rule.

InputTypeDescription
providerstring, max 50 charactersAd platform id, for example meta or google_ads.
kind"budget_change" | "pause_campaign"
titlestring, max 200 charactersShort summary shown to the approver.
rationale (optional)string, max 4000 charactersWhy this change makes sense, shown to the approver.
connectionId (optional)string, uuidConnection id from list_connections. Optional if the provider has exactly one connected account.
accountIdstring, max 100 charactersAd account id on the platform.
campaignId (optional)string, max 100 characters
adsetId (optional)string, max 100 charactersMeta: the ad set that holds the budget.
budgetId (optional)string, max 100 charactersGoogle Ads: campaign budget id.
loginCustomerId (optional)string, max 100 charactersGoogle Ads: manager account id.
currency (optional)string, max 3 charactersRequired for budget_change.
oldDailyBudgetMinor (optional)integer, 0 or moreCurrent daily budget in minor units. Required for budget_change.
newDailyBudgetMinor (optional)integer, 0 or moreProposed daily budget in minor units. Required for budget_change.

Tools for the approval card

These are called by the approval card inside Claude when you press a button, not by the model.

approve_proposal

Approve proposal · creates a proposal · needs role approver or higher · scope mcp:write

Approves a pending proposal and executes it on the ad platform. Used by the approval card; requires the approver role.

InputTypeDescription
proposalIdstring, uuid

reject_proposal

Reject proposal · creates a proposal · needs role approver or higher · scope mcp:write

Rejects a pending proposal without changing anything on the ad platform. Used by the approval card; requires the approver role.

InputTypeDescription
proposalIdstring, uuid
reason (optional)string, max 500 characters