← All integrations

NetSuite MCP server

84 operations0 webhooks

Create, read, update, and delete NetSuite records, run SuiteQL, and manage OAuth 2.0 tokens.

Try NetSuite with your agent

Connect NetSuite, 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 NetSuite on my account, then run one read-only example and show me the result.

Runs once, when you ask

NetSuite tools and triggers

Tools are what your agent can do in NetSuite through Corsair's MCP server. Triggers are the NetSuite events a routine can start from.

Oauth

  • Create Jwt Client AssertionWrite

    Create a signed JWT client assertion for OAuth 2.0 client credentials

    oauth.createJwtClientAssertion

  • Oauth2 Authorize Account DomainRead-only

    Build an OAuth 2.0 authorization URL on the account domain

    oauth.oauth2AuthorizeAccountDomain

  • Oauth2 Authorize System DomainRead-only

    Build an OAuth 2.0 authorization URL on the system domain

    oauth.oauth2AuthorizeSystemDomain

  • Oauth2 Get Jwks KeysRead-only

    Retrieve NetSuite OAuth 2.0 JWKS public keys

    oauth.oauth2GetJwksKeys

  • Oauth2 LogoutWrite

    Log out an OAuth 2.0 session using an ID token hint

    oauth.oauth2Logout

  • Oauth2 Revoke Refresh TokenDestructive

    Revoke a NetSuite OAuth 2.0 refresh token

    oauth.oauth2RevokeRefreshToken

  • Oauth2 Token Authorization CodeWrite

    Exchange an OAuth 2.0 authorization code for tokens

    oauth.oauth2TokenAuthorizationCode

  • Oauth2 Token Client CredentialsWrite

    Exchange a JWT client assertion for an OAuth 2.0 access token

    oauth.oauth2TokenClientCredentials

  • Oauth2 Token RefreshWrite

    Refresh a NetSuite OAuth 2.0 access token

    oauth.oauth2TokenRefresh

Records

  • Create RecordWrite

    Create a record of any exposed NetSuite type

    records.createRecord

  • Get Reference Select FieldRead-only

    Retrieve the record referenced by a select-type field

    records.getReferenceSelectField

  • Get Sublist CollectionRead-only

    Retrieve a sublist collection from a NetSuite record

    records.getSublistCollection

Connect NetSuite to Claude, ChatGPT or Cursor

  1. 1

    Connect NetSuite in Corsair

    Sign in to NetSuite once in Corsair. Corsair stores the credential encrypted and makes the NetSuite API calls for your agent, so it never goes into a prompt or a config file. Connect NetSuite

    If your link lets the agent add apps, you can skip this: it gives you a sign-in link the first time it needs NetSuite. On a ChatGPT personal plan, connect NetSuite here first.

  2. 2

    Add Corsair's MCP server to your agent

    Every client uses the same address:

    https://mcp.corsair.dev/mcp
    Open Customize → Connectors → Add custom connector, paste the address, then select Connect.

    Codex, 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. 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, NetSuite's read and write operations run right away and its 13 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/netsuite, add the NetSuite plugin, and connect with OAuth. Then call methods like corsair.netsuite.api.asyncJobs.asyncGetJobStatus() from your app. Corsair stores tokens, and syncs data per tenant.

Yes. NetSuite needs an OAuth app with scopes that match what you automate. Register the app in NetSuite, configure redirect URLs, then connect through Corsair or managed OAuth in Hub.

Yes. One Corsair client can hit NetSuite, GitHub, Notion, Stripe, and the rest. Trigger NetSuite from a webhook, push updates to Slack, or chain actions across plugins. Same tenant context across integrations, plain TypeScript.

Teams use Corsair for create, read, update, and delete netsuite records, run suiteql, and manage oauth 2.0 tokens. Common builds include sync jobs, admin tooling, and agents that call NetSuite APIs from your backend. Local DB entities let you query synced NetSuite records without hitting the API on every read.

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 NetSuite 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/netsuite in the open repo. When NetSuite 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 NetSuite data or hold individual access credentials. Credentials stay in your database. API calls run on your instance. We do not store NetSuite 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 NetSuite 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 13 destructive NetSuite operations. You can change a link's mode at hub.corsair.dev/me.