Skip to main content
Clustr provides an MCP (Model Context Protocol) server that lets AI assistants like Claude Desktop, Claude Code, and Cursor interact with your Clustr network directly through natural language. Ask your AI assistant to search opportunities, manage target accounts, or import contacts without leaving your workflow.

Setup

Configure Claude Code

Clustr connects two ways. Both register a server named clustr — pick one.
Recommended. No API key, no Node.js. Run this in your terminal:
Then run /mcp in Claude Code and choose Authenticate to sign in with Clustr in your browser. The tools appear once you approve access.

Other clients (Claude Desktop, ChatGPT, Cursor)

Add Clustr as a custom connector using the HTTP endpoint, then sign in with Clustr:
In Claude or ChatGPT, open Settings → Connectors → Add custom connector, paste the URL, continue, and approve access. The same endpoint accepts a static API key via an Authorization: Bearer your-api-key header for clients that support custom headers.

Available Tools

Once connected, your AI assistant has access to the following tools:
New tools need a reconnect, not a reinstall or a re-login. OAuth and custom-connector clients talk to https://api.clustr-ai.com/mcp directly, and the API-key install (npx -y @clustr-ai/mcp-server) is a stdio bridge to that same endpoint — it declares no tools of its own and fetches the list from the server. So there is never an npm version to bump and never a token to refresh.What a client does cache is the list it fetched when it connected. Restart it, or run /mcp in Claude Code and reconnect Clustr, and the new tools appear. Your credential is untouched either way.
New in v1.66.0. The default owner tools are gone.
  • REMOVED: get_record_settings and update_record_settings, deprecated in v1.64.0. A warm intro’s owner is the owner picked on it, else the connector’s owner, else the prospect’s account owner. See Who owns a warm intro.
New in v1.65.0. One tag field per record type.
  • CHANGED: every account, connector and warm intro has one tag field, Account tags, Connector tags and Intro tags, and each takes any number of tags.
  • CHANGED, breaking: create_tag takes subject_type instead of group_id. create_account_tag and start_bulk_job’s connector set_tag no longer take group_id.
  • RETIRED: create_tag_group, update_tag_group, delete_tag_group and reorder_tag_groups. A call says what to use instead.
New in v1.64.0. One owner on warm intros.
  • CHANGED: a warm intro’s owner is the owner picked on it, else the connector’s owner, else the prospect’s account owner (the Accounts sales owner). See Who owns a warm intro.
  • DEPRECATED: get_record_settings and update_record_settings. The default owner decides nothing, and update_record_settings changes nothing.
New in v1.63.0. Export the Customers table, and every table’s file holds every column it shows.
  • NEW: export_competitor_customers returns every competitor’s customers in one call, with the filters of list_competitor_customers. Each row adds people_you_can_reach, sales_owner and cs_owner. The REST route’s CSV is the Customers table’s file.
  • CHANGED: the export_competitor_accounts CSV adds standing, possible_customer_of, customer_of_confidence, lost_from, in_market, reading_label, buying_intent_label, likes, comments, first_touch, sales_owner and cs_owner. The export_competitor_interactions CSV adds what_happened, pitch, account_standing and rep_relationship.
New in v1.61.0. See which accounts show buying intent.
  • CHANGED: scoped list_competitor_accounts and export_competitor_accounts rows carry latest_intent: the newest post at the account, engaged by a competitor, that shows the person is hiring for the role, evaluating tools, migrating, running an RFP or starting a project, with the reason and who posted it. intent (any, or one intent) keeps those accounts only. The CSV adds buying_intent and buying_intent_reason.
  • CHANGED: list_competitor_interactions takes intent. The export_competitor_interactions CSV adds buying_intent and buying_intent_reason.
New in v1.60.0. Add the customers you know, and put competitor facts on your CRM companies.
  • NEW: add_competitor_customer adds a company you know is one of a competitor’s customers. It is saved as confirmed, stays listed when no evidence is found, and shows with sources ["user"].
  • CHANGED: a competitor website that was only partly read is read again on the next weekly run, retrying the pages that failed, and searched harder for customer pages when none were found.
  • NEW: get_competitor_crm_properties and set_competitor_crm_properties. Clustr can write the competitors a company is a customer of, how sure it is, and the date a competitor last engaged the company onto that company in your CRM. Each is off until you turn it on.
  • CHANGED: update_competitor takes title_groups, the roles followed at that competitor; [] goes back to the workspace job titles.
  • CHANGED: scoped list_competitor_accounts rows carry in_market, true when in the last 30 days two or more competitors engaged the account or three or more people there were engaged, and in_market_facts, the counts behind it. in_market=true keeps those accounts only.
New in v1.59.0. The team refresh follows the people it finds.
  • CHANGED: the monthly team refresh, and run_competitor_team_refresh, follow the joiners they find automatically while you have free slots; past your limit they are added paused, not followed. There is no review queue: pending is normally empty.
  • UNCHANGED: validate_competitor_joiners stays for compatibility and normally finds nobody waiting.
New in v1.58.0. Every tool that overwrites data already on your records asks first.
  • CHANGED: set_path_owner, set_connector_owner, set_connectors_owner, bulk_set_account_state, tag_records, set_connector_tags, start_bulk_job and apply_crm_cleaning_group work in two steps. The first call changes nothing and returns confirmationRequired, a summary and the counts of what it would overwrite; the same call with confirm: true, after you agree, applies it.
  • CHANGED: set_client_rule returns a preview (how many companies the saved and the new rule match) and saves nothing when a change could remove clients from your list; set_tag_group_crm_mappings warns before it lets a CRM own a tag field; set_crm_value_mapping asks first while Standardise values runs on Do it. Each applies with confirm: true.
New in v1.57.0. The default owner for warm intros can be read and changed from your assistant.
  • NEW: get_record_settings and update_record_settings. Changing the default owner reassigns the owners of your existing intros, so update_record_settings first returns a preview and saves nothing; it saves only when called again with confirm after you agree.
  • CHANGED (REST): PUT /api/tenant/record-settings takes confirm. A change that would move a stored owner answers confirmationRequired: true with its preview until it is sent with confirm: true.
New in v1.56.0. Lists are retired: saved views replace them.
  • REMOVED: create_list, update_list, delete_list, add_to_list and remove_from_list, and the add_to_list action on create_workflow and update_workflow. Every list was already copied to a saved view of the same name.
  • REMOVED (REST): /api/public/lists and its members routes.
New in v1.55.0. An import can say its warm intros are not all calculated yet.
  • NEW: get_job_status and list_jobs carry derive_incomplete: true, derive_incomplete_reason (stalled or backstop) and derive_note on a COMPLETED import whose derivation did not finish inside the run. The import is usable and the remaining intros appear over the next hours.
New in v1.54.0. Tags work the same way everywhere: every tag sits in a field.
  • NEW: reorder_tags and reorder_tag_groups; get_tag_group_crm_mappings and set_tag_group_crm_mappings.
  • NEW: create_account_tag takes group_id; list_tags and list_account_tags return each tag’s group_id.
  • CHANGED: set_account_tags and set_connector_tags replace only within the fields of the tags given. An empty list still clears everything. set_connector_tags takes several tags.
  • FIXED: creating an account or connector tag no longer starts a new General or Relationship field beside your own.
New in v1.53.0. Competitor collection is every two weeks.
  • CHANGED: each competitor is collected every two weeks. The schedule is still a weekly slot, Mondays at 11:00 Europe/Paris by default, and a competitor that ran in the last ten days skips it. get_competitor_monitoring_schedule still reads cadence weekly: it is the slot.
  • The team refresh (joiners, leavers and role changes) is still monthly.
New in v1.52.0. Filter on the tags of a related record, and account tag writes work again.
  • NEW: search_opportunities takes account_tag (the prospect’s account); list_accounts takes path_tag (accounts with at least one warm intro so tagged); list_connectors takes account_tag and path_tag; list_signals takes path_tags. Tags from one group match any; tags from different groups must all match.
  • FIXED: set_account_tags and tag_records on accounts answered “Something went wrong on our side” for every account. They write again.
