Connect your AI Agents to NetSuite in minutes

Merge lets you securely connect your agents to NetSuite and thousands of tools instantly

Available tools

list_accounts

List NetSuite accounts (chart of accounts) with pagination. Returns account names, numbers, and types. Use offset/limit for next page. Use q to search by name or number.

get_account

Get a NetSuite account by internal ID. Returns full account details including name, number, type, and balance. Use list_accounts to find valid IDs. Optionally specify fields to return only specific properties.

list_contacts

List NetSuite contacts with pagination. Use offset/limit for next page. Returns items array and page_info with has_next_page and offset for the next request.

get_contact

Get a NetSuite contact by internal ID. Returns full record details. Use list_contacts to find valid IDs. Optionally specify fields to return only specific properties.

create_contact

Create a new NetSuite contact. Use list_customers for valid company IDs. Returns the new record ID on success.

update_contact

Update an existing NetSuite contact. Use get_contact to check current values first. Only provided fields will be updated.

delete_contact

Delete a NetSuite contact by ID. This action cannot be undone. Use get_contact to verify the record first.

list_credit_memos

List NetSuite credit memos with pagination. Use offset/limit for next page. Use q to search. Returns items array and page_info with has_next_page and offset for the next request.

get_credit_memo

Get a NetSuite credit memo by internal ID. Use list_credit_memos to find valid IDs. Use expandSubResources to see line items. Optionally specify fields to return only specific properties.

create_credit_memo

Create a new NetSuite credit memo. Requires entity (customer ref). Use list_customers for valid IDs. Returns the new record ID on success.

update_credit_memo

Update an existing NetSuite credit memo. Use get_credit_memo to check current values first. Only provided fields will be updated.

delete_credit_memo

Delete a NetSuite credit memo by ID. This action cannot be undone. Use get_credit_memo to verify the record first.

list_customers

List NetSuite customers with pagination. Use offset/limit for next page. Use q parameter to search by name. Returns items array and page_info with has_next_page and offset for the next request.

get_customer

Get a NetSuite customer by internal ID. Returns full record details. Use list_customers to find valid IDs. Optionally specify fields to return only specific properties.

create_customer

Create a new NetSuite customer. Requires companyName or firstName+lastName with isPerson=true. Use list_subsidiaries for valid subsidiary IDs. Returns the new record ID on success.

update_customer

Update an existing NetSuite customer. Use get_customer to check current values first. Only provided fields will be updated.

delete_customer

Delete a NetSuite customer by ID. This action cannot be undone. Use get_customer to verify the record first.

list_employees

List NetSuite employees with pagination. Use offset/limit for next page. Returns items array and page_info with has_next_page and offset for the next request.

get_employee

Get a NetSuite employee by internal ID. Returns full record details. Use list_employees to find valid IDs. Optionally specify fields to return only specific properties.

create_employee

Create a new NetSuite employee. Use list_subsidiaries and list_departments for valid reference IDs. Returns the new record ID on success.

update_employee

Update an existing NetSuite employee. Use get_employee to check current values first. Only provided fields will be updated.

delete_employee

Delete a NetSuite employee by ID. This action cannot be undone. Use get_employee to verify the record first.

list_estimates

List NetSuite estimates/quotes with pagination. Use offset/limit for next page. Use q to search. Returns items array and page_info with has_next_page and offset for the next request.

get_estimate

Get a NetSuite estimate by internal ID. Use list_estimates to find valid IDs. Use expandSubResources to see line items. Optionally specify fields to return only specific properties.

create_estimate

Create a new NetSuite estimate. Requires entity (customer ref). Use list_customers for valid IDs. Returns the new record ID on success.

update_estimate

Update an existing NetSuite estimate. Use get_estimate to check current values first. Only provided fields will be updated.

delete_estimate

Delete a NetSuite estimate by ID. This action cannot be undone. Use get_estimate to verify the record first.

list_invoices

