ChatGPT (plugin, OAuth)
- In ChatGPT open Settings → Security and login and turn on Developer mode.
- Go to Plugins, press +, and enter
https://app.adstellar.ai/api/mcpas the MCP server URL. - ChatGPT discovers AdStellar’s OAuth metadata and sends you to the consent screen. Pick the team, workspaces, and scopes to grant.
- Start a new chat and mention @AdStellar, or just ask: “How did my campaigns perform over the last 7 days?”
Claude (connector, OAuth)
AdStellar is listed in the Claude Connectors directory: open Customize > Connectors in Claude, search for AdStellar, and connect. The connector URL ishttps://app.adstellar.ai/api/mcp/claude; it carries every tool except AI image and video generation and automation rules. See Use AdStellar in Claude for the walkthrough, example prompts and Claude Code setup.
Claude Desktop (full server, OAuth)
To reach the full tool surface, including creative generation, add AdStellar to yourclaude_desktop_config.json with no key at all:
API key (for your own agents)
Create a key in Settings → Developers (or viaPOST /api/settings/api-keys), then:
“What’s my current credit balance and which ad accounts are connected?”
“Generate 5 headline variants for my default brand kit, bold tone, goal: drive trial signups.”
“Generate a 9:16 image ad for my product, 2 variations” — then “check the status of batch <id>”
“How did my campaigns perform over the last 7 days, grouped by campaign?”
“Pause every ad set with a CPA over $40 this week, and show me the list first.”
“Build a sales campaign for my main product at $50/day and walk me through the preview before launching.”
“Whenever a campaign spends $50 with a CPA above $40 over 7 days, suggest pausing it.”
REST API
Every MCP tool is also a REST endpoint —POST /api/v1/tools/{toolName} with the same bearer credential:
GET /api/v1/openapi.json).
Raw JSON-RPC (for debugging)
initialize, ping, tools/list, tools/call (single or batched). The server is stateless — every POST is self-contained.
Building your own agent
- Create a key with only the scopes your agent needs.
- On startup, call
tools/listto discover the tools visible to that key. - Call
get_team_infoto confirm which team you’re acting on. - Use
list_modelsbefore any generation call so you can pass an explicitmodelid (or omit it for the default router). - Generation is async: call
generate_image/generate_video, then pollget_generation_statusuntilcomplete: true.