Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Netsuite

FreeNot checked

Enables AI assistants to query and manage NetSuite data via natural language, supporting SuiteQL queries and record operations through Token-Based Authenticatio

GitHubEmbed

About

Enables AI assistants to query and manage NetSuite data via natural language, supporting SuiteQL queries and record operations through Token-Based Authentication.

README

A TypeScript toolkit for NetSuite developers — CLI and MCP server powered by a shared core library.

Terminal → CLI (Commander.js) ──┐
                                ├──► Core Library (Auth + API) ──► NetSuite REST API
Claude/AI → MCP Server (stdio) ─┘

Packages

Package Description npm
@cafeasp/netsuite-core Auth, REST API client, SuiteQL engine npm
@cafeasp/netsuite-cli Terminal interface npm
@cafeasp/netsuite-mcp MCP server for AI clients npm

Quick Start

CLI

npm install -g @cafeasp/netsuite-cli

# Configure credentials
netsuite config init

# Test connection
netsuite info

# Query data
netsuite query "SELECT id, companyname FROM customer" --limit 10

# Get a record
netsuite record get customer 123 --format json

# List records
netsuite record list item --limit 20

MCP Server (Claude Code)

npm install -g @cafeasp/netsuite-mcp

claude mcp add netsuite-mcp -e NETSUITE_ACCOUNT_ID=YOUR_ID -e NETSUITE_CONSUMER_KEY=YOUR_KEY -e NETSUITE_CONSUMER_SECRET=YOUR_SECRET -e NETSUITE_TOKEN_ID=YOUR_TOKEN -e NETSUITE_TOKEN_SECRET=YOUR_SECRET -e NETSUITE_AUTH_METHOD=tba -- netsuite-mcp

Then in Claude Code:

  • "Show me the first 5 customers in NetSuite"
  • "What fields are available on the salesorder record?"
  • "Run this SuiteQL: SELECT id, tranid FROM transaction WHERE type = 'SalesOrd'"

Core Library

npm install @cafeasp/netsuite-core
import {
  loadConfig,
  createAuthProvider,
  NetSuiteClient,
  SuiteQLClient,
} from "@cafeasp/netsuite-core";

const config = loadConfig();
const auth = createAuthProvider(config);
const client = new NetSuiteClient(auth, config.accountId);
const suiteql = new SuiteQLClient(client);

const result = await suiteql.query("SELECT id, companyname FROM customer", { limit: 10 });
console.log(result.items);

Authentication

The tool uses Token-Based Authentication (TBA) — the most common auth method for NetSuite developers.

You need four values from your NetSuite account:

  1. Consumer Key and Consumer Secret (from an Integration Record)
  2. Token ID and Token Secret (from an Access Token)

See each package's README for detailed setup instructions.

Configuration

Credentials are stored in ~/.netsuite/config.json with named profiles:

# Set up default profile
netsuite config init

# Use a specific profile
netsuite --profile sandbox query "SELECT 1 FROM dual"

Environment variables override file config:

  • NETSUITE_ACCOUNT_ID
  • NETSUITE_CONSUMER_KEY
  • NETSUITE_CONSUMER_SECRET
  • NETSUITE_TOKEN_ID
  • NETSUITE_TOKEN_SECRET

Requirements

  • Node.js >= 18
  • NetSuite account with REST Web Services and TBA enabled

License

MIT

from github.com/cafeasp/cafeasp-netsuite-cli-mcp-server

Installing Netsuite

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/cafeasp/cafeasp-netsuite-cli-mcp-server

FAQ

Is Netsuite MCP free?

Yes, Netsuite MCP is free — one-click install via Unyly at no cost.

Does Netsuite need an API key?

No, Netsuite runs without API keys or environment variables.

Is Netsuite hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Netsuite in Claude Desktop, Claude Code or Cursor?

Open Netsuite on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Netsuite with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs