Setup
Configure Claude Code
Clustr connects two ways. Both register a server namedclustr — pick one.
- Sign in (OAuth)
- API key
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: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_settingsandupdate_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_tagtakessubject_typeinstead ofgroup_id.create_account_tagandstart_bulk_job’s connectorset_tagno longer takegroup_id. - RETIRED:
create_tag_group,update_tag_group,delete_tag_groupandreorder_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_settingsandupdate_record_settings. The default owner decides nothing, andupdate_record_settingschanges nothing.
New in v1.63.0. Export the Customers table, and every table’s file holds every column it shows.
- NEW:
export_competitor_customersreturns every competitor’s customers in one call, with the filters oflist_competitor_customers. Each row addspeople_you_can_reach,sales_ownerandcs_owner. The REST route’s CSV is the Customers table’s file. - CHANGED: the
export_competitor_accountsCSV addsstanding,possible_customer_of,customer_of_confidence,lost_from,in_market,reading_label,buying_intent_label,likes,comments,first_touch,sales_ownerandcs_owner. Theexport_competitor_interactionsCSV addswhat_happened,pitch,account_standingandrep_relationship.
New in v1.61.0. See which accounts show buying intent.
- CHANGED: scoped
list_competitor_accountsandexport_competitor_accountsrows carrylatest_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 addsbuying_intentandbuying_intent_reason. - CHANGED:
list_competitor_interactionstakesintent. Theexport_competitor_interactionsCSV addsbuying_intentandbuying_intent_reason.
New in v1.60.0. Add the customers you know, and put competitor facts on your CRM companies.
- NEW:
add_competitor_customeradds 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 withsources["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_propertiesandset_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_competitortakestitle_groups, the roles followed at that competitor;[]goes back to the workspace job titles. - CHANGED: scoped
list_competitor_accountsrows carryin_market, true when in the last 30 days two or more competitors engaged the account or three or more people there were engaged, andin_market_facts, the counts behind it.in_market=truekeeps 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:pendingis normally empty. - UNCHANGED:
validate_competitor_joinersstays 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_jobandapply_crm_cleaning_groupwork in two steps. The first call changes nothing and returnsconfirmationRequired, asummaryand the counts of what it would overwrite; the same call withconfirm: true, after you agree, applies it. - CHANGED:
set_client_rulereturns 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_mappingswarns before it lets a CRM own a tag field;set_crm_value_mappingasks first while Standardise values runs on Do it. Each applies withconfirm: true.
New in v1.57.0. The default owner for warm intros can be read and changed from your assistant.
- NEW:
get_record_settingsandupdate_record_settings. Changing the default owner reassigns the owners of your existing intros, soupdate_record_settingsfirst returns a preview and saves nothing; it saves only when called again withconfirmafter you agree. - CHANGED (REST):
PUT /api/tenant/record-settingstakesconfirm. A change that would move a stored owner answersconfirmationRequired: truewith its preview until it is sent withconfirm: true.
New in v1.56.0. Lists are retired: saved views replace them.
- REMOVED:
create_list,update_list,delete_list,add_to_listandremove_from_list, and theadd_to_listaction oncreate_workflowandupdate_workflow. Every list was already copied to a saved view of the same name. - REMOVED (REST):
/api/public/listsand its members routes.
New in v1.55.0. An import can say its warm intros are not all calculated yet.
- NEW:
get_job_statusandlist_jobscarryderive_incomplete: true,derive_incomplete_reason(stalledorbackstop) andderive_noteon aCOMPLETEDimport 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_tagsandreorder_tag_groups;get_tag_group_crm_mappingsandset_tag_group_crm_mappings. - NEW:
create_account_tagtakesgroup_id;list_tagsandlist_account_tagsreturn each tag’sgroup_id. - CHANGED:
set_account_tagsandset_connector_tagsreplace only within the fields of the tags given. An empty list still clears everything.set_connector_tagstakes 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_schedulestill readscadenceweekly: 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_opportunitiestakesaccount_tag(the prospect’s account);list_accountstakespath_tag(accounts with at least one warm intro so tagged);list_connectorstakesaccount_tagandpath_tag;list_signalstakespath_tags. Tags from one group match any; tags from different groups must all match. - FIXED:
set_account_tagsandtag_recordson 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_scheduletakesday_of_week(0 = Sunday) withhour,minuteandtimezone. - 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_accountsandexport_competitor_accountsrows carrypeople(up to 10 of the people engaged, with their newest interaction and its pitch fields) andpitches; both takeorder=standing,typesandpitchon every scope. The CSV addspeople_reachedandpitches. - NEW:
list_competitor_customerstakesorder=standingandowner; rows carry the CRM account owner and CS owner. - NEW:
list_competitor_interactionstakesaccount. - CHANGED:
preview_competitorspeople carrygroup. - 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 ofdomain,linkedin_url,linkedin_numeric_idandcompany_id. Replacesexclude_company. - NEW:
add_client_companies: add one client company or up to 1,000. Replacesadd_client_companyandimport_client_companies. - NEW:
add_owners: add one owner or up to 2,000. Replacescreate_owner;import_ownersstill works as another name for it. - BREAKING:
exclude_company,add_client_company,import_client_companiesandcreate_ownerno longer run. A call answers with the tool and arguments to use instead. - NEW (REST): the excluded companies API:
GET,POST,POST /importandDELETE /{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_accountsandexport_competitor_accountswithscope=alltakein_crm,activity_onlyandowner(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 addspeople_engaged,latestandowner. - NEW:
preview_competitorstakestitle_groupsand lists the first page of people found;register_competitortakestitle_groupsandpeople, 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_accountswithscope=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 withyours(your client list or not) andcustomer_of(any, or one competitor). Every scoped row carriescustomer_ofandwe_own. - NEW:
export_competitor_accounts: the same list in one call, unpaged, up to 50,000 rows, withscope,period,competitor_ids,yoursandcustomer_of. - NEW (REST):
GET /competitor-accounts?scope=allandGET /competitor-accounts/export, as JSON or, withformat=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_accountsrows carrylinkedin_lookup: not_foundwhen 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_accountsneedscompany_linkedin_urlon every account, likelinkedin.com/company/acme. An account without a valid one is not created and comes back inrejectedwith its index and the reason; the others are added. A call where every account is rejected fails withinvalid_linkedin_url. - CHANGED:
set_account_standingwithtargetskips a company that has no LinkedIn company page and counts it inskipped. - 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_statscounts the warm intros the People list shows, the numbersearch_opportunitiestotals with no filters, and the connectorslist_connectorstotals. It used to count dismissed, overlap-only and undisplayable paths, and people removed from the network. - FIXED:
list_target_accountstakespageandpage_size;list_jobshonours them. - FIXED: a warm intro’s note being set or cleared shows in
list_record_activityfor 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(targetorother) andaccount.is_targetin the webhook. - CHANGED:
get_competitor_alertsandupdate_competitor_alertstakeattack_other_accounts:falsekeeps Attack alerts to target accounts only. Defaulttrue.
- CHANGED:
enrichment_when_differentdefaults tosuggestfor contacts: a title or company LinkedIn gives differently waits in the queue and is not counted in the weekly email. Companies still default tokeep.
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_settingstakesenrichment_when_different(contact,company:keep, the default, orsuggest); 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_budgetcountsrecords_matchedas the records the provider found, whether or not a field was filled, and addsrecords_filled,records_already_complete,records_not_foundandmatch_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_settingskeepsduplicate_spike_alert,completeness_drop_alertandduplicate_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_insightsstill recounts on demand, once an hour.
New in v1.45.0. Competitor customers you can trust. See Their customers.
- CHANGED:
list_competitor_customerslabels 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_competitorandupdate_competitortakewebsite_url. - CHANGED:
lookup_competitor_customers_by_companyreturns 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_valuesshows HubSpot dropdown labels next to option values (label,canonical_label,mapped_to_label,to_label), lists the dropdown’soptions, and marks each mapping the latest full scan did not apply withskipped(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_historyandexport_crm_cleaning_historytake 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_insightsreturnscounted,toCountandetaSecondswhile a count runs,recordsWithoutValueper property, and per objectfillBands(how many properties are 0, 1-20, 20-50, 50-80 or 80-100% filled),history(the latest 12 counts) andprevious(the count before the latest). Theissuevalues 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_insightsstill 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_insightsandrefresh_crm_property_insights: which HubSpot properties are filled, and which custom ones nobody uses. - CHANGED:
get_crm_enrichment_budgetalso returns this month’s match rate: records sent, records with at least one field filled, and fills per field. - CHANGED:
update_crm_cleaning_settingstakes the two data quality alerts,realtime_duplicates,primary_rules(which record a merge keeps) andmatch_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_changeleaves 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_runsandget_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_enrichmentandget_crm_enrichment_budget: fill missing fields inside the monthly enrichment budget, and see what is left. - NEW:
list_crm_cleaning_changes,accept_crm_cleaning_changeanddismiss_crm_cleaning_change: work the queue one change at a time. - NEW:
list_crm_cleaning_history,revert_crm_cleaning_changeandretry_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_settingsandlist_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_capabilitiesandget_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_ruleanddelete_client_rule: read and change who counts as a client in each connected CRM. See Client companies. - NEW:
lookup_competitor_customers_by_companyandresolve_linkedin_company. - CHANGED:
list_accountsreturnscompetitor_activityand takes the competitor filters and sorts;update_competitor_delivery_configtakesroutes;set_competitor_customer_verdicttakesverdict: 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_groupanddismiss_crm_cleaning_group: read the queue and apply or dismiss a whole group of changes. - NEW:
list_crm_cleaning_findings,dismiss_crm_cleaning_findingsandmerge_crm_duplicates: work the findings report, and merge duplicates on HubSpot. - NEW:
get_crm_completenessandget_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_titlesanddelete_buyer_title: read and edit the job titles of the people you sell to. - NEW:
list_excluded_titles,add_excluded_titlesanddelete_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_connectorstakesmark_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_connectorsanswersstatus: "started"with thejob_idand 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_accessandjoin_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_statusandlist_jobsgive aFAILEDjob afailure_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 stablereason_codesuch ascompany_not_foundortimed_out. See Get Job Status. - CHANGED:
get_account_researchanswersstatus: FAILEDwith the reason when the last run on the company failed.start_account_researchsays 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
FAILEDwith its reason. It used to stayPROCESSING. - CHANGED:
list_signalsrows 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_signalssays what kind of signal each row is:family(network,activity,prospect) andorigin(prospectwhen the person did it,networkwhen one of your connectors engaged their post), and filters on both withfamiliesandorigins.
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 bysince/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_activitytakesentity: "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 stablereasonCode, the raw error andretryable. Read it whenget_job_statusreports 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_opportunityreads it, with who last edited it and when (notes_updated_at,notes_updated_by_name), andupdate_opportunitywrites 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_accounttakes areason, stored as the account’sdismiss_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_taganddelete_tagnow work on every tag, not only connector tags.create_tagrequiresgroup_id(fromlist_tag_groups; connector tags are in a person group) and takescloses;positionis gone fromcreate_tagandupdate_tag. Tag ids did not change, soupdate_taganddelete_tagon a connector tag work as before. - NEW:
push_to_crmonset_account_owner,bulk_set_account_stateandset_connector_owner— also write the owner to the matched CRM record. The result carriescrmPushandcrmPushSummary, a sentence saying what happened in the CRM. The owner is saved in Clustr either way. - CHANGED:
update_opportunitysets the opportunity’s own owner withowner_id(fromlist_owners), andunassign_ownerclears it. That is the owner the People table shows.set_connector_owneris 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_ownersentries carrycrmSeatwhen a CRM is connected. - CHANGED: the retired
create_status,update_statusanddelete_statusnow point atcreate_tag,update_taganddelete_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:list_account_researchshows what already exists, including reports your team ran in the web app.get_account_researchreturns 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.start_account_researchonly runs when nothing exists yet. If research already exists, it hands back that report instead of starting a duplicate, and says so withalready_exists: true. To run a company again on purpose, for example after a big hiring wave, ask for a refresh (refresh: true).
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_ownersnever 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.
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:- The owner someone on your team picked for that intro (
set_path_owner). - The connector’s owner (
set_connector_owner). - 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.
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_KEYenvironment variable. Best for headless or shared setups.