Nutshell MCP server
114 operations0 webhooks
CRM integration for accounts, contacts, leads, activities, tasks, products, quotes, and invoices.
Try Nutshell with your agent
Connect Nutshell, then paste this into Claude, ChatGPT or Cursor. For ideas from other apps, see the use cases.
Using Corsair, show me what you can do in Nutshell on my account, then run one read-only example and show me the result.
Nutshell tools and triggers
Tools are what your agent can do in Nutshell through Corsair's MCP server. Triggers are the Nutshell events a routine can start from.
Leads
- CreateWrite
Create a lead
leads.create
- Create Custom FieldWrite
Create a custom field
leads.createCustomField
- Custom Field AttributesRead-only
Get applicable custom fields for leads
leads.customFieldAttributes
- CustomfieldsRead-only
Get a lead's custom fields
leads.customfields
- DeleteDestructive
Delete a lead
leads.delete
- GetRead-only
Get a lead
leads.get
- InstallmentsRead-only
Get installments for a lead
leads.installments
- ListRead-only
Get a list of leads
leads.list
- List FieldsRead-only
Get the fields for a lead
leads.listFields
- List ItemsRead-only
Get list items for all leads
leads.listItems
- Post StagesetWrite
Set the pipeline for a lead
leads.postStageset
- ReopenWrite
Reopen a lead
leads.reopen
- ReportRead-only
Get reports for a lead
leads.report
- StagesRead-only
Get all stages associated with lead
leads.stages
- StatusWrite
Update the status of a lead
leads.status
- UndeleteWrite
Undelete a lead
leads.undelete
- UpdateWrite
Update a lead
leads.update
- Update InstallmentsDestructive
Replace a lead's installment schedule
leads.updateInstallments
- WatchWrite
Watch a lead
leads.watch
Accounts
- CreateWrite
Create an account
accounts.create
- Create Custom FieldWrite
Create a custom field
accounts.createCustomField
- Custom Field AttributesRead-only
Get a list of custom fields
accounts.customFieldAttributes
- CustomfieldsRead-only
Get custom fields
accounts.customfields
- DeleteDestructive
Delete an account
accounts.delete
- GetRead-only
Get an account
accounts.get
- ListRead-only
Get a list of accounts
accounts.list
- List FieldsRead-only
Get the fields for an account
accounts.listFields
- List ItemsRead-only
Get list items for all accounts
accounts.listItems
- UndeleteWrite
Undelete an account
accounts.undelete
- UpdateWrite
Update an account
accounts.update
Contacts
- CreateWrite
Create a contact
contacts.create
- Create Custom FieldWrite
Create a custom field
contacts.createCustomField
- Custom Field AttributesRead-only
Get applicable custom fields
contacts.customFieldAttributes
- CustomfieldsRead-only
Get contact custom fields
contacts.customfields
- DeleteDestructive
Delete a contact
contacts.delete
- GetRead-only
Get a contact
contacts.get
- ListRead-only
Get a list of contacts
contacts.list
- List FieldsRead-only
Get the fields for a contact
contacts.listFields
- List ItemsRead-only
Get list items for all contacts
contacts.listItems
- UndeleteWrite
Undelete a contact
contacts.undelete
- UpdateWrite
Update a contact
contacts.update
Notes
- CreateWrite
Create a note
notes.create
- DeleteDestructive
Delete a note
notes.delete
- GetRead-only
Get a note
notes.get
- ListRead-only
Get a list of notes
notes.list
- UndeleteWrite
Undelete a note
notes.undelete
Tasks
- CreateWrite
Create a new task
tasks.create
- DeleteDestructive
Delete a task
tasks.delete
- GetRead-only
Get a task
tasks.get
- ListRead-only
Get a list of tasks
tasks.list
- UpdateWrite
Update a task
tasks.update
Activities
- CreateWrite
Create an activity
activities.create
- GetRead-only
Get an activity
activities.get
- ListRead-only
Get activities
activities.list
- UpdateWrite
Update an activity
activities.update
Competitor Maps
- DeleteDestructive
Delete a lead-competitor relationship
competitorMaps.delete
- GetRead-only
Get a lead-competitor relationship
competitorMaps.get
- ListRead-only
Get a list of lead-competitor relationships
competitorMaps.list
- UpdateWrite
Update a lead-competitor relationship
competitorMaps.update
Product Maps
- DeleteDestructive
Delete a product on a lead
productMaps.delete
- GetRead-only
Get lead product
productMaps.get
- ListRead-only
Get lead products
productMaps.list
- UpdateWrite
Update a lead's product information
productMaps.update
Products
- DeleteDestructive
Delete a product
products.delete
- GetRead-only
Get a product
products.get
- ListRead-only
List or search products
products.list
- UndeleteWrite
Undelete a product
products.undelete
Quotes
- Create InvoiceWrite
Create an invoice from a quote
quotes.createInvoice
- GetRead-only
Get a quote
quotes.get
- ListRead-only
Get a list of quotes
quotes.list
- StatusWrite
Update the status of a quote
quotes.status
Sources
- CreateWrite
Create a new source
sources.create
- DeleteDestructive
Delete a Source
sources.delete
- ListRead-only
Get a list of sources
sources.list
- UndeleteWrite
Undelete a Source
sources.undelete
Tags
- CreateWrite
Create a tag
tags.create
- DeleteDestructive
Delete a tag
tags.delete
- ListRead-only
Get a list of tags
tags.list
- UndeleteWrite
Undelete a tag
tags.undelete
Forms
- GetRead-only
Get a form
forms.get
- Get Field IdRead-only
Get a form field
forms.getFieldId
- ListRead-only
Get all forms
forms.list
Invoices
- GetRead-only
Get an invoice
invoices.get
- ListRead-only
Get a list of invoices
invoices.list
- StatusWrite
Update the status of an invoice
invoices.status
Product Categories
- CreateWrite
Create a product category
productCategories.create
- GetRead-only
Get a product category
productCategories.get
- ListRead-only
List all product categories
productCategories.list
Audiences
- CreateWrite
Create an audience
audiences.create
- ListRead-only
Get a list of audiences
audiences.list
Competitors
- GetRead-only
Get a competitor
competitors.get
- ListRead-only
Get a list of competitors
competitors.list
Editions
- GetRead-only
Get a single edition by its ID
editions.get
- ListRead-only
Get a list of editions
editions.list
Events
- DeletedRead-only
Get deletion events
events.deleted
- ListRead-only
Get a list of events
events.list
Industries
- GetRead-only
Get a single industry by its ID
industries.get
- ListRead-only
Get a list of industries
industries.list
Markets
- GetRead-only
Get a market by the ID
markets.get
- ListRead-only
Get a list of markets
markets.list
Outcomes
- GetRead-only
Get a lead outcome by ID
outcomes.get
- ListRead-only
Get a list of lead outcomes
outcomes.list
Stage Sets
- ExportRead-only
Get a CSV export of lead movements through a pipeline
stageSets.export
- ListRead-only
Get a list of pipelines
stageSets.list
Users
- GetRead-only
Get a user
users.get
- ListRead-only
Get a list of users
users.list
Account Types
- ListRead-only
Get a list of account types
accountTypes.list
Activity Types
- ListRead-only
Get activity types
activityTypes.list
Dashboards
- List FieldsRead-only
Get dashboard field definitions
dashboards.listFields
Emails
- GetRead-only
Get an email
emails.get
Filters
- ListRead-only
Get saved filters
filters.list
Stages
- ListRead-only
Get a list of stages
stages.list
Territories
- ListRead-only
Get a list of territories
territories.list
Todos
- ListRead-only
Get tasks and sales process steps
todos.list
Connect Nutshell to Claude, ChatGPT or Cursor
- 1
Connect Nutshell in Corsair
Add your Nutshell API key once in Corsair. Corsair stores the credential encrypted and makes the Nutshell API calls for your agent, so it never goes into a prompt or a config file. Connect Nutshell
If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs Nutshell. On a ChatGPT personal plan, connect Nutshell here first.
- 2
Add Corsair's MCP server to your agent
Every client uses the same address:
https://mcp.corsair.dev/mcpOpen Customize → Connectors → Add custom connector, paste the address, then select Connect.Add a custom MCP server with the address and choose OAuth. Personal plans get read tools only.Add to CursorOr add this to~/.cursor/mcp.json. Cursor opens Corsair to sign in the first time it connects.{ "mcpServers": { "corsair": { "url": "https://mcp.corsair.dev/mcp" } } }Run this, then run/mcpin Claude Code to sign in.claude mcp add --transport http corsair https://mcp.corsair.dev/mcpCodex, Gemini CLI, VS Code, Zed and other clients with OAuth sign-in work the same way. Clients without it, such as GitHub Copilot's coding agent, use a link's own address and an API key. Setup for every client
- 3
Sign in and choose what needs your approval
Your client opens Corsair to sign in. Pick a link: the apps your agent can use and a mode that decides what it may do without asking. In the default Cautious mode, Nutshell's read and write operations run right away and its 11 destructive operations wait for your approval. Strict mode asks before every write and refuses destructive operations, and Read mode allows reads only.
FAQ
Install corsair and @corsair-dev/nutshell, add the Nutshell plugin, and connect with an API key. Then call methods like corsair.nutshell.api.accounts.create() from your app. Corsair keeps each tenant isolated.
Yes. Nutshell requires an API key from your Nutshell account or developer dashboard. Create credentials with access that matches what you automate, then paste them into Corsair or connect through managed auth in Hub.
Yes. One Corsair client can hit Nutshell, GitHub, Notion, Stripe, and the rest. Trigger Nutshell from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.
Teams use Corsair for CRM integration for accounts, contacts, leads, activities, tasks, products, quotes, and invoices. Common builds include sync jobs, admin tooling, and agents that call Nutshell APIs from your backend.
The SDK is open source. Self-host and you pay Corsair nothing for the integration layer. Hub bills for hosted auth and execution, not per Nutshell API call. Hub has a generous free tier. For hobby projects you can probably run the whole thing on free. Paid plans start to matter with more tenants or heavier traffic.
We maintain @corsair-dev/nutshell in the open repo. When Nutshell ships API changes, upgrade the package. Your call sites stay typed. You should not need to rewrite the integration layer each time.
No. Corsair does not read your Nutshell data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store Nutshell data on your behalf.
Yes. Add https://mcp.corsair.dev/mcp as a custom connector or MCP server in Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex or any client that supports remote MCP servers with OAuth sign-in, then sign in to Corsair. On ChatGPT personal plans, custom servers currently get read tools only.
Yes. Put Nutshell on a link in Strict mode and every write waits for your approval, while destructive actions are refused. The default Cautious mode asks only before the 11 destructive Nutshell operations. You can change a link's mode at hub.corsair.dev/me.