New in v1.51.0. Competitor collection is weekly again.
  • CHANGED: every competitor is collected once a week, Mondays at 11:00 Europe/Paris by default. update_competitor_monitoring_schedule takes day_of_week (0 = Sunday) with hour, minute and timezone.
  • The team refresh (joiners, leavers and role changes) is still monthly, inside one of the weekly runs.
New in v1.49.0. The people behind competitor activity, and pitches.
  • NEW: list_competitor_customer_people: the contacts found at one competitor customer, and up to 20 buyers there your network reaches, each with the best way in.
  • NEW: scoped list_competitor_accounts and export_competitor_accounts rows carry people (up to 10 of the people engaged, with their newest interaction and its pitch fields) and pitches; both take order=standing, types and pitch on every scope. The CSV adds people_reached and pitches.
  • NEW: list_competitor_customers takes order=standing and owner; rows carry the CRM account owner and CS owner.
  • NEW: list_competitor_interactions takes account.
  • CHANGED: preview_competitors people carry group.
  • NEW (REST): List Competitor Customer People, and the same parameters and fields on the competitor accounts, customers and interactions endpoints.
New in v1.48.0. One tool per list, taking one item or many.
  • NEW: exclude_companies: exclude one company or up to 500 in one call. Each takes any of domain, linkedin_url, linkedin_numeric_id and company_id. Replaces exclude_company.
  • NEW: add_client_companies: add one client company or up to 1,000. Replaces add_client_company and import_client_companies.
  • NEW: add_owners: add one owner or up to 2,000. Replaces create_owner; import_owners still works as another name for it.
  • BREAKING: exclude_company, add_client_company, import_client_companies and create_owner no longer run. A call answers with the tool and arguments to use instead.
  • NEW (REST): the excluded companies API: GET, POST, POST /import and DELETE /{id} on /excluded-companies.
New in v1.47.0. Who your competitors are talking to, filtered and explained, and a say in who is followed when adding a competitor.
  • NEW: list_competitor_accounts and export_competitor_accounts with scope=all take in_crm, activity_only and owner (the CRM account owner’s email).
  • NEW: scoped rows carry people_engaged, latest (the newest interaction: who at which competitor did what on whose post) and the CRM owner and CS owner. The CSV adds people_engaged, latest and owner.
  • NEW: preview_competitors takes title_groups and lists the first page of people found; register_competitor takes title_groups and people, each followed or skipped. Skipped people are never added by a later search.
New in v1.46.0. One list of the accounts competitors are present at, and its export.
  • NEW: list_competitor_accounts with scope=all: the accounts competitors touch on either side plus every company that is a customer of a competitor you watch, even with no interaction. Narrow it with yours (your client list or not) and customer_of (any, or one competitor). Every scoped row carries customer_of and we_own.
  • NEW: export_competitor_accounts: the same list in one call, unpaged, up to 50,000 rows, with scope, period, competitor_ids, yours and customer_of.
  • NEW (REST): GET /competitor-accounts?scope=all and GET /competitor-accounts/export, as JSON or, with format=csv, as a CSV file.
New in v1.45.9. Target accounts say when their LinkedIn page could not be found. See List Target Accounts.
  • NEW: list_target_accounts rows carry linkedin_lookup: not_found when the LinkedIn company page given for the account could not be found after two lookups, a week apart. It may be a wrong or outdated URL. The account is then matched by its name when exactly one company carries that name.
  • CHANGED: an account whose LinkedIn page Clustr does not know yet is looked up in the background, at most twice per page.
New in v1.45.8. A new target account needs its LinkedIn company page. See Create Target Account.
  • CHANGED: create_target_accounts needs company_linkedin_url on every account, like linkedin.com/company/acme. An account without a valid one is not created and comes back in rejected with its index and the reason; the others are added. A call where every account is rejected fails with invalid_linkedin_url.
  • CHANGED: set_account_standing with target skips a company that has no LinkedIn company page and counts it in skipped.
  • CHANGED: a bound CRM list adds a company only with its LinkedIn company page, from the CRM record or from the company Clustr matched it to. See Target accounts from a CRM list.
  • Accounts already on the list are unchanged, with or without a URL.
New in v1.45.7. Totals that agree, and paging that works.
  • CHANGED: get_network_stats counts the warm intros the People list shows, the number search_opportunities totals with no filters, and the connectors list_connectors totals. It used to count dismissed, overlap-only and undisplayable paths, and people removed from the network.
  • FIXED: list_target_accounts takes page and page_size; list_jobs honours them.
  • FIXED: a warm intro’s note being set or cleared shows in list_record_activity for the path.
New in v1.45.5. get_crm_cleaning_settings returns effective_when_different: what enrichment does with a value your CRM already has, per object type, with the defaults applied (contacts suggest, companies keep).
New in v1.45.4. Competitor Attack alerts say whether their account is a target account or an other account. See Competitor alerts.
  • CHANGED: Attack covers your target accounts and every other non-customer account a competitor engages with. Each alert is labelled Target account or Other account in Slack and email, and carries account_scope (target or other) and account.is_target in the webhook.
  • CHANGED: get_competitor_alerts and update_competitor_alerts take attack_other_accounts: false keeps Attack alerts to target accounts only. Default true.
New in v1.45.3. CRM Cleaning fills a contact’s job title from the person’s current LinkedIn role at the contact’s own company, never from a role held elsewhere. See Enrichment.
  • CHANGED: enrichment_when_different defaults to suggest for contacts: a title or company LinkedIn gives differently waits in the queue and is not counted in the weekly email. Companies still default to keep.
New in v1.45.2. CRM Cleaning enrichment never overwrites by default, and its match rate counts what the provider found. See Enrichment.
  • CHANGED: enrichment fills blank fields only. update_crm_cleaning_settings takes enrichment_when_different (contact, company: keep, the default, or suggest); with suggest a different value is proposed as a change that always waits for a person, with a reason such as “Your CRM says X; LinkedIn now says Y”.
  • CHANGED: get_crm_enrichment_budget counts records_matched as the records the provider found, whether or not a field was filled, and adds records_filled, records_already_complete, records_not_found and match_by_object. Contacts not found are counted from October 2026.
New in v1.45.1. CRM Cleaning is calmer: one summary email a week, plus an immediate email only when changes fail to write to your CRM. See Completeness and the weekly email.
  • CHANGED: unusually many new duplicates and a field getting emptier are short highlights in the weekly summary, not daily emails. update_crm_cleaning_settings keeps duplicate_spike_alert, completeness_drop_alert and duplicate_spike_threshold (now new groups in a week) to turn them on or off.
  • CHANGED: property insights are recounted monthly instead of weekly, still at night. refresh_crm_property_insights still recounts on demand, once an hour.
New in v1.45.0. Competitor customers you can trust. See Their customers.
  • CHANGED: list_competitor_customers labels each customer Confirmed, Likely or Possible from the signals found on the competitor’s own website and posts, lists the contacts found and marks possible churn. Only Confirmed and Likely by default.
  • NEW: set_competitor_customer_renewal_date, get_competitor_customer_settings, update_competitor_customer_settings.
  • NEW: get_competitor_site, preview_competitor_website, recrawl_competitor_site. register_competitor and update_competitor take website_url.
  • CHANGED: lookup_competitor_customers_by_company returns Confirmed and Likely customers only, with the label.
New in v1.44.1. Dropdown labels in Standardise values. See Standardise values.
  • CHANGED: list_crm_field_values shows HubSpot dropdown labels next to option values (label, canonical_label, mapped_to_label, to_label), lists the dropdown’s options, and marks each mapping the latest full scan did not apply with skipped (reason, message, count, at).
New in v1.44.0. Standardise free-text values and filter the cleaning history. See Standardise values.
  • NEW: list_crm_field_values, set_crm_value_mapping, delete_crm_value_mapping.
  • CHANGED: list_crm_cleaning_history and export_crm_cleaning_history take who decided, rule, record, field and date filters.
  • CHANGED: states and provinces are written as their full name, like countries.
