X Ads MCP server

X Ads, from your AI agent.

Use your agent with X advertising accounts, also known as Twitter Ads. Inspect campaigns, line items, and funding instruments, then review spend and traffic with the right metric definitions.

View on GitHub

Prefer to run it on your machine? Local setup for X Ads

What you can do with X Ads MCP

Understand campaign traffic

Report on spend, impressions, link clicks, CTR, CPC, and CPM. X engagement clicks are not treated as website link clicks, and unsupported conversion metrics remain absent.

Inspect line items and funding

List campaign line items and existing funding instruments. This reads the billing context needed for campaign planning without creating or changing payment instruments.

Handle longer reporting periods

Short ranges use synchronous analytics; longer periods use asynchronous jobs in bounded chunks. Date handling follows account timezones and rejects unsupported boundaries.

Prefer local setup for X Ads?

The npm CLI and MCP server run on your machine. You need Node.js 22.13 or newer, your own provider credentials, and permission to access the ad account.

  1. Install Adport
    npm install -g adport
  2. Connect X Ads
    adport connect x
    The wizard verifies account discovery using OAuth 1.0a credentials and saves the local grant. A bearer token is not a replacement for the four-part Ads API credential set.
  3. Check your connection
    adport doctor
    adport accounts --provider x
    Check that the intended account appears before asking your agent to report on it. Never paste tokens, client secrets, or private keys into chat.
  4. Register a local stdio client
    claude mcp add --transport stdio adport -- adport mcp
    For Cursor, merge {"mcpServers":{"adport":{"command":"adport","args":["mcp"]}}} into your MCP configuration. ChatGPT uses the HTTP endpoint above instead of launching a local process.

Use X Ads from your agent.

Use the same Adport MCP endpoint and OAuth sign-in in each client. First connect your ad accounts in your Adport workspace. No platform secrets belong in chat.

Use X Ads in ChatGPT

Enable developer mode, then open Settings → Apps → Create. Choose OAuth and use the endpoint below.

https://app.adport.dev/mcp

Scan the tools, finish Adport authorization, and enable the new app in your chat.

Developer mode and custom apps must be enabled for your ChatGPT account or workspace. In newer layouts, enable Developer mode under Settings → Security and login, then use the + button in Plugins to create your app. ChatGPT connects over HTTP; the local stdio command is for clients that can launch a process.

ChatGPT developer-mode documentation

Use X Ads in Codex

Run this command once and complete the browser authorization. Codex stores the MCP configuration and starts OAuth automatically.

codex mcp add adport --url https://app.adport.dev/mcp

Only if authorization did not start or you need to sign in again, run “codex mcp login adport”. Otherwise, check “codex mcp list” and ask Codex to list your ad accounts.

Use X Ads in Claude Code

Add Adport at user scope so it is available across your local projects.

claude mcp add --transport http --scope user adport https://app.adport.dev/mcp

Run /mcp inside Claude Code if the browser authorization does not open automatically.

Use X Ads in Claude

Open Customize → Connectors → Add custom connector. Name it Adport and use the endpoint below.

https://app.adport.dev/mcp

Select Connect, approve the workspace, then enable Adport from the + menu in a conversation.

Use X Ads in Cursor

Add this server to ~/.cursor/mcp.json, then restart Cursor.

{
  "mcpServers": {
    "adport": {
      "url": "https://app.adport.dev/mcp"
    }
  }
}

Approve the browser sign-in when prompted. Cursor will keep the OAuth session refreshed.

Use X Ads in any MCP client

Add a remote MCP server in your client, name it Adport, and use the endpoint below. Choose OAuth or streamable HTTP if your client asks.

https://app.adport.dev/mcp

Approve the browser sign-in when prompted. For a client without MCP OAuth, create an API key under Agent access instead.

Use the MCP URL from Agent access if you run your own Adport deployment. Client settings, workspace permissions, and advertising-platform approvals still apply. The Cloud waitlist below is separate from these connection instructions.

A suggestion is not a live change.

Try the write gate

The first mutation call returns a preview and a short-lived pending-operation token. Applying requires that token and the same arguments. Budget caps and protected accounts are checked by the policy engine; new campaigns are paused by policy.

Local operations are recorded in an append-only audit log. An approved preview is not a guarantee of provider acceptance, and a connected agent does not grant additional account permissions.

X Ads MCP questions

Does Twitter Ads require different MCP setup from X Ads?

No. They refer to the same advertising provider here. Use adport connect x with an Ads API-approved app and OAuth 1.0a user credentials, not general-purpose X bearer-token authentication.

Can I use X Ads locally without Adport Cloud?

Yes. Install Adport from npm, connect your own X Ads credentials, and register the local MCP server with a stdio-compatible agent such as Claude Code or Cursor. Your provider may have its own approval, access, or billing requirements.

Why can I connect an account but not read a report or apply a change?

Account discovery, reporting, and mutations can require different permissions. Check the requested account, provider app scopes, advertiser eligibility, and environment. Start with adport doctor and the connection guide above. Do not bypass a denied operation by sharing secrets with the agent.

Bring your whole team behind the gate.

Adport Cloud is in early access: hosted MCP with sign-in, team workspaces and the same preview on every change. Join the Cloud waitlist and we’ll write once, when your spot opens.

By joining, you agree to receive an early-access email. No newsletter. Privacy