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/mcpdo { 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.
- 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 - 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 - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates 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 v1
api.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
Config
16669 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)
Activity
6935 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)
Lead
103 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)
User
105 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)
Export
86 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)
Reporting
88 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)
Contact
72 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)
Pipeline
72 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.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
close.contacts.listList contacts (Close) | List contacts. | read | crm.contact.list177 connectors |
close.opportunities.listList or filter opportunities (Close) | List or filter opportunities. | read | crm.deal.list43 connectors |
close.meetings.listList or filter all Meeting activities (Close) | List or filter all Meeting activities. | read | comm.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:. | read | work.task.list122 connectors |
close.leads.listList Leads (Close) | List Leads. | read | crm.lead.list28 connectors |
close.calls.listList or filter all Call activities (Close) | List or filter all Call activities. | read | comm.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… | write | crm.contact.create161 connectors |
close.contacts.create_rawCreate a Close contact from a whole object | Create 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… | write | crm.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. | read | identity.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. | read | comm.email.list28 connectors |
close.opportunities.createCreate an opportunity (Close) | Create an opportunity. Create an opportunity, optionally linked to an existing lead. | write | crm.deal.create43 connectors |
close.contacts.deleteDelete a contact (Close) | Delete a contact. | destructive | crm.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.
- Readread
Which Close deals are due to close this month, and what are they worth in total?
calls
close.opportunities.list - Planwrite
Summarise yesterday's calls and log a note in Close.
calls
close.users.listclose.calls.listclose.meetings.listclose.notes.listclose.tasks.create - Planread
Report opportunity and lead status movement in Close.
calls
close.pipelines.listclose.opportunity_statuses.listclose.reporting.opportunity_statuses.runclose.reporting.lead_statuses.runclose.reporting.funnel.totals.run - Writewrite
Create a new contact (Close) in Close. Show me exactly what you will send before you save it.
calls
close.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.
Report opportunity and lead status movement
Use it when A manager asks for a pipeline health or status-movement summary for a period.
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.
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.
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 decides
Subscribe number of items contacts to sequence name — they will start receiving automated email.
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.
Suppress email addresses after a review
Use it when Bounced or complaining addresses need adding to the Close unsubscribe list.
A person decides
Permanently suppress number of addresses email addresses from all future Close sending.
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 decides
Send template template id to number of items recipients matching: query
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.
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 decides
Permanently delete number of items Close records matching: query
account { op: "plans.install", slug: "close-pipeline-health-report" }
# then ask for it by name; a schedule can run it on a timetableGovernance 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.
Delete a contact (Close)?
intent: the user asked me to delete a contact (Close)
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]" } ]}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
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)writeclose.activity_custom_fields.deleteDelete an Activity Custom Field (Close)destructiveclose.activity_custom_fields.getFetch Activity Custom Field's details (Close)readclose.activity_custom_fields.listList Activity Custom Fields (Close)readclose.activity_custom_fields.updateUpdate an Activity Custom Field (Close)writeclose.blocked_phone_numbers.createCreate a Blocked Phone Number (Close)writeclose.blocked_phone_numbers.deleteDelete a Blocked Phone Number (Close)destructiveclose.blocked_phone_numbers.getRetrieve a single Blocked Phone Number (Close)readclose.blocked_phone_numbers.listList Blocked Phone Numbers (Close)readclose.blocked_phone_numbers.settings.getRetrieve Blocked Phone Number settings (Close)readclose.blocked_phone_numbers.settings.updateUpdate Blocked Phone Number settings (Close)writeclose.blocked_phone_numbers.updateUpdate a Blocked Phone Number (Close)writeclose.bulk_deletes.createInitiate a new bulk delete (Close)destructiveclose.bulk_deletes.getFetch a single bulk delete object (Close)readclose.bulk_deletes.listList bulk deletes (Close)readclose.bulk_edits.createInitiate a new bulk edit (Close)writeclose.bulk_edits.getFetch a single bulk edit object (Close)readclose.bulk_edits.listList bulk edits (Close)readclose.bulk_emails.createInitiate a new bulk email (Close)writeclose.bulk_emails.getFetch a single bulk email object (Close)readclose.bulk_emails.listList bulk emails (Close)readclose.bulk_sequence_subscriptions.createInitiate a new bulk sequence subscription (Close)writeclose.bulk_sequence_subscriptions.getFetch a single bulk sequence subscription object (Close)readclose.bulk_sequence_subscriptions.listList bulk sequence subscriptions (Close)readclose.connected_accounts.getFetch a single connected account (Close)readclose.connected_accounts.listList connected accounts (Close)readclose.contact_custom_fields.createCreate a new Contact Custom Field (Close)writeclose.contact_custom_fields.deleteDelete a Contact Custom Field (Close)destructiveclose.contact_custom_fields.getFetch Contact Custom Field's details (Close)readclose.contact_custom_fields.listList Contact Custom Fields (Close)readclose.contact_custom_fields.updateUpdate a Contact Custom Field (Close)writeclose.custom_activity_types.createCreate new Custom Activity Type (Close)writeclose.custom_activity_types.deleteDelete a Custom Activity Type (Close)destructiveclose.custom_activity_types.getRetrieve a single Custom Activity Type (Close)readclose.custom_activity_types.listList Custom Activity Types (Close)readclose.custom_activity_types.updateUpdate existing Custom Activity Type (Close)writeclose.custom_field_schemas.getRetrieve a custom field schema (Close)readclose.custom_field_schemas.updateUpdate a custom field schema (Close)writeclose.custom_object_custom_fields.createCreate a new Custom Object Custom Field (Close)writeclose.custom_object_custom_fields.deleteDelete a Custom Object Custom Field (Close)destructiveclose.custom_object_custom_fields.getFetch Custom Object Custom Field's details (Close)readclose.custom_object_custom_fields.listList Custom Object Custom Fields (Close)readclose.custom_object_custom_fields.updateUpdate a Custom Object Custom Field (Close)writeclose.custom_object_types.createCreate new Custom Object Type (Close)writeclose.custom_object_types.deleteDelete a Custom Object Type (Close)destructiveclose.custom_object_types.getRetrieve a single Custom Object Type (Close)readclose.custom_object_types.listList Custom Object Types (Close)readclose.custom_object_types.updateUpdate existing Custom Object Type (Close)writeclose.custom_objects.createCreate a new Custom Object instance (Close)writeclose.custom_objects.create_rawCreate a Close custom object instance from a whole objectwriteclose.custom_objects.deleteDelete a Custom Object instance (Close)destructiveclose.custom_objects.getRetrieve a single Custom Object instance (Close)readclose.custom_objects.listList Custom Object instances (Close)readclose.custom_objects.updateUpdating a Custom Object instance (Close)writeclose.custom_objects.update_rawUpdate a Close custom object instance from a whole objectwriteclose.dialers.getGet a single dialer session (Close)readclose.dialers.listList or filter all dialer sessions (Close)readclose.email_templates.createCreate an email template (Close)writeclose.email_templates.deleteDelete an email template (Close)destructiveclose.email_templates.getFetch an email template (Close)readclose.email_templates.listList email templates (Close)readclose.email_templates.renderRender an email template (Close)readclose.email_templates.updateUpdate an email template (Close)writeclose.field_enrichment.createEnrich a specific field on a lead or contact using AI (Close)writeclose.files.createGenerate a signed S3 POST (Close)writeclose.forms.getRetrieve a Form (Close)readclose.forms.listList Forms (Close)readclose.integration_links.createCreate an integration link (Close)writeclose.integration_links.deleteDelete an integration link (Close)destructiveclose.integration_links.getGet a single integration link (Close)readclose.integration_links.listGet all integration links for your organization (Close)readclose.integration_links.updateUpdate an integration link (Close)writeclose.lead_custom_fields.createCreate a new Lead Custom Field (Close)writeclose.lead_custom_fields.deleteDelete a Lead Custom Field (Close)destructiveclose.lead_custom_fields.getFetch Lead Custom Field's details (Close)readclose.lead_custom_fields.listList Lead Custom Fields (Close)readclose.lead_custom_fields.updateUpdate a Lead Custom Field (Close)writeclose.lead_statuses.createCreate a new status that can be applied to leads (Close)writeclose.lead_statuses.deleteDelete a lead status (Close)destructiveclose.lead_statuses.getFetch a single lead status (Close)readclose.lead_statuses.listList lead statuses for your organization (Close)readclose.lead_statuses.updateRename a lead status (Close)writeclose.opportunity_custom_fields.createCreate a new Opportunity Custom Field (Close)writeclose.opportunity_custom_fields.deleteDelete an Opportunity Custom Field (Close)destructiveclose.opportunity_custom_fields.getFetch Opportunity Custom Field's details (Close)readclose.opportunity_custom_fields.listList Opportunity Custom Fields (Close)readclose.opportunity_custom_fields.updateUpdate an Opportunity Custom Field (Close)writeclose.opportunity_statuses.createCreate an opportunity status (Close)writeclose.opportunity_statuses.deleteDelete an opportunity status (Close)destructiveclose.opportunity_statuses.getFetch a single opportunity status (Close)readclose.opportunity_statuses.listList opportunity statuses for your organization (Close)readclose.opportunity_statuses.updateRename an opportunity status (Close)writeclose.outcomes.createCreate an outcome (Close)writeclose.outcomes.deleteDelete an outcome (Close)destructiveclose.outcomes.getFetch a single outcome (Close)readclose.outcomes.listList or filter outcomes (Close)readclose.outcomes.updateUpdate an outcome (Close)writeclose.phone_numbers.createRequest an internal phone number (Close)writeclose.phone_numbers.deleteDelete a phone number (Close)destructiveclose.phone_numbers.getRetrieve a single phone number (Close)readclose.phone_numbers.listList or search for phone numbers (Close)readclose.phone_numbers.updateUpdate a phone number (Close)writeclose.pipelines.createCreate a Pipeline (Close)writeclose.pipelines.deleteDelete a Pipeline (Close)destructiveclose.pipelines.getFetch a single Pipeline (Close)readclose.pipelines.listList Pipelines for your organization (Close)readclose.pipelines.updateUpdate a Pipeline (Close)writeclose.playbooks.archiveArchive a playbook (Close)writeclose.playbooks.createCreate a playbook (Close)writeclose.playbooks.deleteDelete a playbook (Close)destructiveclose.playbooks.getFetch a single playbook (Close)readclose.playbooks.listList or filter playbooks (Close)readclose.playbooks.unarchiveUnarchive a playbook (Close)writeclose.playbooks.updateUpdate a playbook (Close)writeclose.scheduling_links.createCreate a User Scheduling Link (Close)writeclose.scheduling_links.deleteDelete a User Scheduling Link (Close)destructiveclose.scheduling_links.getFetch a User Scheduling Link (Close)readclose.scheduling_links.integration.deleteDelete a User Scheduling Link via OAuth integration (Close)destructiveclose.scheduling_links.integration.upsertCreate or update a Scheduling Link via OAuth (Close)writeclose.scheduling_links.listList User Scheduling Links (Close)readclose.scheduling_links.shared.createCreate a Shared Scheduling Link (Close)writeclose.scheduling_links.shared.deleteDelete a Shared Scheduling Link (Close)destructiveclose.scheduling_links.shared.getFetch a Shared Scheduling Link (Close)readclose.scheduling_links.shared.listList Shared Scheduling Links (Close)readclose.scheduling_links.shared.mapMap a Shared Scheduling Link (Close)writeclose.scheduling_links.shared.unmapUnmap a Shared Scheduling Link (Close)writeclose.scheduling_links.shared.updateUpdate a Shared Scheduling Link (Close)writeclose.scheduling_links.updateUpdate a User Scheduling Link (Close)writeclose.send_as.bulk_upsertEdit Send As Associations in bulk (Close)writeclose.send_as.createCreate a Send As Association (Close)writeclose.send_as.deleteDelete a Send As Association by ID (Close)destructiveclose.send_as.delete_by_userDelete a Send As Association by allowed user (Close)destructiveclose.send_as.getRetrieve a single Send As Association (Close)readclose.send_as.listList Send As Associations (Close)readclose.sequences.createCreate a Sequence (Close)writeclose.sequences.deleteDelete a Sequence (Close)destructiveclose.sequences.getFetch a Sequence (Close)readclose.sequences.listList Sequences (Close)readclose.sequences.subscriptions.createSubscribe a Contact to a Sequence (Close)writeclose.sequences.subscriptions.deleteDelete a Sequence Subscription (Close)destructiveclose.sequences.subscriptions.getFetch a single Sequence Subscription (Close)readclose.sequences.subscriptions.listList Sequence Subscriptions (Close)readclose.sequences.subscriptions.updateUpdate a specific Subscription (Close)writeclose.sequences.updateUpdate a Sequence (Close)writeclose.shared_custom_fields.associations.createAssociate a Shared Custom Field with an object type (Close)writeclose.shared_custom_fields.associations.deleteDisassociate a Shared Custom Field from an object type (Close)destructiveclose.shared_custom_fields.associations.getFetch a Shared Custom Field Association (Close)readclose.shared_custom_fields.associations.updateUpdate an existing Shared Custom Field Association (Close)writeclose.shared_custom_fields.createCreate a new Shared Custom Field (Close)writeclose.shared_custom_fields.deleteDelete a Shared Custom Field (Close)destructiveclose.shared_custom_fields.getFetch Shared Custom Field's details (Close)readclose.shared_custom_fields.listList Shared Custom Fields (Close)readclose.shared_custom_fields.updateUpdate a Shared Custom Field (Close)writeclose.smart_views.createCreate a Smart View (Close)writeclose.smart_views.deleteDelete a Smart View (Close)destructiveclose.smart_views.getGet a single Smart View (Close)readclose.smart_views.listList Smart Views (Close)readclose.smart_views.updateUpdate a Smart View (Close)writeclose.sms_templates.createCreate an SMS template (Close)writeclose.sms_templates.deleteDelete an SMS template (Close)destructiveclose.sms_templates.getFetch an SMS template (Close)readclose.sms_templates.listList SMS templates (Close)readclose.sms_templates.updateUpdate an SMS template (Close)writeclose.unsubscribed_emails.createUnsubscribe an email address (Close)writeclose.unsubscribed_emails.deleteResubscribe an email address (Close)destructiveclose.unsubscribed_emails.listList all unsubscribed emails (Close)read
Activity69
close.activities.listList or filter all activity types (Close)readclose.calls.createLog an external Call activity (Close)writeclose.calls.deleteDelete a Call activity (Close)destructiveclose.calls.getGet a single Call activity (Close)readclose.calls.listList or filter all Call activities (Close)readclose.calls.updateUpdate a Call activity (Close)writeclose.comments.createCreate a Comment (Close)writeclose.comments.deleteRemove a comment (Close)destructiveclose.comments.getFetch an individual comment (Close)readclose.comments.listFetch multiple comments (Close)readclose.comments.threads.getFetch an individual comment thread (Close)readclose.comments.threads.listFetch multiple comment threads (Close)readclose.comments.updateUpdate a Comment (Close)writeclose.creations.getGet a single Created activity (Close)readclose.creations.listList or filter all Created activities (Close)readclose.custom_activities.createCreate a new Custom Activity instance (Close)writeclose.custom_activities.create_rawCreate a Close custom activity from a whole objectwriteclose.custom_activities.deleteDelete a Custom Activity instance (Close)destructiveclose.custom_activities.getGet a single Custom Activity instance (Close)readclose.custom_activities.listList or filter all Custom Activity instances (Close)readclose.custom_activities.updateUpdating a Custom Activity instance (Close)writeclose.custom_activities.update_rawUpdate a Close custom activity from a whole objectwriteclose.email_threads.deleteDelete an EmailThread activity (Close)destructiveclose.email_threads.getGet a single EmailThread activity (Close)readclose.email_threads.listList or filter all EmailThread activities (Close)readclose.emails.createCreate an Email activity (Close)writeclose.emails.deleteDelete an Email activity (Close)destructiveclose.emails.getGet a single Email activity (Close)readclose.emails.listList or filter all Email activities (Close)readclose.emails.updateUpdate an Email activity (Close)writeclose.form_submissions.deleteDelete a FormSubmission activity (Close)destructiveclose.form_submissions.getGet a single FormSubmission activity (Close)readclose.form_submissions.listList or filter all FormSubmission activities (Close)readclose.import_updates.deleteDelete an ImportUpdate activity (Close)destructiveclose.import_updates.getGet a single ImportUpdate activity (Close)readclose.import_updates.listList or filter all ImportUpdate activities (Close)readclose.lead_merges.getGet a single LeadMerge activity (Close)readclose.lead_merges.listList or filter all LeadMerge activities (Close)readclose.lead_status_changes.createCreate a new LeadStatusChange activity (Close)writeclose.lead_status_changes.deleteDelete a single LeadStatusChange activity (Close)destructiveclose.lead_status_changes.getGet a single LeadStatusChange activity (Close)readclose.lead_status_changes.listList or filter all LeadStatusChange activities (Close)readclose.meetings.deleteDelete a Meeting activity (Close)destructiveclose.meetings.getGet a single Meeting activity (Close)readclose.meetings.integration.upsertCreate or update third-party Meeting integration (Close)writeclose.meetings.listList or filter all Meeting activities (Close)readclose.meetings.updateUpdate a Meeting activity (Close)writeclose.notes.createCreate a Note activity (Close)writeclose.notes.deleteDelete a Note activity (Close)destructiveclose.notes.getGet a single Note activity (Close)readclose.notes.listList or filter all Note activities (Close)readclose.notes.updateUpdate a Note activity (Close)writeclose.opportunity_status_changes.createCreate a new OpportunityStatusChange activity (Close)writeclose.opportunity_status_changes.deleteDelete a single OpportunityStatusChange activity (Close)destructiveclose.opportunity_status_changes.getGet a single OpportunityStatusChange activity (Close)readclose.opportunity_status_changes.listList or filter all OpportunityStatusChange activities (Close)readclose.sms.createCreate an SMS activity (Close)writeclose.sms.deleteDelete an SMS activity (Close)destructiveclose.sms.getGet a single SMS activity (Close)readclose.sms.listList or filter all SMS activities (Close)readclose.sms.updateUpdate an SMS activity (Close)writeclose.task_completions.deleteDelete a TaskCompleted activity (Close)destructiveclose.task_completions.getGet a single TaskCompleted activity (Close)readclose.task_completions.listList or filter all TaskCompleted activities (Close)readclose.whatsapp_messages.createCreate a WhatsAppMessage activity (Close)writeclose.whatsapp_messages.deleteDelete a WhatsAppMessage activity (Close)destructiveclose.whatsapp_messages.getGet a single WhatsAppMessage activity (Close)readclose.whatsapp_messages.listList or filter all WhatsAppMessage activities (Close)readclose.whatsapp_messages.updateUpdate a WhatsAppMessage activity (Close)write
Lead10
close.leads.createCreate a new lead (Close)writeclose.leads.create_rawCreate a Close lead from a whole objectwriteclose.leads.deleteDelete a lead (Close)destructiveclose.leads.files.attachAttach a file to a lead (Close)writeclose.leads.files.listList files attached to a lead (Close)readclose.leads.getGet a single Lead (Close)readclose.leads.listList Leads (Close)readclose.leads.mergeMerge two leads (Close)destructiveclose.leads.updateUpdate an existing lead (Close)writeclose.leads.update_rawUpdate a Close lead from a whole objectwrite
User10
close.memberships.bulk_updateBulk update memberships (Close)writeclose.memberships.createCreate a membership (Close)writeclose.memberships.deleteDelete a membership (Close)destructiveclose.memberships.pinned_views.getGet pinned views for a membership (Close)readclose.memberships.pinned_views.updateUpdate pinned views for a membership (Close)writeclose.memberships.updateUpdate a membership (Close)writeclose.users.availability.listList user availability statuses (Close)readclose.users.getFetch a single user (Close)readclose.users.listList users in your organization (Close)readclose.users.meFetch information about yourself (Close)read
Export8
close.exports.getGet a single Export (Close)readclose.exports.leads.createExport leads based on a search query (Close)writeclose.exports.leads.getGet a single Lead Export (Close)readclose.exports.leads.listList Lead Exports (Close)readclose.exports.listList all the exports (Close)readclose.exports.opportunities.createExport opportunities, based on opportunity filters (Close)writeclose.exports.opportunities.getGet a single Opportunity Export (Close)readclose.exports.opportunities.listList Opportunity Exports (Close)read
Reporting8
close.reporting.activity.metrics.listList the predefined metrics used in activity reports (Close)readclose.reporting.activity.runGet an activity report (Close)readclose.reporting.custom.runGet custom report (Explorer) (Close)readclose.reporting.funnel.stages.runGet a funnel report (stages) (Close)readclose.reporting.funnel.totals.runGet a funnel report (totals) (Close)readclose.reporting.lead_statuses.runGet lead status change report (Close)readclose.reporting.opportunity_statuses.runGet opportunity status change report (Close)readclose.reporting.sent_emails.runGet sent emails report (Close)read
Contact7
close.contacts.createCreate a new contact (Close)writeclose.contacts.create_rawCreate a Close contact from a whole objectwriteclose.contacts.deleteDelete a contact (Close)destructiveclose.contacts.getFetch a single contact (Close)readclose.contacts.listList contacts (Close)readclose.contacts.updateUpdate an existing contact (Close)writeclose.contacts.update_rawUpdate a Close contact from a whole objectwrite
Pipeline7
close.opportunities.createCreate an opportunity (Close)writeclose.opportunities.create_rawCreate a Close opportunity from a whole objectwriteclose.opportunities.deleteDelete an opportunity (Close)destructiveclose.opportunities.getRetrieve an opportunity (Close)readclose.opportunities.listList or filter opportunities (Close)readclose.opportunities.updateUpdate an opportunity (Close)writeclose.opportunities.update_rawUpdate a Close opportunity from a whole objectwrite
Group7
close.groups.createCreate a Group (Close)writeclose.groups.deleteDelete a Group (Close)destructiveclose.groups.getFetch an individual Group (Close)readclose.groups.listList Groups for your organization (Close)readclose.groups.members.addAdd a User to a Group (Close)writeclose.groups.members.removeRemove a User from a Group (Close)destructiveclose.groups.updateUpdate a Group (Close)write
Task6
close.tasks.bulk_updateBulk-update tasks (Close)writeclose.tasks.createCreate a task (Close)writeclose.tasks.deleteDelete a task (Close)destructiveclose.tasks.getFetch a task's details (Close)readclose.tasks.listList or filter tasks (Close)readclose.tasks.updateUpdate a task (Close)write
Webhook5
close.webhooks.createCreate new Webhook subscription (Close)writeclose.webhooks.deleteDelete Webhook subscription (Close)destructiveclose.webhooks.getRetrieve a single Webhook subscription (Close)readclose.webhooks.listList Webhook subscriptions (Close)readclose.webhooks.updateUpdate existing Webhook subscription (Close)write
Role5
close.roles.createCreate a new role (Close)writeclose.roles.deleteDelete a role (Close)destructiveclose.roles.getFetch a single role (Close)readclose.roles.listList all the roles defined for your organization (Close)readclose.roles.updateUpdate existing role (Close)write
Event2
close.events.getRetrieve a single event by ID (Close)readclose.events.listRetrieve a list of events (Close)read
Org2
close.organizations.getGet an organization's details (Close)readclose.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.