New in v1.43.0. Property insights show their progress and their trend. See Property insights.
  • CHANGED: get_crm_property_insights returns counted, toCount and etaSeconds while a count runs, recordsWithoutValue per property, and per object fillBands (how many properties are 0, 1-20, 20-50, 50-80 or 80-100% filled), history (the latest 12 counts) and previous (the count before the latest). The issue values are unchanged; the app calls them No data and Rarely filled.
  • CHANGED: counts run at one CRM search a second and pause for 15 minutes when HubSpot asks to slow down. The weekly count starts at night in your workspace’s time zone; refresh_crm_property_insights still starts at once.
New in v1.41.0. Better duplicates, data quality alerts and property insights. See CRM Cleaning from your assistant.
  • NEW: export_crm_cleaning_history: the change history as CSV text.
  • NEW: export_crm_cleaning_findings: the open findings as CSV text.
  • NEW: find_crm_record_duplicates: the likely duplicates of one record.
  • NEW: get_crm_property_insights and refresh_crm_property_insights: which HubSpot properties are filled, and which custom ones nobody uses.
  • CHANGED: get_crm_enrichment_budget also returns this month’s match rate: records sent, records with at least one field filled, and fills per field.
  • CHANGED: update_crm_cleaning_settings takes the two data quality alerts, realtime_duplicates, primary_rules (which record a merge keeps) and match_rules (your own duplicate rules).
  • CHANGED: duplicates are also found by phone number, new records are checked as soon as they are created, and duplicate deals are reported and can be merged one group at a time in HubSpot.
New in v1.40.0. Undo a whole rule, and know when a rule can run on its own. See CRM Cleaning from your assistant.
  • NEW: revert_crm_cleaning_batch: revert every applied change of one rule, for one run, field or time window, with the same checks as a single revert.
  • NEW: get_crm_cleaning_suggestions: the rules on Ask me that your team always accepts, ready to switch to Do it.
  • CHANGED: revert_crm_cleaning_change leaves a field someone edited in the CRM since as it is, and reports a conflict.
New in v1.39.0. The rest of CRM Cleaning from your assistant. See CRM Cleaning from your assistant.
  • NEW: start_crm_cleaning_scan, list_crm_cleaning_runs and get_crm_cleaning_run: start a scan and follow it. A scan writes the changes whose rule is set to auto (Do it).
  • NEW: start_crm_enrichment and get_crm_enrichment_budget: fill missing fields inside the monthly enrichment budget, and see what is left.
  • NEW: list_crm_cleaning_changes, accept_crm_cleaning_change and dismiss_crm_cleaning_change: work the queue one change at a time.
  • NEW: list_crm_cleaning_history, revert_crm_cleaning_change and retry_crm_cleaning_change: read what cleaning changed, undo a change within 30 days, retry a failed one.
  • NEW: get_crm_cleaning_settings, update_crm_cleaning_settings and list_crm_cleaning_templates: read and change each rule’s mode (off, review or auto), the schedule, enrichment and the merge switch.
  • NEW: get_crm_cleaning_capabilities and get_crm_health_score: what cleaning can fix on your CRM, and the health grade.
New in v1.38.0. Your client rule from your assistant, and competitor data on your accounts.
  • NEW: get_client_rule, set_client_rule, preview_client_rule, list_client_rule_fields, sync_client_rule and delete_client_rule: read and change who counts as a client in each connected CRM. See Client companies.
  • NEW: lookup_competitor_customers_by_company and resolve_linkedin_company.
  • CHANGED: list_accounts returns competitor_activity and takes the competitor filters and sorts; update_competitor_delivery_config takes routes; set_competitor_customer_verdict takes verdict: clear.
New in v1.37.0. CRM Cleaning from your assistant. See CRM Cleaning and CRM Cleaning from your assistant.
  • NEW: get_crm_cleaning_queue, apply_crm_cleaning_group and dismiss_crm_cleaning_group: read the queue and apply or dismiss a whole group of changes.
  • NEW: list_crm_cleaning_findings, dismiss_crm_cleaning_findings and merge_crm_duplicates: work the findings report, and merge duplicates on HubSpot.
  • NEW: get_crm_completeness and get_crm_cleaning_summary: field completeness with its weekly trend, and what cleaning did recently.
