Connectors · CRM & sales
Nutshell CRM MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Nutshell CRM and the rest of your systems. It gives your agent 113 Nutshell CRM actions (68 reads, 35 writes and 10 that wait for a confirmation) and holds the Nutshell CRM credential itself, so the agent never does. It paces Nutshell CRM'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: "nutshell.contacts.list", intent: "check which Nutshell CRM account is connected"}# Get a list of contacts · read · 1 upstream call- 113actionsin one signed file
- 68readlook, never change
- 35writecreate and update
- 10wait for a yesdestructive, confirmed first
Set up
Connect Nutshell CRM 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 Nutshell CRM.
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.
emailEmail address of the Nutshell user the API key belongs toapi_keyNutshell API key (Setup > API keys, https://app.nutshell.com/setup/api-key)
account { op: "connections.requirements", service: "nutshell" } # 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: "nutshell.contacts.list" }# get a list of contacts · read · 1 upstream callcheck { action: "nutshell.contacts.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Nutshell CRM 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
emailapi_key- Limits we pace to
- 10 calls a second, per connection
- API covered
- Nutshell REST API 2.0.0 (https://app.nutshell.com/rest)
app.nutshell.com/rest - Built from
- Nutshell CRM's documentation, read 23 October 2026developers.nutshell.comdevelopers.nutshell.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 68 of 68 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 10, so ask can line Nutshell CRM up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Nutshell CRM.
113 actions in 37 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 68readlook, never change
- 35writecreate and update
- 10destructivewait for a confirmation
Leads
157 read · 7 write · 1 destructive
Get a list of leads · Create a lead · Get a lead · Delete a lead
Accounts
95 read · 3 write · 1 destructive
Get a list of accounts · Create an account · Get an account · Delete an account
Contacts
95 read · 3 write · 1 destructive
Get a list of contacts · Create a contact · Get a contact · Delete a contact
Notes
52 read · 2 write · 1 destructive
Create a note · Get a list of notes · Get a note · Undelete a note
Tasks
52 read · 2 write · 1 destructive
Get a list of tasks · Create a new task · Get a task · Delete a task
Activities
42 read · 2 write · 0 destructive
Get activities · Create an activity · Get an activity · Update an activity
Competitor maps
42 read · 1 write · 1 destructive
Get a list of lead-competitor relationships · Get a lead-competitor relationship · Update a lead-competitor relationship · Delete a lead-competitor relationship
Product maps
42 read · 1 write · 1 destructive
Get lead products · Get lead product · Update a lead's product information · Delete a product on a lead
29 more areas · 58 actions
- Products 4
- Quotes 4
- Sources 4
- Tags 4
- Invoices 3
- Product categories 3
- Account custom fields 2
- Audiences 2
- Competitors 2
- Contact custom fields 2
- Editions 2
- Events 2
- Forms 2
- Industries 2
- Lead custom fields 2
- Lead installments 2
- Markets 2
- Outcomes 2
- Users 2
- Account types 1
- Activity types 1
- Dashboards 1
- Emails 1
- Form fields 1
- Pipelines 1
- Saved filters 1
- Stages 1
- Territories 1
- Todos 1
Top actions
The Nutshell CRM API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 38 of Nutshell CRM's 40 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
nutshell.contacts.listGet a list of contacts | Returns a number of contacts which is filterable based on their basic information. | read | crm.contact.list177 connectors |
nutshell.accounts.listGet a list of accounts | Get all accounts and associated data in your Nutshell instance. Accounts are companies or organizations that you do business with, and are referred to as… | read | crm.company.list162 connectors |
nutshell.tags.listGet a list of tags | Get a list of all tags in a Nutshell instance. | read | crm.tag.list65 connectors |
nutshell.leads.listGet a list of leads | Get a list of all leads and associated data in your Nutshell Instance. | read | crm.deal.list43 connectors |
nutshell.users.listGet a list of users | Get a list of users. | read | identity.user.list474 connectors |
nutshell.products.listList or search products | Without q, returns all active products and applies sort. With q, trims the value and performs a case-insensitive name or SKU search limited to 200 products;… | read | commerce.product.list112 connectors |
nutshell.contacts.createCreate a contact | Create a new contact, also known as a person, in Nutshell. Only one contact may be created at a time. | write | crm.contact.create161 connectors |
nutshell.accounts.createCreate an account | Create a new account. Accounts are companies or organizations that you do business with, and are referred to as 'Companies' in the Nutshell UI. | write | crm.company.create142 connectors |
nutshell.activities.listGet activities | Get activities. | read | crm.activity.list21 connectors |
nutshell.territories.listGet a list of territories | Get a list of territories. | read | crm.territory.list10 connectors |
nutshell.tags.createCreate a tag | Create a tag. Tags are used to organize leads, contacts, and accounts into groups. | write | crm.tag.create49 connectors |
nutshell.contacts.deleteDelete a contact | Deletes a contact from Nutshell. Can be recovered by posting to /contacts/{id}/undelete | destructive | crm.contact.delete147 connectors |
Try it
Prompts to paste into Claude.
Each one names the Nutshell CRM actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Nutshell CRM deals are due to close this month, and what are they worth in total?
calls
nutshell.leads.list - Writewrite
Create a contact in Nutshell CRM. Show me exactly what you will send before you save it.
calls
nutshell.contacts.create - Across systemsread
Which Nutshell CRM companies have invoices in ConnectWise PSA, and how many each?
calls
nutshell.accounts.listconnectwise_manage.invoices.list
Across your systems
Nutshell CRM, joined to the rest of your business.
One ask fetches from Nutshell CRM and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which Nutshell CRM companies have invoices in ConnectWise PSA, and how many each?
nutshell.accounts.list+connectwise_manage.invoices.list, oncrm.company· ConnectWise PSAWhich Nutshell CRM companies have invoices in NetSuite, and how many each?
nutshell.accounts.list+netsuite.views.invoices, oncrm.company· NetSuite
identity.user 517crm.company 227crm.contact 192commerce.product 109work.task 105crm.tag 47crm.deal 43comm.audience 27ask { intent: "which Nutshell CRM companies have invoices in ConnectWise PSA, and how many each", steps: [ { action: "nutshell.accounts.list", as: "co", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { join: { left: "co", right: "inv", on: "crm.company", group_by: "co.name", select: ["co.name", "count(inv.id) as invoices"] } } ]}Governance for Nutshell CRM
Destructive actions wait for a yes.
10 Nutshell CRM actions are destructive. These are all of them:
- Delete a contact
nutshell.contacts.delete - Delete an account
nutshell.accounts.delete - Delete a tag
nutshell.tags.delete - Delete a lead
nutshell.leads.delete - Delete a product
nutshell.products.delete - Delete a task
nutshell.tasks.delete - Delete a note
nutshell.notes.delete - Delete a Source
nutshell.sources.delete - Delete a product on a lead
nutshell.product_maps.delete - Delete a lead-competitor relationship
nutshell.competitor_maps.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?
intent: the user asked me to delete a contact
account { op: "keys.create", name: "nutshell-agent", allowed_actions: ["nutshell.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "nutshell.contacts.delete", approver: "[email protected]" }, { match: "nutshell.accounts.delete", approver: "[email protected]" }, { match: "nutshell.tags.delete", approver: "[email protected]" } ]}Cost
What Nutshell CRM costs on actionlake.
Every Nutshell CRM action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Nutshell CRM 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 113 Nutshell CRM actions
- 3actions pageeach page of a long list is one call
- 68reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Nutshell CRM action.
113 actions by area: the id your agent calls, what it does, and its effect.
Leads15
nutshell.leads.createCreate a leadwritenutshell.leads.custom_field_valuesGet a lead's custom fieldsreadnutshell.leads.deleteDelete a leaddestructivenutshell.leads.fieldsGet the fields for a leadreadnutshell.leads.getGet a leadreadnutshell.leads.listGet a list of leadsreadnutshell.leads.list_itemsGet list items for all leadsreadnutshell.leads.reopenReopen a leadwritenutshell.leads.reportGet reports for a leadreadnutshell.leads.set_pipelineSet the pipeline for a leadwritenutshell.leads.stagesGet all stages associated with leadreadnutshell.leads.undeleteUndelete a leadwritenutshell.leads.updateUpdate a leadwritenutshell.leads.update_statusUpdate the status of a leadwritenutshell.leads.watchWatch a leadwrite
Accounts9
nutshell.accounts.createCreate an accountwritenutshell.accounts.custom_field_valuesGet custom fieldsreadnutshell.accounts.deleteDelete an accountdestructivenutshell.accounts.fieldsGet the fields for an accountreadnutshell.accounts.getGet an accountreadnutshell.accounts.listGet a list of accountsreadnutshell.accounts.list_itemsGet list items for all accountsreadnutshell.accounts.undeleteUndelete an accountwritenutshell.accounts.updateUpdate an accountwrite
Contacts9
nutshell.contacts.createCreate a contactwritenutshell.contacts.custom_field_valuesGet contact custom fieldsreadnutshell.contacts.deleteDelete a contactdestructivenutshell.contacts.fieldsGet the fields for a contactreadnutshell.contacts.getGet a contactreadnutshell.contacts.listGet a list of contactsreadnutshell.contacts.list_itemsGet list items for all contactsreadnutshell.contacts.undeleteUndelete a contactwritenutshell.contacts.updateUpdate a contactwrite
Notes5
nutshell.notes.createCreate a notewritenutshell.notes.deleteDelete a notedestructivenutshell.notes.getGet a notereadnutshell.notes.listGet a list of notesreadnutshell.notes.undeleteUndelete a notewrite
Tasks5
nutshell.tasks.createCreate a new taskwritenutshell.tasks.deleteDelete a taskdestructivenutshell.tasks.getGet a taskreadnutshell.tasks.listGet a list of tasksreadnutshell.tasks.updateUpdate a taskwrite
Activities4
nutshell.activities.createCreate an activitywritenutshell.activities.getGet an activityreadnutshell.activities.listGet activitiesreadnutshell.activities.updateUpdate an activitywrite
Competitor maps4
nutshell.competitor_maps.deleteDelete a lead-competitor relationshipdestructivenutshell.competitor_maps.getGet a lead-competitor relationshipreadnutshell.competitor_maps.listGet a list of lead-competitor relationshipsreadnutshell.competitor_maps.updateUpdate a lead-competitor relationshipwrite
Product maps4
nutshell.product_maps.deleteDelete a product on a leaddestructivenutshell.product_maps.getGet lead productreadnutshell.product_maps.listGet lead productsreadnutshell.product_maps.updateUpdate a lead's product informationwrite
Products4
nutshell.products.deleteDelete a productdestructivenutshell.products.getGet a productreadnutshell.products.listList or search productsreadnutshell.products.undeleteUndelete a productwrite
Quotes4
nutshell.quotes.create_invoiceCreate an invoice from a quotewritenutshell.quotes.getGet a quotereadnutshell.quotes.listGet a list of quotesreadnutshell.quotes.update_statusUpdate the status of a quotewrite
Sources4
nutshell.sources.createCreate a new sourcewritenutshell.sources.deleteDelete a Sourcedestructivenutshell.sources.listGet a list of sourcesreadnutshell.sources.undeleteUndelete a Sourcewrite
Tags4
nutshell.tags.createCreate a tagwritenutshell.tags.deleteDelete a tagdestructivenutshell.tags.listGet a list of tagsreadnutshell.tags.undeleteUndelete a tagwrite
Invoices3
nutshell.invoices.getGet an invoicereadnutshell.invoices.listGet a list of invoicesreadnutshell.invoices.update_statusUpdate the status of an invoicewrite
Product categories3
nutshell.product_categories.createCreate a product categorywritenutshell.product_categories.getGet a product categoryreadnutshell.product_categories.listList all product categoriesread
Account custom fields2
nutshell.account_custom_fields.createCreate a custom fieldwritenutshell.account_custom_fields.listGet a list of custom fieldsread
Audiences2
nutshell.audiences.createCreate an audiencewritenutshell.audiences.listGet a list of audiencesread
Competitors2
nutshell.competitors.getGet a competitorreadnutshell.competitors.listGet a list of competitorsread
Contact custom fields2
nutshell.contact_custom_fields.createCreate a custom fieldwritenutshell.contact_custom_fields.listGet applicable custom fieldsread
Editions2
nutshell.editions.getGet a single edition by its IDreadnutshell.editions.listGet a list of editionsread
Events2
nutshell.events.listGet a list of eventsreadnutshell.events.list_deletedGet deletion eventsread
Forms2
nutshell.forms.getGet a formreadnutshell.forms.listGet all formsread
Industries2
nutshell.industries.getGet a single industry by its IDreadnutshell.industries.listGet a list of industriesread
Lead custom fields2
nutshell.lead_custom_fields.createCreate a custom fieldwritenutshell.lead_custom_fields.listGet applicable custom fields for leadsread
Lead installments2
nutshell.lead_installments.listGet installments for a leadreadnutshell.lead_installments.replaceUpdate installments for a leadwrite
Markets2
nutshell.markets.getGet a market by the IDreadnutshell.markets.listGet a list of marketsread
Outcomes2
nutshell.outcomes.getGet a lead outcome by IDreadnutshell.outcomes.listGet a list of lead outcomesread
Users2
nutshell.users.getGet a userreadnutshell.users.listGet a list of usersread
Account types1
nutshell.account_types.listGet a list of account typesread
Activity types1
nutshell.activity_types.listGet activity typesread
Dashboards1
nutshell.dashboards.fieldsGet dashboard field definitionsread
Emails1
nutshell.emails.getGet an emailread
Form fields1
nutshell.form_fields.getGet a form fieldread
Pipelines1
nutshell.pipelines.listGet a list of pipelinesread
Saved filters1
nutshell.saved_filters.listGet saved filtersread
Stages1
nutshell.stages.listGet a list of stagesread
Territories1
nutshell.territories.listGet a list of territoriesread
Todos1
nutshell.todos.listGet tasks and sales process stepsread
Questions
The Nutshell CRM MCP server, answered.
Is there a Nutshell CRM MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 113 Nutshell CRM actions across leads, accounts, contacts and notes, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Nutshell CRM.
What do I need to connect Nutshell CRM?
Email address of the Nutshell user the API key belongs to and Nutshell API key (Setup > API keys, https://app.nutshell.com/setup/api-key). The free call account { op: "connections.requirements", service: "nutshell" } lists exactly what to paste.
Can an AI agent delete or change things in Nutshell CRM?
Only if its key allows it, and only with an explicit confirmation. 10 Nutshell CRM actions are destructive, including delete a contact, delete an account and delete a tag. 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 Nutshell CRM API limit?
actionlake paces every call to the limits in the Nutshell CRM service file: 10 calls a second per connection. Repeated reads are answered from cache (68 Nutshell CRM actions can be), which never reaches Nutshell CRM.
What does a Nutshell CRM action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (3 Nutshell CRM actions page). Cache hits, searches, dry runs and calls Nutshell CRM 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 Nutshell CRM API does it cover?
The Nutshell REST API 2.0.0 (https://app.nutshell.com/rest) at app.nutshell.com/rest. It is built from Nutshell CRM's documentation as read on 23 October 2026. 113 actions in 37 areas, each one in the signed service file (version 1.0.0).
Can I combine Nutshell CRM with my other systems?
Yes. ask joins Nutshell CRM to ConnectWise PSA or NetSuite on the same customer and returns the answer rather than every row. Nutshell CRM maps crm.company, which 227 other connectors also map.
Does actionlake keep my Nutshell CRM data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, 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 Nutshell CRM 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 Nutshell CRM today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.