The Close MCP Server provides tools organized by scope. Each higher scope includes all tools from the lower scopes.
mcp.readRead-only tools for searching, fetching, and exploring your Close data.
activity_searchSearch for activities. Results are returned ordered by date descending. Examples:
- To list activities on a lead, use the lead_ids filter.
- To list conversations, filter for calls and meetings.
aggregationPerform an aggregation to answer questions like:
- How many emails were sent this week?
- Calls by user this week (Who made the most?) You MUST first fetch the list of available leads of fields using the
get_fieldstool.
close_product_knowledge_searchSearch Close product documentation and knowledge base for relevant information. Use this tool when users ask about:
- How to use specific Close features
- Close API documentation and integration
- Workflow automation and best practices
- Product capabilities and limitations
- Setup and configuration guidance Example queries:
- “How do I set up automated lead assignment?”
- “What are Close’s API rate limits?”
- “How to create custom fields in Close?”
- “Best practices for email templates in Close”
fetchRetrieve the contents of an arbitrary object by its ID. Currently supported are leads and contacts.
fetch_contactFetch an existing contact by ID. Returns the contact’s details including name, title, email addresses, phone numbers, and URLs.
fetch_email_templateFetch an email template by ID. Returns the complete email template with all its details.
fetch_leadFetch an existing lead (company) by ID.
fetch_lead_smart_viewFetch a lead smart view (saved search) by ID.
fetch_lead_statusFetch a lead status by ID.
fetch_noteFetch an existing note by ID. Returns the full note details including title, text, and metadata.
fetch_opportunityFetch a specific opportunity by ID. Returns the complete opportunity with all its details.
fetch_opportunity_statusFetch an opportunity status by ID.
fetch_pipeline_and_opportunity_statusesFetch an opportunity pipeline, including its opportunity statuses, by ID.
fetch_sms_templateFetch an SMS template by ID. Returns the complete SMS template with all its details.
fetch_taskFetch an existing task by ID. Returns the task’s details including the associated lead, contact, assignee, due date, priority, and completion status.
find_call_outcomesList all outcomes applicable to calls available in the organization.
find_custom_activitiesList all active (non-archived) Custom Activity Types in the organization. Call this before creating a workflow with a “custom-activity-event” trigger so you can look up the correct Custom Activity Type ID.
find_email_templatesList or find email templates
find_formsList all web forms in the organization. Call this before creating a workflow with a “form-submission-event” trigger so you can look up the correct Form ID.
find_groupsList all groups in the organization.
find_lead_custom_fieldsList all lead custom fields defined for the organization. Returns each field’s ID, name, description, type, allowed choices (for choice fields), whether multiple values are accepted, and whether it is a shared field. Useful for deciding which custom field to read or write when working with leads.
find_lead_smart_viewsList lead smart views (saved searches).
find_lead_statusesList or find lead statuses for the organization
find_meeting_outcomesList all outcomes applicable to meetings available in the organization.
find_notesFind notes based on various filters.
find_opportunitiesFind opportunities by status (active/won/lost), owner, lead, or close-date range, optionally only those needing attention, sorted by soonest close, largest value, or highest confidence. Returns each opportunity with resolved lead, contact, owner, and status names; cursor-paginated.
find_pipelines_and_opportunity_statusesList all opportunity pipelines and their opportunity statuses in the organization.
find_reporting_metricsFind available predefined reporting metrics.
find_scheduling_linksList available scheduling links for the user and org. User-owned personal links come with a URL. Shared links come with a special template tag. Each can be inserted into generated templates.
find_sms_templatesList or find SMS templates
find_tasksFind tasks based on various filters. You can filter by lead, assignee, completion state, and due/created/ updated dates.
find_voice_agentsList all voice agents configured for the organization. Voice agents are AI callers that place outbound calls to leads’ contacts on the user’s behalf. Returns each voice agent’s ID and name. Use this to find the right voice agent ID when scheduling a call or assigning a call step in a workflow. Users may refer to voice agents as “voice agents”, “Chloe”, or by their configured name. When more than one agent exists, pick the most appropriate one based on the name.
find_workflowsList or find workflows
get_fieldsUse this field ONLY to get a list of fields for the aggregation tool.
get_voice_agent_overview_reportCross-agent rollup for the Voice Agents list page. Returns one row per active agent — agents with completed calls in
date_rangeor queued upcoming calls. Cumulative funnel counts (answered,engaged,objective_met) plustotal_calls.upcoming_callsis the agent’s queued (not yet completed) calls and is not bound bydate_range— open tasks are open regardless of when scheduled (so an agent with only upcoming calls still appears). Use this to compare agents; for one agent’s outcomes, sentiment, or time saved useget_voice_agent_performance_report. For an inventory of all configured voice agents regardless of activity, usefind_agent_configs. The Voice Agents list (Agents tab) shows all-time stats, so leavedate_rangeat its default (all_time) unless the user asks for a specific window. (The Upcoming and Recent tabs are call lists, not this rollup — search Calls for those.) Rows are sorted server-side per thesortfield (defaultmost_calls); pass a different mode rather than re-sorting in your reply. Setreverse=Trueto invert (e.g.sort=most_calls, reverse=Truefor least active first) — necessary to surface the bottom of the ordering, sincerowsare capped before they reach you.truncatedandtotal_agent_countflag in-scope active agents;dormant_agent_countreports in-scope agents with neither completed calls in the date range nor queued upcoming calls (not included inrows).
get_voice_agent_performance_reportPerformance metrics for one voice agent. Returns the numbers shown on the Performance tab of a Voice Agent detail page. Passing multiple
agent_config_idspools metrics into a single aggregate (not a per-agent breakdown — for that, useget_voice_agent_overview_report). For per-call drill-down, search Calls filtered byagent_config_id. When the user is on a Voice Agent page, pulldate_rangefrompage_context.date_rangeso the numbers match the UI. Percentages:*_pctis overtotal_calls;engaged_over_answered_pctandobjective_met_over_answered_pctare overanswered(tier-to-tier conversion). For any other denominator, compute from*_count.funnel_previous_period_deltasis null when the date range has no defined previous period (e.g.all_time).
get_voice_agentsReturn detailed configuration for one or more voice agents. Includes each agent’s objective, user instructions, and which skills are enabled. Use this as the follow-up to
find_voice_agentsonce one or more agent IDs have been selected.
lead_searchPerform a simple lead search and return the initial set of results. Use this to retrieve all leads, most recent leads, search leads by keyword, or filter by lead status and smart view. For more complex searches use the
searchtool instead. Leads will be returned by last updated first.
org_infoReturn general information about the organization and the user.
org_usersReturn active users (memberships) which are part of the current org.
paginate_searchPaginate a search to retrieve more results. Provide exactly one of:
search_id: ashare_*id from a previous search or shared entry, orsmart_view_id: asave_*Smart View (saved search) id the user is viewing.
propose_voice_agent_updatePropose a voice agent configuration update from natural-language feedback. This tool does not apply changes to the voice agent. It returns a short behavioral summary and proposal ID when the requested edit is clear. If the feedback is ambiguous, it returns clarification questions instead of making a proposal. Use apply_voice_agent_update with the proposal ID only after the user approves the proposal.
searchPerform a natural language search for leads or contacts. If a more specific search tool (like lead_search or activity_search) satisfies the request, use that tool instead. You can reference related objects like activities (such as calls, emails, meetings, notes, custom activities, etc.), opportunities, tasks as long as they are part of a lead query. Example queries:
- leads not contacted in the past week
- leads assigned to me with uncompleted tasks
- leads with an active opportunity over $500
- contacts with CTO title Each returned result will contain a title label, preview text, object ID, and URL. The initial set of results, total count of all results, and a URL to open the results in Close is returned. To retrieve more results, use the returned cursor and call the paginate_search tool using the cursor and search ID returned in this response.
mcp.write_safeIncludes all mcp.read scoped tools, plus these tools for creating and updating data:
create_addressAdd a new address to an existing lead (company).
create_contactCreate a new contact for a lead. A contact represents a person associated with a lead (company).
create_email_templateCreate a new email template. Handling of attachments and unsubscribe links via this tool is currently unsupported. Email template body should be HTML formatted. Use template tags as placeholders, for example:
{{ organization.name }}to refer to the sender’s organization name.{{ user.first_name }}{{ user.last_name }}{{ user.email }}{{ user.phone }}to refer to the user sending the email.{{ lead.display_name }}to refer to the lead name (recipient’s name/company).{{ contact.first_name }}{{ contact.last_name }}to refer to the recipient.
create_leadCreate a new lead (company). After creating a lead, you should usually add an address or contact (including phone or email) to the lead.
create_lead_statusCreate a new lead status.
create_noteCreate a new note on a lead. A note is a text-based activity attached to a lead. At least one of note (plaintext) or note_html (rich text) must be provided.
create_opportunityCreate a new opportunity. Requires a lead ID and status ID. Other fields are optional. The value should be specified in cents (e.g., $100.00 = 10000).
create_opportunity_status_toolCreate a new opportunity status.
create_pipelineCreate a new opportunity pipeline. Use the create_opportunity_status tool to add statuses to the pipeline.
create_sms_templateCreate a new SMS template. Handling of attachments via this tool is currently unsupported. Use template tags as placeholders, for example:
{{ organization.name }}to refer to the sender’s organization name.{{ user.first_name }}{{ user.last_name }}{{ user.email }}{{ user.phone }}to refer to the user sending the message.{{ lead.display_name }}to refer to the lead name (recipient’s name/company).{{ contact.first_name }}{{ contact.last_name }}to refer to the recipient.
create_taskCreate a new task for a lead. A task represents a to-do item that can be assigned to a user and optionally associated with a contact.
create_workflowCreate a new workflow (a.k.a. sequence) with Draft status.
schedule_voice_agent_callSchedule a voice agent to call a lead’s contact. Creates a call task assigned to the voice agent. The voice agent will place the call automatically at the scheduled time, or as soon as the queue picks it up when no time is given. Use
find_voice_agentsfirst to discover which voice agents are available in this organization.
mcp.write_destructiveIncludes all mcp.read and mcp.write_safe scoped tools, plus these tools for updating and deleting data:
apply_voice_agent_updateApply a previously proposed voice agent update. This tool persists the server-stored proposal identified by proposal_id. It does not rerun the feedback processor, and it fails if the proposal has expired or the voice agent changed after the proposal was created.
delete_addressDelete an address from an existing lead (company) if there is an exact match.
delete_contactPermanently delete an existing contact. This will remove the contact from its lead including its email addresses, phone numbers, and URLs will be removed. Activities on the lead are not affected. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the contact.
delete_email_templatePermanently delete an email template. If the template is used in any workflows (sequences), it cannot be deleted.
delete_leadPermanently delete an existing lead (company) by ID including all of its addresses, contacts, opportunities, tasks, and activities. ONLY call this if the user specifically instructed you to delete the lead, and you confirmed what the deletion will entail and that it cannot be reversed.
delete_lead_smart_viewPermanently delete a lead smart view (saved search).
delete_lead_statusPermanently delete a lead status. Cannot delete if it’s the last lead status in the organization or there are leads currently using this status.
delete_notePermanently delete an existing note. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the note.
delete_opportunityPermanently delete an opportunity. This action cannot be undone. All data associated with the opportunity will be removed.
delete_opportunity_status_toolPermanently delete an opportunity status. Cannot delete if it’s the last opportunity status in the organization or there are opportunities currently using this status.
delete_pipelinePermanently delete an opportunity pipeline. A pipeline can only be deleted if it has no statuses. The last pipeline cannot be deleted.
delete_sms_templatePermanently delete an SMS template. If the template is used in any workflows (sequences), it cannot be deleted.
delete_taskPermanently delete an existing task by ID. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the task.
update_contactUpdate an existing contact. You can update a contact’s name, title, email addresses, phone numbers, and URLs. Only fields that are provided will be updated.
update_email_templateUpdate an existing email template. Only fields that are provided and not None will be updated. Handling of attachments and unsubscribe links via this tool is currently unsupported. Email template body should be HTML formatted. Use template tags as placeholders, for example:
{{ organization.name }}to refer to the sender’s organization name.{{ user.first_name }}{{ user.last_name }}{{ user.email }}{{ user.phone }}to refer to the user sending the email.{{ lead.display_name }}to refer to the lead name (recipient’s name/company).{{ contact.first_name }}{{ contact.last_name }}to refer to the recipient.
update_leadUpdate an existing lead (company). Only fields that are provided and not None will be updated.
update_lead_smart_viewUpdate a lead smart view (saved search). Only fields that are provided and not None will be updated.
update_lead_statusUpdate the label of an existing lead status.
update_noteUpdate an existing note. Only fields that are provided will be updated. Note content is provided as rich text (HTML) via note_html; the plaintext note is automatically derived.
update_opportunityUpdate an existing opportunity. Only fields that are provided will be updated. The value should be specified in cents (e.g., $100.00 = 10000).
update_opportunity_status_toolUpdate the label of an existing opportunity status.
update_pipelineUpdate an existing opportunity pipeline. Only fields that are provided will be updated.
update_sms_templateUpdate an existing SMS template. Only fields that are provided will be updated. Fields that are not provided will remain unchanged. Handling of attachments via this tool is currently unsupported. Use template tags as placeholders, for example:
{{ organization.name }}to refer to the sender’s organization name.{{ user.first_name }}{{ user.last_name }}{{ user.email }}{{ user.phone }}to refer to the user sending the message.{{ lead.display_name }}to refer to the lead name (recipient’s name/company).{{ contact.first_name }}{{ contact.last_name }}to refer to the recipient.
update_taskUpdate an existing task. Only fields that are provided will be updated. Pass ‘clear’ for contact_id or due_date to clear those values.