New in v1.34.0. Buyer titles and excluded titles. See Buyer titles.
  • NEW: list_buyer_titles, add_buyer_titles and delete_buyer_title: read and edit the job titles of the people you sell to.
  • NEW: list_excluded_titles, add_excluded_titles and delete_excluded_title: read and edit the job titles that hide a person everywhere.
New in v1.32.0. Import clients in one step.
  • NEW: import_connectors takes mark_companies_as_clients. Set it when the people you import are clients: once the import finishes, each connector’s current company joins your client list, so warm intros into those companies are hidden. Off by default.
  • CHANGED: import_connectors answers status: "started" with the job_id and says the import is running, not done.
New in v1.31.0. Slack channel access. See Slack channel access.
  • NEW: list_slack_channels, update_slack_channel_access and join_slack_channel: choose, channel by channel, whether Clustr may read a Slack channel, post to it, both or neither, and add Clustr to public channels.
New in v1.30.0. Every failed job says why.
  • NEW: get_job_status and list_jobs give a FAILED job a failure_reason, a plain-English sentence with what to do next (“Company not found on LinkedIn. Check the link points to the company’s own page and retry.”), and a stable reason_code such as company_not_found or timed_out. See Get Job Status.
  • CHANGED: get_account_research answers status: FAILED with the reason when the last run on the company failed. start_account_research says why a run was not started, and the magic link says a failed run failed instead of “processing”.
  • FIXED: an account research run that stopped while starting is recorded as FAILED with its reason. It used to stay PROCESSING.
  • CHANGED: list_signals rows name the post a like or a comment was on (post_text, post_author_name), so a like says what was liked. See Raw signals.
  • NEW: list_signals says what kind of signal each row is: family (network, activity, prospect) and origin (prospect when the person did it, network when one of your connectors engaged their post), and filters on both with families and origins.
New in v1.29.0. Raw signals: every interaction across your network, by date. See Raw signals.
  • NEW: list_signals: LinkedIn reactions, comments and posts, newest first or oldest first, filtered by since/until, types, the person’s account (industry, size, revenue, country, tier, owner, tags) and seniority. Answers “all the LinkedIn likes from the past month”.
New in v1.28.0. Activity history on every record. See Record Activity.
  • CHANGED: list_record_activity takes entity: "path", a warm intro, and lists who set its owner and status and when, note edits, dismissals and intro requests.
  • NEW: a connector’s activity says when they were added and by whom (connector_added). Changing an intro’s owner or status, and a CRM sync changing a record’s tags, now show with who did it.
  • Older history was filled in from the dates Clustr already had; those entries carry backfilled: true.
New in v1.27.0. See which contacts an import could not bring in, and why.
  • NEW: list_failed_import_items: the failed people of one import, each with a plain-English reason, a stable reasonCode, the raw error and retryable. Read it when get_job_status reports failures.
  • NEW (REST): GET /api/public/jobs/{id}/items. See List Failed Import Items.
New in v1.24.0. Notes on every record. See Notes.
  • NEW: get_person_note, set_person_note, clear_person_note: one shared note per person in your workspace, whether they are a connector, a prospect or both. Read it before requesting an intro through a connector.
  • NEW: get_account_note, set_account_note, clear_account_note. The account note could be written through the API and read by no tool. The answer says who last edited the note and when.
  • A warm intro’s note: get_opportunity reads it, with who last edited it and when (notes_updated_at, notes_updated_by_name), and update_opportunity writes it.
  • CHANGED: an empty note clears it, on every note. Any member can edit a note, and notes are not synced to a CRM.
  • CHANGED: dismiss_account takes a reason, stored as the account’s dismiss_reason. A dismissal never writes the note.
