Skip to content

Connectors · CRM & sales

Close MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Close and the rest of your systems. It gives your agent 313 Close actions (142 reads, 117 writes and 54 that wait for a confirmation) and holds the Close credential itself, so the agent never does. It paces Close's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "close.contacts.list",  intent: "check which Close account is connected"}# List contacts (Close) · read · 1 upstream call
  • 313actionsin one signed file
  • 142readlook, never change
  • 117writecreate and update
  • 54wait for a yesdestructive, confirmed first

Set up

Connect Close in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Close.

    Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • api_keyClose API key (api_... — Settings > Developer > API Keys)
    account { op: "connections.requirements", service: "close" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "close.contacts.list" }# list contacts (close) · read · 1 upstream callcheck { action: "close.contacts.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Close at a glance

Sign-in
Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
api_key
Limits we pace to
10 calls a second, per connection
API covered
Close API v1api.close.com/api/v1
Built from
Close's documentation, read 19 September 2026developer.close.comdeveloper.close.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
142 of 142 reads, for up to an hour; a write clears what it affects
Ready-made plans
9 in the store
Shared entities
11, so ask can line Close up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Close.

313 actions in 15 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 142readlook, never change
  • 117writecreate and update
  • 54destructivewait for a confirmation
  1. Config

    166

    69 read · 67 write · 30 destructive

    List or filter all dialer sessions (Close) · Get a single dialer session (Close) · Enrich a specific field on a lead or contact using AI (Close) · List email templates (Close)

  2. Activity

    69

    35 read · 20 write · 14 destructive

    List or filter all Meeting activities (Close) · List or filter all Call activities (Close) · List or filter all Email activities (Close) · List or filter all Note activities (Close)

  3. Lead

    10

    3 read · 5 write · 2 destructive

    List Leads (Close) · Create a new lead (Close) · Create a Close lead from a whole object · Get a single Lead (Close)

  4. User

    10

    5 read · 4 write · 1 destructive

    List users in your organization (Close) · List user availability statuses (Close) · Fetch a single user (Close) · Fetch information about yourself (Close)

  5. Export

    8

    6 read · 2 write · 0 destructive

    Export leads based on a search query (Close) · Export opportunities, based on opportunity filters (Close) · List Lead Exports (Close) · List all the exports (Close)

  6. Reporting

    8

    8 read · 0 write · 0 destructive

    Get custom report (Explorer) (Close) · Get lead status change report (Close) · Get opportunity status change report (Close) · Get sent emails report (Close)

  7. Contact

    7

    2 read · 4 write · 1 destructive

    List contacts (Close) · Create a new contact (Close) · Create a Close contact from a whole object · Fetch a single contact (Close)

  8. Pipeline

    7

    2 read · 4 write · 1 destructive

    List or filter opportunities (Close) · Create an opportunity (Close) · Create a Close opportunity from a whole object · Retrieve an opportunity (Close)

7 more areas · 28 actions
  • Group 7
  • Task 6
  • Webhook 5
  • Role 5
  • Event 2
  • Org 2
  • Search 1

Top actions

The Close API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 186 of Close's 190 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
close.contacts.listList contacts (Close)List contacts.readcrm.contact.list177 connectors
close.opportunities.listList or filter opportunities (Close)List or filter opportunities.readcrm.deal.list43 connectors
close.meetings.listList or filter all Meeting activities (Close)List or filter all Meeting activities.readcomm.event.list61 connectors
close.tasks.listList or filter tasks (Close)List or filter tasks. The `view` parameter can be used to conveniently access the different task views. It accepts one of the following values:.readwork.task.list122 connectors
close.leads.listList Leads (Close)List Leads.readcrm.lead.list28 connectors
close.calls.listList or filter all Call activities (Close)List or filter all Call activities.readcomm.call.list44 connectors
close.contacts.createCreate a new contact (Close)Create a new contact. Contacts belong to exactly one Lead (specified by `lead_id`). If you do not provide a `lead_id` then a new lead will be created, named…writecrm.contact.create161 connectors
close.contacts.create_rawCreate a Close contact from a whole objectCreate a Close contact from a whole object. Sends the object you pass exactly as given, so custom fields (`custom.cf_<id>` keys) and any field Close adds…writecrm.contact.create161 connectors
close.users.listList users in your organization (Close)List users in your organization. List all users who are members of your organization.readidentity.user.list474 connectors
close.emails.listList or filter all Email activities (Close)List or filter all Email activities. You'll get one object per email message.readcomm.email.list28 connectors
close.opportunities.createCreate an opportunity (Close)Create an opportunity. Create an opportunity, optionally linked to an existing lead.writecrm.deal.create43 connectors
close.contacts.deleteDelete a contact (Close)Delete a contact.destructivecrm.contact.delete147 connectors

