Netsuite MCP Server

NetSuite MCP server with OAuth 2.0 PKCE authentication. Works seamlessly with Claude Code, Cursor IDE, and other MCP clients.

Local serverstdio

What is the Netsuite MCP server?

Netsuite MCP server exists for a simple reason — assistants are far more useful when they can act on Netsuite directly instead of describing what you should do. NetSuite MCP server with OAuth 2.0 PKCE authentication. Works seamlessly with Claude Code, Cursor IDE, and other MCP clients.

What you get

A Model Context Protocol (MCP) server providing access to NetSuite data through OAuth 2.0 with PKCE authentication. Works seamlessly with any MCP-compatible client including Claude Code, Cursor IDE, and Gemini CLI.

  • OAuth 2.0 with PKCE - Secure authentication without client secrets
  • Automatic Token Refresh - Tokens refresh automatically before expiration
  • Environment Variable Support - Configure credentials once in your MCP config
  • Session Persistence - Authentication survives server restarts
  • Universal MCP Integration - Works with Claude Code, Cursor IDE, Gemini CLI, and other MCP clients
  • NetSuite MCP Tools - Access to all NetSuite MCP capabilities (SuiteQL, Reports, Saved Searches, etc.)

Setting it up

Installation goes through your MCP client rather than a global install: point it at setup on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

What the assistant can call

Once Netsuite is connected, these are the calls the assistant has available:

  • ns_runCustomSuiteQL — Execute SuiteQL queries
  • ns_listAllReports — List available financial reports
  • ns_runReport — Execute a specific report
  • ns_listSavedSearches — List saved searches
  • ns_runSavedSearch — Execute a saved search
  • ns_getRecord — Retrieve a specific record
  • ns_createRecord — Create a new record
  • ns_updateRecord — Update an existing record

Configuration and credentials

You will need 3 environment variables: NETSUITE_ACCOUNT_ID, NETSUITE_CLIENT_ID, OAUTH_CALLBACK_PORT. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

  • Node.js 18.0.0 or higher - NetSuite Account with MCP access - NetSuite AI Connector SuiteApp (Bundle ID: 522506) installed and configured - NetSuite Integration Record with OAuth 2.0 and PKCE enabled - MCP Client - Any MCP-compatible client (Claude Code, Cursor IDE, Gemini CLI, etc.)

Before you rely on it

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the netsuite mcp server does with a few real requests.

Choosing this one

Among the developer tooling options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Netsuite's toolset — ns_runCustomSuiteQL, ns_listAllReports, ns_runReport and 5 more — is a fair guide to whether it matches your workflow. It is maintained by suiteinsider; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Available tools

ToolWhat it does
ns_runCustomSuiteQLExecute SuiteQL queries
ns_listAllReportsList available financial reports
ns_runReportExecute a specific report
ns_listSavedSearchesList saved searches
ns_runSavedSearchExecute a saved search
ns_getRecordRetrieve a specific record
ns_createRecordCreate a new record
ns_updateRecordUpdate an existing record

How to install the Netsuite MCP server

{
  "mcpServers": {
    "netsuite": {
      "command": "npx",
      "args": ["@suiteinsider/netsuite-mcp@latest"],
      "env": {
        "NETSUITE_ACCOUNT_ID": "your-account-id",
        "NETSUITE_CLIENT_ID": "your-client-id",
        "OAUTH_CALLBACK_PORT": "8080"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Node.js 18.0.0 or higher - NetSuite Account with MCP access - NetSuite AI Connector SuiteApp (Bundle ID: 522506) installed and configured - NetSuite Integration Record with OAuth 2.0 and PKCE enabled - MCP Client - Any MCP-compatible client (Claude Code, Cursor IDE, Gemini CLI, etc.)
VariableDescriptionRequired
NETSUITE_ACCOUNT_IDConfiguration value read at startup.Optional
NETSUITE_CLIENT_IDConfiguration value read at startup.Optional
OAUTH_CALLBACK_PORTConfiguration value read at startup.Optional

Example prompts to try

  • Use Netsuite to ns runCustomSuiteQL.
  • Use Netsuite to ns listAllReports.
  • Use Netsuite to ns runReport.

Frequently asked questions

It connects Netsuite to MCP-compatible AI assistants such as Claude and Cursor, exposing 8 tools (ns_runCustomSuiteQL, ns_listAllReports, ns_runReport, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Netsuite directly.