New in v1.15.0. Ask whats_new for this list from your own client.
  • NEW: create_tag_group, update_tag_group, delete_tag_group — tag groups for accounts, people and opportunities (subject_type path). A single-choice group holds at most one of its tags per record.
  • BREAKING: create_tag, update_tag and delete_tag now work on every tag, not only connector tags. create_tag requires group_id (from list_tag_groups; connector tags are in a person group) and takes closes; position is gone from create_tag and update_tag. Tag ids did not change, so update_tag and delete_tag on a connector tag work as before.
  • NEW: push_to_crm on set_account_owner, bulk_set_account_state and set_connector_owner — also write the owner to the matched CRM record. The result carries crmPush and crmPushSummary, a sentence saying what happened in the CRM. The owner is saved in Clustr either way.
  • CHANGED: update_opportunity sets the opportunity’s own owner with owner_id (from list_owners), and unassign_owner clears it. That is the owner the People table shows. set_connector_owner is unchanged: it sets the connector’s owner and moves every opportunity the connector has.
  • CHANGED: owner filters take owner ids from list_owners; an owner email still resolves. list_owners entries carry crmSeat when a CRM is connected.
  • CHANGED: the retired create_status, update_status and delete_status now point at create_tag, update_tag and delete_tag.
The status tools are gone, and the tag tools replace them. Calling list_opportunity_statuses, create_status, update_status, delete_status or set_account_status answers with the tool to use instead of “Unknown tool”, so a stale manifest recovers: read the vocabulary with list_tag_groups, write the vocabulary with create_tag, update_tag and delete_tag, and put a tag on a record with tag_records. A former status is a tag in a group usually still named Status, with the id it always had.
v1.13.0 tools are listed with their intent, not their final argument schema. They ship alongside a Workflow editor and Views UI still being built, so the exact argument names may still move before release — check whats_new or reconnect for the authoritative schema once your client fetches the tool list.
The fit grade is relative to your configuration, not to other accounts.fit_grade is the fraction of your CONFIGURED targeting criteria an account meets — your target list, your tier vocabulary, each dimension of your Company ICP — banded A+ (at or above 0.90) through D. A criterion you never set cannot lower a grade, and nothing earns an A+ for being the best of a weak list.An account with NO grade is not a low-graded account. It means the workspace has configured no targeting at all, so there is nothing to score against. D is the opposite: criteria exist and this account met none of them. Do not treat the two the same, and do not tell someone their accounts are poorly qualified when the real answer is that nobody has defined what a good account is yet — point them at Targeting instead.fit_reasons ships with the grade, so say WHY an account scored what it did rather than repeating the letter.
Heat is timing, fit is quality. Keep them apart. temperature says how active an account is right now, from its open CRM deal and its LinkedIn and CRM signals; fit_grade says how well it matches your targeting and does not move with activity. A cold A+ is a good account nobody is talking to; a burning D is activity at an account outside your targeting. last_signal_at, last_signal_source and signals_30d are the evidence behind the heat, so quote them rather than the band alone.
Tiers are your words, and a tier is set on the ACCOUNT. list_tiers returns whatever your workspace calls them — “A / B / C” for one customer, “Strategic / Growth / Watch” for the next — so never assume a name. An unknown one is rejected rather than created: a typo in a 500-row import would otherwise become a permanent tier nobody chose.A tier attaches to the company behind a target account, which is why it also shows on the Accounts and People tables in the app, and why an account that has not matched a company yet cannot carry one. When that happens on create_target_accounts the tier is queued, not lost: it is applied automatically as soon as the match happens. On set_target_account_tier, where you are acting on one specific row, it is a conflict instead, because there the right answer is to fix the account’s LinkedIn URL.
Removed in v1.35.0: pause_competitor. Competitors can no longer be paused: every registered competitor is monitored until delete_competitor removes it, which also frees its slot. update_competitor refuses status for the same reason.
Removed in v1.4.0: start_competitor_monitoring. register_competitor starts the new competitor’s first scan itself and tells you whether it started. To collect on demand, use run_competitor_monitoring, which goes through the same per-workspace throttle as the API. Use list_competitor_runs to see what is running.

Reading account research you already have

Account research runs once per company and stays readable. Starting a run uses a credit, but reading one is free, so your assistant should look before it starts anything:
  1. list_account_research shows what already exists, including reports your team ran in the web app.
  2. get_account_research returns the report itself: who the warm buyers are and who can introduce you to each. Your assistant can summarize it, rank the paths or draft the intro request from it.
  3. start_account_research only runs when nothing exists yet. If research already exists, it hands back that report instead of starting a duplicate, and says so with already_exists: true. To run a company again on purpose, for example after a big hiring wave, ask for a refresh (refresh: true).
