io.github.no-fait/infinite-audience

Infinite Audience

Enrich customer data, discover high-fidelity net-new audiences, and activate them in your channels.

Endpointhttps://mcp.infiniteaudience.ai/mcp (streamable-http)
Registry version1.0.5
Now57 tools · grade D (55) · pin ts_8d6b54343a59670d40303b1535d7d1e6 · protocol 2025-06-18
First / last listed2026-11-14 01:44 UTC / 2026-11-14 01:44 UTC
Grade over time2026-11-14: D (55), 57 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-11-14 01:44 UTC
57 tools, grade D (55)

Tools: discovery_count discovery_lookup get_account_usage check_balance check_topup_status create_audience deliver_audience deliver_file_match wait_for_delivery wait_for_segment quote_delivery list_deliveries list_file_match_deliveries list_all_deliveries get_delivery get_field_catalog get_data_release analyze_audience_upload confirm_column_mappings cancel_matched_upload archive_audience refresh_audience create_segment patch_audience list_segments archive_segment patch_segment list_audiences get_audience recount_audience get_audience_demographics duplicate_audience duplicate_segment get_segment_demographics refresh_segment get_segment_audiences count_segment list_campaigns create_campaign get_campaign update_campaign link_audience_to_campaign unlink_audience_from_campaign discovery_overlap discovery_crosstab match_records list_match_runs get_match_run list_integration_runs get_integration_run list_saved_integration_matches preview_saved_integration_segment build_saved_integration_segment get_saved_integration_segment_build list_file_match_jobs get_file_match_job get_segment

Current tools (57)