List NetSuite invoices with pagination. Use offset/limit for next page. Use q to search. Returns items array and page_info with has_next_page and offset for the next request.

get_invoice

Get a NetSuite invoice by internal ID. Use list_invoices to find valid IDs. Use expandSubResources to see line items. Optionally specify fields to return only specific properties.

create_invoice

Create a new NetSuite invoice. Requires entity (customer reference). Use list_customers for valid entity IDs. Returns the new record ID on success.

update_invoice

Update an existing NetSuite invoice. Use get_invoice to check current values first. Only provided fields will be updated.

delete_invoice

Delete a NetSuite invoice by ID. This action cannot be undone. Use get_invoice to verify the record first.

list_inventory_items

List NetSuite inventory items with pagination. These are items tracked in inventory with quantity on hand. Use offset/limit for next page. Use q to search by name.

get_inventory_item

Get a NetSuite inventory item by internal ID. Returns full record details. Use list_inventory_items to find valid IDs. Optionally specify fields to return only specific properties.

create_inventory_item

Create a new NetSuite inventory item. Requires itemId (name). Use list_accounts for valid income, COGS, and asset account references. Use list_subsidiaries for subsidiary IDs. Returns the new record ID on success.

update_inventory_item

Update an existing NetSuite inventory item. Use get_inventory_item to check current values first. Only provided fields will be updated.

list_non_inventory_items

List NetSuite non-inventory items (items not tracked in inventory) with pagination. Use offset/limit for next page. Use q to search by name.

list_service_items

List NetSuite service items (services sold to customers) with pagination. Use offset/limit for next page. Use q to search by name.

list_journal_entries

List NetSuite journal entries with pagination. Use offset/limit for next page. Use q to search. Returns items array and page_info with has_next_page and offset for the next request.

get_journal_entry

Get a NetSuite journal entry by internal ID. Use list_journal_entries to find valid IDs. Use expandSubResources to see line items. Optionally specify fields to return only specific properties.

create_journal_entry

Create a new NetSuite journal entry. Include line items with debit and credit entries that balance. Use list_accounts for valid account references and list_subsidiaries for subsidiary IDs. Returns the new record ID on success.

update_journal_entry

Update an existing NetSuite journal entry. Use get_journal_entry to check current values first. Only provided fields will be updated.

delete_journal_entry

Delete a NetSuite journal entry by ID. This action cannot be undone. Use get_journal_entry to verify the record first.

list_customer_payments

List NetSuite customer payments with pagination. Use offset/limit for next page. Use q to search. Returns items array and page_info with has_next_page and offset for the next request.

get_customer_payment

Get a NetSuite customer payment by internal ID. Use list_customer_payments to find valid IDs. Use expandSubResources to see applied invoices. Optionally specify fields to return only specific properties.

create_customer_payment

Create a new NetSuite customer payment. Requires customer reference. Use list_customers for valid IDs. Returns the new record ID on success.

delete_customer_payment

Delete a NetSuite customer payment by ID. This action cannot be undone. Use get_customer_payment to verify the record first.

list_purchase_orders

List NetSuite purchase orders with pagination. Use offset/limit for next page. Use q to search. Returns items array and page_info with has_next_page and offset for the next request.

get_purchase_order

Get a NetSuite purchase order by internal ID. Use list_purchase_orders to find valid IDs. Use expandSubResources to see line items. Optionally specify fields to return only specific properties.

create_purchase_order

Create a new NetSuite purchase order. Requires entity (vendor ref). Use list_vendors and list_inventory_items for valid IDs. Returns the new record ID on success.

update_purchase_order

Update an existing NetSuite purchase order. Use get_purchase_order to check current values first. Only provided fields will be updated.

delete_purchase_order

Delete a NetSuite purchase order by ID. This action cannot be undone. Use get_purchase_order to verify the record first.

run_suiteql

Execute a SuiteQL query against NetSuite. SuiteQL uses SQL-like syntax to query any record type. Example: "SELECT id, companyName FROM customer WHERE companyName LIKE '%Acme%'". Use offset/limit for pagination. Max 1000 rows per request.

