MCP Standard Tools SuiteApp: AI Clients Can Now Query and Mutate NetSuite via Model Context Protocol
Oracle ships a SuiteApp that exposes SuiteQL, saved searches, reports, and REST-based record CRUD to any MCP-compatible AI client, governed by existing NetSuite role permissions. Admins should audit which roles carry the MCP Server Connection permission before installing.
What changed
A new SuiteApp — MCP Standard Tools — is available in the SuiteApp Marketplace. It sits on top of the NetSuite AI Connector Service and implements the Model Context Protocol (MCP), allowing any MCP-compatible AI client (Claude, Cursor, etc.) to interact with NetSuite data through natural-language prompts.
The SuiteApp exposes the following tool surface:
- SuiteQL execution — the AI client constructs and runs SuiteQL queries on the fly. Under the hood this is the same
N/query/query.runSuiteQLpath, so all existing query-level governance and permission checks apply. - Saved search access — run existing saved searches by reference.
- Report access — retrieve and interact with NetSuite reports.
- Record CRUD via REST Web Services — create and update records through the
/services/rest/record/v1/endpoints. This is the most security-sensitive surface: any record type exposed via REST is writable if the connected role permits it.
Permission model
The SuiteApp does not introduce a new permission layer. It passes the authenticated user's role straight through, so all standard record-level, field-level, and feature-level restrictions apply. The gate is a single permission: MCP Server Connection. Any role that already carries this permission can invoke every tool the SuiteApp provides, bounded only by that role's existing record and field permissions.
Oracle's guidance (and ours): before you install, audit every role that has MCP Server Connection. If a role has broad record access you did not intend to expose through an AI client, either remove the permission from that role or create a dedicated, narrowly scoped role for MCP use.
What the source does not tell you
The documentation is light on implementation specifics. Key unknowns include:
- Governance impact — It is unclear whether SuiteQL and REST calls invoked through MCP consume standard governance units or follow a separate quota. Verify in a sandbox before production use.
- SuiteApp bundle ID — The bundle ID is not listed in this page. Check the SuiteApp Marketplace listing or Customization > SuiteBundler > Search & Install Bundles after installation.
- Audit trail — The docs do not clarify how MCP-initiated record mutations appear in the system notes or audit log. Test whether they are attributed to the connected user/role or to an integration-level identity.
- Rate limiting / concurrency — No mention of throttling for MCP tool invocations.
- Release version — The source page does not specify which NetSuite release introduced this SuiteApp. Check the SuiteApp Marketplace listing for minimum-version requirements.
What to do
- Audit the MCP Server Connection permission. Navigate to Setup > Users/Roles > Manage Roles and search for every role that has this permission. Decide whether each role should be able to create/update records through an AI client.
- Create a dedicated MCP role if you want granular control. Assign only the record-type permissions you want exposed (e.g., read-only on
customer, no access tojournalentry). - Install in Sandbox first. Go to Customization > SuiteBundler > Search & Install Bundles (or the SuiteApp Marketplace) and install the MCP Standard Tools SuiteApp. Confirm governance consumption, audit-log attribution, and REST behavior before promoting to production.
- Connect your AI client. Configure the MCP server endpoint in your AI client per the NetSuite AI Connector Service setup docs. Authenticate with a user whose role matches your scoped MCP role.
- Test write operations carefully. Because the SuiteApp wires directly into REST
/services/rest/record/v1/, any record type available via REST is a mutation target. Verify that role restrictions block unintended writes (e.g.,POSTtovendororemployee).
Source: Oracle NetSuite Release Notes