Try it

Prompts to paste into Claude.

Each one names the Close actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which Close deals are due to close this month, and what are they worth in total?

    callsclose.opportunities.list

  2. Planwrite

    Summarise yesterday's calls and log a note in Close.

    callsclose.users.listclose.calls.listclose.meetings.listclose.notes.listclose.tasks.create

  3. Planread

    Report opportunity and lead status movement in Close.

    callsclose.pipelines.listclose.opportunity_statuses.listclose.reporting.opportunity_statuses.runclose.reporting.lead_statuses.runclose.reporting.funnel.totals.run

  4. Writewrite

    Create a new contact (Close) in Close. Show me exactly what you will send before you save it.

    callsclose.contacts.create

The plan store

Ready-made plans for Close.

9 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.

  1. Report opportunity and lead status movement

    Use it when A manager asks for a pipeline health or status-movement summary for a period.

    Effect
    read
    Steps
    5
    Needs
    date end, date start and org id
    Install
    close-pipeline-health-report
  2. Export leads matching a query and wait for the file

    Use it when Someone needs a CSV of leads matching a query pulled out of Close.

    Effect
    write
    Steps
    4
    Needs
    format and query
    Install
    close-export-leads-snapshot
  3. Create a lead with its first contact and task

    Use it when A new inbound enquiry needs to be entered into Close as a complete lead record.

    Effect
    write
    Steps
    4
    Needs
    assignee user id, company name, contact email and contact name
    Install
    close-onboard-new-lead
  4. Subscribe a lead's contacts to an outreach sequence

    Use it when A rep wants everyone on a lead enrolled in a Close email sequence.

    A person decidesSubscribe number of items contacts to sequence name — they will start receiving automated email.

    Effect
    write
    Steps
    4 · loops
    Needs
    lead id, sender account id, sender email and sequence id
    Install
    close-sequence-subscribe-contacts
  5. Create follow-up tasks for leads with no recent activity

    Use it when A rep wants follow-up tasks raised against leads that have gone quiet.

    Effect
    write
    Steps
    4 · loops
    Needs
    assignee user id and days quiet
    Install
    close-stale-lead-followup-tasks
  6. Suppress email addresses after a review

    Use it when Bounced or complaining addresses need adding to the Close unsubscribe list.

    A person decidesPermanently suppress number of addresses email addresses from all future Close sending.

    Effect
    write
    Steps
    4 · loops
    Needs
    addresses
    Install
    close-unsubscribe-bounced-contacts
  7. Send a templated bulk email after approval

    Use it when A marketer wants a template blasted to everyone matching a Close search, with a human check first.

    A person decidesSend template template id to number of items recipients matching: query

    Effect
    write
    Steps
    5
    Needs
    email account id, query and template id
    Install
    close-bulk-email-campaign
  8. Summarise yesterday's calls and log a note

    Use it when A team lead wants a daily digest of call and meeting activity recorded in Close.

    Effect
    write
    Steps
    6
    Needs
    digest lead id
    Install
    close-call-activity-digest
  9. Approve and run a bulk delete from a saved search

    Use it when Someone wants to purge a set of Close records matched by a search query, with sign-off.

    A person decidesPermanently delete number of items Close records matching: query

    Effect
    destructive
    Steps
    5
    Needs
    query
    Install
    close-bulk-delete-search-results
install a plan
account { op: "plans.install", slug: "close-pipeline-health-report" }
# then ask for it by name; a schedule can run it on a timetable

Governance for Close

Destructive actions wait for a yes.

