MCP for AI agents
Connect Claude, Cursor, ChatGPT, Gemini, or another MCP-compatible assistant to Infinite Audience. Your team can explore customer signals, shape segments, and run approved workflows from a conversation.
Connect the server
Section titled “Connect the server”Server URL:
https://mcp.infiniteaudience.ai/mcpInfinite Audience supports OAuth discovery, so compatible clients can open a browser sign-in and manage credentials for you. Add the server with one of the setups below, then choose Authenticate or Sign in when your client prompts you.
Choose your AI workspace
Section titled “Choose your AI workspace”In the ChatGPT desktop app, open Settings → MCP servers, choose Add server, select Streamable HTTP, and enter the server URL above. Save, restart, and authenticate when prompted.
Codex CLI, the Codex IDE extension, and the ChatGPT desktop app share the same configuration. You can also add it to ~/.codex/config.toml:
[mcp_servers.infinite_audience]url = "https://mcp.infiniteaudience.ai/mcp"auth = "oauth"Then run codex mcp login infinite_audience. See the official OpenAI MCP guide.
Claude Code can add the remote server from the command line:
claude mcp add --transport http infinite-audience https://mcp.infiniteaudience.ai/mcpOpen /mcp, select Infinite Audience, and complete sign-in. See Anthropic’s MCP guide.
Add the server globally in ~/.cursor/mcp.json, or use .cursor/mcp.json inside one project:
{ "mcpServers": { "infinite-audience": { "url": "https://mcp.infiniteaudience.ai/mcp" } }}Open Cursor’s MCP settings, enable the server, and complete OAuth when prompted. See Cursor’s MCP guide.
Open or create ~/.gemini/antigravity/mcp_config.json:
{ "mcpServers": { "infinite-audience": { "serverUrl": "https://mcp.infiniteaudience.ai/mcp", "transport": "http" } }}In Antigravity, open Settings → Customizations, refresh the installed MCP servers, and authenticate Infinite Audience. See Google’s Antigravity getting-started guide.
Start with this prompt
Section titled “Start with this prompt”List the available read-only Infinite Audience tools and explain three useful waysthey could help a marketing team. Do not create, enrich, deliver, purchase, or modifyanything until I approve the specific action.Then try a product prompt:
Help me plan a customer enrichment workflow for a CRM export. First ask what outcomethe marketing team wants, what identity fields the file contains, and which enrichedsignals will change a decision. Recommend a simple approach and show any quote beforestarting billable work. Wait for my approval before you run it.Available tools
Section titled “Available tools”The server currently exposes 92 tools. Each tool lists the required token scope; some account operations also require an organization role.
Discovery & Schema
| Tool | Scope | What it does |
|---|---|---|
discovery_count | discovery | Count records matching criteria — accepts raw filters, segment_id, audience_id, or segment_ids + set_logic for composition preview. |
discovery_lookup | discovery | Return up to 25 anonymized records matching criteria — accepts raw filters, segment_id, audience_id, or segment_ids + set_logic. |
Campaigns
| Tool | Scope | What it does |
|---|---|---|
list_campaigns | discovery | List all campaigns for the organisation with status and audience count. |
create_campaign | purchase | Create a named campaign workspace with an optional brief and goals. |
get_campaign | discovery | Retrieve full campaign details including all linked audiences. |
update_campaign | purchase | Update a campaign name, brief, or status (active or archived). |
archive_campaign | purchase | Soft-archive a campaign. Linked audiences are preserved. |
link_audience_to_campaign | purchase | Link an existing audience to a campaign. Each audience can belong to at most one campaign. |
unlink_audience_from_campaign | purchase | Remove the link between an audience and a campaign, leaving the audience itself untouched. |
get_campaign_operations | discovery | List recent and active operations (segment/audience/match/delivery events) across everything linked to a campaign. |
Segments
| Tool | Scope | What it does |
|---|---|---|
list_segments | discovery | List all segments for your org. Supports filtering by subtype (filter/matched/similarity/propensity) and status. |
get_segment | discovery | Retrieve full segment details including filter_groups, subtype-specific metadata, record_count, and current_version. |
create_segment | purchase | Create a typed segment — filter, matched file upload, similarity, or propensity. Matched upload, analysis, and processing are free until the current run first participates in a successful delivery. Supports csv/json/jsonl/avro, optional gzip, and same-format shards. |
save_segment | purchase | Persist a new named filter segment with its filter criteria. Shorthand for create_segment with subtype=filter. |
bulk_create_segments | purchase | Create multiple segments in a single call (up to 25). Returns an array of created segment IDs. |
wait_for_segment | discovery | Block until an async segment (matched/similarity/propensity) reaches active or failed status. Polls every 15s up to 15 min. |
archive_segment | purchase | Archive a segment (or restore an archived one with restore: true). Always safe and reversible — never affects audiences that already reference it. Distinct from permanently deleting a segment via the REST API, which does change referencing audiences. |
duplicate_segment | purchase | Duplicate a segment with lineage tracking, preserving subtype and all subtype-specific data (data referenced, never recomputed). Filter duplicates start with a null count; other subtypes carry the source counts. 409 if a matched source's data is unavailable. |
get_segment_demographics | discovery | Get demographic breakdown (age, geo, behavioral) for a segment, evaluated over its own composition. Works for every subtype — matched/similarity/propensity bridge through a materialized id-set. |
get_segment_audiences | discovery | List every audience that references a segment, with campaign linkage. Use before archiving, refreshing, or editing a segment to understand downstream impact. |
count_segment | discovery | Recount a segment. Runs a fresh BigQuery count for every subtype — filter counts directly against its own filter definition; matched/similarity/propensity run the same composed count used by audience/delivery counting. |
Audiences
| Tool | Scope | What it does |
|---|---|---|
list_audiences | discovery | List all saved audience builds with status, segment composition, and record count. |
get_audience | discovery | Retrieve details and segment composition for a specific saved audience. |
get_audience_demographics | discovery | Get demographic breakdown (age, gender, income, geo) for a saved audience. |
create_audience | purchase | Create an audience — a subtype-agnostic composition wrapper. Accepts segment_refs with include/exclude roles and set_logic. Audiences are the delivery payload; use create_segment for typed cohort creation. |
save_audience | purchase | Persist a new named audience from a list of segment IDs for quoting and delivery. |
patch_audience | purchase | Partially update — rename, add/remove segments, change set_logic (union/intersection), or transition status (active/archived). |
recount_audience | discovery | Trigger a fresh record count for an audience after its composition changes. |
delete_audience | purchase | Soft-delete a saved audience by ID. |
bulk_create_audiences | purchase | Create multiple audiences in a single call (up to 25). Returns an array of created audience IDs. |
bulk_patch_audiences | purchase | Update name, status, or set_logic for multiple audiences at once (up to 50). |
bulk_archive_audiences | purchase | Soft-delete multiple audiences in a single call (up to 50). |
bulk_patch_segments | purchase | Update name and/or status for multiple segments at once (up to 50). Best-effort with per-segment failures. |
bulk_archive_segments | purchase | Archive multiple segments in a single call (up to 50). Status-only and reversible — referencing audiences are unaffected. |
duplicate_audience | purchase | Duplicate an audience with lineage tracking (parent + root ancestor, segment versions pinned). Carries composition; the duplicate starts with a null record count — recount to populate. |
refresh_audience | purchase | Refresh one named member segment (segment_id is required) and bump this audience's version/expiry/status. Matched refreshes accept the established file format, optional gzip compression, and same-format shards. Other member segments and audiences remain untouched; recount separately. |
refresh_segment | purchase | Re-derive one segment without touching its audiences. Filter is synchronous; matched returns fresh upload URL(s) for the established format with optional gzip compression and same-format shards; similarity/propensity relaunch their workflow. The response lists affected_audiences. |
Enrichment & Catalog
| Tool | Scope | What it does |
|---|---|---|
get_field_catalog | discovery | Return enrichment fields, templates, and per-org pricing structure. Call before quote_delivery or deliver_audience to present options. |
get_data_release | discovery | Return the platform current data-release version. Compare against a match result's resolution_action to tell whether a direct Refresh returned unchanged data. |
analyze_audience_upload | discovery | After uploading a csv/json/jsonl/avro file (plain or gzip) to the presigned URL, run bounded streaming column inference. Returns analysis.columns[], unmapped_columns[], and recommendations[]. |
confirm_column_mappings | purchase | Confirm column mappings for a staged matched-segment upload, moving the file into place and starting identity resolution. |
cancel_matched_upload | purchase | Abort a staged (hitl:true) matched-segment upload without confirming. The segment is left untouched. |
discovery_overlap | discovery | Calculate overlap count, percentage, and demographic deltas between two segments or audiences. |
discovery_crosstab | discovery | Generate a cross-tabulation pivot table across two demographic dimensions for a segment, audience, or raw filter expression. |
match_records | purchase | Synchronous micro-batch identity resolution for up to 100 contact records submitted inline. Returns matched records with iag_person_id and enrichment fields. Records usage per matched record; amount_charged is a pending estimate. |
list_match_runs | discovery | List past micro-batch match calls — run_id, match_count, match_rate, conservative pending-usage estimate (amount_charged), field_list, created_at. Cursor-paginated via before= timestamp. |
get_match_run | discovery | Retrieve a single micro-batch run by run_id. Returns full details including input_record_count, match_rate, conservative pending-usage estimate (amount_charged), and expires_at. |
list_integration_runs | discovery | List safe partnership activity with provenance, counts, selected fields, and billing rail. Supports one indexed filter and cursor pagination. |
get_integration_run | discovery | Retrieve one safe partnership-run projection by run_id without exposing private workflow artifacts. |
list_saved_integration_matches | discovery | List provider-neutral private saved-match holding collections with aggregate metadata only. |
preview_saved_integration_segment | discovery | Preview exact unique, duplicate, expired, suppressed, overlap, and net-addition counts without mutation or usage. |
build_saved_integration_segment | purchase | Create a matched segment or extend a compatible standalone matched segment from already-settled integration matches, without rerunning matching or creating an audience. |
get_saved_integration_segment_build | discovery | Read aggregate status and the durable segment ID for a queued saved-match materialization. |
list_file_match_jobs | discovery | List async file-based identity resolution jobs with status, match rate, and the one-time match estimate once first delivered (amount_charged is null beforehand), plus format/compression and segment/audience IDs. |
get_file_match_job | discovery | Get one file match job by match_id (= segment_id), including the one-time match estimate once first delivered (amount_charged is null beforehand), format/compression, matching status, field counts, lineage, audience ID, and errors. |
Delivery
| Tool | Scope | What it does |
|---|---|---|
quote_delivery | discovery | Quote a download with explicit output_format and output_compression axes. Returns itemized cost, balance sufficiency, and already_delivered for a free re-export of the same paid audience/version/template. |
deliver_audience | purchase | Deliver a download with explicit output format/compression. CSV/JSON/JSONL may use gzip; Avro uses native DEFLATE and rejects outer gzip. LiveRamp/Narrative stay unavailable until their partner pushes confirm egress. |
bulk_deliver_audiences | purchase | Deliver up to 25 audience downloads with shared fields and explicit output format/compression; artifact-axis-only re-exports are not rebilled. |
deliver_file_match | purchase | Trigger download delivery for a matched audience with explicit output format/compression. Returns a processing delivery_id; follow with wait_for_delivery. |
wait_for_delivery | discovery | Block until a delivery completes or fails (polls every 15 s, up to 15 min). Call after deliver_audience or deliver_file_match when status is processing. Returns download_urls[] on success. |
list_deliveries | discovery | List audience deliveries with status, cost, output format/compression, exact output bytes, and timestamps. |
list_file_match_deliveries | discovery | List deliveries for a file match, including output format/compression and exact output bytes. |
list_all_deliveries | discovery | List org deliveries with optional status, destination, and audience filters, including artifact axes and bytes. |
get_delivery | discovery | Get delivery status, artifact axes, exact bytes, and every output part URL. Download URLs are regenerated on each GET; do not cache them. |
Workflows
| Tool | Scope | What it does |
|---|---|---|
wait_for_workflow | discovery | Block until a similarity or propensity audience workflow completes. Returns completed status with audience_id, or paused gate info when hitl=true. |
respond_to_workflow_gate | purchase | Submit a user response to a paused HITL gate in a running workflow. Only used when hitl=true on audience creation. |
get_workflow_status | discovery | Check current step, status, and gate info for a running workflow. |
Billing
| Tool | Scope | What it does |
|---|---|---|
check_balance | account | View the routed billing projection: contract, rated current-period spend, credits, automatic recharge, safety overlays, payment readiness, and staleness. |
buy_credits | account | Begin an idempotent, payment-gated credit top-up for a self-billed prepaid org. Returns a durable request ID and status. |
check_topup_status | account | Read verified durable status for a top-up and return a payment action URL only when customer action is required. |
manage_subscription | account | Open the Stripe Billing Portal for payment-method management and invoice history only. Returns portal_url. |
change_subscription_tier | account | Schedule a tier and/or cadence change at the next billing period without proration. Owner only. |
cancel_subscription | account | Schedule the billing contract for cancellation at its verified boundary. Owner only. |
revert_cancellation | account | Revert a previously scheduled subscription cancellation. Owner only. |
get_account_usage | account | Retrieve operational counts, rated current-period spend and projection time, and compute ceiling usage. |
Team & Org
| Tool | Scope | What it does |
|---|---|---|
org_list_members | account | View all active and suspended members in your account. |
org_change_rolerole: owner | account | Promote or demote a member between admin and member roles. |
org_suspend_memberrole: owner/admin | account | Temporarily block a member from accessing the platform. |
org_reinstate_memberrole: owner/admin | account | Restore access for a previously suspended member. |
org_remove_memberrole: owner/admin | account | Permanently remove a member from your account. |
org_list_invitesrole: owner/admin | account | See all outstanding invites that have not yet been accepted. |
org_create_inviterole: owner/admin | account | Send an email invite link. Links expire after 7 days. |
org_revoke_inviterole: owner/admin | account | Cancel a pending invite so it can no longer be used. |
org_list_api_keysrole: any member | account | View all API keys for your account. Key values are never returned. |
org_create_api_key | account | Generate a new API key. The full key is shown only once — store it securely. |
org_revoke_api_key | account | Permanently deactivate an API key immediately. |
org_get_settings | account | Get org settings: name, invite code, webhook config, delivery destinations, and billing preferences. |
org_update_settingsrole: owner/admin | account | Update webhook config, delivery destinations, or billing preferences. |
org_renamerole: owner | account | Rename the organisation. |
org_rotate_invite_coderole: owner/admin | account | Generate a new shared invite code, invalidating the previous one. |
org_billing_contactsrole: owner | account | Get or replace billing contact emails for the organization. |
org_invoicesrole: owner/admin | account | List invoices and line items with collection status and hosted links. |
