The Clarify MCP connector routes your AI agent's tool calls to Clarify's own MCP server through Scalekit. Each user signs in to Clarify once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 38 tools.
- Tools
- 38
- What they doRead · write · destructive
- 12 · 11 · 1512 read11 write15 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
What you can do
- Manage CRM records: create, update, delete, and query records across any custom object type
- Manage campaigns: create, update, delete, and list outreach campaigns with multi-step email sequences
- Find and import leads: search for leads by criteria and import them into campaigns or lists
- Manage lists and segments: create, update, delete, and list audience lists for targeting
- Extend the data model: create, update, and delete custom objects and fields to match your schema
- Analyze and query data: run analytics queries and retrieve structured data with custom filters
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Clarify MCP connection
In AgentKit > Connections, create a Clarify MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Clarify MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'clarifymcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Clarify MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'clarifymcp_get_current_user',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "clarifymcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Clarify MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="clarifymcp_get_current_user",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolclarifymcp_get_agent_runsList an agent's past runs, or fetch one run with its full message transcript.Read-onlyGet Agent Runs
List an agent's past runs, or fetch one run with its full message transcript.
Inputs
agent_idstringrequired- The ID of the agent whose runs to list or fetch.
limitinteger- Maximum number of runs to return when listing.default
10 offsetinteger- Offset for pagination when listing.default
0 run_idstring- Optional ID of a specific run to fetch in full, including transcript. Omit to list recent runs.
clarifymcp_get_agentsList agents visible to the current user, or fetch a single agent by ID.Read-onlyGet Agents
List agents visible to the current user, or fetch a single agent by ID.
Inputs
agentIdstring- The ID of a specific agent to fetch. Omit to list all visible agents.
clarifymcp_get_calendar_eventsList the current user's calendar events in a time range.Read-onlyGet Calendar Events
List the current user's calendar events in a time range.
Inputs
endstringrequired- ISO 8601 end of the time range (exclusive).
startstringrequired- ISO 8601 start of the time range (inclusive).
limitinteger- Maximum events to return.default
25 querystring- Optional substring match against event title or description.
clarifymcp_get_campaign_recipientsList the people enrolled in a campaign along with their per-recipient engagement (opens, clicks, replies).Read-onlyGet Campaign Recipients
List the people enrolled in a campaign along with their per-recipient engagement (opens, clicks, replies).
Inputs
campaign_idstringrequired- The ID of the campaign to list recipients for. Get it from get_campaigns.
eventarray- Return only recipients who did at least one of these event types.
limitnumber- Maximum number of recipients to return.default
10 offsetnumber- Use with limit for pagination.default
0 searchstring- Case-insensitive substring match against recipient name or email address.
statusstring- Return only recipients in this delivery state.one of
scheduledcompletedpausedfailedunsubscribed
clarifymcp_get_campaignsList email campaigns in the workspace, or fetch a single campaign by ID with full details.Read-onlyGet Campaigns
List email campaigns in the workspace, or fetch a single campaign by ID with full details.
Inputs
campaign_idstring- The ID of the campaign. Use get_campaigns to list available campaigns and their IDs.
limitnumber- Maximum number of records to return per page.default
10 offsetnumber- Number of records to skip for pagination (use with limit).default
0 searchstring- Case-insensitive substring search to filter results by name or title.
statusstring- Filter by campaign status — draft (unpublished) or active (live campaigns).one of
activedraft
clarifymcp_get_current_userRetrieve information about the currently authenticated Clarify user, including timezone and workspace details.Read-onlyGet Current User
Retrieve information about the currently authenticated Clarify user, including timezone and workspace details.
Inputs
mcp_client_timezonestring- Your IANA timezone string (e.g. America/New_York). Helps Clarify show times in your local timezone.
clarifymcp_get_listsList saved views (dynamic lists) for an entity type, or fetch a single list by ID.Read-onlyGet Lists
List saved views (dynamic lists) for an entity type, or fetch a single list by ID.
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
limitnumber- Maximum number of records to return per page.default
10 list_idstring- The ID of an existing list (saved view). Use get_lists to find available list IDs.
offsetnumber- Number of records to skip for pagination (use with limit).default
0 searchstring- Case-insensitive substring search to filter results by name or title.
clarifymcp_get_recordsRetrieve full details for one or more Clarify records by their IDs.Read-onlyGet Records
Retrieve full details for one or more Clarify records by their IDs.
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
idsarrayrequired- Array of record IDs to retrieve. Use query_data to find IDs first.
clarifymcp_get_schemaRetrieve the schema for Clarify entities, including field definitions and relationship metadata.Read-onlyGet Schema
Retrieve the schema for Clarify entities, including field definitions and relationship metadata.
Inputs
entitiesarray- List of entity types to get schema for. Omit to return the schema for all entities.
formatstring- Schema format — use read for querying data or write for creating/updating records.one of
readwritedefaultread
clarifymcp_query_analyticsExecute a read-only ClickHouse SQL query against the Clarify analytics event log.Read-onlyQuery Analytics
Execute a read-only ClickHouse SQL query against the Clarify analytics event log.
Inputs
sqlstringrequired- SQL query to execute. For query_data use PostgreSQL syntax; for query_analytics use ClickHouse SQL.
limitnumber- Maximum number of records to return per page.default
512
clarifymcp_query_dataExecute a read-only PostgreSQL query against Clarify CRM data (contacts, companies, deals, etc.).Read-onlyQuery Data
Execute a read-only PostgreSQL query against Clarify CRM data (contacts, companies, deals, etc.).
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
sqlstringrequired- SQL query to execute. For query_data use PostgreSQL syntax; for query_analytics use ClickHouse SQL.
limitnumber- Maximum number of records to return per page.default
10 offsetnumber- Number of records to skip for pagination (use with limit).default
0
clarifymcp_read_contextRead Clarify product documentation and best-practice guides for fields, calendar, campaigns, and artifacts.Read-onlyRead Product Knowledge
Read Clarify product documentation and best-practice guides for fields, calendar, campaigns, and artifacts.
Inputs
contextstringrequired- The name of the context documentation to read.one of
field-docscalendar-docscampaign-docsartifact-docs
clarifymcp_add_commentAdd a Markdown comment to a supported Clarify entity (deal, person, company, etc.).WriteAdd Comment
Add a Markdown comment to a supported Clarify entity (deal, person, company, etc.).
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
idstringrequired- The unique ID of the record (e.g. per_01ABCDE for a person, cmp_01ABCDE for a company).
messagestringrequired- The comment text in Markdown format. Supports **bold**, *italic*, and bullet lists.
clarifymcp_create_campaignCreate a new email campaign (sequence) in draft mode, with subject/body/timing steps.WriteCreate Campaign
Create a new email campaign (sequence) in draft mode, with subject/body/timing steps.
Inputs
campaign_namestringrequired- Campaign name.
email_stepsarrayrequired- Email steps with subject, body, and delay_after_days, in send order.
descriptionstring- Campaign description.
from_emailstring- Email address of the connected account to send this campaign from. Defaults to the primary account when omitted.
list_idstring- Target list ID. Get from get_lists. Optional for drafts.
clarifymcp_create_email_draftCreate an email draft in the user's connected Gmail or Outlook account for them to review and send themselves.WriteCreate Email Draft
Create an email draft in the user's connected Gmail or Outlook account for them to review and send themselves. Nothing is sent.
Inputs
bodystringrequired- Email body content as plain text (converted to rich text; supports bullet/numbered lists, bold section labels, blank-line paragraph breaks, and markdown links).
subjectstringrequired- Email subject line.
toarrayrequired- Email addresses to send to.
bccarray- Email addresses to BCC.
ccarray- Email addresses to CC.
confirmedNewRecipientsarray- Recipient addresses that match no CRM person record but that the user supplied or confirmed verbatim.
fromstring- Address to draft from. Only set this when the user explicitly asks to draft from a specific alias; otherwise omit to use the connected account's primary address.
replacesDraftIdstring- Nylas draft ID of a previous draft in this conversation that this call is revising. When set, the existing draft is updated in place instead of creating a duplicate.
replyToMessageIdstring- Short Nylas message_id of the inbound email being replied to. Set this when drafting a reply on an existing thread. Do not pass a Clarify record _id or a Nylas draft id here.
clarifymcp_create_or_update_fieldsCreate new custom fields or update existing fields on any Clarify entity (person, company, deal, or custom object).WriteCreate Or Update Fields
Create new custom fields or update existing fields on any Clarify entity (person, company, deal, or custom object).
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
fieldsarrayrequired- Array of field definitions to create or update on the entity.
clarifymcp_create_or_update_listCreate or update a dynamic list — a saved view whose membership is defined by a SQL query.WriteCreate Or Update List
Create or update a dynamic list — a saved view whose membership is defined by a SQL query.
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
descriptionstring- AI context description for this object type — helps the AI understand when to use it.
emojistring- A single emoji to display alongside the list name.
list_idstring- The ID of an existing list (saved view). Use get_lists to find available list IDs.
sqlstring- SQL query to execute. For query_data use PostgreSQL syntax; for query_analytics use ClickHouse SQL.
titlestring- The display name of the list.
clarifymcp_find_leadsSearch Clarify's built-in prospect database of 28M+ companies and 175M+ people to find new leads.WriteFind Leads
Search Clarify's built-in prospect database of 28M+ companies and 175M+ people to find new leads.
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).one of
tam_companytam_person search_labelstringrequired- A descriptive label for this lead search (e.g. SF SaaS Companies 50+ employees).
sqlstringrequired- SQL query to execute. For query_data use PostgreSQL syntax; for query_analytics use ClickHouse SQL.
search_identifiersstring- Optional: provide a prior searchId and versionId to operate on an existing search.
clarifymcp_import_leadsImport leads from a find_leads search result into your Clarify workspace.WriteImport Leads
Import leads from a find_leads search result into your Clarify workspace.
Inputs
searchEmojistringrequired- A single emoji representing the theme of the search.
searchIdstringrequired- The ID of the lead search returned by find_leads.
searchTitlestringrequired- A descriptive title for the search based on its filters.
sourceEntitystringrequired- The lead entity type to import from — tam_company or tam_person.one of
tam_companytam_person countinteger- Number of leads to import. Omit to import all leads in the search.
extraFieldsarray- Additional TAM field names to import beyond the default fields.
versionIdstring- The version ID of the search. Use the versionId from a prior find_leads result when available.
clarifymcp_import_meeting_transcriptImport a meeting transcript from an external source (Granola, Notion, or Circleback) and attach it to a Clarify meeting.WriteImport Meeting Transcript
Import a meeting transcript from an external source (Granola, Notion, or Circleback) and attach it to a Clarify meeting.
Inputs
meeting_idstringrequired- The Clarify meeting ID to attach the transcript to.
sourcestringrequired- The transcript source provider.one of
granolanotioncircleback source_idstringrequired- The ID of the transcript in the source system. For Granola: meeting UUID. For Notion: page URL or UUID. For Circleback: numeric meeting ID, not the URL slug.
clarifymcp_respond_to_calendar_eventRSVP (accept, decline, or tentatively accept) to a calendar event invite.WriteRespond To Calendar Event
RSVP (accept, decline, or tentatively accept) to a calendar event invite.
- Idempotent
Inputs
event_idstringrequired- The Nylas event ID (from get_calendar_events) to respond to.
statusstringrequired- RSVP status: yes (accept), no (decline), or maybe (tentative).one of
yesnomaybe
clarifymcp_send_emailSend an email immediately through the user's connected email account.WriteSend Email
Send an email immediately through the user's connected email account.
Inputs
bodystringrequired- Email body as plain text (converted to rich text; supports bullet/numbered lists, bold section labels, blank-line paragraph breaks, and markdown links).
subjectstringrequired- Email subject line.
toarrayrequired- Email addresses to send to.
bccarray- Email addresses to BCC.
ccarray- Email addresses to CC.
confirmedNewRecipientsarray- Recipient addresses that match no CRM person record but that the user supplied or confirmed verbatim.
fromstring- Address to send from. Only set this when the user explicitly asks to send from a specific alias; otherwise omit to use the connected account's primary address.
replyToMessageIdstring- Short Nylas message_id of the inbound email being replied to. Set this when sending a reply on an existing thread. Do not pass a Clarify record _id or a Nylas draft id here.
clarifymcp_submit_feedbackSubmit a feature request or bug report about Clarify MCP tools.WriteSubmit Feedback
Submit a feature request or bug report about Clarify MCP tools.
Inputs
feedbackstringrequired- The feature request or feedback message describing what is missing or broken.
categorystring- Category for your feedback. Accepted values: missing_tool, bug, improvement, other.one of
feature_requestbug_reportimprovementother
clarifymcp_create_or_update_agentCreate or update an autonomous agent: its triggers, instructions, model tier, allowed tools, and MCP connectors.DestructiveCreate Or Update Agent
Create or update an autonomous agent: its triggers, instructions, model tier, allowed tools, and MCP connectors.
Inputs
agentIdstring- The ID of an existing agent to update. Omit to create a new agent.
descriptionstring- Short description of the agent (up to 300 characters). Required when creating a new agent.
enabledboolean- Whether the agent is enabled. Only applicable when updating an existing agent. New agents are created enabled.
instructionsstring- The instructions that define how the agent behaves. Markdown up to 30,000 characters. Required when creating a new agent.
mcp_serversobject- MCP connector configuration keyed by server ID. Each server maps tool names to permissions. This is a full replacement; omit to keep existing servers unchanged.
modelstring- Model tier the agent runs on. "fast" is cheaper and faster for simple, deterministic work. "smart" (default) is for multi-step reasoning and judgment.one of
smartfastauto namestring- Agent name (1-64 characters). Required when creating a new agent.
throttlestring- Caps how many times this agent may run per hour. Throttles are hourly only. Omit to leave unchanged; pass null to reset to the default of 100 runs/hour.
toolsobject- Map of tool name to permission. Only listed tools are available to the agent. This is a full replacement; omit to keep existing tools unchanged.
triggersarray- Triggers that activate the agent. Each trigger specifies an event the agent responds to. An agent can have multiple triggers.
visibilitystring- Controls agent run visibility. "public" lets anyone in the workspace see the agent's runs. "private" restricts runs to the creator only. Defaults to "private".one of
publicprivate
clarifymcp_create_or_update_calendar_eventCreate a new calendar event, or update an existing one by event_id.DestructiveCreate Or Update Calendar Event
Create a new calendar event, or update an existing one by event_id.
Inputs
descriptionstring- Event description. Maximum 8000 characters.
event_idstring- Existing Nylas event ID (from get_calendar_events) to update. Omit to create a new event.
locationstring- Event location, maximum 255 characters. Omit to leave unchanged on update; passing an empty string clears the field.
notify_participantsboolean- Whether to send invite/update emails. Defaults to true on create, false on update.
participantsarray- Email addresses to invite or update.
participants_modestring- How to apply participants on update. 'add' (default) merges the listed emails into the existing attendee list. 'replace' substitutes the entire attendee list.one of
addreplace recurrencearray- Optional RRULE strings (RFC 5545) to make the event recurring. Update and delete operations apply to the whole series.
titlestring- Required when creating; optional when updating. Maximum 1024 characters.
whenstring- Required when creating. When updating, provide only if rescheduling.
clarifymcp_create_or_update_campaignCreate a new email campaign or update an existing one by its ID.DestructiveCreate Or Update Campaign
Create a new email campaign or update an existing one by its ID.
Inputs
campaign_namestringrequired- Name of the campaign. Required when creating a new campaign.
email_stepsarrayrequired- Array of email step definitions for the campaign sequence.
campaign_idstring- ID of an existing campaign to update. Omit to create a new campaign.
statusstring- Campaign status — draft (default) or active.one of
draftactive
clarifymcp_create_or_update_custom_objectCreate a new custom object type or update an existing one in the Clarify workspace.DestructiveCreate Or Update Custom Object
Create a new custom object type or update an existing one in the Clarify workspace.
Inputs
descriptionstring- AI context description for this object type — helps the AI understand when to use it.
entitystring- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
namestring- Display name for the custom object type. Will be normalized to a slug for the entity identifier.
pluralstring- Plural label for the custom object type (e.g. Partnerships for a singular Partnership).
clarifymcp_create_or_update_recordsCreate new records or update existing ones in Clarify.DestructiveCreate Or Update Records
Create new records or update existing ones in Clarify. Supports bulk operations of up to 25 records per call.
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
recordsarrayrequired- Array of records to create or update. Each item contains an attributes object with field values.
clarifymcp_delete_agentPermanently delete an agent by its ID.DestructiveDelete Agent
Permanently delete an agent by its ID. Only the creator of an agent can delete it.
- Idempotent
Inputs
agentIdstringrequired- The ID of the agent to delete.
clarifymcp_delete_calendar_eventCancel a calendar event the user owns or has edit access to.DestructiveCancel Calendar Event
Cancel a calendar event the user owns or has edit access to.
- Idempotent
Inputs
event_idstringrequired- The Nylas event ID (from get_calendar_events) to cancel.
notify_participantsboolean- Send cancellation notices to attendees. Default: true.default
true
clarifymcp_delete_campaignPermanently delete an email campaign by its ID.DestructiveDelete Campaign
Permanently delete an email campaign by its ID.
Inputs
campaign_idstringrequired- The ID of the campaign. Use get_campaigns to list available campaigns and their IDs.
clarifymcp_delete_custom_objectPermanently delete a custom object type from the Clarify workspace by its entity identifier.DestructiveDelete Custom Object
Permanently delete a custom object type from the Clarify workspace by its entity identifier.
- Idempotent
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
clarifymcp_delete_fieldsPermanently delete one or more custom fields from a Clarify entity by their field slugs.DestructiveDelete Fields
Permanently delete one or more custom fields from a Clarify entity by their field slugs.
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
fieldNamesarrayrequired- Array of field slugs (snake_case) to delete from the entity.
clarifymcp_delete_listPermanently delete a saved list (dynamic view) by its ID.DestructiveDelete List
Permanently delete a saved list (dynamic view) by its ID.
- Idempotent
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
list_idstringrequired- The ID of an existing list (saved view). Use get_lists to find available list IDs.
clarifymcp_delete_recordsPermanently delete one or more records by their IDs.DestructiveDelete Records
Permanently delete one or more records by their IDs. Supports bulk deletion of up to 25 records per call.
- Idempotent
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
record_idsarrayrequired- Array of record IDs to delete. All must belong to the same entity type.
clarifymcp_manage_accessGrant, update, revoke, or read access grants on a list, meeting, or message, or reassign its owner.DestructiveManage Access
Grant, update, revoke, or read access grants on a list, meeting, or message, or reassign its owner.
- Idempotent
Inputs
actionstringrequired- The access operation to perform: grant, update, revoke, read, or reassign.one of
grantupdaterevokereadreassign targetstringrequired- The object (or set of objects) to manage access for. Use mode:"direct" for a single list, meeting, or message by id, or mode:"related" to bulk-manage every message on an anchor record.
accessLevelstring- The access level to grant or update to. Required for grant and update.one of
viewedit allboolean- Revoke only: when true, revoke every grant on the object. Mutually exclusive with grantees.
granteesarray- The grantees to act on. Required for grant and update. For revoke, provide either grantees or all=true.
newOwnerIdstring- Reassign only: the user record id to make the new owner of the object.
objectIdsarray- Reassign only: to reassign several objects of the same entity to newOwnerId at once, list the other object ids here (up to 50). target.objectId is always included.
clarifymcp_merge_recordsMerge two or more duplicate records into a single primary record, combining all data.DestructiveMerge Records
Merge two or more duplicate records into a single primary record, combining all data.
Inputs
entitystringrequired- The entity type to operate on (e.g. person, company, deal, or a custom object identifier like c_my_object).
primaryRecordIdstringrequired- The ID of the record to keep after the merge — all data is merged into this record.
sourceRecordIdsarrayrequired- IDs of records to merge into the primary record. These records are deleted after merging.
clarifymcp_update_campaignUpdate an existing email campaign: rename it, change its target list, sender, email steps, or send time windows.DestructiveUpdate Campaign
Update an existing email campaign: rename it, change its target list, sender, email steps, or send time windows.
Inputs
campaign_idstringrequired- Campaign ID to update. Get from get_campaigns tool.
email_stepsarray- Email step operations (insert, remove, update). Each step must specify an operation.
from_namestring- Update sender display name for all emails in the campaign.
list_idstring- Target list ID. Get from get_lists tool.
new_namestring- New campaign name.
send_windowsstring- Send time windows for the campaign. Pass null to disable windows or a { windows: { <day>: { start, end } | null } } object to configure them. Days are lowercase (sunday-saturday); start/end are "HH:mm" 24-hour strings. Omit to leave existing windows unchanged.
No tools match.