Skip to content

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.

Server URL:

https://mcp.infiniteaudience.ai/mcp

Infinite 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.

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:

~/.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.

First prompt
List the available read-only Infinite Audience tools and explain three useful ways
they could help a marketing team. Do not create, enrich, deliver, purchase, or modify
anything until I approve the specific action.

Then try a product prompt:

Planning prompt
Help me plan a customer enrichment workflow for a CRM export. First ask what outcome
the marketing team wants, what identity fields the file contains, and which enriched
signals will change a decision. Recommend a simple approach and show any quote before
starting billable work. Wait for my approval before you run it.

The server currently exposes 92 tools. Each tool lists the required token scope; some account operations also require an organization role.

Discovery & Schema

ToolScopeWhat it does
discovery_countdiscoveryCount records matching criteria — accepts raw filters, segment_id, audience_id, or segment_ids + set_logic for composition preview.
discovery_lookupdiscoveryReturn up to 25 anonymized records matching criteria — accepts raw filters, segment_id, audience_id, or segment_ids + set_logic.

Campaigns

ToolScopeWhat it does
list_campaignsdiscoveryList all campaigns for the organisation with status and audience count.
create_campaignpurchaseCreate a named campaign workspace with an optional brief and goals.
get_campaigndiscoveryRetrieve full campaign details including all linked audiences.
update_campaignpurchaseUpdate a campaign name, brief, or status (active or archived).
archive_campaignpurchaseSoft-archive a campaign. Linked audiences are preserved.
link_audience_to_campaignpurchaseLink an existing audience to a campaign. Each audience can belong to at most one campaign.
unlink_audience_from_campaignpurchaseRemove the link between an audience and a campaign, leaving the audience itself untouched.
get_campaign_operationsdiscoveryList recent and active operations (segment/audience/match/delivery events) across everything linked to a campaign.

Segments

ToolScopeWhat it does
list_segmentsdiscoveryList all segments for your org. Supports filtering by subtype (filter/matched/similarity/propensity) and status.
get_segmentdiscoveryRetrieve full segment details including filter_groups, subtype-specific metadata, record_count, and current_version.
create_segmentpurchaseCreate 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_segmentpurchasePersist a new named filter segment with its filter criteria. Shorthand for create_segment with subtype=filter.
bulk_create_segmentspurchaseCreate multiple segments in a single call (up to 25). Returns an array of created segment IDs.
wait_for_segmentdiscoveryBlock until an async segment (matched/similarity/propensity) reaches active or failed status. Polls every 15s up to 15 min.
archive_segmentpurchaseArchive 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_segmentpurchaseDuplicate 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_demographicsdiscoveryGet 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_audiencesdiscoveryList every audience that references a segment, with campaign linkage. Use before archiving, refreshing, or editing a segment to understand downstream impact.
count_segmentdiscoveryRecount 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

ToolScopeWhat it does
list_audiencesdiscoveryList all saved audience builds with status, segment composition, and record count.
get_audiencediscoveryRetrieve details and segment composition for a specific saved audience.
get_audience_demographicsdiscoveryGet demographic breakdown (age, gender, income, geo) for a saved audience.
create_audiencepurchaseCreate 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_audiencepurchasePersist a new named audience from a list of segment IDs for quoting and delivery.
patch_audiencepurchasePartially update — rename, add/remove segments, change set_logic (union/intersection), or transition status (active/archived).
recount_audiencediscoveryTrigger a fresh record count for an audience after its composition changes.
delete_audiencepurchaseSoft-delete a saved audience by ID.
bulk_create_audiencespurchaseCreate multiple audiences in a single call (up to 25). Returns an array of created audience IDs.
bulk_patch_audiencespurchaseUpdate name, status, or set_logic for multiple audiences at once (up to 50).
bulk_archive_audiencespurchaseSoft-delete multiple audiences in a single call (up to 50).
bulk_patch_segmentspurchaseUpdate name and/or status for multiple segments at once (up to 50). Best-effort with per-segment failures.
bulk_archive_segmentspurchaseArchive multiple segments in a single call (up to 50). Status-only and reversible — referencing audiences are unaffected.
duplicate_audiencepurchaseDuplicate 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_audiencepurchaseRefresh 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_segmentpurchaseRe-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

