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
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
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
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.
| Input | Type | Description |
|---|---|---|
from (optional) | string | Start date, YYYY-MM-DD, inclusive. |
to (optional) | string | End date, YYYY-MM-DD, inclusive. |
doctor
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
Lists change proposals of this workspace, newest first, optionally filtered by status. Pending proposals wait for a human with the approver role.
| Input | Type | Description |
|---|---|---|
status (optional) | "pending" | "approved" | "rejected" | "executed" | "failed" | "expired" | Only proposals with this status. Omit for all. |
limit (optional) | integer, 1 to 50 | Maximum number of proposals, default 20. |
propose_change
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.
| Input | Type | Description |
|---|---|---|
provider | string, max 50 characters | Ad platform id, for example meta or google_ads. |
kind | "budget_change" | "pause_campaign" | |
title | string, max 200 characters | Short summary shown to the approver. |
rationale (optional) | string, max 4000 characters | Why this change makes sense, shown to the approver. |
connectionId (optional) | string, uuid | Connection id from list_connections. Optional if the provider has exactly one connected account. |
accountId | string, max 100 characters | Ad account id on the platform. |
campaignId (optional) | string, max 100 characters | |
adsetId (optional) | string, max 100 characters | Meta: the ad set that holds the budget. |
budgetId (optional) | string, max 100 characters | Google Ads: campaign budget id. |
loginCustomerId (optional) | string, max 100 characters | Google Ads: manager account id. |
currency (optional) | string, max 3 characters | Required for budget_change. |
oldDailyBudgetMinor (optional) | integer, 0 or more | Current daily budget in minor units. Required for budget_change. |
newDailyBudgetMinor (optional) | integer, 0 or more | Proposed daily budget in minor units. Required for budget_change. |
get_setup_link
Returns the web page where accounts are connected and the business profile and guardrails are set up.
No inputs.
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
Approves a pending proposal and executes it on the ad platform. Used by the approval card; requires the approver role.
| Input | Type | Description |
|---|---|---|
proposalId | string, uuid |
reject_proposal
Rejects a pending proposal without changing anything on the ad platform. Used by the approval card; requires the approver role.
| Input | Type | Description |
|---|---|---|
proposalId | string, uuid | |
reason (optional) | string, max 500 characters |
