Koddi Ads MCP

Koddi MCP Server — Help Center

Talk to your Koddi ads platform in plain English. The Koddi MCP server lets you connect AI assistants — Claude, ChatGPT, Cursor, Codex, and others — directly to your Koddi Ads platform, so you can ask questions, pull reports, and explore campaign data without leaving the chat window.

What is the Koddi MCP?

The Model Context Protocol (MCP) is an open standard that lets AI assistants securely connect to external applications — in this case, your Koddi platform. Once connected, the assistant can look up member groups, advertisers, campaigns, ad groups, creatives, targeting, financial balances, and run reports on your behalf.

You stay in control. The assistant only sees what your Koddi user account can see. Every request is authenticated as you, and access control is enforced by Koddi — not the AI tool.

What it is:

  • A secure way to bring your Koddi data into an AI chat
  • Read-only by default — safe for exploration, reporting, and analysis
  • Works with any MCP-compatible AI client

What it isn’t:

  • It is not a replacement for the Koddi UI
  • It does not give the assistant access to anything your user doesn’t already have
  • It does not share data between Koddi customers — each client has their own isolated connection

Before you start

Prerequisites

RequirementNotes
An active Koddi accountYou must be able to log in to Koddi today. If you can’t, contact your Koddi team.
Your client’s MCP URLProvided by your Koddi team. Format: https://<your-client>.koddi.io/mcp. There is no shared URL — each Koddi customer has their own.
An MCP-capable AI clientClaude (Pro/Team/Enterprise), ChatGPT (Pro/Team/Enterprise), Claude Code, Codex CLI, Cursor, or any other client that supports remote MCP servers.
A modern browserNeeded once during setup to complete single sign-on.

Get your MCP URL

Every Koddi customer gets a unique MCP URL tied to their account. It will look similar to this:

https://<your-client>.koddi.io/mcp

📘

If you don’t know what to use, ask your Koddi team - don’t guess. You won’t be able to authenticate with an incorrect URL.

Use the URL provided by your Koddi team. Throughout this guide, we’ll use retailer.koddi.io as a placeholder.

Setup by client