discovery_countPreview the count for one requested population; this does not create a saved audience. With segment_id, the current segment count snapshot is updated. Returns count and optional group_by breakdown. Use filters (AND conditions) or filter_groups (advanced compound filters), segment_id (resolve filters from a saved segment), audience_id (resolve from a saved audience), or segment_ids+set_logic (compo
params: filters, segment_id, audience_id, segment_ids, set_logic, excluded_segment_ids, filter_groups, group_by, include_breakdowns
discovery_lookupReturn up to 25 masked sample rows for audience matching criteria. Accepts: filters (raw Filter objects), segment_id, audience_id, segment_ids+set_logic (optionally with excluded_segment_ids for an ad-hoc "A minus B" preview), or filter_groups. All inputs are mutually exclusive — providing more than one is rejected with AMBIGUOUS_INPUT. Saved compositions and their exclusions are preserved. Requir
params: filters, segment_id, audience_id, segment_ids, set_logic, excluded_segment_ids, filter_groups, fields, limit
get_account_usageRead organization totals, recent delivery activity, subscription capacity consumed in the current period, capacity snapshot freshness, and compute utilization. Monetary capacity values use cents. Requires 'account-read' scope.
params: none
check_balanceRead the organization subscription capacity, reserved and pending consumption, replenishment status, and snapshot freshness. For an agency-managed organization, the response describes its attributed subscription consumption. Requires 'account-read' scope.
params: none
check_topup_statusRead verified status for an existing subscription capacity replenishment request. Supply the request identifier from its original confirmation. Requests requiring attention are identified for an account administrator. Requires 'account-read' scope.
params: request_id*
create_audienceCreate an audience from one or more existing segments. Audiences are the delivery payload — they have no subtype. To create filter or matched cohorts, use create_segment instead. Accepts segment_refs: [{segment_id, role: include|exclude}] to compose the audience with per-segment inclusion/exclusion control. set_logic controls how include-role segments are combined (union or intersection). Returns
params: name*, segment_refs*, set_logic, record_count, campaign_id
deliver_audienceDeliver an audience as a download using available organization subscription capacity. Required capacity depends on the selected records, attributes, and existing licenses. Supply template_id OR field_list — not both. Review the subscription capacity estimate from quote_delivery with the user before starting delivery. Returns delivery progress and signed download links once completed. Completion or
params: audience_id*, destination*, template_id, field_list, include_unmatched, output_format, output_compression
deliver_file_matchTrigger download delivery for a file-based identity match job. Always delivers to download — returns a signed URL to the enriched output file. Use this instead of deliver_audience for matched segments created via create_segment(subtype=matched). The match_id is the segment_id returned by create_segment(subtype=matched) — delivery still routes through an audience wrapper internally. Matched segment
params: match_id*, template_id, field_list, include_unmatched, webhook_url, output_format, output_compression
wait_for_deliveryBlock until a delivery completes or fails. Call this immediately after deliver_audience or deliver_file_match when the response has status: "processing". Polls GET /v1/audiences/{audience_id}/deliveries/{delivery_id} every 15 seconds. On success returns the full delivery object including download_urls[] — share these directly with the user. Each signed link is valid for 24 hours; expires_at is the
params: audience_id*, delivery_id*, timeout_seconds
wait_for_segmentPoll a segment until its status is "active" or "failed". Use after create_segment(subtype=matched) once the file has been uploaded AND confirm_column_mappings has succeeded — the segment will not progress past "pending" before that (the upload is staged). Do not call this before confirm_column_mappings. Custom membership is published internally; use this tool to read a pending segment publication.
params: segment_id*, timeout_seconds
quote_deliveryEstimate the subscription capacity required for a download using the audience version, selected fields, output settings, and current licenses. Saves a pending estimate and updates the audience estimate reference. Returns an expected amount and an upper bound, denominated in USD, together with available-capacity sufficiency and any shortfall. Active licenses reduce the expected identity component.
params: audience_id*, destination*, template_id, field_list, output_format, output_compression
list_deliveriesList up to 100 deliveries for one accessible saved audience. This audience-scoped path checks the audience and its member segments before returning history. Signed download links are omitted; call get_delivery for one completed artifact. Use list_all_deliveries for an org-wide paginated search. Requires 'discovery' scope.
params: audience_id*
list_file_match_deliveriesList deliveries for a file-based identity match job, including status and delivery IDs. Signed download links are omitted from history; call get_delivery for a specific completed delivery. Requires 'discovery' scope.
params: match_id*
list_all_deliveriesSearch org delivery history across audiences with pagination. Supports status, destination, and audience_id filters, Use audience_id to narrow the search to one audience, or list_deliveries for its latest 100 deliveries. Signed download links are omitted; call get_delivery for one completed artifact. Requires 'discovery' scope.
params: status, destination, audience_id, limit, cursor
get_deliveryGet status and details of a single delivery. Returns fresh 24-hour download_urls[] for completed download deliveries while the artifact is retained; expires_at is the artifact retention date, not the signed-link expiry. Use this to poll status after deliver_audience returns status: processing. Requires 'discovery' scope.
params: audience_id*, delivery_id*
get_field_catalogDiscover a bounded page of fields, descriptions, accepted aliases, allowed filter operators, coded values and coverage definitions. Search zip or zip_code for the canonical zip5 field. State publishes two-letter codes and full-name labels; either input is accepted. Defaults to filterable audience fields; use purpose=enrichment for all output fields. feature_store fields are enrichment-only unless
params: purpose, product_usage, template_id, field_name, search, limit, cursor, value_cursor, value_limit, include_pricing
get_data_releaseRead the current platform data-release version (current_release_major/minor) and snapshot timestamp. Does not refresh the registry or change saved data. Returns DATA_RELEASE_UNAVAILABLE if the registry is not populated yet. Requires 'discovery' scope.
params: none
analyze_audience_uploadAfter uploading a file to the presigned upload_url (or all same-format shards to upload_urls) returned by create_segment(subtype=matched), call this to run LLM-assisted column mapping inference. For a sharded upload, analysis runs against the first shard only — every shard is assumed to share the same schema; a mismatch fails the batch job later with a specific error, not silently here. Returns: s
params: segment_id*
confirm_column_mappingsConfirm column mappings for a staged matched-segment upload, starting identity resolution. Call this after analyze_audience_upload has been reviewed with the user and they approve (with or without edits). This moves the staged file into place — nothing runs before this call succeeds. Only call wait_for_segment after this returns ok. Pass exactly one of segment_id or audience_id — use audience_id w
params: segment_id, audience_id, column_mappings
cancel_matched_uploadAbort a staged matched-segment upload without confirming. Call this when the user declines to proceed after reviewing analyze_audience_upload's results. Clears the staged upload — no file move, no status/mapping-state change. The existing segment is retained; cancellation does not delete it or complete matching. Inspect it with get_segment and archive it with archive_segment if no longer needed. I
params: segment_id, audience_id
archive_audienceArchive a saved audience to hide it from the default list, or restore it with restore=true. Preserves its composition and delivery history. Requires the creator scope. Requires 'creator' scope.
params: audience_id*, restore
refresh_audienceRefresh one named member segment of an audience against the current IAG, then refresh the audience's own version/expiry. An audience is a composition of one or more member segments, possibly of different subtypes — there is no "primary" segment, so segment_id is required (400 SEGMENT_ID_REQUIRED if omitted, 400 SEGMENT_NOT_A_MEMBER if it is not part of this audience). Behaviour is specific to the
params: audience_id*, segment_id*, hitl, shard_count, compression
create_segmentCreate a segment of the specified subtype. Segments are the typed cohort definitions — audiences are composition wrappers built from segments. filter: reusable filter definition — returns immediately with status active and an unset count unless count_snapshot is supplied. Call count_segment to calculate its saved count. matched: upload a file — returns upload_url (30-min presigned), or upload_urls
params: subtype*, name*, filters, filter_groups, count_snapshot, record_limit, hitl, webhook_url, file_format, compression, match_level, spatial_mode, shard_count, create_audience, campaign_id
patch_audienceEdit name, description or labels, archive/restore, or change the composition of an existing audience. Also supports adding/removing included or excluded segments. set_logic must be "union" or "intersection" — never "exclusion". To exclude records, use add_excluded_segment_id. Requires 'creator' scope.
params: audience_id*, name, description, labels, status, set_logic, add_segment_id, remove_segment_id, add_excluded_segment_id, remove_excluded_segment_id
list_segmentsList a page of visible, non-archived saved segments with subtype, status, and record counts. Use when the user asks what segments they have; filter by subtype or pass a limit of 1–100. For one complete definition, call get_segment with its segment_id. Requires 'discovery' scope.
params: compact, cursor, include_archived, subtype, limit
archive_segmentArchive a segment to hide it from the default segment catalog and new audience compositions, or restore an archived one back to active. Archiving changes where the segment can be used; restoring it is a separate action. Archiving does not affect audiences that already reference this segment — their composition and record count are unchanged. This is distinct from permanently deleting a segment, wh
params: segment_id*, restore
patch_segmentEdit segment name, description or labels, or replace a filter segment definition. Supply filters OR filter_groups, never both. record_limit=null removes a size limit; a positive limit requires bounded State, City, or ZIP Code geography. Definition changes create a new version; renaming does not. Use archive_segment to archive or restore. Requires the creator scope. Requires 'creator' scope.
params: segment_id*, name, description, labels, filters, filter_groups, record_limit
list_audiencesList a page of non-archived saved audiences for this organization, including status, saved count and campaign_id (null when the audience is in no campaign). Use to find an audience_id before get_audience, recount_audience, or delivery; pass a limit of 1–100. Pass campaign_id to list one campaign's audiences, or unlinked=true for audiences in no campaign (not both). A filtered page can hold fewer t
params: compact, cursor, include_archived, limit, campaign_id, unlinked
get_audienceGet customer-facing details of an audience, including expanded segment summaries and composition. Use when the user wants to inspect a specific saved audience. An expired audience may have its stored status synchronized to expired during this read; no build or count is started. Requires 'discovery' scope.
params: audience_id*
recount_audienceRefresh the stored record_count of one saved audience from its current included/excluded segment composition. Call after adding or removing segments. For an unsaved population preview use discovery_count; for a segment snapshot use count_segment. Requires 'discovery' scope.
params: audience_id*
get_audience_demographicsProfile a saved audience composition, including its segment set logic and exclusions. Returns a BigQuery-computed demographic breakdown, including median age, gender split, homeowner %, children %, college-educated %, and high-income %. Results may populate a 20-minute server-side cache and record query telemetry; the audience definition is unchanged. Requires 'discovery' scope.
params: audience_id*
duplicate_audienceCreate a duplicate of an existing audience with lineage tracking (parent_audience_id + derived_from root ancestor, segment versions pinned at duplicate time). The duplicate carries the source composition (segment_ids, excluded_segment_ids, set_logic), is immediately active, and starts with record_count null — call recount_audience for a fresh count. Optionally link the duplicate to a campaign. Req
params: audience_id*, name, campaign_id
duplicate_segmentCreate a duplicate of an existing segment. Preserves the source subtype and all subtype-specific data: filter criteria for filter segments; match results, column mappings, and match counts for matched segments; immutable membership version and expiry for custom segments (underlying computed data is referenced, never recomputed). Lineage is recorded (parent_segment_id, derived_from root ancestor, p
params: segment_id*, name
get_segment_demographicsProfile one saved segment on its own, without any audience set logic or exclusions. Returns a BigQuery-computed demographic breakdown (age buckets, geography, and a behavioral/financial extra when available) evaluated directly over the segment's own definition — the segment-level path, with no audience composition (set_logic/exclusions) applied. Works for any subtype (filter, matched, custom) — no
params: segment_id*
refresh_segmentRe-derive a single stale or expired segment from the current IAG. Updates ONLY the segment — referencing audiences are never touched; the response lists them in affected_audiences so you can recount or refresh them (use refresh_audience for a whole-composition refresh). Behaviour is subtype-specific: - filter: synchronous — bumps current_version, nulls record_count, resets the 90-day TTL, returns
params: segment_id*, hitl, force, shard_count, compression
get_segment_audiencesList every audience that references a segment, with campaign linkage. Returns audiences[] ({id, name, campaign_id, status, record_count}), audience_count, and campaign_count. Use before archiving, refreshing, or editing a segment to understand downstream impact, or when the user asks where a segment is used across campaigns. Requires 'discovery' scope.
params: segment_id*
count_segmentRefresh the stored record_count of one saved segment, not its parent audience. Runs a fresh BigQuery count over the segment's own definition for any subtype (filter, matched, custom), updates segment.record_count. Returns {segment_id, record_count}. For an unsaved population preview use discovery_count; for a composed audience snapshot use recount_audience. Requires 'discovery' scope.
params: segment_id*
list_campaignsList a page of campaigns for the organisation. Use when the user asks "what campaigns do I have?" or "show my active campaigns". Returns each campaign brief and status; use get_campaign for linked audience details. Pass the returned next_cursor as cursor to fetch another page. Requires 'discovery' scope.
params: compact, status, limit, cursor
create_campaignCreate a new campaign workspace with an optional brief and goals. Use when the user wants to start a new initiative, project, or campaign. Returns the new campaign object including its id. Requires 'creator' scope.
params: name*, description
get_campaignRetrieve customer-facing details for a campaign including its brief and linked audience summaries. Use when the user asks about a specific campaign or wants to see what audiences are in it. Linked segments are summaries; call get_segment with a segment ID to inspect its filter_groups definition. Requires 'discovery' scope.
params: campaign_id*
update_campaignUpdate a campaign name, description, or status. Set status=archived to soft-archive it while preserving linked audiences; set status=active to restore an archived campaign. Requires 'creator' scope.
params: campaign_id*, name, description, status
link_audience_to_campaignLink an existing audience to a campaign. Each audience can belong to at most one campaign. This is idempotent — calling it again for an already-linked pair is safe. Fails with AUDIENCE_ALREADY_LINKED (naming current_campaign_id) if the audience is already in a different campaign — unlink it there first. Requires 'creator' scope.
params: campaign_id*, audience_id*
unlink_audience_from_campaignRemove the link between an audience and a campaign, leaving the audience itself untouched. This is idempotent — calling it again for an already-unlinked pair is safe (returns ok:true). Requires 'creator' scope.
params: campaign_id*, audience_id*
discovery_overlapCalculate the overlap between two audience criteria sets. Returns overlap_count, overlap_pct (percentage of the smaller population), and demographic_deltas. Each side (a and b) independently accepts EXACTLY ONE of: audience_id, segment_id, segment_ids+set_logic, filter_groups, or filters (more than one per side is rejected with AMBIGUOUS_INPUT). Saved composition, exclusions, and record limits are
params: a, b, audience_id_a, audience_id_b
discovery_crosstabGenerate a cross-tabulation pivot table across two demographic dimensions. Returns rows, columns, bounded cells, total_count for the full population, displayed_count for visible cells, and truncated when row/column limits omit categories. Accepts EXACTLY ONE of: filters (flat array), filter_groups, segment_id, audience_id, or segment_ids+set_logic to define the audience population (more than one i
params: filters, filter_groups, segment_id, audience_id, segment_ids, set_logic, row_field*, col_field*, row_label, col_label, max_rows, max_cols
match_recordsPerform real-time identity resolution on up to 100 records. Returns run_id, match_count, record_count, match_rate, and records[] — one output record per input record, matched or not (each with row_id, iag_person_id, match_level, match_type, match_confidence, enrichment fields, and the licensing labels below). iag_person_id is an org-scoped, non-reversible id: present on a real match, or a best-eff
params: records*, field_list, template_id, match_level, spatial_mode
list_match_runsList past micro-batch identity match calls for the org. Returns run_id, match_count, match_rate, field_list, created_at, and expires_at. Results are cursor-paginated — pass next_cursor as cursor to fetch older pages. The before timestamp is a legacy alternative. Reported subscription capacity consumption is an estimate in USD; final rated consumption may differ. Use to audit recent match activity,
params: limit, cursor, before
get_match_runRetrieve a single micro-batch match run by its run_id. Returns full details: match_count, match_rate, input_record_count, estimated subscription capacity consumption in USD, field_list, status, created_at, expires_at. Requires 'discovery' scope.
params: run_id*
list_integration_runsList safe, retained integration activity for this organization. Intermediate workflow artifacts stay private, while this projection records provenance, counts, selected fields, and subscription capacity source. Results are cursor-paginated. Supply at most one of provider, connection_id, kind, or status; use next_cursor to continue. Requires 'discovery' scope.
params: provider, connection_id, kind, status, limit, cursor
get_integration_runGet one retained integration run by run_id. Returns customer-safe provenance, selected fields, record counts, processing status, and subscription capacity source; intermediate workflow artifacts are not exposed. Use an ID from list_integration_runs. Requires 'discovery' scope.
params: run_id*
list_saved_integration_matchesList saved integration matches available to build into a segment. Returns aggregate counts, refreshes stored collection counts, and may initialize collection metadata. Use preview_saved_integration_segment before building. Requires 'discovery' scope.
params: none
preview_saved_integration_segmentPreview exact unique identities, duplicate receipts, expiry/privacy exclusions, existing overlap, and net additions before creating or extending a segment. Returns an estimate for review before materialization. Requires 'discovery' scope.
params: filters, target_segment_id
build_saved_integration_segmentCreate a matched segment, or add unique saved identities to a compatible standalone matched segment. Call preview_saved_integration_segment first and confirm the exact counts and target with the user. Adding to an existing segment replaces its current version. Completion or failure may notify configured external webhooks and opted-in users by email. Reuses previously resolved identities and return
params: mode*, segment_name, target_segment_id, filters, request_id
get_saved_integration_segment_buildCheck a saved-match segment materialization by materialization_id after build_saved_integration_segment. Returns aggregate progress/status and the durable segment ID once complete; it does not start another build. Requires 'discovery' scope.
params: materialization_id*
list_file_match_jobsList async file-based identity resolution jobs for the org. Each job corresponds to a matched segment created via create_segment(subtype=matched). Returns match_id, name, status, matching_status, input_record_count, match_count, match_rate, file_format, compression, segment_id, audience_id, audience_status, created_at, expires_at. Matching capacity consumption is reported after the first successfu
params: limit, status, cursor, before
get_file_match_jobRetrieve a single file-based identity resolution job by its match_id (= segment_id). Returns full details including matching_status, file_format, compression, field_counts, source_job_id, audience_id, audience_status, and error_message if failed. Matching capacity consumption is reported after the first successful delivery. Its monetary estimate is denominated in USD and covers the matching compon
params: match_id*
get_segmentFetch one segment by segment_id. Returns its customer-facing subtype, status, count, and subtype-specific fields. Filter segments include the complete filter_groups definition and current_version; matched and model-generated segments expose their own relevant fields. An expired segment may have its stored status synchronized to expired during this read; no build or count is started. Requires 'disc
params: segment_id*

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.