# Close MCP

```json
{
  "name": "Close MCP",
  "slug": "close_mcp",
  "url": "https://composio.dev/toolkits/close_mcp",
  "markdown_url": "https://composio.dev/toolkits/close_mcp.md",
  "logo_url": "https://logos.composio.dev/api/close_mcp",
  "categories": [
    "crm"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-09-01T05:36:08.199Z"
}
```

![Close MCP logo](https://logos.composio.dev/api/close_mcp)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Close MCP or direct API to read leads, update contacts, create activities, and search opportunities through natural language.

## Summary

Close MCP is a CRM MCP exposing leads, contacts, opportunities, activities, communications, and workflows.
Use it to give agents scoped, auditable access to your CRM data.

## Categories

- crm

## Toolkit Details

- Tools: 109

## Images

- Logo: https://logos.composio.dev/api/close_mcp

## Authentication

- **Dcr Oauth**
  - Type: `custom`
  - Description: Dcr Oauth authentication for Close MCP.
  - Setup:
    - Configure Dcr Oauth credentials for Close MCP.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- List open leads assigned to me
- Create follow-up activity for lead
- Update lead status to won

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `CLOSE_MCP_ACTIVITY_SEARCH` | Activity search | Search 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. |
| `CLOSE_MCP_AGGREGATION` | Aggregation | Perform 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_fields` tool. |
| `CLOSE_MCP_APPLY_VOICE_AGENT_UPDATE` | Apply voice agent update | Apply 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. |
| `CLOSE_MCP_CLOSE_PRODUCT_KNOWLEDGE_SEARCH` | Close product knowledge search | Search 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" |
| `CLOSE_MCP_CREATE_ADDRESS` | Create address | Add a new address to an existing lead (company). |
| `CLOSE_MCP_CREATE_CALL_TASK` | Create call task | Schedule a call task on a lead, assigned to either a user or a voice agent (Chloe). A call task represents a scheduled outbound call that will be made to the specified contact at the given time. The task can be assigned to a specific user or dispatched to a voice agent. |
| `CLOSE_MCP_CREATE_COMMENT` | Create comment | Add a comment to a commentable object (note, call, opportunity, task, custom object, etc.). If the object already has a comment thread, the new comment is appended to it. Otherwise a new thread is started for the object. Use this tool for both starting a conversation and replying to an existing one — the object_id alone determines which. Comments support @-mentions of users and groups. The body is HTML. |
| `CLOSE_MCP_CREATE_CONTACT` | Create contact | Create a new contact for a lead. A contact represents a person associated with a lead (company). |
| `CLOSE_MCP_CREATE_CUSTOM_ACTIVITY_INSTANCE` | Create custom activity instance | Create a new custom activity instance on a lead. A custom activity instance is an activity of a custom activity type, holding the custom field values defined by that type. Use the find_custom_activities tool to look up the available custom activity types. If in an interactive session, ask the user for the relevant field values (including custom fields) before creating, even if they are not required. |
| `CLOSE_MCP_CREATE_CUSTOM_OBJECT_INSTANCE` | Create custom object instance | Create a new custom object instance on a lead. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. Use the find_custom_object_types tool to look up the available custom object types. If in an interactive session, ask the user for the relevant field values (including custom fields) before creating, even if they are not required. |
| `CLOSE_MCP_CREATE_DRAFT_EMAIL` | Create draft email | Create a draft email on a lead. The email is saved as an unsent draft for the user to review, edit, and send from Close; it is never sent automatically. Provide the body as Close rich text (HTML) via body_html. To create a reply in an existing thread, provide the ID of the email being replied to via in_reply_to_id. |
| `CLOSE_MCP_CREATE_EMAIL_TEMPLATE` | Create email template | Create 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. |
| `CLOSE_MCP_CREATE_LEAD` | Create lead | Create a new lead (company). After creating a lead, you should usually add an address or contact (including phone or email) to the lead. |
| `CLOSE_MCP_CREATE_LEAD_STATUS` | Create lead status | Create a new lead status. |
| `CLOSE_MCP_CREATE_NOTE` | Create note | Create 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. |
| `CLOSE_MCP_CREATE_OPPORTUNITY` | Create opportunity | Create 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). |
| `CLOSE_MCP_CREATE_OPPORTUNITY_STATUS_TOOL` | Create opportunity status tool | Create a new opportunity status. |
| `CLOSE_MCP_CREATE_PIPELINE` | Create pipeline | Create a new opportunity pipeline. Use the create_opportunity_status tool to add statuses to the pipeline. |
| `CLOSE_MCP_CREATE_SMS_TEMPLATE` | Create sms template | Create 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. |
| `CLOSE_MCP_CREATE_TASK` | Create task | Create 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. |
| `CLOSE_MCP_CREATE_WORKFLOW` | Create workflow | Create a new workflow (a.k.a. sequence) with Draft status. |
| `CLOSE_MCP_CUSTOMIZED_BUILTIN_LABELS` | Customized builtin labels | Return the customized builtin labels. Only renamed labels are returned - an empty result means the default names apply. |
| `CLOSE_MCP_DELETE_ADDRESS` | Delete address | Delete an address from an existing lead (company) if there is an exact match. |
| `CLOSE_MCP_DELETE_CALL_TASK` | Delete call task | Delete a call task. Does not affect sibling tasks. |
| `CLOSE_MCP_DELETE_CONTACT` | Delete contact | Permanently 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. |
| `CLOSE_MCP_DELETE_CUSTOM_ACTIVITY_INSTANCE` | Delete custom activity instance | Permanently delete an existing custom activity instance. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the custom activity instance. |
| `CLOSE_MCP_DELETE_CUSTOM_OBJECT_INSTANCE` | Delete custom object instance | Permanently delete an existing custom object instance. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the custom object instance. |
| `CLOSE_MCP_DELETE_EMAIL_TEMPLATE` | Delete email template | Permanently delete an email template. If the template is used in any workflows (sequences), it cannot be deleted. |
| `CLOSE_MCP_DELETE_LEAD` | Delete lead | Permanently 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. |
| `CLOSE_MCP_DELETE_LEAD_SMART_VIEW` | Delete lead smart view | Permanently delete a lead smart view (saved search). |
| `CLOSE_MCP_DELETE_LEAD_STATUS` | Delete lead status | Permanently delete a lead status. Cannot delete if it's the last lead status in the organization or there are leads currently using this status. |
| `CLOSE_MCP_DELETE_NOTE` | Delete note | Permanently delete an existing note. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the note. |
| `CLOSE_MCP_DELETE_OPPORTUNITY` | Delete opportunity | Permanently delete an opportunity. This action cannot be undone. All data associated with the opportunity will be removed. |
| `CLOSE_MCP_DELETE_OPPORTUNITY_STATUS_TOOL` | Delete opportunity status tool | Permanently delete an opportunity status. Cannot delete if it's the last opportunity status in the organization or there are opportunities currently using this status. |
| `CLOSE_MCP_DELETE_PIPELINE` | Delete pipeline | Permanently delete an opportunity pipeline. A pipeline can only be deleted if it has no statuses. The last pipeline cannot be deleted. |
| `CLOSE_MCP_DELETE_SMS_TEMPLATE` | Delete sms template | Permanently delete an SMS template. If the template is used in any workflows (sequences), it cannot be deleted. |
| `CLOSE_MCP_DELETE_TASK` | Delete task | Permanently delete an existing task by ID. This action cannot be undone. ONLY call this if the user specifically instructed you to delete the task. |
| `CLOSE_MCP_ENRICH_FIELD` | Enrich field | Use AI to determine and set the value of a field on a lead or contact. The field is enriched using available data on the object and external sources, and the enriched value is written back to the object. By default the value is only written if the field is currently empty; set overwrite_existing_value to True to replace an existing value. Returns the enriched value along with the model's reasoning and confidence. |
| `CLOSE_MCP_FETCH_CALL` | Fetch call | Fetch a single call activity by ID. Returns the call's direction, outcome, participants, and (if available) its transcript. |
| `CLOSE_MCP_FETCH_CALL_TASK` | Fetch call task | Fetch a single call task by ID. |
| `CLOSE_MCP_FETCH_COMMENT` | Fetch comment | Fetch a single comment by ID. Returns the comment's rich-text (HTML) body, the thread and lead it belongs to, its @-mentions, and the resolved author and last-editor names. |
| `CLOSE_MCP_FETCH_CONTACT` | Fetch contact | Fetch an existing contact by ID. Returns the contact's details including name, title, email addresses, phone numbers, and URLs. |
| `CLOSE_MCP_FETCH_CUSTOM_ACTIVITY_INSTANCE` | Fetch custom activity instance | Fetch an existing custom activity instance by ID. A custom activity instance is an activity of a custom activity type, holding the custom field values defined by that type. Returns the full instance, including its custom field values and the resolved lead, contact, and user names. |
| `CLOSE_MCP_FETCH_CUSTOM_OBJECT_INSTANCE` | Fetch custom object instance | Fetch an existing custom object instance by ID. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. Returns the full instance, including its custom field values and the resolved lead, custom object type, and creator/updater names. |
| `CLOSE_MCP_FETCH_CUSTOM_OBJECT_TYPE` | Fetch custom object type | Fetch a single custom object type by its ID. A custom object type defines the shape of a category of custom objects, including the custom fields its instances hold. Returns the type with its custom fields. |
| `CLOSE_MCP_FETCH_EMAIL_TEMPLATE` | Fetch email template | Fetch an email template by ID. Returns the complete email template with all its details. |
| `CLOSE_MCP_FETCH_INVOICE` | Fetch invoice | Fetch one of the organization's billing invoices by id. |
| `CLOSE_MCP_FETCH_LEAD` | Fetch lead | Fetch an existing lead (company) by ID. |
| `CLOSE_MCP_FETCH_LEAD_SMART_VIEW` | Fetch lead smart view | Fetch a lead smart view (saved search) by ID. |
| `CLOSE_MCP_FETCH_LEAD_STATUS` | Fetch lead status | Fetch a lead status by ID. |
| `CLOSE_MCP_FETCH_MEETING_TRANSCRIPT` | Fetch meeting transcript | Fetch a meeting's Notetaker transcript(s) by meeting activity ID. Returns the meeting's speaker breakdown, summary, and full speaker-labeled transcript text. Only covers Notetaker (meeting) transcripts; call transcripts are served by `fetch_call`. |
| `CLOSE_MCP_FETCH_NOTE` | Fetch note | Fetch an existing note by ID. Returns the full note details including title, text, and metadata. |
| `CLOSE_MCP_FETCH_OPPORTUNITY` | Fetch opportunity | Fetch a specific opportunity by ID. Returns the complete opportunity with all its details. |
| `CLOSE_MCP_FETCH_OPPORTUNITY_STATUS` | Fetch opportunity status | Fetch an opportunity status by ID. |
| `CLOSE_MCP_FETCH_PIPELINE_AND_OPPORTUNITY_STATUSES` | Fetch pipeline and opportunity statuses | Fetch an opportunity pipeline, including its opportunity statuses, by ID. |
| `CLOSE_MCP_FETCH_SMS_TEMPLATE` | Fetch sms template | Fetch an SMS template by ID. Returns the complete SMS template with all its details. |
| `CLOSE_MCP_FETCH_TASK` | Fetch task | Fetch an existing task by ID. Returns the task's details including the associated lead, contact, assignee, due date, priority, and completion status. |
| `CLOSE_MCP_FIND_CALL_OUTCOMES` | Find call outcomes | List all outcomes applicable to calls available in the organization. |
| `CLOSE_MCP_FIND_CALL_TASKS` | Find call tasks | Find call tasks based on various filters. You can filter by lead, contact, assignee (a user or a voice agent), completion state, and scheduled/created/updated dates. |
| `CLOSE_MCP_FIND_CONTACT_CUSTOM_FIELDS` | Find contact custom fields | List all contact custom fields defined for the organization. Includes both contact-specific fields and shared fields associated with contacts. 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 contacts. |
| `CLOSE_MCP_FIND_CUSTOM_ACTIVITIES` | Find custom activities | List all active (non-archived) Custom Activity Types in the organization, along with the custom fields defined on each type. Call this before creating a workflow with a "custom-activity-event" trigger so you can look up the correct Custom Activity Type ID. |
| `CLOSE_MCP_FIND_CUSTOM_ACTIVITY_INSTANCES` | Find custom activity instances | Find a lead's custom activity instances based on various filters. A custom activity instance is an activity of a custom activity type, holding the custom field values defined by that type. Always scoped to a single lead; optionally filter by attributed user, one or more custom activity types, or activity date. Results are sorted by most recent activity first and are cursor-paginated. |
| `CLOSE_MCP_FIND_CUSTOM_OBJECT_INSTANCES` | Find custom object instances | Find a lead's custom object instances. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. Always scoped to a single lead; optionally filter to a single custom object type. Results are ordered by creation date (oldest first) and are cursor-paginated. |
| `CLOSE_MCP_FIND_CUSTOM_OBJECT_TYPES` | Find custom object types | List all custom object types in the organization, along with the custom fields defined on each type. |
| `CLOSE_MCP_FIND_EMAIL_TEMPLATES` | Find email templates | List or find email templates |
| `CLOSE_MCP_FIND_FORMS` | Find forms | List 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. |
| `CLOSE_MCP_FIND_GROUPS` | Find groups | List all groups in the organization. |
| `CLOSE_MCP_FIND_INVOICES` | Find invoices | Find the organization's billing invoices, newest first. Invoices without a date sort first. |
| `CLOSE_MCP_FIND_LEAD_CUSTOM_FIELDS` | Find lead custom fields | List 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. |
| `CLOSE_MCP_FIND_LEAD_SMART_VIEWS` | Find lead smart views | List lead smart views (saved searches). |
| `CLOSE_MCP_FIND_LEAD_STATUSES` | Find lead statuses | List or find lead statuses for the organization |
| `CLOSE_MCP_FIND_MEETING_OUTCOMES` | Find meeting outcomes | List all outcomes applicable to meetings available in the organization. |
| `CLOSE_MCP_FIND_NOTES` | Find notes | Find notes based on various filters. |
| `CLOSE_MCP_FIND_OPPORTUNITIES` | Find opportunities | Find 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. |
| `CLOSE_MCP_FIND_OPPORTUNITY_CUSTOM_FIELDS` | Find opportunity custom fields | List all opportunity custom fields defined for the organization. Includes both opportunity-specific fields and shared fields associated with opportunities. 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 opportunities. |
| `CLOSE_MCP_FIND_PIPELINES_AND_OPPORTUNITY_STATUSES` | Find pipelines and opportunity statuses | List all opportunity pipelines and their opportunity statuses in the organization. |
| `CLOSE_MCP_FIND_SCHEDULING_LINKS` | Find scheduling links | List 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. |
| `CLOSE_MCP_FIND_SMS_TEMPLATES` | Find sms templates | List or find SMS templates |
| `CLOSE_MCP_FIND_TASKS` | Find tasks | Find tasks based on various filters. You can filter by lead, assignee, completion state, and due/created/ updated dates. |
| `CLOSE_MCP_FIND_VOICE_AGENTS` | Find voice agents | List 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. |
| `CLOSE_MCP_FIND_WORKFLOWS` | Find workflows | List or find workflows |
| `CLOSE_MCP_GET_AI_CREDIT_USAGE` | Get ai credit usage | AI credit usage for the billing account, broken down by feature. Reports total credits used and a per-feature breakdown. Credits are the billing unit for AI features. Usage covers the whole billing account, not a single organization. Omit `start`/`end` for the current billing period; the result's `start`/`end` report the window actually measured. Explicit ranges must be timezone-aware and span at most 366 days. Older ranges may return empty or partial data — zero usage for an old range does not mean no activity. On a rate-limited error, retry after `retry_after` seconds. |
| `CLOSE_MCP_GET_FIELDS` | Get fields | Use this field ONLY to get a list of fields for the aggregation tool. |
| `CLOSE_MCP_GET_VOICE_AGENT_OVERVIEW_REPORT` | Get voice agent overview report | Cross-agent rollup for the Voice Agents list page. Returns one row per **active** agent — agents with completed calls in `date_range` **or** queued upcoming calls. Cumulative funnel counts (`answered`, `engaged`, `objective_met`) plus `total_calls`. `upcoming_calls` is the agent's queued (not yet completed) calls and is **not** bound by `date_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 use `get_voice_agent_performance_report`. For an inventory of all configured voice agents regardless of activity, use `find_agent_configs`. The Voice Agents list (Agents tab) shows all-time stats, so leave `date_range` at 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 the `sort` field (default `most_calls`); pass a different mode rather than re-sorting in your reply. Set `reverse=True` to invert (e.g. `sort=most_calls, reverse=True` for least active first) — necessary to surface the bottom of the ordering, since `rows` are capped before they reach you. `truncated` and `total_agent_count` flag in-scope active agents; `dormant_agent_count` reports in-scope agents with **neither** completed calls in the date range **nor** queued upcoming calls (not included in `rows`). |
| `CLOSE_MCP_GET_VOICE_AGENT_PERFORMANCE_REPORT` | Get voice agent performance report | Performance metrics for one voice agent. Returns the numbers shown on the Performance tab of a Voice Agent detail page. Passing multiple `agent_config_ids` pools metrics into a single aggregate (not a per-agent breakdown — for that, use `get_voice_agent_overview_report`). For per-call drill-down, search Calls filtered by `agent_config_id`. When the user is on a Voice Agent page, pull `date_range` from `page_context.date_range` so the numbers match the UI. Percentages: `*_pct` is over `total_calls`; `engaged_over_answered_pct` and `objective_met_over_answered_pct` are over `answered` (tier-to-tier conversion). For any other denominator, compute from `*_count`. `funnel_previous_period_deltas` is null when the date range has no defined previous period (e.g. `all_time`). |
| `CLOSE_MCP_GET_VOICE_AGENTS` | Get voice agents | Return 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_agents` once one or more agent IDs have been selected. |
| `CLOSE_MCP_LEAD_SEARCH` | Lead search | Perform 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 `search` tool instead. Leads will be returned by last updated first. |
| `CLOSE_MCP_LIST_MEMBERSHIP_REQUESTS` | List membership requests | List pending requests to join the current organization. Each entry includes the requesting user's name and email, the request id, and when the request was created. |
| `CLOSE_MCP_ORG_INFO` | Org info | Return general information about the organization and the user. |
| `CLOSE_MCP_ORG_USERS` | Org users | Return active users (memberships) which are part of the current org. |
| `CLOSE_MCP_PAGINATE_SEARCH` | Paginate search | Paginate a search to retrieve more results. Provide exactly one of: - `search_id`: a `share_*` id from a previous search or shared entry, or - `smart_view_id`: a `save_*` Smart View (saved search) id the user is viewing. |
| `CLOSE_MCP_PROPOSE_VOICE_AGENT_UPDATE` | Propose voice agent update | Propose 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. |
| `CLOSE_MCP_SCHEDULE_VOICE_AGENT_CALL` | Schedule voice agent call | Schedule 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_agents` first to discover which voice agents are available in this organization. |
| `CLOSE_MCP_SEARCH` | Search | Perform 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. |
| `CLOSE_MCP_UPDATE_CALL_TASK` | Update call task | Update a call task. Only fields that are provided will be updated. Reassigning to a user or voice agent (agent_config_id) affects only this task. Completing a call task also completes every sibling task sharing its deduplication key. |
| `CLOSE_MCP_UPDATE_CONTACT` | Update contact | Update 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. |
| `CLOSE_MCP_UPDATE_CUSTOM_ACTIVITY_INSTANCE` | Update custom activity instance | Update an existing custom activity instance. A custom activity instance is an activity of a custom activity type, holding the custom field values defined by that type. Only fields that are provided will be updated. For custom fields, only the custom fields included are modified; pass null to clear one. Pass 'clear' for contact_id to detach the contact. |
| `CLOSE_MCP_UPDATE_CUSTOM_OBJECT_INSTANCE` | Update custom object instance | Update an existing custom object instance. A custom object instance is a record of a custom object type, attached to a lead and holding the custom field values defined by that type. Only fields that are provided will be updated. For custom fields, only the custom fields included are modified; pass null to clear one. |
| `CLOSE_MCP_UPDATE_DRAFT_EMAIL` | Update draft email | Update an existing draft email. Only draft emails can be updated; sent or scheduled emails are rejected. Only fields that are provided are changed. This never sends the email. |
| `CLOSE_MCP_UPDATE_EMAIL_TEMPLATE` | Update email template | Update 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. |
| `CLOSE_MCP_UPDATE_LEAD` | Update lead | Update an existing lead (company). Only fields that are provided and not None will be updated. |
| `CLOSE_MCP_UPDATE_LEAD_SMART_VIEW` | Update lead smart view | Update a lead smart view (saved search). Only fields that are provided and not None will be updated. |
| `CLOSE_MCP_UPDATE_LEAD_STATUS` | Update lead status | Update the label of an existing lead status. |
| `CLOSE_MCP_UPDATE_NOTE` | Update note | Update 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. |
| `CLOSE_MCP_UPDATE_OPPORTUNITY` | Update opportunity | Update an existing opportunity. Only fields that are provided will be updated. The value should be specified in cents (e.g., $100.00 = 10000). |
| `CLOSE_MCP_UPDATE_OPPORTUNITY_STATUS_TOOL` | Update opportunity status tool | Update the label of an existing opportunity status. |
| `CLOSE_MCP_UPDATE_PIPELINE` | Update pipeline | Update an existing opportunity pipeline. Only fields that are provided will be updated. |
| `CLOSE_MCP_UPDATE_SMS_TEMPLATE` | Update sms template | Update 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. |
| `CLOSE_MCP_UPDATE_TASK` | Update task | Update an existing task. Only fields that are provided will be updated. Pass 'clear' for contact_id or due_date to clear those values. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Close MCP Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Close MCP actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'YOUR_SPECIFIC_PROMPT_HERE'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for Close MCP
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Close MCP tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('YOUR_SPECIFIC_PROMPT_HERE')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Close MCP Integration

- Supports both Close MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Close MCP data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Close MCP access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Close MCP
- Scoped, least privilege access to Close MCP resources
- Full audit trail of agent actions to support review and compliance

## Use Close MCP with any AI Agent Framework

Choose a framework you want to connect Close MCP with:

- [ChatGPT Work](https://composio.dev/toolkits/close_mcp/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/close_mcp/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/close_mcp/framework/hermes-agent)

## Related Toolkits

- [HubSpot](https://composio.dev/toolkits/hubspot) - HubSpot is an all-in-one marketing, sales, and customer service platform. It lets teams nurture leads, automate outreach, and track every customer interaction in one place.
- [Pipedrive](https://composio.dev/toolkits/pipedrive) - Pipedrive is a sales management platform offering pipeline visualization, lead tracking, and workflow automation. It helps sales teams keep deals moving forward efficiently and never miss a follow-up.
- [Salesforce](https://composio.dev/toolkits/salesforce) - Salesforce is a leading CRM platform that helps businesses manage sales, service, and marketing. It centralizes customer data, enabling teams to drive growth and build strong relationships.
- [Apollo](https://composio.dev/toolkits/apollo) - Apollo is a CRM and lead generation platform that helps businesses discover contacts and manage sales pipelines. Use it to streamline customer outreach and track your deals from one place.
- [Attio](https://composio.dev/toolkits/attio) - Attio is a customizable CRM and workspace for managing your team's relationships and workflows. It helps teams organize contacts, automate tasks, and collaborate more efficiently.
- [Acculynx](https://composio.dev/toolkits/acculynx) - AccuLynx is a cloud-based roofing business management software for contractors. It streamlines project tracking, lead management, and document sharing.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Affinity](https://composio.dev/toolkits/affinity) - Affinity is a relationship intelligence CRM that helps private capital investors find, manage, and close more deals. It streamlines deal flow and surfaces key connections to help you win opportunities.
- [Agencyzoom](https://composio.dev/toolkits/agencyzoom) - AgencyZoom is a sales and performance platform built for P&C insurance agencies. It helps agents boost sales, retain clients, and analyze producer results in one place.
- [Agile CRM](https://composio.dev/toolkits/agile_crm) - Agile CRM is a unified customer management platform combining contacts, sales pipelines, marketing, and support. Use it to centralize customer data, automate campaigns, and manage deals and tickets in one place.
- [Bettercontact](https://composio.dev/toolkits/bettercontact) - Bettercontact is a smart contact enrichment tool for finding emails and phone numbers. It helps boost lead generation with automated, waterfall search across multiple sources.
- [Blackbaud](https://composio.dev/toolkits/blackbaud) - Blackbaud provides cloud-based software for nonprofits, schools, and healthcare institutions. It streamlines fundraising, donor management, and mission-driven operations.
- [Brilliant directories](https://composio.dev/toolkits/brilliant_directories) - Brilliant Directories is an all-in-one platform for building and managing online membership communities and business directories. It streamlines listings, member management, and engagement tools into a single, easy interface.
- [Capsule crm](https://composio.dev/toolkits/capsule_crm) - Capsule CRM is a user-friendly CRM platform for managing contacts and sales pipelines. It helps businesses organize relationships and streamline their sales process efficiently.
- [Centralstationcrm](https://composio.dev/toolkits/centralstationcrm) - CentralStationCRM is an easy-to-use CRM software focused on collaboration and long-term customer relationships. It helps teams manage contacts, deals, and communications all in one place.
- [Clarify MCP](https://composio.dev/toolkits/clarify_mcp) - Clarify MCP is a CRM platform for managing companies, people, deals, meetings, tasks, lists, and campaigns. Use it to centralize CRM data and streamline sales and marketing workflows.
- [Clay MCP](https://composio.dev/toolkits/clay_mcp) - Clay MCP is a prospect enrichment service for researching companies and contacts. It runs enrichment providers and Clay functions to return enriched prospect data.
- [Clientary](https://composio.dev/toolkits/clientary) - Clientary is a platform for managing clients, invoices, projects, proposals, and more. It streamlines client work and saves you serious admin time.
- [Close](https://composio.dev/toolkits/close) - Close is a CRM platform built for sales teams, combining calling, email automation, and predictive dialers. It streamlines sales workflows and boosts productivity with all-in-one communication tools.
- [Contacts+](https://composio.dev/toolkits/contacts_plus) - Contacts+ is a contact management service for personal account, contact, and tag data. It helps keep address books organized, searchable, and easier to maintain across workflows.

## Frequently Asked Questions

### Do I need my own developer credentials to use Close MCP with Composio?

Yes, Close MCP requires you to configure your own Dcr Oauth credentials. Once set up, Composio handles secure credential storage and management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