list_departments

List NetSuite departments. Use department IDs when creating transactions or records. Use offset/limit for next page.

list_locations

List NetSuite locations. Use location IDs when creating transactions or records. Use offset/limit for next page.

list_classifications

List NetSuite classifications (classes). Use class IDs when creating transactions. Use offset/limit for next page.

list_currencies

List NetSuite currencies. Use currency IDs when creating multi-currency transactions. Use offset/limit for next page.

list_sales_orders

List NetSuite sales orders with pagination. Use offset/limit for next page. Use q to search. Returns items array and page_info with has_next_page and offset for the next request.

get_sales_order

Get a NetSuite sales order by internal ID. Use list_sales_orders to find valid IDs. Use expandSubResources to see line items. Optionally specify fields to return only specific properties.

create_sales_order

Create a new NetSuite sales order. Requires entity (customer ref). Use list_customers and list_inventory_items for valid IDs. Returns the new record ID on success.

update_sales_order

Update an existing NetSuite sales order. Use get_sales_order to check current values first. Only provided fields will be updated.

delete_sales_order

Delete a NetSuite sales order by ID. This action cannot be undone. Use get_sales_order to verify the record first.

list_subsidiaries

List NetSuite subsidiaries. Required for creating records in multi-subsidiary accounts. Use offset/limit for next page. Returns subsidiary names and IDs.

get_subsidiary

Get a NetSuite subsidiary by internal ID. Returns full subsidiary details. Use list_subsidiaries to find valid IDs.

validate_credential

Validate NetSuite credentials by making a test API call. Returns success status and message. Use this to verify the account ID and access token are valid.

list_vendor_bills

List NetSuite vendor bills with pagination. Use offset/limit for next page. Use q to search. Returns items array and page_info with has_next_page and offset for the next request.

get_vendor_bill

Get a NetSuite vendor bill by internal ID. Use list_vendor_bills to find valid IDs. Use expandSubResources to see line items. Optionally specify fields to return only specific properties.

create_vendor_bill

Create a new NetSuite vendor bill. Requires entity (vendor ref). Use list_vendors for valid IDs. Returns the new record ID on success.

update_vendor_bill

Update an existing NetSuite vendor bill. Use get_vendor_bill to check current values first. Only provided fields will be updated.

delete_vendor_bill

Delete a NetSuite vendor bill by ID. This action cannot be undone. Use get_vendor_bill to verify the record first.

list_vendors

List NetSuite vendors with pagination. Use offset/limit for next page. Returns items array and page_info with has_next_page and offset for the next request.

get_vendor

Get a NetSuite vendor by internal ID. Returns full record details. Use list_vendors to find valid IDs. Optionally specify fields to return only specific properties.

create_vendor

Create a new NetSuite vendor. Use list_subsidiaries for valid subsidiary IDs. Returns the new record ID on success.

update_vendor

Update an existing NetSuite vendor. Use get_vendor to check current values first. Only provided fields will be updated.

delete_vendor

Delete a NetSuite vendor by ID. This action cannot be undone. Use get_vendor to verify the record first.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's NetSuite  MCP server

FAQs on using Merge's NetSuite  MCP server

Explore other MCP servers built and managed by Merge

cloudflare
Cloudflare
coda
Coda
confluence
Confluence
contentful
Contentful
crustdata
Crustdata
databricks
Databricks
datadog
Datadog
docusign
DocuSign
doordash
DoorDash
dropbox
Dropbox
duffel
Duffel
dynamics365
Dynamics 365 Sales
exa
Exa
expensify
Expensify
factset
FactSet
figma
Figma
firehydrant
FireHydrant
firecrawl
Firecrawl
fireflies
Fireflies
foursquare
Foursquare
freshbooks
FreshBooks
freshdesk
Freshdesk
freshservice
Freshservice
front
Front

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now