54 Close actions are destructive. The first 10:

  • Delete a contact (Close)close.contacts.delete
  • Delete an opportunity (Close)close.opportunities.delete
  • Delete a Meeting activity (Close)close.meetings.delete
  • Delete a task (Close)close.tasks.delete
  • Delete a lead (Close)close.leads.delete
  • Delete a Call activity (Close)close.calls.delete
  • Delete an Email activity (Close)close.emails.delete
  • Delete a Group (Close)close.groups.delete
  • Delete a role (Close)close.roles.delete
  • Delete a Note activity (Close)close.notes.delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

doclose.contacts.deleteconfirm_policy: human

Delete a contact (Close)?

intent: the user asked me to delete a contact (Close)

run suspended · waiting for a named person · key close-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "close-agent",  allowed_actions: ["close.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "close.contacts.delete", approver: "[email protected]" },    { match: "close.opportunities.delete", approver: "[email protected]" },    { match: "close.meetings.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Close only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Close costs on actionlake.

Every Close action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Close refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 313 Close actions
  • 46actions pageeach page of a long list is one call
  • 142reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Close action.

313 actions by area: the id your agent calls, what it does, and its effect.

Config166
  • close.activity_custom_fields.createCreate a new Activity Custom Field (Close)write
  • close.activity_custom_fields.deleteDelete an Activity Custom Field (Close)destructive
  • close.activity_custom_fields.getFetch Activity Custom Field's details (Close)read
  • close.activity_custom_fields.listList Activity Custom Fields (Close)read
  • close.activity_custom_fields.updateUpdate an Activity Custom Field (Close)write
  • close.blocked_phone_numbers.createCreate a Blocked Phone Number (Close)write
  • close.blocked_phone_numbers.deleteDelete a Blocked Phone Number (Close)destructive
  • close.blocked_phone_numbers.getRetrieve a single Blocked Phone Number (Close)read
  • close.blocked_phone_numbers.listList Blocked Phone Numbers (Close)read
  • close.blocked_phone_numbers.settings.getRetrieve Blocked Phone Number settings (Close)read
  • close.blocked_phone_numbers.settings.updateUpdate Blocked Phone Number settings (Close)write
  • close.blocked_phone_numbers.updateUpdate a Blocked Phone Number (Close)write
  • close.bulk_deletes.createInitiate a new bulk delete (Close)destructive
  • close.bulk_deletes.getFetch a single bulk delete object (Close)read
  • close.bulk_deletes.listList bulk deletes (Close)read
  • close.bulk_edits.createInitiate a new bulk edit (Close)write
  • close.bulk_edits.getFetch a single bulk edit object (Close)read
  • close.bulk_edits.listList bulk edits (Close)read
  • close.bulk_emails.createInitiate a new bulk email (Close)write
  • close.bulk_emails.getFetch a single bulk email object (Close)read
  • close.bulk_emails.listList bulk emails (Close)read
  • close.bulk_sequence_subscriptions.createInitiate a new bulk sequence subscription (Close)write
  • close.bulk_sequence_subscriptions.getFetch a single bulk sequence subscription object (Close)read
  • close.bulk_sequence_subscriptions.listList bulk sequence subscriptions (Close)read
  • close.connected_accounts.getFetch a single connected account (Close)read
  • close.connected_accounts.listList connected accounts (Close)read
  • close.contact_custom_fields.createCreate a new Contact Custom Field (Close)write
  • close.contact_custom_fields.deleteDelete a Contact Custom Field (Close)destructive
  • close.contact_custom_fields.getFetch Contact Custom Field's details (Close)read
  • close.contact_custom_fields.listList Contact Custom Fields (Close)read
  • close.contact_custom_fields.updateUpdate a Contact Custom Field (Close)write
  • close.custom_activity_types.createCreate new Custom Activity Type (Close)write
  • close.custom_activity_types.deleteDelete a Custom Activity Type (Close)destructive
  • close.custom_activity_types.getRetrieve a single Custom Activity Type (Close)read
  • close.custom_activity_types.listList Custom Activity Types (Close)read
  • close.custom_activity_types.updateUpdate existing Custom Activity Type (Close)write
  • close.custom_field_schemas.getRetrieve a custom field schema (Close)read
  • close.custom_field_schemas.updateUpdate a custom field schema (Close)write
  • close.custom_object_custom_fields.createCreate a new Custom Object Custom Field (Close)write
  • close.custom_object_custom_fields.deleteDelete a Custom Object Custom Field (Close)destructive
  • close.custom_object_custom_fields.getFetch Custom Object Custom Field's details (Close)read
  • close.custom_object_custom_fields.listList Custom Object Custom Fields (Close)read
  • close.custom_object_custom_fields.updateUpdate a Custom Object Custom Field (Close)write
  • close.custom_object_types.createCreate new Custom Object Type (Close)write
  • close.custom_object_types.deleteDelete a Custom Object Type (Close)destructive
  • close.custom_object_types.getRetrieve a single Custom Object Type (Close)read
  • close.custom_object_types.listList Custom Object Types (Close)read
  • close.custom_object_types.updateUpdate existing Custom Object Type (Close)write
  • close.custom_objects.createCreate a new Custom Object instance (Close)write
  • close.custom_objects.create_rawCreate a Close custom object instance from a whole objectwrite
  • close.custom_objects.deleteDelete a Custom Object instance (Close)destructive
  • close.custom_objects.getRetrieve a single Custom Object instance (Close)read
  • close.custom_objects.listList Custom Object instances (Close)read
  • close.custom_objects.updateUpdating a Custom Object instance (Close)write
  • close.custom_objects.update_rawUpdate a Close custom object instance from a whole objectwrite
  • close.dialers.getGet a single dialer session (Close)read
  • close.dialers.listList or filter all dialer sessions (Close)read
  • close.email_templates.createCreate an email template (Close)write
  • close.email_templates.deleteDelete an email template (Close)destructive
  • close.email_templates.getFetch an email template (Close)read
  • close.email_templates.listList email templates (Close)read
  • close.email_templates.renderRender an email template (Close)read
  • close.email_templates.updateUpdate an email template (Close)write
  • close.field_enrichment.createEnrich a specific field on a lead or contact using AI (Close)write
  • close.files.createGenerate a signed S3 POST (Close)write
  • close.forms.getRetrieve a Form (Close)read
  • close.forms.listList Forms (Close)read
  • close.integration_links.createCreate an integration link (Close)write
  • close.integration_links.deleteDelete an integration link (Close)destructive
  • close.integration_links.getGet a single integration link (Close)read
  • close.integration_links.listGet all integration links for your organization (Close)read
  • close.integration_links.updateUpdate an integration link (Close)write
  • close.lead_custom_fields.createCreate a new Lead Custom Field (Close)write
  • close.lead_custom_fields.deleteDelete a Lead Custom Field (Close)destructive
  • close.lead_custom_fields.getFetch Lead Custom Field's details (Close)read
  • close.lead_custom_fields.listList Lead Custom Fields (Close)read
  • close.lead_custom_fields.updateUpdate a Lead Custom Field (Close)write
  • close.lead_statuses.createCreate a new status that can be applied to leads (Close)write
  • close.lead_statuses.deleteDelete a lead status (Close)destructive
  • close.lead_statuses.getFetch a single lead status (Close)read
  • close.lead_statuses.listList lead statuses for your organization (Close)read
  • close.lead_statuses.updateRename a lead status (Close)write
  • close.opportunity_custom_fields.createCreate a new Opportunity Custom Field (Close)write
  • close.opportunity_custom_fields.deleteDelete an Opportunity Custom Field (Close)destructive
  • close.opportunity_custom_fields.getFetch Opportunity Custom Field's details (Close)read
  • close.opportunity_custom_fields.listList Opportunity Custom Fields (Close)read
  • close.opportunity_custom_fields.updateUpdate an Opportunity Custom Field (Close)write
  • close.opportunity_statuses.createCreate an opportunity status (Close)write
  • close.opportunity_statuses.deleteDelete an opportunity status (Close)destructive
  • close.opportunity_statuses.getFetch a single opportunity status (Close)read
  • close.opportunity_statuses.listList opportunity statuses for your organization (Close)read
  • close.opportunity_statuses.updateRename an opportunity status (Close)write
  • close.outcomes.createCreate an outcome (Close)write
  • close.outcomes.deleteDelete an outcome (Close)destructive
  • close.outcomes.getFetch a single outcome (Close)read
  • close.outcomes.listList or filter outcomes (Close)read
  • close.outcomes.updateUpdate an outcome (Close)write
  • close.phone_numbers.createRequest an internal phone number (Close)write
  • close.phone_numbers.deleteDelete a phone number (Close)destructive
  • close.phone_numbers.getRetrieve a single phone number (Close)read
  • close.phone_numbers.listList or search for phone numbers (Close)read
  • close.phone_numbers.updateUpdate a phone number (Close)write
  • close.pipelines.createCreate a Pipeline (Close)write
  • close.pipelines.deleteDelete a Pipeline (Close)destructive
  • close.pipelines.getFetch a single Pipeline (Close)read
  • close.pipelines.listList Pipelines for your organization (Close)read
  • close.pipelines.updateUpdate a Pipeline (Close)write
  • close.playbooks.archiveArchive a playbook (Close)write
  • close.playbooks.createCreate a playbook (Close)write
  • close.playbooks.deleteDelete a playbook (Close)destructive
  • close.playbooks.getFetch a single playbook (Close)read
  • close.playbooks.listList or filter playbooks (Close)read
  • close.playbooks.unarchiveUnarchive a playbook (Close)write
  • close.playbooks.updateUpdate a playbook (Close)write
  • close.scheduling_links.createCreate a User Scheduling Link (Close)write
  • close.scheduling_links.deleteDelete a User Scheduling Link (Close)destructive
  • close.scheduling_links.getFetch a User Scheduling Link (Close)read
  • close.scheduling_links.integration.deleteDelete a User Scheduling Link via OAuth integration (Close)destructive
  • close.scheduling_links.integration.upsertCreate or update a Scheduling Link via OAuth (Close)write
  • close.scheduling_links.listList User Scheduling Links (Close)read
  • close.scheduling_links.shared.createCreate a Shared Scheduling Link (Close)write
  • close.scheduling_links.shared.deleteDelete a Shared Scheduling Link (Close)destructive
  • close.scheduling_links.shared.getFetch a Shared Scheduling Link (Close)read
  • close.scheduling_links.shared.listList Shared Scheduling Links (Close)read
  • close.scheduling_links.shared.mapMap a Shared Scheduling Link (Close)write
  • close.scheduling_links.shared.unmapUnmap a Shared Scheduling Link (Close)write
  • close.scheduling_links.shared.updateUpdate a Shared Scheduling Link (Close)write
  • close.scheduling_links.updateUpdate a User Scheduling Link (Close)write
  • close.send_as.bulk_upsertEdit Send As Associations in bulk (Close)write
  • close.send_as.createCreate a Send As Association (Close)write
  • close.send_as.deleteDelete a Send As Association by ID (Close)destructive
  • close.send_as.delete_by_userDelete a Send As Association by allowed user (Close)destructive
  • close.send_as.getRetrieve a single Send As Association (Close)read
  • close.send_as.listList Send As Associations (Close)read
  • close.sequences.createCreate a Sequence (Close)write
  • close.sequences.deleteDelete a Sequence (Close)destructive
  • close.sequences.getFetch a Sequence (Close)read
  • close.sequences.listList Sequences (Close)read
  • close.sequences.subscriptions.createSubscribe a Contact to a Sequence (Close)write
  • close.sequences.subscriptions.deleteDelete a Sequence Subscription (Close)destructive
  • close.sequences.subscriptions.getFetch a single Sequence Subscription (Close)read
  • close.sequences.subscriptions.listList Sequence Subscriptions (Close)read
  • close.sequences.subscriptions.updateUpdate a specific Subscription (Close)write
  • close.sequences.updateUpdate a Sequence (Close)write
  • close.shared_custom_fields.associations.createAssociate a Shared Custom Field with an object type (Close)write
  • close.shared_custom_fields.associations.deleteDisassociate a Shared Custom Field from an object type (Close)destructive
  • close.shared_custom_fields.associations.getFetch a Shared Custom Field Association (Close)read
  • close.shared_custom_fields.associations.updateUpdate an existing Shared Custom Field Association (Close)write
  • close.shared_custom_fields.createCreate a new Shared Custom Field (Close)write
  • close.shared_custom_fields.deleteDelete a Shared Custom Field (Close)destructive
  • close.shared_custom_fields.getFetch Shared Custom Field's details (Close)read
  • close.shared_custom_fields.listList Shared Custom Fields (Close)read
  • close.shared_custom_fields.updateUpdate a Shared Custom Field (Close)write
  • close.smart_views.createCreate a Smart View (Close)write
  • close.smart_views.deleteDelete a Smart View (Close)destructive
  • close.smart_views.getGet a single Smart View (Close)read
  • close.smart_views.listList Smart Views (Close)read
  • close.smart_views.updateUpdate a Smart View (Close)write
  • close.sms_templates.createCreate an SMS template (Close)write
  • close.sms_templates.deleteDelete an SMS template (Close)destructive
  • close.sms_templates.getFetch an SMS template (Close)read
  • close.sms_templates.listList SMS templates (Close)read
  • close.sms_templates.updateUpdate an SMS template (Close)write
  • close.unsubscribed_emails.createUnsubscribe an email address (Close)write
  • close.unsubscribed_emails.deleteResubscribe an email address (Close)destructive
  • close.unsubscribed_emails.listList all unsubscribed emails (Close)read
Activity69
  • close.activities.listList or filter all activity types (Close)read
  • close.calls.createLog an external Call activity (Close)write
  • close.calls.deleteDelete a Call activity (Close)destructive
  • close.calls.getGet a single Call activity (Close)read
  • close.calls.listList or filter all Call activities (Close)read
  • close.calls.updateUpdate a Call activity (Close)write
  • close.comments.createCreate a Comment (Close)write
  • close.comments.deleteRemove a comment (Close)destructive
  • close.comments.getFetch an individual comment (Close)read
  • close.comments.listFetch multiple comments (Close)read
  • close.comments.threads.getFetch an individual comment thread (Close)read
  • close.comments.threads.listFetch multiple comment threads (Close)read
  • close.comments.updateUpdate a Comment (Close)write
  • close.creations.getGet a single Created activity (Close)read
  • close.creations.listList or filter all Created activities (Close)read
  • close.custom_activities.createCreate a new Custom Activity instance (Close)write
  • close.custom_activities.create_rawCreate a Close custom activity from a whole objectwrite
  • close.custom_activities.deleteDelete a Custom Activity instance (Close)destructive
  • close.custom_activities.getGet a single Custom Activity instance (Close)read
  • close.custom_activities.listList or filter all Custom Activity instances (Close)read
  • close.custom_activities.updateUpdating a Custom Activity instance (Close)write
  • close.custom_activities.update_rawUpdate a Close custom activity from a whole objectwrite
  • close.email_threads.deleteDelete an EmailThread activity (Close)destructive
  • close.email_threads.getGet a single EmailThread activity (Close)read
  • close.email_threads.listList or filter all EmailThread activities (Close)read
  • close.emails.createCreate an Email activity (Close)write
  • close.emails.deleteDelete an Email activity (Close)destructive
  • close.emails.getGet a single Email activity (Close)read
  • close.emails.listList or filter all Email activities (Close)read
  • close.emails.updateUpdate an Email activity (Close)write
  • close.form_submissions.deleteDelete a FormSubmission activity (Close)destructive
  • close.form_submissions.getGet a single FormSubmission activity (Close)read
  • close.form_submissions.listList or filter all FormSubmission activities (Close)read
  • close.import_updates.deleteDelete an ImportUpdate activity (Close)destructive
  • close.import_updates.getGet a single ImportUpdate activity (Close)read
  • close.import_updates.listList or filter all ImportUpdate activities (Close)read
  • close.lead_merges.getGet a single LeadMerge activity (Close)read
  • close.lead_merges.listList or filter all LeadMerge activities (Close)read
  • close.lead_status_changes.createCreate a new LeadStatusChange activity (Close)write
  • close.lead_status_changes.deleteDelete a single LeadStatusChange activity (Close)destructive
  • close.lead_status_changes.getGet a single LeadStatusChange activity (Close)read
  • close.lead_status_changes.listList or filter all LeadStatusChange activities (Close)read
  • close.meetings.deleteDelete a Meeting activity (Close)destructive
  • close.meetings.getGet a single Meeting activity (Close)read
  • close.meetings.integration.upsertCreate or update third-party Meeting integration (Close)write
  • close.meetings.listList or filter all Meeting activities (Close)read
  • close.meetings.updateUpdate a Meeting activity (Close)write
  • close.notes.createCreate a Note activity (Close)write
  • close.notes.deleteDelete a Note activity (Close)destructive
  • close.notes.getGet a single Note activity (Close)read
  • close.notes.listList or filter all Note activities (Close)read
  • close.notes.updateUpdate a Note activity (Close)write
  • close.opportunity_status_changes.createCreate a new OpportunityStatusChange activity (Close)write
  • close.opportunity_status_changes.deleteDelete a single OpportunityStatusChange activity (Close)destructive
  • close.opportunity_status_changes.getGet a single OpportunityStatusChange activity (Close)read
  • close.opportunity_status_changes.listList or filter all OpportunityStatusChange activities (Close)read
  • close.sms.createCreate an SMS activity (Close)write
  • close.sms.deleteDelete an SMS activity (Close)destructive
  • close.sms.getGet a single SMS activity (Close)read
  • close.sms.listList or filter all SMS activities (Close)read
  • close.sms.updateUpdate an SMS activity (Close)write
  • close.task_completions.deleteDelete a TaskCompleted activity (Close)destructive
  • close.task_completions.getGet a single TaskCompleted activity (Close)read
  • close.task_completions.listList or filter all TaskCompleted activities (Close)read
  • close.whatsapp_messages.createCreate a WhatsAppMessage activity (Close)write
  • close.whatsapp_messages.deleteDelete a WhatsAppMessage activity (Close)destructive
  • close.whatsapp_messages.getGet a single WhatsAppMessage activity (Close)read
  • close.whatsapp_messages.listList or filter all WhatsAppMessage activities (Close)read
  • close.whatsapp_messages.updateUpdate a WhatsAppMessage activity (Close)write
Lead10
  • close.leads.createCreate a new lead (Close)write
  • close.leads.create_rawCreate a Close lead from a whole objectwrite
  • close.leads.deleteDelete a lead (Close)destructive
  • close.leads.files.attachAttach a file to a lead (Close)write
  • close.leads.files.listList files attached to a lead (Close)read
  • close.leads.getGet a single Lead (Close)read
  • close.leads.listList Leads (Close)read
  • close.leads.mergeMerge two leads (Close)destructive
  • close.leads.updateUpdate an existing lead (Close)write
  • close.leads.update_rawUpdate a Close lead from a whole objectwrite
User10
  • close.memberships.bulk_updateBulk update memberships (Close)write
  • close.memberships.createCreate a membership (Close)write
  • close.memberships.deleteDelete a membership (Close)destructive
  • close.memberships.pinned_views.getGet pinned views for a membership (Close)read
  • close.memberships.pinned_views.updateUpdate pinned views for a membership (Close)write
  • close.memberships.updateUpdate a membership (Close)write
  • close.users.availability.listList user availability statuses (Close)read
  • close.users.getFetch a single user (Close)read
  • close.users.listList users in your organization (Close)read
  • close.users.meFetch information about yourself (Close)read
Export8
  • close.exports.getGet a single Export (Close)read
  • close.exports.leads.createExport leads based on a search query (Close)write
  • close.exports.leads.getGet a single Lead Export (Close)read
  • close.exports.leads.listList Lead Exports (Close)read
  • close.exports.listList all the exports (Close)read
  • close.exports.opportunities.createExport opportunities, based on opportunity filters (Close)write
  • close.exports.opportunities.getGet a single Opportunity Export (Close)read
  • close.exports.opportunities.listList Opportunity Exports (Close)read
Reporting8
  • close.reporting.activity.metrics.listList the predefined metrics used in activity reports (Close)read
  • close.reporting.activity.runGet an activity report (Close)read
  • close.reporting.custom.runGet custom report (Explorer) (Close)read
  • close.reporting.funnel.stages.runGet a funnel report (stages) (Close)read
  • close.reporting.funnel.totals.runGet a funnel report (totals) (Close)read
  • close.reporting.lead_statuses.runGet lead status change report (Close)read
  • close.reporting.opportunity_statuses.runGet opportunity status change report (Close)read
  • close.reporting.sent_emails.runGet sent emails report (Close)read
Contact7
  • close.contacts.createCreate a new contact (Close)write
  • close.contacts.create_rawCreate a Close contact from a whole objectwrite
  • close.contacts.deleteDelete a contact (Close)destructive
  • close.contacts.getFetch a single contact (Close)read
  • close.contacts.listList contacts (Close)read
  • close.contacts.updateUpdate an existing contact (Close)write
  • close.contacts.update_rawUpdate a Close contact from a whole objectwrite
Pipeline7
  • close.opportunities.createCreate an opportunity (Close)write
  • close.opportunities.create_rawCreate a Close opportunity from a whole objectwrite
  • close.opportunities.deleteDelete an opportunity (Close)destructive
  • close.opportunities.getRetrieve an opportunity (Close)read
  • close.opportunities.listList or filter opportunities (Close)read
  • close.opportunities.updateUpdate an opportunity (Close)write
  • close.opportunities.update_rawUpdate a Close opportunity from a whole objectwrite
Group7
  • close.groups.createCreate a Group (Close)write
  • close.groups.deleteDelete a Group (Close)destructive
  • close.groups.getFetch an individual Group (Close)read
  • close.groups.listList Groups for your organization (Close)read
  • close.groups.members.addAdd a User to a Group (Close)write
  • close.groups.members.removeRemove a User from a Group (Close)destructive
  • close.groups.updateUpdate a Group (Close)write
Task6
  • close.tasks.bulk_updateBulk-update tasks (Close)write
  • close.tasks.createCreate a task (Close)write
  • close.tasks.deleteDelete a task (Close)destructive
  • close.tasks.getFetch a task's details (Close)read
  • close.tasks.listList or filter tasks (Close)read
  • close.tasks.updateUpdate a task (Close)write
Webhook5
  • close.webhooks.createCreate new Webhook subscription (Close)write
  • close.webhooks.deleteDelete Webhook subscription (Close)destructive
  • close.webhooks.getRetrieve a single Webhook subscription (Close)read
  • close.webhooks.listList Webhook subscriptions (Close)read
  • close.webhooks.updateUpdate existing Webhook subscription (Close)write
Role5
  • close.roles.createCreate a new role (Close)write
  • close.roles.deleteDelete a role (Close)destructive
  • close.roles.getFetch a single role (Close)read
  • close.roles.listList all the roles defined for your organization (Close)read
  • close.roles.updateUpdate existing role (Close)write
Event2
  • close.events.getRetrieve a single event by ID (Close)read
  • close.events.listRetrieve a list of events (Close)read
Org2
  • close.organizations.getGet an organization's details (Close)read
  • close.organizations.updateUpdate an organization (Close)write
Search1
  • close.search.runSearch leads or contacts with the Close query DSLread

Questions

The Close MCP server, answered.

Is there a Close MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 313 Close actions across config, activity, lead and user, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Close.

What do I need to connect Close?

Close API key (api_... — Settings > Developer > API Keys). The free call account { op: "connections.requirements", service: "close" } lists exactly what to paste.

Can an AI agent delete or change things in Close?

Only if its key allows it, and only with an explicit confirmation. 54 Close actions are destructive, including delete a contact (Close), delete an opportunity (Close) and delete a Meeting activity (Close). Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Close API limit?

actionlake paces every call to the limits in the Close service file: 10 calls a second per connection. Repeated reads are answered from cache (142 Close actions can be), which never reaches Close.

What does a Close action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (46 Close actions page). Cache hits, searches, dry runs and calls Close refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Close API does it cover?

The Close API v1 at api.close.com/api/v1. It is built from Close's documentation as read on 19 September 2026. 313 actions in 15 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Close data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Close credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Close today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.