The Koddi MCP supports modern remote MCP clients out of the box. In every case the flow is the same:

  1. Add the server URL (e.g. https://retailer.koddi.io/mcp) to your AI client. 2. Your browser opens to Koddi’s sign-on page. 3. Sign in with your normal Koddi credentials. 4. You’re redirected back to the client — done.

Claude (web & desktop)

Plan requirements: Available on Claude Pro, Max, Team, and Enterprise. On Team and Enterprise, a workspace Owner must add the connector first; members then connect individually.

Add the connector (individual — Pro/Max):

  1. In Claude, open Settings -> Connectors.

    1. Click + Add custom connector.
    2. Paste your MCP URL: https://retailer.koddi.io/mcp
    3. Click Add. A browser window opens to sign in to Koddi.
    4. Sign in with your Koddi credentials and approve the connection.
    5. You’ll be redirected back to Claude. The connector is now listed as “Connected.”

    Add the connector (Team/Enterprise — Owner):

    1. Go to Organization settings -> Connectors.
    2. Click Add -> Custom -> Web.
    3. Enter the MCP URL and save.
    4. Members then open Settings -> Connectors, find the Koddi connector, and click Connect to complete sign-in for themselves.

Using it: When starting a chat, enable the Koddi connector from the tool menu. Then ask naturally: “Which campaigns did we run last month?”

Claude Code

Claude Code supports remote MCP servers natively.

One-off add (personal / this machine only):

claude mcp add --transport http koddi [https://retailer.koddi.io/mcp](https://retailer.koddi.io/mcp)

Claude Code will prompt you to authenticate in your browser the first time you invoke a tool. Run /mcp inside Claude Code to see the connection status and trigger sign-in manually if needed.

Project-level config (check into your repo):

Create .mcp.json in your project root:

{
  "mcpServers": {
    "koddi": {
      "type": "http",
      "url": "[https://retailer.koddi.io/mcp](https://retailer.koddi.io/mcp)"
    }
  }
}

Start Claude Code from that directory. On first use, it will open your browser to complete sign-on.

ChatGPT

Plan requirements: Custom MCP connectors require ChatGPT Pro, Business, Enterprise, or Edu. Developer Mode must be enabled in your workspace (admins configure this under Workspace Settings -> Permissions & Roles -> Connected Data).

Note: On Plus and Pro individual plans, ChatGPT restricts custom connectors to read-only use. That’s fine — the Koddi MCP is read-only, so you’re not missing anything.

Steps:

  1. Enable Developer Mode: Settings -> Apps & Connectors -> Advanced settings -> Developer Mode.
  2. Go to Settings -> Apps & Connectors -> Add new connector.
  3. Fill in: Name: Koddi, Description: Koddi ads platform, MCP Server URL: https://retailer.koddi.io/mcp, Authentication: OAuth.
  4. Check “I trust this application” and click Create.
  5. Start a new chat. Open the connector tray and enable Koddi.
  6. The first time you use a tool, ChatGPT opens a Koddi sign-in window. Sign in and approve.

OpenAI Codex CLI

Codex CLI supports streamable HTTP MCP servers.

Via command:

codex mcp add koddi --url [https://retailer.koddi.io/mcp](https://retailer.koddi.io/mcp)

Via config file (~/.codex/config.toml):

[mcp_servers.koddi]
enabled = true
transport = { type = "streamable_http", url = "[https://retailer.koddi.io/mcp](https://retailer.koddi.io/mcp)" }

On first tool call, Codex will open your browser to sign in.

Cursor

Add the server to Cursor’s MCP config file.

Global (~/.cursor/mcp.json) or project (.cursor/mcp.json):

{
  "mcpServers": {
    "koddi": {
      "url": "[https://retailer.koddi.io/mcp](https://retailer.koddi.io/mcp)"
    }
  }
}

Or use the UI: Cursor Settings -> Tools & MCP -> New MCP Server, paste the URL, and save. Cursor will prompt you to authenticate in the browser the first time.

Other MCP-compatible clients

The Koddi MCP supports the following MCP specification features, so any compliant client should work:

  • Transport: HTTP Streamable (https://<your-client>.koddi.io/mcp)
  • Auth: OAuth 2.1 with PKCE
  • Dynamic Client Registration (RFC 7591) — the client doesn’t need to pre-register; it can register itself on first use
  • Discovery endpoints: /.well-known/oauth-authorization-server, /.well-known/openid-configuration, /.well-known/oauth-protected-resource

If your MCP client requires manual OAuth config, point it at the MCP URL and let it discover everything from the well-known endpoints.

Your first conversation

Once connected, try one of these prompts to confirm everything works:

The assistant will walk you down the hierarchy — client -> advertiser -> campaign -> ad group — asking you to pick when there’s more than one option.

Sample workflows

1. Weekly performance recap

“Give me a recap of last week vs. the week before for advertiser ABC. Focus on spend, clicks, CTR, and any campaigns that over- or under-delivered against their budget.” The assistant will call get_report_config to see what metrics are available, then run_report for both weeks, and compare them for you. Great for Monday morning stand-ups.

2. Budget & pacing check

“Are any of advertiser ABC’s campaigns at risk of missing budget this month? Show me spend to date vs. target.” Combines list_campaigns, get_campaign_budget, and reporting to surface pacing issues in one answer.

3. Finding an ad group by description

“I’m looking for the ad group that targets weekend travelers on the advertiser ABC's account. What’s the ID and what’s its current status?” The assistant walks the hierarchy and returns the matching ad group with its settings — no need to remember IDs or dig through the UI.

4. Exploring a new account

“I just joined the team — give me an overview of client ABC. How many advertisers, what channels do they use, what’s the rough scale?” Good for onboarding. Combines get_member_group, list_advertisers, list_advertiser_channels, and basic reporting to paint a picture.

5. Spot-checking targeting

“What targeting rules are applied to campaign 12345?” Uses list_targetings, get_targeting, and get_targeting_options to explain the rules in plain language.

6. Finding a field for a custom report

“Which metrics are available at the ad group level for client ABC? I want to build a CTR-by-device report.” get_report_config returns the field catalog. The assistant picks the right dimension and metric names so you don’t have to hunt them down.

What you can do

The Koddi MCP exposes ~60+ read-only tools covering the full Koddi platform. You don’t need to know the tool names — just ask naturally and the assistant picks the right one.

At a glance, here’s what’s available:

AreaExamples
Clients & advertisersList clients you have access to, view advertiser details and history
CampaignsList, view details, view budget, view history and review history, view creative associations
Ad groupsList, view details, budget, pacing, history, assets, creative associations, budget forecasts
Entities & keywordsView entities under an ad group or advertiser, entity attributes, registrations, groups
TargetingList targeting rules, view options and limits, list targeting types and match types
CreativesList creatives (at client and advertiser level), view creative config
ExperiencesList experiences, view experience details, creative specs, frequency capping, templates
Automation rulesList rules and action types
FinancialView prepay balances, spend limits, funding types, balances by funding type, bidding configs
Media plans & IOsView insertion orders and insertion order config
Reference dataCurrencies, channels, timezones, entity types, roles, locales
UsersList users at client or advertiser level, view user details
ReportingGet report config/fields and run reports on any supported context

The assistant will tell you if something isn’t supported. If you find a gap that matters to your workflow, let your Koddi team know — new tools are added regularly.

Security & Privacy

How authentication works

  1. Your AI client sends you to Koddi’s sign-on page (hosted by Koddi and your identity provider).
  2. You sign in with your normal Koddi credentials — the AI client never sees your password.
  3. Koddi issues a short-lived access token scoped to your user.
  4. The MCP server uses that token to call Koddi on your behalf for every tool request.

Data access boundaries

  • You can only see what you could already see. Koddi enforces access control server-side. The MCP server cannot grant access beyond your existing permissions.
  • Each customer is isolated. Every Koddi customer connects to their own dedicated subdomain. Cross-customer data access is not possible — it is blocked at the network layer and re-validated on every request.
  • Sessions are short-lived. Access tokens are refreshed automatically in the background while you’re active and expire within 24 hours of inactivity.

What the AI sees

The AI client sees:

  • The tool responses (campaign data, reports, etc.) — same as you’d see in Koddi.
  • The AI client does not see:
    • Your password
    • Long-lived credentials
    • Any other Koddi customer’s data

What Koddi logs

Koddi logs MCP requests the same way it logs normal platform API requests — for observability, security, and support. Logs never include your password or long-lived tokens.

Revoking access

Revoke access the same way you’d remove any OAuth-connected app:

  • Claude: Settings -> Connectors -> Koddi -> Disconnect
  • ChatGPT: Settings -> Apps & Connectors -> Koddi -> Disconnect
  • Claude Code / Codex / Cursor: remove the entry from the config file

To fully revoke at the Koddi level, contact your Koddi team.

Limits & quotas

LimitDefaultWhat happens
Requests per user100 requests per 60 seconds (rolling)HTTP 429 with Retry-After header; the AI client backs off automatically
Token refreshAutomatic when < 1 hour remainingSeamless — no user action needed
OAuth flow timeout10 minutesStart over if you walk away mid-flow
📘

Rate limits apply per user, not per client. They are designed to protect the Koddi platform from runaway agents. If you’re regularly hitting limits during normal use, reach out — we can review your usage.

FAQ

Is my data safe?

Yes. You sign in with your existing Koddi credentials, the AI client never sees your password, and all requests are scoped to your user account. Koddi enforces the same access controls through the MCP as it does in the UI.

Can my AI assistant change anything in Koddi?

No. The MCP is read-only at this time. The assistant can look up and report on data, but it cannot create, update, or delete anything in your Koddi account. We expect to add modification tools soon and will reach out before we enable them.

Does it support SSO / my existing identity provider?

Yes. Sign-on goes through your existing Koddi identity provider. Whatever login method you use today (SAML SSO, Google, etc.) is what you’ll use with the MCP.

Can I audit what the AI did?

Yes. Because every request is authenticated as you, Koddi’s normal access logs include MCP traffic.

Do I need to be a technical user to use this?

No. Setup is a one-time URL paste in your AI client’s settings. After that, you just ask questions in plain English.

What AI models does this work with?

Any model that runs in an MCP-capable client. Claude (all models), GPT-5 series, and others. We recommend the most recent model your client offers for best results.

Which MCP clients are supported?

Any client that speaks MCP over HTTP with OAuth 2.1. Confirmed: Claude (web/desktop), Claude Code, ChatGPT, OpenAI Codex CLI, Cursor. Most other clients (Windsurf, Zed, VS Code, etc.) work with the same URL.

What happens if Koddi adds new tools?

We’ll reach out before adding new tools. When we do add them, they’ll appear in your AI client the next time it lists tools (usually at the start of a new chat). Your existing connection keeps working.

Common Gotchas

Ask before scanning

The assistant is trained to ask you which client / advertiser / campaign to work with when there’s more than one option. This is intentional — scanning across all clients would be slow, noisy, and risks pulling the wrong data. If you want a specific scope, say so up front: “For the Acme advertiser, show me…”

Not every tool is available to every account

Some features — like spend limits, frequency capping, or advertiser alerts — depend on your account role. If the assistant tries one of these and hits “Access denied,” it will skip that tool and continue with others. This is expected; no action is needed from you.

Reports need a config look-up first

Custom reporting is powerful but field names vary by client. Before running a report, the assistant calls get_report_config to discover what metrics and dimensions are available to you. If you ask for a field the Koddi platform doesn’t expose for your tenant, the assistant will tell you and suggest the closest match.

The Koddi hierarchy matters

Koddi data is hierarchical: Client -> Advertiser -> Campaign -> Ad Group -> Entity. If you ask for something deep in the tree (e.g. “show me this ad group”), the assistant may need to resolve the parent IDs first. This happens automatically, but it’s why the first question of a new session might be “Which client do you want to work in?”

You can reference things by name, not just ID

You don’t need to know IDs. “The summer sale campaign under Acme” is fine. If there’s ambiguity, the assistant will show you the matches and ask.

Each URL is tenant-specific

There is no generic mcp.koddi.io URL. If you try to connect to anything other than your client-specific subdomain, authentication will fail.

New chats start fresh

Every new conversation starts with no context. The assistant won’t remember that yesterday you were working in client ABC — you’ll need to re-scope. (This is a property of AI chat generally, not the MCP.)

Troubleshooting

“Could not connect” / “Server unreachable”

Double-check the URL. It must be the exact subdomain from your Koddi team and must end in /mcp.

Confirm you can reach the URL in a browser. You should see a JSON response (some clients return 200 OK with method-not-allowed — that still means the server is reachable).

If you’re on a corporate VPN or firewall that blocks outbound traffic to *.koddi.io, ask IT to allowlist it.

“Authentication failed” / redirected back to sign-in repeatedly

Make sure you finished the sign-in flow in the browser window that opened — closing it early aborts the handshake.

If you waited more than 10 minutes between starting sign-in and coming back, the flow expired. Try again.

Try signing out of Koddi in that browser, then reconnecting — stale sessions can sometimes confuse the handshake.

“Session expired — please re-authenticate”

Your access token aged out. Trigger sign-in again:

Claude: click the Koddi connector and re-connect.

Claude Code: run /mcp and select the Koddi server to re-authenticate.

ChatGPT: open the connector and reconnect.

“Access denied” on specific tools

Your Koddi role doesn’t include that feature. The assistant will move on and use other tools; no action needed. If you believe this is wrong, contact your Koddi team.

“Rate limit exceeded” (HTTP 429)

You’ve made more than 100 requests in 60 seconds. The AI client will back off automatically and retry. If this happens often, your prompts may be asking the assistant to fan out more than necessary — try narrowing scope (a single advertiser instead of all of them).

Tools don’t appear in the client

Restart the chat. Tools are loaded when a conversation starts.

Check that the connector is enabled in your current chat (most clients require you to toggle it on per conversation).

For Claude Code, run /mcp to verify the server is connected.

The assistant gives an answer that looks wrong

The MCP returns exactly what the Koddi platform returns, which is the same data you’d see in the UI. If numbers look off:

Ask the assistant to show the tool calls it made and the parameters (most clients support this).

Cross-check the same query in the Koddi UI.

If the UI and MCP disagree, that’s a bug — report it to your Koddi team with the timestamp and the tool call details.

Getting help

If you encounter anything unexpected (or anything unexpectedly great!), please reach out to your Koddi team. We’d be happy to help.