cdata-netsuite-mcp-gateway
Establishes a read-only Model Context Protocol (MCP) endpoint for querying live NetSuite records. It leverages the CData JDBC Driver to abstract NetSuite data structures into a relational SQL view accessible via natural language.
Author

CDataSoftware
Quick Info
Actions
Tags
CData NetSuite MCP Server Implementation
This utility constructs a read-only Model Context Protocol (MCP) endpoint designed to facilitate dynamic data retrieval from NetSuite environments using large language models (LLMs).
:warning: Read-Only Limitation: This specific build is configured exclusively for data querying. For comprehensive transactional operations (CRUD actions and function calls), please examine the alternative CData MCP Server for NetSuite (beta release), which offers a more feature-rich experience.
Core Functionality
The primary objective of this server is to bridge LLMs (such as Claude Desktop) with active NetSuite data repositories. This connectivity is achieved by employing the robust CData JDBC Driver for NetSuite, which standardizes NetSuite's proprietary data model into an accessible relational SQL format.
The server component encapsulates this driver, exposing NetSuite data via the MCP interface. Consequently, artificial intelligence agents can interrogate the underlying business data using conversational language, eliminating the prerequisite for manual SQL construction.
Deployment Procedure
Follow these steps to compile and configure the server utility:
-
Acquire Source Code: Clone the project repository: bash git clone https://github.com/cdatasoftware/netsuite-mcp-server-by-cdata.git cd netsuite-mcp-server-by-cdata
-
Compilation: Build the executable JAR file using Maven: bash mvn clean install
The resulting artifact will be named
CDataMCP-jar-with-dependencies.jar. 3. Driver Acquisition: Secure the necessary CData JDBC Driver for NetSuite binaries: Download Link 4. License Activation: Activate the JDBC driver component: * Locate the driver installation path (e.g., Windows:C:\Program Files\CData\CData JDBC Driver for NetSuite\| Mac/Linux:/Applications/CData JDBC Driver for NetSuite/) * Execute the licensing utility: bash java -jar cdata.jdbc.netsuite.jar --license- Provide your credentials and use "TRIAL" or your official key for activation.
- Connection String Definition: Configure endpoint parameters:
-
Launch the utility to generate the connection string: bash java -jar cdata.jdbc.netsuite.jar
-
Design and validate your NetSuite connection parameters within the utility. Note that OAuth flows will require external browser authentication.
- Capture the resulting JDBC connection string.
- Configuration File Creation (
.prp): Draft a properties file (e.g.,netsuite.prp) detailing the connection metadata: - Prefix: Identifier for tool exposure.
- ServerName: Descriptive label for the service instance.
- ServerVersion: Version indicator.
- DriverPath: Absolute path to the downloaded NetSuite JDBC JAR.
- DriverClass: Fully qualified name of the driver implementation class (
cdata.jdbc.netsuite.NetSuiteDriver). - JdbcUrl: The connection string obtained in step 5.
- Tables: Specify data subsets; leave empty (
Tables=) for universal schema access. env Prefix=netsuite ServerName=CDataNetSuite_Gateway ServerVersion=1.1_Refactored DriverPath=PATH\TO\cdata.jdbc.netsuite.jar DriverClass=cdata.jdbc.netsuite.NetSuiteDriver JdbcUrl=jdbc:netsuite:InitiateOAuth=GETANDREFRESH; Tables=
Integrating with LLM Clients (e.g., Claude Desktop)
To enable client applications to recognize this new data source, update their configuration files:
-
Client Configuration: Generate or modify the client's configuration file (e.g.,
claude_desktop_config.json) to register the MCP server entry.Platform-Specific Command Structure:
{ "mcpServers": { "{prefix_from_prp_dash}": { "command": "[Executable Path to java]", "args": [ "-jar", "[Absolute Path]/CDataMCP-jar-with-dependencies.jar", "[Absolute Path]/netsuite.prp" ] }, ... } }
For Windows users, ensure
PATH\TO\java.exeis specified. -
Configuration Deployment: Place the updated configuration file in the client's designated settings directory (e.g., for Claude Desktop):
Windows Deployment: bash cp C:\PATH\TO\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json
Linux/Mac Deployment: bash cp /PATH/TO/claude_desktop_config.json /Users/{user}/Library/Application\ Support/Claude/claude_desktop_config.json
-
Client Refresh: Restart the consuming client application completely. A simple refresh may not suffice to load the new server definition.
Standalone Execution
For testing the gateway outside of an integrated client, execute directly from the command line: bash java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/netsuite.prp
Constraint: The server communicates via standard input/output (
stdio) and requires the client to operate on the same host machine.
Operational Guidance
Once configured, the LLM interface gains access to underlying data manipulation functions. Users should interact by posing direct queries against the data context, rather than explicitly invoking tool methods.
- Example Query 1: "Determine the relationship between finalized sales orders and the associated customer demographic segments."
- Example Query 2: "Count all pending requisitions within the procurement module."
- Example Query 3: "Summarize scheduled appointments for the current fiscal period."
Available Interface Functions
Tool identifiers use the Prefix defined in the .prp file (e.g., netsuite_...).
* {prefix}_get_tables: Fetches a comprehensive inventory of accessible NetSuite data entities. Follow this with {prefix}_get_columns to inspect schema details. Output is CSV, starting with column headers.
* {prefix}_get_columns: Details the attributes belonging to a specified table. Reference {prefix}_get_tables beforehand to map entity names.
* {prefix}_run_query: Executes arbitrary SQL SELECT statements against the exposed data layer.
JSON-RPC Interface Specification
For programmatic invocation bypassing the AI interface, the server adheres to JSON-RPC 2.0 standards. Below are payload examples for each method:
Retrieving Entities (netsuite_get_tables)
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "netsuite_get_tables", "arguments": {} } }
Inspecting Schema (netsuite_get_columns)
{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "netsuite_get_columns", "arguments": { "table": "CustomerRecord" } } }
Executing Custom SQL (netsuite_run_query)
{ "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "netsuite_run_query", "arguments": { "sql": "SELECT SUM([TotalAmount]) FROM [SalesOrder] WHERE [Status] = 'Pending Fulfillment'" } } }
Diagnostics and Support
- Tool Unavailability: If the server does not appear in the client interface, ensure the client application process has been fully terminated (check Task Manager/Activity Monitor) and restarted.
- Data Retrieval Failure: Verify the connection string configuration within the
.prpfile precisely matches the string validated by the Connection String utility. - Connectivity Issues: For problems directly related to accessing NetSuite, engage the CData Technical Assistance Group.
- MCP Server Feedback: For suggestions or issues regarding the gateway service itself, participate in the CData User Forum.
Licensing Information
This software package is distributed under the permissive MIT License. Users retain the right to utilize, adapt, and redistribute the code, contingent upon adherence to the stipulations detailed in the accompanying LICENSE file.
Comprehensive Data Source Interoperability
This CData technology supports a vast array of data repositories, including but not limited to:
| Category | Examples |
|---|---|
| Enterprise Systems | SAP, Oracle, Microsoft Dynamics, Workday |
| Cloud Databases | Snowflake, BigQuery, Redshift, Azure Synapse |
| CRM/ERP | Salesforce, HubSpot, NetSuite, Pipedrive |
| File/Object Storage | S3, Google Drive, SharePoint, CSV, Parquet |
| APIs & Web Services | REST, OData, GraphQL, JSON |
| And many more... | (See full table below) |
... (Abbreviated list for brevity; consult the original documentation for the full scope of over 200+ connectors, including all listed sources like Zendesk, Jira, MySQL, PostgreSQL, etc.) ...
Contextual Relevance: Business Management Tools
As defined by industry analysis (WIKIPEDIA), business management instruments encompass all systemic approaches—software, process models, and control mechanisms—deployed by organizations to maintain market relevance, enhance operational efficiency, and adapt to evolving commercial landscapes. These tools are broadly categorized by function:
- Data acquisition and integrity checks.
- Optimization and governance of operational workflows.
- Data synthesis for strategic decision-making.
The rapid advancement in technology necessitates a strategic, rather than trend-following, approach to tool selection. Optimal business performance hinges on meticulous selection and subsequent customization of the chosen toolkit to match organizational imperatives.
