Connects Google Ads, Meta Ads, and LinkedIn Ads to Claude and other AI assistants through 200+ tools with full read and write access. You can create and modify campaigns, adjust budgets, manage keywords and audiences, pull performance reports, and run account audits across all three platforms without touching a dashboard. Built by a Google Premier Partner, it uses OAuth so your credentials stay separate from the AI. The hosted service requires a PaidSync account and connects via SSE transport. Free tier gives you 15 API calls per month, paid plans scale up to 4,000. Useful if you're managing paid media campaigns and want to handle routine optimizations, cross-platform analysis, and reporting through conversational commands instead of juggling multiple ad platform interfaces.
Public tool metadata for what this MCP can expose to an agent.
paidsync_execRun TypeScript code in a sandboxed PaidSync runtime with access to every ad-platform tool via `await paidsync.call(toolName, args)`. Use this when you need to compose multiple operations: filter, batch, conditional logic, derived data. Example: `const camps = await paidsync.ca...3 paramsRun TypeScript code in a sandboxed PaidSync runtime with access to every ad-platform tool via `await paidsync.call(toolName, args)`. Use this when you need to compose multiple operations: filter, batch, conditional logic, derived data. Example: `const camps = await paidsync.ca...
codestringmodestringinteractive · scheduled · asyncdefault: interactivetimeout_msintegerpaidsync_contextReturns the current PaidSync runtime context: user, active account, connected platforms, and a compact tool catalog. Call this FIRST in any new exec session. By default returns a platform-grouped summary of available tools. Pass include_tools to drill into specific platform gr...1 paramsReturns the current PaidSync runtime context: user, active account, connected platforms, and a compact tool catalog. Call this FIRST in any new exec session. By default returns a platform-grouped summary of available tools. Pass include_tools to drill into specific platform gr...
include_toolsvaluepaidsync_tool_detailGet the full schema (name, description, input parameters) for a single PaidSync tool by name. Use this when you know which tool you need but want to confirm its exact arguments before calling it from inside paidsync_exec.1 paramsGet the full schema (name, description, input parameters) for a single PaidSync tool by name. Use this when you know which tool you need but want to confirm its exact arguments before calling it from inside paidsync_exec.
namestringpaidsync_recent_runsList the user's recent paidsync_exec runs. Each entry includes the code snippet, success status, duration, call count, trace summary, and value preview. Useful for debugging the last AI exec or replaying a workflow.1 paramsList the user's recent paidsync_exec runs. Each entry includes the code snippet, success status, duration, call count, trace summary, and value preview. Useful for debugging the last AI exec or replaying a workflow.
limitintegerpaidsync_workflows_listList workflows available to run. Returns both PaidSync official workflows AND your own saved workflows. Pass owner='me' to filter to user-owned, owner='paidsync' for official only, or omit for both. Workflows are named, parameterized TypeScript compositions that run in the pai...1 paramsList workflows available to run. Returns both PaidSync official workflows AND your own saved workflows. Pass owner='me' to filter to user-owned, owner='paidsync' for official only, or omit for both. Workflows are named, parameterized TypeScript compositions that run in the pai...
ownerstringme · paidsync · alldefault: allpaidsync_workflows_runExecute a named workflow with parameters. Returns the workflow's structured result. Workflows run with the same safety guarantees as paidsync_exec (mutation block, audit trail).3 paramsExecute a named workflow with parameters. Returns the workflow's structured result. Workflows run with the same safety guarantees as paidsync_exec (mutation block, audit trail).
modestringinteractive · scheduled · asyncdefault: interactivenamestringparamsobjectpaidsync_workflows_saveSave a user-owned workflow that can be run later via paidsync_workflows_run({ name: 'me:<name>' }). Available on Plus, Pro, and Max plans. Pass id to update an existing workflow, omit to create.5 paramsSave a user-owned workflow that can be run later via paidsync_workflows_run({ name: 'me:<name>' }). Available on Plus, Pro, and Max plans. Pass id to update an existing workflow, omit to create.
idstringcodestringmodestringinteractive · scheduled · asyncdefault: interactivenamestringdescriptionstringpaidsync_workflows_deleteDelete one of your saved workflows by id. Only the workflow owner can delete it.1 paramsDelete one of your saved workflows by id. Only the workflow owner can delete it.
idstringpaidsync_workflows_describePlain-English explainer of what a workflow does, derived by scanning its code for paidsync.call(...) invocations. Useful for the Lab UI 'What does this do?' button and for non-technical reviewers before running a workflow. Resolves either an official workflow by name, or a use...1 paramsPlain-English explainer of what a workflow does, derived by scanning its code for paidsync.call(...) invocations. Useful for the Lab UI 'What does this do?' button and for non-technical reviewers before running a workflow. Resolves either an official workflow by name, or a use...
namestringpaidsync_qa_suiteComprehensive read-only QA tester. Walks every read endpoint across all 7 PaidSync-safe platforms (Google Ads, Meta, LinkedIn, GA4, GTM, GMC, GSC), reports per-tool success/failure/duration/sample/error. Uses PaidSync-owned accounts only — NEVER touches client data, NEVER muta...2 paramsComprehensive read-only QA tester. Walks every read endpoint across all 7 PaidSync-safe platforms (Google Ads, Meta, LinkedIn, GA4, GTM, GMC, GSC), reports per-tool success/failure/duration/sample/error. Uses PaidSync-owned accounts only — NEVER touches client data, NEVER muta...
accountsobjectplatformsarrayset_active_accountSet which Google Ads account to operate on. Provide mcc_id to set a specific MCC, or omit it to keep the current MCC. To switch to direct access (no MCC), set direct_access=true.4 paramsSet which Google Ads account to operate on. Provide mcc_id to set a specific MCC, or omit it to keep the current MCC. To switch to direct access (no MCC), set direct_access=true.
mcc_idstringaccount_idstringaccount_namestringdirect_accessbooleanconnect_google_adsInitiate OAuth flow to connect your Google Ads account. Opens a browser window for authentication.Initiate OAuth flow to connect your Google Ads account. Opens a browser window for authentication.
No parameter schema in public metadata yet.
connect_facebook_adsConnect your Facebook Ads account. Returns an OAuth URL — open it in your browser to authorize access. Required before using any other Facebook tools.Connect your Facebook Ads account. Returns an OAuth URL — open it in your browser to authorize access. Required before using any other Facebook tools.
No parameter schema in public metadata yet.
connect_linkedin_adsConnect your LinkedIn Ads account. Returns an OAuth URL — open it in your browser to authorize access. Required before using any other LinkedIn tools.Connect your LinkedIn Ads account. Returns an OAuth URL — open it in your browser to authorize access. Required before using any other LinkedIn tools.
No parameter schema in public metadata yet.
connect_ga4Connect your Google Analytics 4 account. Returns an OAuth URL. This uses the same Google OAuth client but requests analytics-specific scopes.Connect your Google Analytics 4 account. Returns an OAuth URL. This uses the same Google OAuth client but requests analytics-specific scopes.
No parameter schema in public metadata yet.
connect_gtmConnect your Google Tag Manager account. Returns an OAuth URL — open it in your browser to authorize access. This uses a separate OAuth client from Google Ads, so your Ads connection is unaffected.Connect your Google Tag Manager account. Returns an OAuth URL — open it in your browser to authorize access. This uses a separate OAuth client from Google Ads, so your Ads connection is unaffected.
No parameter schema in public metadata yet.
connect_google_search_consoleConnect your Google Search Console account via OAuth. Returns a URL to open in your browser. After connecting, use list_gsc_properties to see your verified properties.Connect your Google Search Console account via OAuth. Returns a URL to open in your browser. After connecting, use list_gsc_properties to see your verified properties.
No parameter schema in public metadata yet.
connect_merchant_centerConnect your Google Merchant Center account via OAuth. Opens a URL for the user to authorize. After connecting, use list_merchant_accounts to see available merchant IDs (including MCA sub-accounts).Connect your Google Merchant Center account via OAuth. Opens a URL for the user to authorize. After connecting, use list_merchant_accounts to see available merchant IDs (including MCA sub-accounts).
No parameter schema in public metadata yet.
connect_tiktok_adsConnect your TikTok Ads account via OAuth. Opens a URL for the user to authorize. At consent the user selects which advertiser accounts PaidSync can manage. After connecting, use list_tiktok_advertisers to see the granted IDs.Connect your TikTok Ads account via OAuth. Opens a URL for the user to authorize. At consent the user selects which advertiser accounts PaidSync can manage. After connecting, use list_tiktok_advertisers to see the granted IDs.
No parameter schema in public metadata yet.
PaidSync.ai is an MCP server that connects Google Ads, Meta Ads, and LinkedIn Ads to AI assistants like Claude, ChatGPT, and Gemini.
Manage your ad campaigns through natural conversation. Create campaigns, adjust budgets, pull reports, run audits, and optimize performance — all without opening a dashboard.
Create a free account at paidsync.ai/signup. No credit card required.
After signing in, copy your unique MCP server URL from the dashboard.
Claude Desktop — Add to your MCP config:
{
"mcpServers": {
"paidsync": {
"url": "https://mcp.paidsync.ai/sse?api_key=YOUR_API_KEY"
}
}
}
ChatGPT — Settings → Connected Tools → paste your PaidSync URL
Claude Code — Add PaidSync as an MCP server in your settings
In the PaidSync dashboard, connect Google Ads, Meta Ads, and/or LinkedIn Ads via OAuth.
Open your AI assistant and try: "Show me my Google Ads campaign performance this month"
"Show me all my active Google Ads campaigns and their ROAS"
"Create a new Meta Ads lead gen campaign targeting US small business owners"
"Compare my cost per conversion across all platforms this month"
"Pause all keywords with CPA above $50 and zero conversions"
"Run a full account audit and rank issues by wasted spend"
"What is my LinkedIn Ads spend this month?"
"Increase budget by 20% on my top 3 campaigns by ROAS"
| Plan | Price | Calls/month |
|---|---|---|
| Free | $0 | 15 |
| Plus | $49/mo | 150 |
| Pro | $99/mo | 600 |
| Max | $199/mo | 4,000 |
Built by Ahmed Ashraf — Google Premier Partner (top 3%), 10+ years in paid media, $1B+ in ad revenue generated.
This repository contains documentation and examples for the PaidSync.ai MCP server. The MCP server itself is a hosted service at paidsync.ai.
io.github.shelvick/shopify-subscription-reconciliation
zleventer/google-ads-mcp
csoai-org/meok-stripe-acp-checkout-mcp
io.github.mharnett/google-ads
csoai-org/stripe-billing-mcp
co.pipeboard/google-ads-mcp