A report started from the web app, the API or MCP is the same report, so research run by a teammate in Clustr can be read straight from Claude, ChatGPT or Dust. If an assistant built on an older version keeps starting new runs, point it at get_account_research in its instructions, for example: “To read account research, call get_account_research. Only call start_account_research when it returns nothing.”

Owners are a directory, not a seat

An owner is the person accountable for a connector, and therefore for every opportunity that connector produces. In Clustr that is a directory entry scoped to your workspace, not a login, so it does not have to be one of your teammates. An investor, an advisor, a former colleague, or a friend can own an opportunity. That has three consequences worth knowing when you ask an assistant to assign work:
  • No email is sent. Adding an owner with add_owners never notifies that person. If you want them to know, tell them yourself.
  • No access is granted. An owner cannot sign in, see your network, or read the opportunity. The entry is a label on your data.
  • No seat is used. Adding owners does not change your billing, so there is no reason to be sparing with them.
Owners who are workspace members come back with is_member: true, so an assistant can tell the two apart. Deleting an owner never deletes opportunities: every opportunity that person held is simply left with no owner, and delete_owner reports how many so you can reassign them.

Who owns a warm intro

A warm intro’s owner is the first of:
  1. The owner someone on your team picked for that intro (set_path_owner).
  2. The connector’s owner (set_connector_owner).
  3. The sales owner of the prospect’s account, the same owner the Accounts page shows. It follows your CRM as your owner sync direction says.
There is no workspace default owner any more.

Ask in plain language

You don’t need to know the tool names above to use them — describe what you want and your assistant picks the right ones. A few examples of the sentence and what it becomes: Because a view is the question and a Workflow is what happens when the answer changes, most “tell me when” requests become exactly one saved view and one Workflow — the same two things you’d build by hand in the app.

Example Prompts

Here are some things you can ask your AI assistant once Clustr is connected:
  • “Which A+ accounts have no warm path yet?”
  • “Tag every account we share an investor with, then list them”
  • “Run account research on Salesforce and give me the report link”
  • “What account research do we already have?”
  • “Show me the account research on Stripe. Who is the best first intro?”
  • “Summarize the warm paths into Datadog from our existing research”
  • “Find referral opportunities at Stripe”
  • “What opportunities do we have through john-doe on LinkedIn?”
  • “Show me my top opportunities by confidence score”
  • “Give me an overview of my network”
  • “Who are my connectors?”
  • “Check the status of my last import”
  • “Mark opportunity X as Contacted”
  • “What notes do we have on that Stripe opportunity?”
  • “Note on Patrick that he is an investor, and to ask Helene before requesting an intro through him”
  • “What does our note on Acme say, and who wrote it?”
  • “Add to the notes on opportunity X that Marie is making the intro next week”
  • “Assign that Stripe opportunity to sam@northstar.vc, he is our investor, create the owner if needed”
  • “Who owns the most opportunities right now?”
  • “Add Stripe as a target account”
  • “List all our target accounts”
  • “What tiers do we use?”
  • “Add Stripe and Datadog as target accounts at our top tier”
  • “Move Acme to Tier 2”
  • “Which target accounts have no tier yet?”
  • “Add Globex as a competitor to monitor”
  • “Which of my open-deal accounts did competitors touch this week?”
  • “Show me every critical signal from Globex’s founders and AEs in the last 30 days”
  • “Who at Northwind Trading have our competitors been talking to?”
  • “Log that comment to the CRM, then snooze the rest of that thread for a week”
  • “Show me the latest competitor report and which accounts are at risk”

Authentication

Clustr’s MCP server supports two auth methods:
  • OAuth (sign-in) — authorize in your browser; Clustr issues and refreshes tokens automatically. No key to manage. Recommended for Claude Code, Claude Desktop, and ChatGPT.
  • API key — the same key as the REST API, set via the CLUSTR_API_KEY environment variable. Best for headless or shared setups.

Troubleshooting