What it does
CTRTool has an MCP server. MCP (Model Context Protocol) is the standard way AI assistants connect to apps. Once connected, you can ask your assistant in plain words to set up and run campaigns, and it uses CTRTool for you. For example: "Create Google Search campaigns for these 40 keywords in Austin, Dallas and Houston", "Pause everything for example.com", or "How did my Maps campaigns do this week?".
The assistant can do what you can do in the app, and nothing more: the same checks, the same credit rules, the same results. There is no limit on campaigns or on keywords per campaign.
Set up in 3 steps
- Create a key. Sign in, open Your account, and under AI agents (MCP) choose Create key. Copy the key: it is shown only once. It starts with
ctr_. - Add CTRTool to your assistant. Pick your app below. Replace
YOUR_KEYwith your key. Your account page shows the same settings with your key already filled in, ready to copy. - Ask. Start a new chat and ask for what you need. The assistant checks your account, reads the campaign options, and gets to work.
Claude.ai, ChatGPT and other apps that ask for a connector URL
Add a custom connector (in Claude: Settings > Connectors > Add custom connector; in ChatGPT: Settings > Connectors, with developer mode on). Use this URL and no authentication:
https://ctrtool.com/mcp/YOUR_KEY
The key is part of the URL, so treat the whole URL as a password.
Claude Code
claude mcp add --transport http ctrtool https://ctrtool.com/mcp --header "Authorization: Bearer YOUR_KEY"Cursor, VS Code or Windsurf (mcp.json)
{
"mcpServers": {
"ctrtool": {
"url": "https://ctrtool.com/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"ctrtool": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ctrtool.com/mcp", "--header", "Authorization: Bearer YOUR_KEY"]
}
}
}
Restart Claude Desktop after saving the file. This uses the free mcp-remote helper, which needs Node.js.
Other MCP clients, n8n, scripts
Point any client that supports remote MCP servers over HTTP at https://ctrtool.com/mcp with the header Authorization: Bearer YOUR_KEY. See Technical details.
What to ask
- "Create Google Search campaigns for example.com/plumbing/ in Austin, Dallas and Houston, one per city, with these keywords: …. 20 searches a day each. Save them paused so I can check."
- "Start all paused campaigns for example.com."
- "Copy campaign 12 for Chicago and Denver and change the city on each copy."
- "Set the daily goal of every Austin campaign to 30, then start them again."
- "Add a mobile version of each of my Google Maps campaigns."
- "Which campaigns are not delivering today, and why?"
- "Show the position history of campaign 8 over the last 30 days."
- "Archive every campaign whose target is old-site.com."
Tip: ask the assistant to save new campaigns paused and show you a summary before it starts them.
Tools
These are the actions your assistant can use. "Changes" tools edit your workspace; the others only read.
| Tool | What it does | Type |
|---|---|---|
get_account | Plan, credits remaining and used, email confirmed or not. | Reads |
get_campaign_options | Campaign types, device modes, credit costs, every field with its limits, and an example campaign. | Reads |
find_locations | Valid country codes, states and cities for targeting. | Reads |
list_campaigns | Every campaign with its live delivery state, daily goal, keyword count and latest position. | Reads |
get_campaigns | Full settings of chosen campaigns, ready to copy or edit. | Reads |
create_campaigns | Create up to 500 campaigns in one call, paused or started. | Changes |
update_campaigns | Change settings of up to 500 campaigns at once. | Changes |
set_campaign_status | Start, pause or archive campaigns. | Changes |
set_daily_goal | Set the daily search goal of campaigns. | Changes |
clone_campaigns | Copy campaigns (saved paused). | Changes |
get_campaign_report | A campaign's delivery report for 7, 30, 90 or 365 days. | Reads |
get_position_history | Observed search positions over time. | Reads |
list_recent_visits | The latest visits across all campaigns. | Reads |
Rules and safety
- A key acts as you. Anyone with your key can manage your campaigns. Keep it private, give each app its own key, and revoke a key on Your account the moment you no longer need it: access ends immediately. You can have up to 20 active keys.
- Same checks as the app. Starting campaigns needs a confirmed email, an active plan and enough credits. Mobile visits cost twice desktop visits.
- All or nothing. When the assistant sends many campaigns at once, every one is checked before any is saved. If one is wrong, nothing is saved and the error names the campaign to fix.
- Edits pause. As in the app, editing a campaign or changing its daily goal pauses it. The assistant starts it again with
set_campaign_status. - Archiving removes a campaign from your workspace. Its delivery records stay in your reports and exports.
- Your websites must be public, and you must own them or have permission to send visits to them (see the Terms of use).
Troubleshooting
- "Add a CTRTool API key" or 401
- The key is missing, mistyped or revoked. Create a new one on Your account and update your app.
- "Activate a plan with at least N available credits"
- Starting needs an active plan and enough credits. Save the campaigns paused, then add credits on Billing & plans.
- "Confirm your email address"
- Confirm the email we sent you (or resend it from the app), then ask again.
- "Choose a GEO with configured worker capacity" or "Choose a valid state"
- Ask the assistant to use
find_locationsand pick a listed country, state and city. - "The website must resolve to a public internet address"
- Check the URL is complete and publicly reachable (not a local or private address).
- The assistant does not see CTRTool
- Start a new chat after adding the connector, and make sure the connector is switched on for that chat.
Technical details
- Endpoint:
https://ctrtool.com/mcp(Streamable HTTP; JSON responses; no server session or event stream). - Protocol versions: 2025-06-18, 2025-03-26, 2024-11-05.
- Auth:
Authorization: Bearer ctr_…, or the key in the path:https://ctrtool.com/mcp/ctr_…. - Methods:
initialize,ping,tools/list,tools/call. Tool results carry JSON instructuredContentand as text. - Guide for agents (Markdown): /mcp-guide.md.
curl https://ctrtool.com/mcp \
-H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_account","arguments":{}}}'
Create a key on Your account · Contact support · Terms of use