ToolScopeWhat it does
get_field_catalogdiscoveryReturn enrichment fields, templates, and per-org pricing structure. Call before quote_delivery or deliver_audience to present options.
get_data_releasediscoveryReturn 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_uploaddiscoveryAfter 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_mappingspurchaseConfirm column mappings for a staged matched-segment upload, moving the file into place and starting identity resolution.
cancel_matched_uploadpurchaseAbort a staged (hitl:true) matched-segment upload without confirming. The segment is left untouched.
discovery_overlapdiscoveryCalculate overlap count, percentage, and demographic deltas between two segments or audiences.
discovery_crosstabdiscoveryGenerate a cross-tabulation pivot table across two demographic dimensions for a segment, audience, or raw filter expression.
match_recordspurchaseSynchronous 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_runsdiscoveryList 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_rundiscoveryRetrieve 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_runsdiscoveryList safe partnership activity with provenance, counts, selected fields, and billing rail. Supports one indexed filter and cursor pagination.
get_integration_rundiscoveryRetrieve one safe partnership-run projection by run_id without exposing private workflow artifacts.
list_saved_integration_matchesdiscoveryList provider-neutral private saved-match holding collections with aggregate metadata only.
preview_saved_integration_segmentdiscoveryPreview exact unique, duplicate, expired, suppressed, overlap, and net-addition counts without mutation or usage.
build_saved_integration_segmentpurchaseCreate 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_builddiscoveryRead aggregate status and the durable segment ID for a queued saved-match materialization.
list_file_match_jobsdiscoveryList 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_jobdiscoveryGet 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

ToolScopeWhat it does
quote_deliverydiscoveryQuote 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_audiencepurchaseDeliver 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_audiencespurchaseDeliver up to 25 audience downloads with shared fields and explicit output format/compression; artifact-axis-only re-exports are not rebilled.
deliver_file_matchpurchaseTrigger download delivery for a matched audience with explicit output format/compression. Returns a processing delivery_id; follow with wait_for_delivery.
wait_for_deliverydiscoveryBlock 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_deliveriesdiscoveryList audience deliveries with status, cost, output format/compression, exact output bytes, and timestamps.
list_file_match_deliveriesdiscoveryList deliveries for a file match, including output format/compression and exact output bytes.
list_all_deliveriesdiscoveryList org deliveries with optional status, destination, and audience filters, including artifact axes and bytes.
get_deliverydiscoveryGet delivery status, artifact axes, exact bytes, and every output part URL. Download URLs are regenerated on each GET; do not cache them.

Workflows

ToolScopeWhat it does
wait_for_workflowdiscoveryBlock until a similarity or propensity audience workflow completes. Returns completed status with audience_id, or paused gate info when hitl=true.
respond_to_workflow_gatepurchaseSubmit a user response to a paused HITL gate in a running workflow. Only used when hitl=true on audience creation.
get_workflow_statusdiscoveryCheck current step, status, and gate info for a running workflow.

Billing

ToolScopeWhat it does
check_balanceaccountView the routed billing projection: contract, rated current-period spend, credits, automatic recharge, safety overlays, payment readiness, and staleness.
buy_creditsaccountBegin an idempotent, payment-gated credit top-up for a self-billed prepaid org. Returns a durable request ID and status.
check_topup_statusaccountRead verified durable status for a top-up and return a payment action URL only when customer action is required.
manage_subscriptionaccountOpen the Stripe Billing Portal for payment-method management and invoice history only. Returns portal_url.
change_subscription_tieraccountSchedule a tier and/or cadence change at the next billing period without proration. Owner only.
cancel_subscriptionaccountSchedule the billing contract for cancellation at its verified boundary. Owner only.
revert_cancellationaccountRevert a previously scheduled subscription cancellation. Owner only.
get_account_usageaccountRetrieve operational counts, rated current-period spend and projection time, and compute ceiling usage.

Team & Org

ToolScopeWhat it does
org_list_membersaccountView all active and suspended members in your account.
org_change_role
role: owner
accountPromote or demote a member between admin and member roles.
org_suspend_member
role: owner/admin
accountTemporarily block a member from accessing the platform.
org_reinstate_member
role: owner/admin
accountRestore access for a previously suspended member.
org_remove_member
role: owner/admin
accountPermanently remove a member from your account.
org_list_invites
role: owner/admin
accountSee all outstanding invites that have not yet been accepted.
org_create_invite
role: owner/admin
accountSend an email invite link. Links expire after 7 days.
org_revoke_invite
role: owner/admin
accountCancel a pending invite so it can no longer be used.
org_list_api_keys
role: any member
accountView all API keys for your account. Key values are never returned.
org_create_api_keyaccountGenerate a new API key. The full key is shown only once — store it securely.
org_revoke_api_keyaccountPermanently deactivate an API key immediately.
org_get_settingsaccountGet org settings: name, invite code, webhook config, delivery destinations, and billing preferences.
org_update_settings
role: owner/admin
accountUpdate webhook config, delivery destinations, or billing preferences.
org_rename
role: owner
accountRename the organisation.
org_rotate_invite_code
role: owner/admin
accountGenerate a new shared invite code, invalidating the previous one.
org_billing_contacts
role: owner
accountGet or replace billing contact emails for the organization.
org_invoices
role: owner/admin
accountList invoices and line items with collection status and hosted links.