MCP Tool Reference
Complete list of all 5 MCP tools available through the ASAPilot MCP server for Apple Search Ads management.
For Developers
If you just use the ASAPilot dashboard, you don't need to know about these tools. They're used by AI coding tools (like Claude Code or Cursor) behind the scenes. But if you're curious, read on.
ASAPilot exposes 5 tools through the MCP server. These tools let AI assistants read your ad data, make changes, and run audits — all through natural language commands.
Chat Tools
chat.send
Send a message to ASAPilot and continue an existing external conversation.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| message | string | Required | User message to send to ASAPilot. |
| thread_id | string | Optional | Stable external conversation id. Reuse this for follow-up turns. |
| mode | string | Optional | Optional ASAPilot mode override, for example free_talk or account_health. |
| connection_id | string | Optional | Optional connected ASA account id. |
| time_range | string | Optional | Optional reporting time range. |
Example
{
"name": "chat.send",
"arguments": {
"message": "Show me campaigns with CPI above $5",
"thread_id": "analysis-session-1",
"mode": "account_health",
"time_range": "last_7_days"
}
} Account Tools
accounts.list
List connected Apple Search Ads accounts available to this ASAPilot workspace.
Example
{
"name": "accounts.list",
"arguments": {}
} Automation Tools
automations.list
List automations configured in ASAPilot.
Example
{
"name": "automations.list",
"arguments": {}
} Automation Tools
automations.create
Create a new ASAPilot automation.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Required | Automation name. |
| type | string | Required | Automation type (e.g., daily_account_health, daily_budget_guard). |
| connectionId | string | Required | Connected ASA account id. |
| agentName | string | Optional | Optional agent name override. |
| configJson | string | Optional | Optional JSON configuration string. |
| scheduleType | string | Optional | Schedule type: hourly, daily, or weekly. |
| cronExpr | string | Optional | Schedule value (e.g., "09:00" for daily, "6h" for hourly, "MON@09:00" for weekly). |
| timezone | string | Optional | IANA timezone like UTC or America/Los_Angeles. |
Example
{
"name": "automations.create",
"arguments": {
"name": "Daily Budget Alert",
"type": "daily_budget_guard",
"connectionId": "conn_abc123",
"scheduleType": "daily",
"cronExpr": "09:00",
"timezone": "America/Los_Angeles"
}
} Automation Tools
automations.run
Queue an automation run immediately.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| automationId | string | Required | Automation id to run. |
Example
{
"name": "automations.run",
"arguments": {
"automationId": "auto_xyz789"
}
} Protocol Details
Authentication
All requests require an API key. Include it in the Authorization: Bearer YOUR_API_KEY header
or as X-API-Key.
Session Management
The server returns an Mcp-Session-Id header after initialization.
Include this header in subsequent requests to maintain session continuity.
Thread Continuity
For chat.send, use the same
thread_id across multiple calls to preserve conversation context.
The server maps external thread IDs to internal ASAPilot conversations.
Quick Start Guide
Get your MCP server running in 5 minutes.
Channels Overview
Learn about all integration options.
Frequently asked questions
How many MCP tools does ASAPilot expose?
The current MCP server exposes five tools across chat, accounts, and automations.
How do I keep MCP session continuity?
Reuse the returned Mcp-Session-Id header across subsequent MCP requests.
How do I keep one external conversation mapped to one ASAPilot thread?
Reuse the same thread_id on chat.send calls so follow-up turns stay attached to the same conversation.