NetSuite MCP server: what it does and what finance still needs
Yes, there is an official NetSuite MCP server. Oracle provides it through the NetSuite AI Connector Service. With the MCP Standard Tools SuiteApp installed, an AI client such as Claude or ChatGPT can run read-only SuiteQL queries, reports and saved searches, and create or update records, limited to the signed-in user's NetSuite role.
Part of the finance integrations guide.
| Official server | Oracle's NetSuite AI Connector Service, with tools from the MCP Standard Tools SuiteApp |
|---|---|
| Authentication | OAuth 2.0 authorization code grant, signed in as a dedicated role |
| Roles that cannot use it | Administrator, and any role with full access |
| Reads | Read-only SuiteQL, reports, saved searches, records and the File Cabinet |
| Writes | Create, update and transform records through REST Web Services, as far as the role allows. The standard tool list has no delete tool. |
| Execution log | 21 days of request data in production, 7 in sandbox |
| Not included | An approval step, a fixed run sequence, or scheduling |
Key points
- The official server is Oracle's. The NetSuite AI Connector Service implements the Model Context Protocol (MCP), and the MCP Standard Tools SuiteApp supplies the tools.
- It can write to the ledger. Record tools create, update and transform records through REST Web Services, as far as the user's role allows.
- Access is role-bound and OAuth 2.0 based. Administrator roles and full-access roles cannot use it.
- It is a connection layer, not a control layer. There is no approval step, no fixed run sequence, and the execution log keeps 21 days of request data in production.
- Third-party options exist (CData, Zapier, Composio), with very different read and write scopes.
What NetSuite MCP servers exist today?
Four options cover most NetSuite MCP searches: Oracle's own AI Connector Service, plus three third-party servers. Oracle's server is the only one that runs inside NetSuite and uses NetSuite's own MCP endpoint. The others connect from outside through NetSuite's APIs or a database driver.
| Server | Who maintains it | How it connects | Reads | Writes |
|---|---|---|---|---|
| NetSuite AI Connector Service + MCP Standard Tools SuiteApp | Oracle (official) | NetSuite MCP endpoint, OAuth 2.0 | SuiteQL (read-only), reports, saved searches, records, File Cabinet | Create, update and transform records, record actions, attach files |
| NetSuite MCP Server by CData | CData (open source, MIT) | CData JDBC Driver for NetSuite (licensed or trial) | SQL SELECT over NetSuite tables | None, read-only |
| Zapier MCP for NetSuite | Zapier (hosted) | Zapier's MCP server | Find record, find records via saved search | Create, update and upsert records |
| Composio NetSuite toolkit | Composio (hosted) | OAuth 2.0, managed auth | Records, lists, SuiteQL | Create, update, upsert and delete, including invoices and journal entries |
Oracle also publishes sample code for custom tools. The original MCP Sample Tools SuiteApp stopped accepting new installations in September 2025 and was replaced by the MCP Standard Tools SuiteApp (Oracle). Its source remains in Oracle's netsuite-suitecloud-samples repository, and NetSuite supports custom tools written as SuiteScript 2.1 scripts.
Directories list some of these too. The CData server, for example, is listed in them, and its source is on CData's GitHub. Check any community server's source before connecting it to a production account.
What can the NetSuite MCP Standard Tools do?
The MCP Standard Tools SuiteApp exposes seven groups of tools, and each tool appears only if the user's role holds its required permissions. The list below is taken from Oracle's Available Tools in the MCP Standard Tools SuiteApp page as of October 29, 2026.
| Group | Tools | What they do |
|---|---|---|
| SuiteQL | ns_runCustomSuiteQL, ns_getSuiteQLMetadata | Run custom SuiteQL (read-only queries only); read fields and joins |
| Records | ns_getRecord, ns_createRecord, ns_updateRecord, ns_transformRecord, ns_getRecordTypeMetadata, ns_getRecordTransformMetadata | Read, create, update and transform records (for example, a sales order into an invoice) |
| Record actions | ns_getRecordActionMetadata, ns_executeRecordAction | List and run the actions available on a record |
| Reports | ns_listAllReports, ns_runReport, ns_getSubsidiaries, ns_getAccountingBooks, ns_getAccountingContexts, ns_getNexusIds | Run standard and custom reports, filtered by subsidiary, book or nexus |
| Saved searches | ns_listSavedSearches, ns_runSavedSearch | List and run existing saved searches |
| File Cabinet | ns_searchFiles, ns_getFolderByPath, ns_getIdFromPath, ns_getPathFromId, ns_attachFile, ns_detachFile | Find files and attach them to records |
| Runtime | ns_getSessionInfo | Show the current account, role, features and permissions |
SuiteQL through MCP is read-only, but the record tools are not. Oracle states that users with the MCP Server Connection permission "can perform these actions on any records available through REST, if their current permissions allow it" (Oracle). Oracle's standard tool list includes no delete tool.
For a worked SuiteQL example outside MCP, see how to map NetSuite revenue recognition schedules via SuiteQL.
What can't a NetSuite MCP server do?
A NetSuite MCP server gives an AI client access to NetSuite. It does not give a finance team approvals, a fixed run sequence or a durable audit trail. These gaps apply to Oracle's server and to the third-party options above.
- No approval step on writes. A record tool creates or updates the record as soon as the AI client calls it. Oracle's own risk guidance warns that an agent "may run powerful MCP tool functions - such as making payments or granting approvals - without the user's explicit intent," and tells customers to prefer clients that ask for confirmation first (Oracle). That confirmation lives in the AI client, not in NetSuite.
- No fixed, repeatable run. Each tool is a single action. The order of calls is generated by the model at runtime, so the same request can produce a different sequence of calls on a different day.
- A thin, short-lived log. The execution log records the date and time, duration, status, user email, HTTP status code, method and URL path of each call. Production logs are kept for 21 days, sandbox logs for 7 (Oracle). The documented fields do not include the prompt, the reason for a change or an approver.
- No scheduling. MCP is request-driven. A tool runs when a person's AI client calls it, so nothing runs at 6 a.m. on the first business day unless someone builds that elsewhere.
- No segregation of duties by itself. The tools inherit the user's role. If one role can both create a vendor bill and approve it in NetSuite, the AI client can do both.
How do you set up the NetSuite MCP server?
Setup takes a NetSuite administrator about seven steps: enable features, create a dedicated role, install the SuiteApp, then connect the AI client with OAuth 2.0. Oracle's required features and permissions and connection guide are the primary references.
- Enable the features. Go to Setup > Company > Enable Features > SuiteCloud and turn on Server SuiteScript and OAuth 2.0. Turn on REST Web Services if users will read or write records through the SuiteApp.
- Create a dedicated, non-administrator role. Oracle does not allow the Administrator role, or any role with full access, to use the AI Connector Service. Give the new role MCP Server Connection and Log in using OAuth 2.0 Access Tokens (not "Log in using Access Tokens").
- Scope the role tightly. Add only the record and search permissions the use case needs. Add the REST Web Services permission only if the role should create or update records. Oracle recommends starting with read-only or low-impact tools (Oracle).
- Install the MCP Standard Tools SuiteApp from the SuiteApp Marketplace.
- Copy the server URL. For the Standard Tools it is
https://<accountid>.suitetalk.api.netsuite.com/services/mcp/v1/suiteapp/com.netsuite.mcpstandardtools. To expose every installed tool set, use.../services/mcp/v1/all. - Connect the AI client. Add the URL as a custom connector in Claude or ChatGPT and sign in with the dedicated role. NetSuite uses an integration record with the OAuth 2.0 authorization code grant (public client). Review that record's state and concurrency limit under Setup > Integration > Manage Integrations.
- Test, then watch the log. Ask the client to call
ns_getSessionInfoto confirm the role and permissions, then run one read-only query. Review the AI Connector Service (MCP) tab of the integration record's execution log, and keep your own copy if you need more than 21 days.
Where does a NetSuite MCP server leave a finance-controls gap?
MCP answers "can the model reach NetSuite?" Finance controls answer "should this change post, who approved it, and can we prove it a year from now?" The second question is the one your auditors ask.
| Control finance needs | NetSuite MCP server | What closes the gap |
|---|---|---|
| Approval before a write | Optional confirmation in the AI client | An approval gate in the workflow, recorded with the approver |
| Same steps every run | Call sequence generated at runtime | A defined, versioned workflow |
| Audit evidence | 21-day request log, no prompt or reason | Every run logged with inputs, outputs and approvals |
| Segregation of duties | Inherits one user's role | Separate preparer and approver steps |
| Scheduled and event-driven runs | Request-driven only | Triggers on a schedule or a system event |
Loopfour, the deterministic finance workflow automation platform, works as that control layer. Loopfour does not ship an MCP server. It connects to NetSuite through the SuiteTalk REST API with token-based authentication, and its workflows create and read customers, vendors, invoices, vendor bills and journal entries, and run SuiteQL.
- AI only where interpretation is needed. Reading a vendor invoice PDF or classifying a remittance is a scoped AI task. Posting the bill to NetSuite is a programmatic step that runs the same way every time.
- Approvals before anything touches the ledger. A write waits for a named approver, for example through Slack approval buttons, with preparer and approver kept separate.
- Every run leaves evidence. Each automated action is logged and versioned (governance).
- We build it, run it, maintain it. Loopfour is a managed service, so your team does not maintain the workflow when NetSuite or the process changes.
The two can sit side by side. Many teams will want analysts asking NetSuite questions through a read-only MCP role, while anything that posts to the ledger runs through an approved workflow. See all Loopfour integrations.
How does NetSuite MCP fit into a wider finance stack?
NetSuite MCP is one connection in a larger pattern: AI clients reaching systems of record through MCP, with controls added on top. The guide to financial workflow MCP and how it connects AI to finance systems of record covers hosts, clients, servers and tools, compares MCP with APIs, iPaaS and RPA, and sets out the controls finance needs. For the QuickBooks equivalent, see what the QuickBooks MCP server can and cannot do.
Next step
Map the finance workflow with the most exposure and prove the automation path.
Bring the invoice, contract, payment reconciliation, or customer finance workflow you have to defend at audit. Loopfour can map the trigger, controls, integrations, and approval loop.
Checklist
NetSuite MCP server setup checklist
- Under Setup > Company > Enable Features > SuiteCloud, turn on Server SuiteScript and OAuth 2.0. Turn on REST Web Services if users will read or write records.
- Create a dedicated, non-administrator role with MCP Server Connection and Log in using OAuth 2.0 Access Tokens.
- Give the role only the record and search permissions the use case needs. Add the REST Web Services permission only if the role should create or update records.
- Install the MCP Standard Tools SuiteApp from the SuiteApp Marketplace.
- Copy your account's server URL:
https://<accountid>.suitetalk.api.netsuite.com/services/mcp/v1/suiteapp/com.netsuite.mcpstandardtools. - Add the URL as a custom connector in Claude or ChatGPT, and sign in with the dedicated role.
- Review the integration record's state and concurrency limit under Setup > Integration > Manage Integrations.
- Call
ns_getSessionInfoto confirm the role and permissions, then run one read-only query. - Check the AI Connector Service (MCP) tab of the execution log. Keep your own copy if you need more than 21 days.
Frequently Asked Questions
Sources
- Oracle NetSuite Help Center, NetSuite AI Connector Service (opens in a new tab)
- Oracle NetSuite Help Center, MCP Standard Tools SuiteApp (opens in a new tab)
- Oracle NetSuite Help Center, Available Tools in the MCP Standard Tools SuiteApp (opens in a new tab)
- Oracle NetSuite Help Center, Required Features and Permissions (opens in a new tab)
- Oracle NetSuite Help Center, Connect to the NetSuite AI Connector Service (opens in a new tab)
- Oracle NetSuite Help Center, Associated Risks, Controls, and Mitigation Strategies (opens in a new tab)
- Oracle NetSuite Help Center, MCP Sample Tools (opens in a new tab)
- Oracle, netsuite-suitecloud-samples (GitHub) (opens in a new tab)
- CData, NetSuite MCP Server by CData (GitHub) (opens in a new tab)
- Zapier MCP, NetSuite (opens in a new tab)
- Composio, NetSuite toolkit (opens in a new tab)
Related
How-to
How do I map NetSuite revenue recognition schedules via SuiteQL?
Loopfour's NetSuite integration has no dedicated revenue-recognition action, so a workflow reads NetSuite's native Advanced Revenue Management records — Revenue Arrangements and their Revenue Elements — by querying them directly with SuiteQL over the REST API, rather than through a first-class action the way invoices or vendor bills work.
Read moreHow-to
How do I set up interactive Slack approval buttons for invoice approval?
Post the invoice as a message with an interactive button block, then respond to the click by opening a modal with the trigger_id Slack sends in the interaction payload — within three seconds, before any lookup or validation. Loopfour's Slack integration supports this through sendMessage (with blocks) and openModal, but the modal call has to happen first, not last.
Read moreHow-to
How do I maintain segregation of duties in an automated AP approval workflow?
Keep three roles distinct in the workflow itself: who can create or edit a vendor record, who can enter or submit a bill, and who can approve it for payment. Institutional guidance is explicit that authorizing a payment and the person who executes it shouldn't be the same individual — automation makes it easy to collapse these into one click, which is exactly the risk to design against.
Read moreIntegration
QuickBooks MCP server: what it does, what it can't, and how to set it up
Yes. Intuit publishes an official QuickBooks MCP server that lets Claude and other MCP clients read and write QuickBooks Online data over OAuth 2.0. It runs locally, covers 29 entity types and 11 reports, and leaves approvals, audit evidence and multi-step control to you.
Read moreIntegration
ERP MCP server: what exists and how it compares to APIs
An ERP MCP server lets an AI client such as Claude read, and if allowed write, ERP data through the Model Context Protocol. NetSuite, QuickBooks, Dynamics 365, Xero and Sage Intacct now offer one, and SAP data is reachable through AWS and Joule Studio. MCP connects a model to the ERP. Approvals and audit evidence still sit outside it.
Read moreDefinition
MCP for accounting: what accountants can do with it, and what it can't
MCP for accounting connects an AI assistant such as Claude or ChatGPT to your accounting system through a Model Context Protocol server. QuickBooks, Xero, NetSuite and Sage Intacct each have a vendor-published server. They are good at reading reports and ledgers. Writes, approvals, close sign-off and audit evidence still need controls outside the model.
Read more