archive_resource
ChatGPTArchive a supported resource to stop future updates without deleting its configuration. If live downstream dependencies block the change, inspect the dependency graph and acknowledge the exact resources with cascade_to, or acknowledge all of them with cascade_to_all; archive cascades downstream. A migration that observes a resource does not block archive and is not cascaded. Do not assume archiving cancels work already in flight: inspect a Target's status before using this to pause external delivery, and treat an active run as potentially completing. Resources that have never built may not yet support archiving. Built-in Traits are read-only. Use deletion only when the configuration should be removed.
archive_use_case
ChatGPTArchive a use case. Sets archived_at to the current time. Archived use cases still appear in list_use_cases and get_use_case (so audit / recovery work), but the dashboard hides them by default. Outside the revision stream — does not bump revision_id. Reversible with unarchive_use_case.
create_account
ChatGPTCreate a direct subaccount when one customer needs separate data, users, and configuration for a brand, region, business unit, or other access boundary while billing remains with the parent. Each subaccount gets its own Connections, Datasets, Cohorts, models, Scopes, and Targets. Only a top-level account can create one, and subaccounts cannot nest further. The new account inherits the parent plan and eligible grants. This provisions a billable account, and its name appears in customer-facing records.
create_atlas
ChatGPTCreate an Atlas that imports geographic locations — stores, branches, dealers, or service points — from a Connection so Cohorts can filter people by proximity, Scopes can attach the nearest location to each person, and Market Opportunity Analyses can scope to a footprint. Required: name, options with type (and connection_id unless the account's hosted CSV connection should be provisioned), and output_to_locations. output_to_locations must place each location by exactly one of three column groups: address columns (house_number_and_street, city, state, postcode), a latitude/longitude pair, or a single geometry column — mixing them is rejected. Set reference_key to give locations stable identifiers so downstream Cohorts, Scopes, and Market Opportunity Analyses can filter to specific ones, and properties to carry extra per-location values to filter on. Addresses are geocoded during the build. Hosted CSV data must already be uploaded to the directory named in options. Creation queues asynchronous ingestion; check the job state and counts before building downstream resources.
create_attribute
ChatGPTCreate an Attribute that projects assertion events into one value per person, such as current loyalty tier, latest product category, or total activity. Cohorts can select people by the value, models can use it, and Scopes can deliver it through Targets. This tool defines the projection but does not upload or return source records or person-level values. Required: name, literate, description, category, tier, feature_store_id, stream_name, and value_property_name. The feature store and Stream must already exist in the account.
create_cohort
ChatGPTCreate a Cohort, the reusable population definition for goals such as customers who churned, high-value buyers, unconverted leads, lapsed donors, recent purchasers, or people near stores or service points. Outcomes use Cohorts as target and eligibility populations, Persona Sets use them as segmentation sources, and Scopes use them as delivery populations or exclusions. Required: name. Membership may use Trait, Attribute, Stream-event, Place, Atlas location_conditions, and recency conditions; inspect the relevant list tools first to find valid inputs, and include stream_name with Stream conditions. Prefer location_conditions for store/branch footprints, naming the atlases under locations; a Cohort may not set both location_conditions and place_conditions. Required conditions combine with AND, while optional conditions form an OR group. Creation starts asynchronous population evaluation.
create_connection
ChatGPTCreate a Connection so the account can read customer data from, publish results to, or import locations from an external warehouse, cloud store, or SaaS system. A Connection is the shared access and credential layer: create a Dataset against it for ingestion, an Atlas against it for locations, or a Target against it for delivery. options.type selects connectors such as Snowflake, ClickHouse, BigQuery, Postgres, S3, GCS, Azure Blob, HubSpot, Salesforce, Marketo, or mParticle and determines the credential fields. Confirm that the connector supports the intended ingress or egress direction before creating it. classic and platform-managed types such as hosted_csv, lookup_api, and merge cannot be created here. Snowflake creation generates an RSA keypair and returns the public key that must be installed in Snowflake. ClickHouse creation generates an Ed25519 keypair and returns the OpenSSH public key that must be installed on the ClickHouse user. BigQuery, GCS, S3, and Athena creation assigns a unique Faraday service account or IAM role (gcp_service_account_email or aws_iam_role_arn); grant that account or role access, then force-update. Athena also needs aws_customer_role_arn: an IAM role in the customer's AWS account that Faraday's unique role assumes so Athena runs (and is billed) in that account. This tool is disabled in this MCP client by policy. Ask the user to complete this action in Faraday Enterprise at https://app.faraday.ai.
create_dataset
ChatGPTCreate a Dataset that tells the account how to import one customer, order, lead, donation, attendance, or event source from a Connection. It resolves rows into people through identity fields, maps source columns into per-person Traits, and emits event rows into Streams for audiences and models. Required: name, matching options.type and connection_id, and identity_sets. Creation queues ingestion of the source data.
create_market_opportunity_analysis
ChatGPTCreate a Market Opportunity Analysis to size and map where likely customers are concentrated for questions such as where to expand, which regions have the most headroom, or where strong lookalikes live. It turns an acquisition Outcome over a Scope's market population into a geographic opportunity report; use a Persona when the question concerns one customer segment. Required: name, scope_id, and outcome_id; the Outcome must already be in the Scope payload. Optional persona_set_id and persona_id narrow the analysis, and the Persona Set must also be in the Scope payload. Optional locations with atlas_ids scopes the report to specific Atlas footprints. The Scope should cover the full market being measured and should not exclude existing customers, since they provide evidence of demand. Creation starts an asynchronous report build and may require an enabled plan feature.
create_migration
ChatGPTCreate a FIG v1-to-v2 migration owned by the current FIG v2 account. Required: type: fig_v1_to_fig_v2, fig_v1_account.id, datasets, and targets (either array may be empty). The creating user must have access to both accounts, and paired datasets/targets must belong to the stated accounts. The two accounts must also be related in the account tree, sharing a parent or one being the parent of the other, which guards against naming the wrong account: account names are not unique. Name the account whose work was rebuilt, never a parent account that merely contains it. A FIG v2 account that is the parent of the FIG v1 account is only accepted when it holds no other accounts, because migrating would otherwise show the FIG v1 members every other account under that parent. Approving the migration suspends the FIG v1 account, so naming a parent suspends the account that holds the contract and the usage roll-up for everything beneath it. The relationship also decides what the move does to the hierarchy: siblings both keep their parent, while a FIG v2 account created underneath its FIG v1 account moves up into its place and adopts its other subaccounts. Accounts already paired by a migration cannot be paired again unless that migration was rolled back.
create_outcome
ChatGPTCreate a propensity Outcome for questions such as who will churn, convert, buy again, donate, attend, upgrade, respond, or become high value. The platform learns from the account's person attributes and behavior, then scores people by how likely they are to attain the behavior represented by a Cohort. Required: name and attainment_cohort_id, the Cohort of people who attained it. Optional: eligible_cohort_id limits who can be scored, while attrition_cohort_id supplies clear counterexamples. After the model builds, inspect its analysis and add the Outcome to a Scope payload to publish scores for retention, acquisition, lead ranking, or other action. With preview: true, the configuration is saved but the model does not build; otherwise creation starts an asynchronous build whose progress appears in the returned resource's job state.
create_persona_set
ChatGPTCreate a Persona Set to discover distinct, data-driven groups within a customer, donor, lead, fan, or other Cohort. The platform clusters people by shared attributes, which answers questions such as 'what kinds of buyers do we have?' without requiring segment rules in advance. Required: name and cohort_id. Leave number_of_clusters unset to choose the cluster count automatically; set it only when the use case requires an exact count. preview: true saves the configuration without building it. After the asynchronous build finishes, use get_persona_set_dimensions to understand each group, rename its Personas with update_persona, and add the Persona Set to a Scope payload when each person should receive a segment assignment.
create_place
ChatGPTCreate a reusable Place for geographic questions such as people near stores, households inside a service area, or leads in a sales territory. Use the Place in a Cohort's place conditions to include or exclude people by location; that Cohort can then drive modeling, market analysis, or delivery. Required: name and exactly one location source: geojson or addresses. Address inputs are resolved asynchronously, so poll the Place's status before using it. The schema defines the accepted GeoJSON shapes and address fields.
create_recommender
ChatGPTCreate a Recommender for per-person next-best products, content, offers, locations, courses, categories, or upgrades. It learns from one interaction Stream, such as transactions, views, plays, or visits, and the chosen Stream property names the item being recommended. Required: name, stream_name, and stream_property_name; inspect the Stream first to confirm that it has enough recent events and the item property is populated. After the model builds, inspect its analysis and add it to a Scope payload to publish ranked recommendations. preview: true saves the configuration without building it. This feature is experimental and may require plan access.
create_scope
ChatGPTCreate a Scope that selects people and produces person-level fields for delivery. Its population combines Cohorts and exclusions; its payload can include identity fields, predictions, Persona membership, recommendations, Traits, Attributes, Cohort membership, and proximity to Atlas locations via payload.location. A Scope computes this data but does not send it until a Target uses it. Required: name, population, payload, and preview. An empty population.cohort_ids can select the entire available US population. Start in preview and confirm the population and fields before turning off preview mode.
create_stream
ChatGPTFind or create a Stream, the typed event channel for a kind of customer behavior such as transactions, signups, cancellations, page views, donations, clicks, attendance, or support events. Datasets emit events into Streams; behavioral Cohorts query them, Outcomes learn from them, and Recommenders use them as interaction histories. Names are lowercase identifiers that start with a letter and may contain digits or underscores. If the name already exists, the existing Stream is returned unchanged. Dataset output_to_streams mappings usually create Streams automatically; invoke this tool only when the Stream must exist before its Dataset mapping is added.
create_target
ChatGPTCreate a Target that sends a Scope's person-level population and payload to a destination. The payload can include identity fields, predictions, Persona membership, recommendations, Traits, Attributes, and Cohort membership. Destinations include ad platforms, email and customer systems, warehouses, files, the Lookup API, and webhooks. Without a Target, a Scope computes context but does not send it anywhere. Required: name, scope_id, connector-specific options, and representation; destinations backed by a Connection also require connection_id. Creation may send customer data outside Faraday, so confirm the destination, population, payload, representation, filters, and limits with the user before calling this tool.
create_trait
ChatGPTFind or create a field for a stable per-person value from the account's own data, such as loyalty tier, lifetime value, preferred category, internal score, or customer status. A Dataset populates it through output_to_traits; Cohorts can then select people by the value, models can use it, and Scopes can deliver it through Targets. This tool defines the field but does not upload or return person-level values. name must be lowercase snake case and unique within the account. Set statistical_type to match the field's meaning.
create_upload
ChatGPTUpload a UTF-8 flat file of customer, order, lead, donor, or event data to the account's Hosted CSV storage. The content argument is the raw file body. Use it only when the user asks to add the file to the account. A file with the same directory and filename is replaced, and matching Hosted CSV Datasets are queued to ingest it. This inline tool is for megabyte-scale files; use an S3 or GCS Connection for larger or recurring files. This tool is disabled in this MCP client by policy. Ask the user to complete this action in Faraday Enterprise at https://app.faraday.ai.
create_use_case
ChatGPTCreate a use case, the account's durable record of one customer problem and how the configured resources solve it. Use this for goals such as churn prevention, lead scoring, donor reactivation, audience delivery, or market expansion so later operators and agents can recover the intent behind the resource graph. Required: title. Optional preface fields record the background, problem, and solution; optional technical_details markdown records the machine-readable annex the reviewer and configuration auditor consume, and draft marks the use case a work in progress. There is no need to link resources to it: the configuration audit works out which resources serve each use case.
create_webhook_endpoint
ChatGPTCreate an HTTPS webhook endpoint so another system can react when asynchronous resource work fails or finishes with new output, such as refreshing a dashboard after Target delivery, starting work after Dataset ingestion, or alerting on a model error. Subscribe with resource.errored and/or resource.ready_with_update. The response returns the signing secret exactly once; store it before discarding the response so the receiver can verify later deliveries. If it is lost, delete and recreate the endpoint.
delete_migration
ChatGPTDelete an unapproved migration owned by the current FIG v2 account. Approved migrations cannot be deleted, including ones support has rolled back, though a rolled-back migration stops blocking a new migration for the same accounts.
delete_resource
ChatGPTDelete a supported resource. By default the resource is soft-deleted and hidden while stored references remain; hard_delete: true removes it outright. Deletion is refused while blocking downstream dependencies remain, so inspect the dependency graph first. Archive the resource instead when a reversible pause is required. Accounts, Attributes, uploads, webhook endpoints, and use cases use other lifecycle tools.
delete_upload
ChatGPTPermanently delete one hosted CSV file. The call returns 404 when the file does not exist. Every Dataset for the same directory is queued to remove rows that came from the deleted file, and every Atlas for the same directory is rebuilt without it, which can change downstream populations and deliveries.
delete_webhook_endpoint
ChatGPTPermanently delete a webhook endpoint. Delivery stops and the signing secret cannot be recovered. Disable the endpoint instead when a reversible pause is required.
describe_insights_schema
ChatGPTAsk Faraday: describe the BigQuery schema for aggregate analysis over the Faraday Identity Graph, so you can write a query against it. This is step one of Ask Faraday (also called Insights), the way to ask aggregate questions about this account's customers and markets; when the user says "Ask Faraday", start here. CALL THIS FIRST — before writing any insights query — then call search_attributes to get the exact column names and bucket boundaries for the attributes your question needs. Returns: the tables available to this account and their fully-qualified BigQuery names, every column with its meaning, which aggregate functions the privacy policy permits, the k-anonymity threshold, a worked example query in this account's own column names, and the caveats that change how results should be read. Use this for distribution and comparison questions — income distributions of customers vs. non-customers nearby, what differentiates two groups, how store catchments compare, how a customer base has shifted by acquisition quarter. These views return aggregates only and never person-level rows, so this is not a way to retrieve data about individuals; use a Scope delivered through a Target for that. Read-only, and costs nothing to call.
force_update_resource
ChatGPTQueue an immediate rebuild when fresh work is needed before the normal schedule, such as pulling new source rows, re-evaluating a Cohort, retraining an Outcome, recomputing a Scope, redelivering a Target, or refreshing Migration Lookup API metrics. The resource type determines the work: a Connection is re-read, a Dataset is ingested, an Atlas is rebuilt, a Cohort is evaluated, a model or Scope is rebuilt, a Target is published, and a Migration refreshes metrics (and performs the account move when already approved). The call returns after queuing; inspect the resource job state for completion. Repeated calls made before processing starts may collapse into one run. Confirm the intent before forcing a Target because it sends data to the external destination immediately.
get_account
ChatGPTGet the account named by account_id, including its name, parent account, contract renewal date and monthly cost, job status, and identity-graph configuration.
get_account_audit
ChatGPTOne configuration audit of the account named by account_id, in full. changes lists what would bring the account in line with its use cases — resources to create, and resources to update with the attributes that differ; a change with appliable: false needs a person (it sets a credential, or would require replacing the resource). An empty changes list means the account is aligned. orphaned_resources are resources no use case asks for — advisory only. conflicts are resources that use cases disagree about, for the knowledgebase owner to reconcile. use_cases says whether the account serves each use case. After an apply, each change carries applied_at or apply_error; a change with neither was not attempted.
get_account_billing
ChatGPTBilling detail for the account named by account_id: paid/outstanding QuickBooks invoices, recorded payments, and the per-feature usage rows that drive overage billing. Subaccounts of a parent are billed at the parent, so calling this on a subaccount typically returns empty invoice/payment arrays.
get_account_overview
ChatGPTThe foundational context for the account named by account_id: who the client is, what they do, the challenges they face, and the future state Faraday is helping them reach. It is the account-level framing that the individual use cases sit within. The overview is markdown and can be empty (a fresh account with nothing written yet returns { content: "" } and no revision_id). The returned revision_id is the optimistic-locking witness — pass it back to update_account_overview to detect concurrent edits.
get_account_overview_revision
ChatGPTRetrieve a specific saved revision of the account overview by revision_id. Returns the full content markdown along with the revision's created_at. Use this to inspect history surfaced by list_account_overview_revisions — pair it with update_account_overview (passing the LIVE revision_id) to roll the overview back to a prior phrasing.
get_account_usage
ChatGPTMost recent usage-metrics snapshot for the account named by account_id, sourced from the latest 'metrics_dashboard' usage event. Per-metric limit is intentionally null here — contractual limits live at the parent and are only emitted by get_account_usage_all. Use this for a quick 'how much has been consumed this period' read.
get_account_usage_all
ChatGPTUsage-metrics snapshot rolled up across the account named by account_id and every direct subaccount. Per-metric values are summed; contractual limits come from the parent account only (subaccounts do NOT raise the limit). Use this when checking whether a customer is approaching their plan ceiling.
get_atlas
ChatGPTRetrieve a single Atlas by ID, including its output_to_locations column mapping, the columns detected in the source data, connection options (with secrets concealed), and the row/locatable counts from its most recent build. counts.rows is how many source rows were read and counts.locatable how many produced a location — a gap between them means rows could not be placed. Use get_locations to read the locations themselves, and get_atlas_unplaced_rows to see which rows could not be placed and why.
get_atlas_ingress_logs
ChatGPTPage through an Atlas's build logs, newest first: one entry per build that re-read the Atlas's source or re-derived its locations from it, including builds that failed. A build that found nothing to do has no entry. Each log has its status, any error, when it started and finished, and a row funnel in metrics: rows in the source, rows that could not be parsed (malformed), rows placed as locations, and rows dropped per reason. A metric is absent when the build did not reach that stage. Use this to see why an Atlas has fewer locations than its source has rows, or why a build failed, then get_atlas_unplaced_rows to read the dropped rows. Pagination is limit (capped at 100) + offset; total_count is included in the response envelope.
get_atlas_unplaced_rows
ChatGPTPage through the source rows one Atlas build could not place as a location, each with its mapped source values as they appeared in the file and a reason naming what went wrong with the row's locator — for example an address that could not be geocoded, a missing or non-numeric latitude, or a geometry that could not be read. Reads the most recent build that has finished, successfully or not, unless log_id names another from get_atlas_ingress_logs; a build still running is skipped because it may not have written its rows yet and has not stored its counts. Each build keeps at most 1,000 rows, and only the Atlas's 10 most recent builds keep theirs, so total_count is at most 1,000 and an older build returns none; the build's log metrics hold the true count per reason. Returns {log_id, unplaced_rows, total_count}, where log_id is the build read — null, with no rows, when no build of the Atlas has finished yet. Pagination is limit (capped at 100) + offset.
get_attribute
ChatGPTGet one Attribute definition by ID, including its source Stream, aggregation, value property, interpretation, categories or breaks, status, and effective permissions. The definition can describe a person-level customer fact, behavior, interest, score, or other value. This response returns metadata about the field, not any person's value or the source records used to derive it. A Scope can still include person-level values for delivery through a Target.
get_cohort
ChatGPTRetrieve a single Cohort by ID, including its Trait, Attribute, Stream-event, Place, Atlas location_conditions, and recency conditions plus the latest population_count. Use this to understand exactly who a model or Scope refers to before reusing or changing the Cohort.
get_cohort_membership
ChatGPTGet cohort membership counts over time, bucketed by day, week, and month. Useful for sanity-checking that a freshly-edited Cohort behaves as intended (spot step-changes after a config edit), charting how a customer base / churn cohort / lead pool is trending, or confirming a 'recent activity' cohort is the expected size before wiring it into an Outcome's training population.
get_connection
ChatGPTRetrieve a single Connection by ID, including the configured options (with secrets like passwords / private keys concealed) and the latest job state. The connection's directionality field indicates whether it can be used for ingress, egress, or both.
get_dataset
ChatGPTGet one Dataset configuration by ID, including its column-to-Trait mappings, identity fields, place mapping, event Stream outputs, connection options with secrets concealed, and row counts.
get_dataset_ingress_logs
ChatGPTPage through every time Faraday pulled from this Dataset's upstream, with row counts, byte counts, durations, and any errors. Useful for debugging 'why didn't my new rows show up?', charting ingestion volume over time, or spotting a sudden cliff that points at an upstream issue. Pagination is limit (capped at 100) + offset; total_count is included in the response envelope.
get_graph
ChatGPTRetrieve the full dependency graph for the account — every edge between Connections, Datasets, Atlases, Streams, Cohorts, Outcomes, Persona Sets, Recommenders, Scopes, Targets, Places, Traits, Attributes, and Market Opportunity Analyses. Use this to orient on an existing account, understand how a use case is assembled, answer what a change or lifecycle action would affect, or plan an unblocking sequence before deletion. Each edge has upstream_* and downstream_* fields with id, literate name, type, status, archive timestamp, and the timestamps of last config edit, input read, and output write.
get_locations
ChatGPTPage through the locations an Atlas build produced — each with its geometry, its reference_key, and the properties its Atlas defines. Pass atlas_id to read one Atlas's locations, or omit it to read every location in the account. Use this to confirm a build placed the locations you expected, or to look up the reference keys to filter on downstream. Rows a build could not place are not locations; read them with get_atlas_unplaced_rows. Pagination is limit (capped at 100) + offset; total_count is included in the response envelope.
get_market_opportunity_analysis
ChatGPTRetrieve one Market Opportunity Analysis by ID, including its Outcome, Scope, optional Persona, job state, overall opportunity summary, and Google Sheets or Slides report URLs once ready. Use the completed report artifacts to inspect market size and location in detail.
get_migration
ChatGPTRetrieve one migration by ID, including the linked FIG v1 and FIG v2 accounts, dataset and target pairs, Lookup API pull counts, approval time, finish time, and job status. Read account_tree_relationship before concluding anything about the account hierarchy: when it is siblings, the move leaves every parent alone, so a finished migration is expected to leave the FIG v2 account under the same parent it always had, next to the now-suspended FIG v1 account. Only a FIG v2 account created underneath its FIG v1 account changes parent.
get_outcome
ChatGPTRetrieve one Outcome by ID, including its attainment, eligibility, and optional attrition Cohort references, predictor and bias settings, preview and build status, summary performance values, and report URL when available. Use get_outcome_analysis for feature importance and full validation metrics.
get_outcome_analysis
ChatGPTRetrieve a trained Outcome's structured analysis: feature importance and direction, lift curves and tables, ROC curve and AUC, metrics tables, modeling strategies, available tenure splits, and bias measurements. Use this to answer whether the model performs well, which inputs drive it, and how much lift its highest-ranked people provide. Use get_outcome_report when a ready-to-read HTML report is wanted instead of structured data.
get_outcome_report
ChatGPTGet a 1-hour signed URL pointing at the Outcome's HTML report — the standalone page Faraday generates with the model's marketing-grade summary, feature importances, and validation plots. Returns { url, expires_at, filename }. MCP tools can't stream HTML, so fetch the URL separately when the body is needed.
get_persona_set
ChatGPTRetrieve a single Persona Set by ID, with each persona's id/name and the source Cohort (as an ID reference).
get_persona_set_dimensions
ChatGPTFor every trait, the distribution per persona (over- and under-indexed values, summary stats). Use this to answer 'what makes each persona different?' and to drive a renaming pass that gives each cluster a real name ('the suburban repeat-buyer', 'the price-sensitive lapser', etc.) via update_persona. Same data the Faraday UI renders on the persona-set dimensions page.
get_place
ChatGPTRetrieve a single Place by ID with its full resolved geometry. Use this to verify a store footprint, service area, territory, or drive-time boundary before using it in a Cohort or changing the source locations.
get_recommender
ChatGPTRetrieve one Recommender by ID, including its interaction Stream, item property, predictor settings, preview state, report URL, and latest build metadata. Use this to confirm what behavior and item the model learns from before reusing or changing it.
get_recommender_analysis
ChatGPTRetrieve a Recommender's cross-validation analysis: feature importance plus top-N accuracy, average true-item rank, item distribution, ROC AUC, and ROC curve, with available splits for new or repeat and recognized or unrecognized people. Use this to judge model quality and choose a useful recommendation count before attaching the Recommender to a Scope.
get_scope
ChatGPTGet one Scope's population and person-level payload configuration, including any Atlas payload.location proximity settings, which attach either each person's nearest matching location or every matching location. The response contains configuration, status, columns, and aggregate counts, not person rows or values. Attached Targets can send those rows and values to external systems.
get_scope_analysis
ChatGPTGet score distributions for each Outcome and Recommender in a Scope, comparing the Scope population with each model's eligible population. Use this to see whether the selected population is concentrated in higher or lower score bands and to choose or review Target score thresholds; read the Scope record itself for population counts and output columns.
get_scope_efficacy
ChatGPTGet monthly observed attainment for eligible people in each date-based Outcome attached to a Scope, limited to the latest 12 months. Use this after deployment to compare prior predictions with later real outcomes. The report needs an active source Connection, is available only for Outcomes with date-based eligible and attainment Cohorts, starts in the month after Scope creation, and rebuilds monthly; it does not report Persona Set or Recommender efficacy.
get_stream
ChatGPTRetrieve one behavioral or assertion Stream by ID or event-type name, including its property metadata. Use this to confirm the event name and available properties before writing a Stream-based Cohort condition, Attribute, or Recommender. The Stream's name appears as type in its record, such as transactions.
get_stream_analysis
ChatGPTGet a time-series of event counts for a Stream. Useful for confirming a Dataset is actually emitting events (sanity-check after wiring up new ingress), spotting sudden cliffs that point at an upstream issue, or right-sizing a behavioral Cohort whose time_window depends on event recency.
get_target
ChatGPTGet one Target configuration by ID, including its Scope and Connection references, connector options with secrets concealed, representation, filters, limits, status, last successful output time, row count, and final columns. The response does not contain delivered person rows, and Hosted CSV files cannot be downloaded through this MCP.
get_target_analysis
ChatGPTGet the Target population's distributions for the Traits, Attributes, postcodes, and states selected in its analysis_config. Use this to explain who is in the output and check its demographic or geographic composition. Read get_target for build status, last output time, record count, and final columns; this analysis does not report delivery success or model lift.
get_target_analysis_report
ChatGPTGet a 1-hour signed URL pointing at the Target's analysis report (PDF). Returns { url, expires_at, filename }. Fetch the URL separately when the bytes are needed.
get_trait
ChatGPTGet one per-person field definition by ID, including its name, description, type, source, coverage, and the Datasets that populate it when it comes from the account's own data. This response returns metadata about the field, not any person's value. A Scope can still include person-level values for delivery through a Target.
get_trait_dimensions
ChatGPTFor a categorical Trait, the distribution of values across the US population (e.g. gender: { female: 0.51, male: 0.48, … }). Useful before relying on a Trait in a Cohort predicate (so the value enum is known) or for sanity-checking representativeness when explaining a model to a client. Numeric/boolean Traits typically return an empty distribution. Same data the Faraday UI renders on the dictionary page.
get_upload
ChatGPTGet a 24-hour signed download URL for an uploaded file. Returned as { url, expires_at }. MCP tools can't stream binary file contents, so fetch the URL separately when the bytes are needed. Returns a 404 error if the file doesn't exist. This tool is disabled in this MCP client by policy. Ask the user to complete this action in Faraday Enterprise at https://app.faraday.ai.
get_usage_stats
ChatGPTQuota-feature usage for the account named by account_id: real-time counts (number of users, scopes, datasets, cohorts, outcomes, persona_sets, recommenders, targets, streams, etc.) paired with the plan/subscription limit for each. Same shape as GET /usages in the REST API. Use this to answer 'are we at our quota for X?' — get_account_usage is for billing-period totals; this is for live counts.
get_use_case
ChatGPTRetrieve a single Use Case by id. Returns the full title, preface (background / problem / solution markdown blocks), technical_details (the machine-readable annex the reviewer and configuration auditor consume), the draft flag, the most recent review (its status, whether the use case is adequate, and its findings). (guide and resources are deprecated and no longer maintained; get_account_audit reports which resources serve each use case.) The revision_id is the optimistic-locking witness for update_use_case.
get_use_case_revision
ChatGPTRetrieve a specific saved revision of a use case by revision_id. Returns the full title, preface, technical_details, and draft flag for that revision (guide is deprecated and no longer maintained). The resources list is intentionally OMITTED on revision reads — resource links are a live property of the use case as a whole, not of any individual revision. Pair with update_use_case (passing the LIVE revision_id) to roll back.
get_webhook_endpoint
ChatGPTGet one webhook endpoint's destination URL, status, and lifecycle event subscriptions. The response omits the signing secret, and no MCP read tool can retrieve it after creation.
list_accessible_accounts
ChatGPTList every Faraday account the caller can act on, with their UUIDs, names, and parent_account_id (if any). whoami returns this same set as accessible_accounts. Call this when you want only the list, including with jmespath_filter. This tool does not take account_id. For a user, the set matches what the Faraday settings → team UI shows: their current account, accounts they've been explicitly added to, and the direct subaccounts of either. For an M2M client, the set contains its bound account and that account's direct subaccounts. Suspended accounts are filtered out. Read-only.
list_account_audits
ChatGPTConfiguration audits of the account named by account_id, newest first. Each audit compares the account's configuration with what its knowledgebase use cases require. status is running, ready, or error; a ready audit with not_applicable_reason concluded the account cannot be audited, and says why. apply_status reports whether someone has applied the audit. Listings omit the difference itself — call get_account_audit for changes, orphaned_resources, and use_cases.
list_account_overview_revisions
ChatGPTList every saved revision of the account overview, newest first. Returns just revision_id and created_at per entry — fetch a specific revision's content with get_account_overview_revision. Useful for auditing edits or recovering a prior phrasing.
list_accounts
ChatGPTList the direct subaccounts of the account named by account_id. Subaccounts isolate data and configuration for a tenant, sub-brand, region, or business unit. It does not include the parent account itself; use get_account for that.
list_atlases
ChatGPTList the collections of geographic locations the account has imported — store footprints, branch networks, dealer lists, service territories. Each Atlas maps a Connection's source columns onto locations, either by address, by latitude/longitude, or by a geometry column. List first before creating a new one: an existing store or branch Atlas is usually the one you want to reuse for spatial Cohort filters, nearest-location Scope payloads, or Market Opportunity Analysis scoping. Secrets in the underlying connection options are concealed.
list_attributes
ChatGPTList definitions for Attributes visible to the account. An Attribute projects assertion events into one value per person and records its source Stream, aggregation, value property, null handling, interpretation, and allowed use. Attributes can represent customer facts, behavior, interests, scores, or other person-level data from the account or the built-in consumer catalog. The tool returns field definitions and permissions, not values tied to named people or source records. Other tools can use an Attribute to select people, train models, or include person-level values in a Scope delivered through a Target. On accounts with identity_graph set (see get_account), this is THE surface for Faraday's built-in consumer data; prefer it over list_traits for anything Faraday-provided. On accounts without identity_graph, this returns an empty list and the built-in consumer data is exposed as Traits via list_traits.
list_cohorts
ChatGPTList the populations the account already has defined — 'customers', 'churned customers', 'high-value buyers', 'leads in our service area', 'donors who lapsed', etc. A Cohort is a population of people, defined by its trait and/or attribute conditions (e.g. age range, homeownership), stream-event conditions (e.g. 'purchased in the last 90 days'), place conditions, or Atlas location_conditions (e.g. 'lives within 10mi of a store'). If you're about to create a new Cohort, listing first lets you reuse an existing one and keeps downstream Outcomes / Persona Sets / Scopes coherent. Each Cohort carries its trait / attribute / stream / place / location conditions, population_count (last computed size), and the standard job state.
list_connections
ChatGPTList the external data environments configured on this account. Connections describe how to reach Snowflake, BigQuery, Postgres, S3, GCS, Azure Blob, SaaS systems (HubSpot, Salesforce, Marketo, mParticle, Mailchimp, …), and Faraday-hosted publication types (hosted_csv, lookup_api, merge). If you're about to create a Dataset (ingest), Atlas (locations), or Target (deploy) and want to reuse an existing data environment, call this first. Secrets in options are concealed in the response.
list_datasets
ChatGPTList the customer, transaction, and event sources the account ingests. Each Dataset maps a table or file from a Connection into identity fields, per-person Traits, event Streams, and optional place data. This response returns configuration, counts, and connection options with secrets concealed.
list_market_opportunity_analyses
ChatGPTList the market opportunity analyses the account already has — reports that answer 'where should we expand?', 'where are our best lookalikes concentrated?', or 'how much likely demand remains in this market?'. Each analysis names the Scope that defines the market, the acquisition Outcome, an optional Persona focus, the latest job state, and report links or summary values once built. Listing first helps reuse an existing study instead of rebuilding the same market question.
list_migrations
ChatGPTList migrations visible from the account named by account_id. A FIG v1-to-v2 migration pairs an older account with its replacement and tracks linked datasets, targets, seven-day Lookup API pull counts, approval, finish time, and account_tree_relationship, which says how the two accounts sit in the account hierarchy. Use this before creating a new migration or approving an existing one.
list_outcomes
ChatGPTList the propensity models the account has trained — churn, conversion, repeat purchase, donation, attendance, upgrade, lead scoring, and similar goals. Each Outcome scores people on their likelihood of attaining the behavior represented by its target Cohort. If a request may already be solved by an existing Outcome, listing first helps reuse it and preserves continuity in deployed Scopes. Each full record carries attainment, eligibility, and optional attrition Cohort references, predictor and bias settings, preview and build status, summary performance values such as lift and ROC AUC, and a report URL when available. Use get_outcome_analysis for feature importance and full performance details.
list_persona_sets
ChatGPTList the data-driven personas the account already has — typically things like 'segments of our customer base', 'lapsed donor archetypes', 'high-value buyer typologies'. A Persona Set is a k-means++-style clustering of a Cohort into K personas. If a client's segmentation request may already be solved here, listing first lets you reuse an existing Persona Set and keeps deployed Scopes consistent. Each Persona Set carries the source Cohort, the requested number of personas, the resolved persona records, and the latest job state.
list_places
ChatGPTList the geographic definitions the account already has — store footprints, service areas, sales territories, drive-time zones, and custom areas. Places are reusable geographic predicates for Cohorts, such as people within 10 miles of a store; those Cohorts can then define modeling, market-analysis, or delivery populations. Chains and franchises often already have their footprint loaded, so listing first helps reuse it.
list_recommenders
ChatGPTList the personalized-recommendation models the account already has — next-best products, content, offers, locations, categories, or upgrades. Each Recommender learns from one interaction Stream and its item property, then produces ranked recommendations per person when attached to a Scope. Listing first helps reuse an existing model instead of training a duplicate. Each full record carries its source stream_name, stream_property_name, predictor settings, preview state, report URL, and latest build status.
list_scopes
ChatGPTList the account's Scope configurations. Each Scope defines which people are in a delivery population and which person-level fields to produce, including predictions, Persona membership, recommendations, Traits, Attributes, Cohort membership, identity fields, and optional Atlas location proximity. The response contains configuration, status, output column names, and aggregate counts, not the person rows or values. Targets attached to a Scope can send those rows and values to external systems.
list_streams
ChatGPTList the behavioral data wired up on the account — which transactions / signups / cancellations / page views / donations / clicks / etc. Faraday can see. Streams are the event channels that power behavioral Cohorts ('people who purchased in the last 90d'), Outcomes ('predict who will churn based on usage'), and Recommenders ('next best product based on past purchases'). Each Stream has a type (the conventional name like transactions), the schema of events it accepts, and links to the Datasets that populate it. Listing first lets you reuse the right Stream rather than invent a new one when defining a stream-based Cohort or Outcome.
list_targets
ChatGPTList the destinations where the account delivers person-level predictions, segments, recommendations, Traits, Attributes, and identity fields. Destinations include ad platforms, email and customer systems, data warehouses, cloud storage, SFTP files, the Lookup API, Hosted CSVs, and custom webhooks. Each Target names the Scope whose population and payload it sends, its Connection or hosted destination, representation, filters, limits, status, and connector options with secrets concealed. The response contains Target configuration and counts, not the person rows sent to the destination. Hosted CSV files cannot be downloaded through this MCP.
list_traits
ChatGPTList definitions for the per-person fields available to Cohorts, Outcomes, Persona Sets, and Recommenders. The catalog contains about 1,400 built-in consumer fields plus fields derived from the account's own Datasets. Built-in definitions cover demographics, income and wealth, home and household facts, life events, geography, purchases, interests, brand affinities, and modeled propensities. The tool returns field names, descriptions, types, source details, and coverage, not values tied to named people. Other tools can use these fields to select people, train models, or include person-level values in a Scope delivered through a Target. On accounts WITH identity_graph (see get_account), the built-in consumer data lives in Attributes (list_attributes) instead, and this tool returns only the account's own first-party Traits; those accounts cannot use built-in fig/ Traits in Cohort conditions.
list_uploads
ChatGPTList every previously uploaded file for the account named by account_id, with subpath, byte size, MD5 (hex), and creation timestamp. The subpath is <directory>/<filename> — the same shape get_upload and create_upload expect.
list_use_case_revisions
ChatGPTList every saved revision of a use case, newest first. Returns just revision_id and created_at; fetch a revision's full content with get_use_case_revision. Useful for auditing what changed and when.
list_use_cases
ChatGPTList the use cases the account already has — one per specific problem the client is solving with Faraday. Each entry returns id, title, created_at, and (when applicable) archived_at. Listing first lets you reuse an existing use case rather than create a duplicate. Archived use cases are returned alongside live ones — filter on archived_at if you want only live entries.
list_webhook_endpoints
ChatGPTList the URLs that receive resource lifecycle events from the account, with their status and subscribed event types. The response omits each endpoint's signing secret. The secret appears only once, in the response from create_webhook_endpoint.
query_insights
ChatGPTAsk Faraday: run one aggregate GoogleSQL query against this account's insights schema and return the result rows. This is how Ask Faraday (also called Insights) answers a question. Call describe_insights_schema FIRST — the table names, column names and query restrictions are account-specific and not guessable, and a query written without them will be rejected. Every query must begin with SELECT WITH AGGREGATION_THRESHOLD, must name tables fully qualified in backticks exactly as the schema reports them, and may only use INNER JOIN. Results are aggregates over groups of people; BigQuery itself refuses to return any row backed by fewer than the schema's threshold of distinct people, and silently omits such rows, so a group missing from the output means 'too few people', not 'none'. Read-only: no statement other than SELECT will run. Queries are capped in bytes scanned; if a query is rejected as too large, select fewer attribute columns rather than adding row filters, because BigQuery is columnar. Use this for distribution, comparison and breakdown questions; it cannot return data about any individual.
rotate_connection_credentials
ChatGPTReplace the generated keypair for a Snowflake or ClickHouse Connection. The new private key is stored immediately and the response includes the new public key, which must then be installed on the warehouse user. Until that installation is complete, new connection attempts may fail. Other connector types do not support this operation.
search_attributes
ChatGPTFind the Attributes that match what you are looking for, by name or by meaning, best first. Use this instead of reading list_attributes whenever you need particular attributes: the built-in catalog has well over a thousand, far too many to scan. It finds attributes whose name or description contains your words, and also ones that mean the same thing in other words — 'how old' finds age, 'wealthy' finds net worth. An attribute whose name matches your query exactly or by whole word always ranks first. Each match carries its exact name (the column name wherever an attribute is used as one, including insights queries), label, description, type, unit, canonical breaks for bucketing, categories or interpretation map for coded values, and on_pinned_feature_store, which is true for Faraday's built-in data and false for the account's own attributes. Pass several queries at once to look up several concepts in one call. Returns definitions only, never any person's value. Read-only.
unarchive_resource
ChatGPTUnarchive a supported resource so it can update again. If archived upstream dependencies block the change, inspect the dependency graph and acknowledge the exact resources with cascade_to, or acknowledge all of them with cascade_to_all; unarchive cascades upstream. The operation is subject to live-resource quotas and can restart processing or external Target deliveries. Built-in Traits are read-only.
unarchive_use_case
ChatGPTUnarchive a previously-archived use case by clearing its archived_at timestamp. No-op if the use case is already live.
update_account
ChatGPTUpdate the account named by account_id with a JSON Merge Patch. Omitted fields stay unchanged and null clears nullable fields. To change one branding field without replacing the others, send only that field inside branding; send branding: null to clear all branding.
update_account_overview
ChatGPTReplace the account overview with a new markdown body. The content field is a whole-document replacement, not a patch — supply the full markdown every time. Pass back the revision_id you just read; if another user or session saved a newer revision in the meantime, the call is rejected with the current state in the response and you should re-merge your edit. Omit revision_id only on the very first save for an account (when no overview has ever been written). A history snapshot is recorded automatically.
update_atlas
ChatGPTUpdate an Atlas with a JSON Merge Patch. Read the current Atlas first before changing its column mapping. Omitted object fields stay unchanged, null clears nullable fields, and arrays replace their prior values. options.type cannot change and secret placeholders do not overwrite stored credentials. A name-only change is immediate; any other accepted change queues a rebuild, which replaces the Atlas's locations and can change downstream Cohort populations, Scope payloads, and analyses that depend on them.
update_attribute
ChatGPTUpdate an owner-managed Attribute with a JSON Merge Patch. Omitted fields stay unchanged and null clears nullable fields. Changing stream_name, value_property_name, aggregation, or interpretation changes the value seen by downstream Cohorts, models, and Scopes. Attributes visible only through another feature store are read-only and return 404.
update_cohort
ChatGPTUpdate a Cohort with a JSON Merge Patch. Omitted fields stay unchanged, null clears nullable fields, and condition arrays replace their prior values. Condition or recency edits start asynchronous population evaluation and can change every Outcome, Persona Set, Scope, or Target that uses the Cohort. The response may show the prior count while the job runs.
update_connection
ChatGPTUpdate a Connection with a JSON Merge Patch. Omitted fields stay unchanged and null clears nullable fields. options.type cannot change; create a new Connection to use another connector. Stored secrets remain unchanged when omitted, and <secret> placeholders never overwrite them. Credential or source-setting changes affect every Dataset, Atlas, and Target that uses this Connection. This tool is disabled in this MCP client by policy. Ask the user to complete this action in Faraday Enterprise at https://app.faraday.ai.
update_dataset
ChatGPTUpdate a Dataset's identity, Trait, Stream, reference-key, or ingestion mappings with a JSON Merge Patch. These mappings control how customer-supplied source fields become person-level data used by audiences, models, and deliveries. Omitted object fields stay unchanged, null clears nullable fields, and arrays replace prior values. Most accepted changes queue new ingestion.
update_market_opportunity_analysis
ChatGPTUpdate a Market Opportunity Analysis with a JSON Merge Patch. Omitted fields stay unchanged and null clears nullable Persona or locations fields. Changing scope_id, outcome_id, persona_set_id, persona_id, or locations starts a new asynchronous report build; the Outcome and Persona Set must belong to the selected Scope payload.
update_migration
ChatGPTUpdate a migration with a JSON Merge Patch. Configuration fields (notes, datasets, targets) may change only from the owning FIG v2 account while the migration is unapproved. Providing a non-null approved_at from either linked account queues the account move and requires an interactive signed-in user. Repeated approval requests succeed without changing the first approval. The queued move gives every FIG v1 member access to the FIG v2 account, moves the users working there, reparents accounts only when account_tree_relationship calls for it, and suspends the FIG v1 account. Usage stays under the account where it happened. Support can reverse the whole move for a limited window.
update_outcome
ChatGPTUpdate an Outcome with a JSON Merge Patch. Omitted fields stay unchanged and null clears nullable fields. Changing cohort references, predictors, or other model settings starts an asynchronous rebuild; the prior generation remains available until the new one finishes.
update_persona
ChatGPTUpdate one Persona within a Persona Set. Use this after reviewing the dimensions to change its human-readable name; the cluster membership and centroid are not editable.
update_persona_set
ChatGPTUpdate a Persona Set with a JSON Merge Patch. Omitted fields stay unchanged and null clears nullable fields. cohort_id cannot be changed after creation. Changing number_of_clusters, modeling inputs, or preview state starts a new asynchronous build.
update_place
ChatGPTUpdate a Place with a JSON Merge Patch. Omitted fields stay unchanged and null clears nullable fields. Any accepted update queues the Place to rebuild; changing its GeoJSON or addresses can change every Cohort that uses it. Poll status and last_updated_output_at before relying on the new geometry.
update_recommender
ChatGPTUpdate a Recommender with a JSON Merge Patch. Omitted fields stay unchanged and null clears nullable fields. Changing stream_name, stream_property_name, predictors, or preview state starts a new asynchronous build.
update_scope
ChatGPTUpdate a Scope with a JSON Merge Patch. Population changes alter which people downstream Targets send; payload changes alter the person-level identity fields, predictions, segments, recommendations, Traits, Attributes, Cohort membership, and Atlas location proximity they send. Switching payload.location.select between nearest and all changes the type of the location columns, so Targets already receiving them must be rebuilt afterward. Omitted fields stay unchanged, null clears nullable fields, arrays replace prior values, and changing preview from true to false enables full billed output.
update_stream
ChatGPTUpdate a Stream's descriptive metadata with a JSON Merge Patch. Writable fields include literate, description, category, deprecation fields, and property metadata. Omitted fields stay unchanged and null clears nullable fields. The event-type name and events emitted by Datasets are not changed here.
update_target
ChatGPTUpdate a Target with a JSON Merge Patch. Omitted fields stay unchanged, null clears nullable fields, and arrays replace prior values. options.type, representation.mode, and limit.method cannot change. Changes to the destination, representation, filter, limit, or columns change later deliveries of person-level data; changes to the Scope change which people and fields the Target sends.
update_trait
ChatGPTUpdate a user-defined Trait with a JSON Merge Patch. Omitted fields stay unchanged and null clears nullable fields. Changing statistical_type changes how Cohorts, analysis, and models interpret its values. Built-in Traits are read-only and return 403; a Trait not visible to the account returns 404.
update_use_case
ChatGPTApply a JSON Merge Patch to a use case. Fields you omit are left at their current values; explicit null clears a preface field. revision_id is REQUIRED and must echo the value you read from get_use_case — if the server's current revision has moved past it the call is rejected with a 409 whose body carries the latest state; re-merge against that and retry. Editing the preface, technical details, or draft flag records a new history snapshot. Archive is NOT changed by this call (use archive_use_case / unarchive_use_case).
update_webhook_endpoint
ChatGPTUpdate a webhook endpoint's URL, event subscriptions, or status with a JSON Merge Patch. Set status to disabled to pause delivery without deleting it. The signing secret does not change and is omitted from the response.
whoami
ChatGPTDiagnostic: report which Faraday identity the current access token resolves to, the accounts this login can act on (accessible_accounts: id, name, parent_account_id), and the names of every tool this MCP exposes. Take account_id for account-scoped tools from accessible_accounts. A user identity has no current account. This tool does not take account_id. Read-only.