Custom Tool JSON Schema
A custom tool JSON schema describes the inputs and outputs for each tool, providing the structure AI clients and NetSuite use to interact with your custom tools.
The following table describes the properties defined in the tool schema.
If you include a property that is not listed in the following table, it will be ignored.
|
Property |
Type |
Required or Optional |
Description |
|---|---|---|---|
|
|
string |
Required |
Method name as written in the script file. |
|
|
string |
Required |
Explains the tool's purpose. The AI client uses this information to decide when to use the tool. |
|
|
object |
Required |
Defines the input parameters. |
|
|
string |
Required |
The type of the input parameter. Only accepts |
|
|
object |
Required |
Key-value pairs for parameter names and their properties. Each parameter has a type and description. Supported types are For example:
|
|
|
array<string> |
Required |
Array of required parameters, as defined in |
|
|
array<string> |
Required for ChatGPT |
Array of nullable parameters, as defined in This parameter is ChatGPT-specific. |
|
|
object |
Required for ChatGPT, optional for other AI clients |
Defines the expected output structure. If specified, the tool returns a structured output. |
|
|
string |
Required for ChatGPT, optional for other AI clients |
The type of the output parameter. Only accepts |
|
|
object |
Required |
Key-value pairs for parameter names and their properties. Each parameter has a type and description. Supported types are If you use an
|
|
|
array<string> |
Required |
Array of required parameters, as defined in |
|
|
array<string> |
Required for ChatGPT |
Array of nullable parameters, as defined in This parameter is ChatGPT-specific. |
|
|
object |
Optional |
Additional metadata for the tool. |
|
|
string |
Optional |
Tool title. If not specified, the tool name will be used. |
|
|
boolean |
Optional |
Default value is false. If not specified, the default value will be used. If true, the tool doesn't change its environment. |
|
|
boolean |
Optional |
Default value is false. If not specified, the default value will be used. If true, calling the tool repeatedly with the same arguments have no further effect on its environment. This property applies only when |
|
|
boolean |
Optional |
Default value is false. If not specified, the default value will be used. If true, the tool can interact with external entities beyond its predefined domain. If false, the tool's interactions are limited to its defined scope. |
|
|
boolean |
Optional |
Default value is true. If not specified, the default value will be used. If true, the tool can remove or overwrite existing information in its environment. If false, the tool only adds new information and doesn't remove or change existing data. This property applies only when |
|
|
string |
Optional |
Specifies the path of the bundled, self-contained HTML file that provides the interactive UI for the tool. This property is used only if the custom tool is implemented as an MCP App. The value must match the file path included in your SuiteCloud project (for example, When defined, the AI client can load and display this UI in the chat experience for the tool. For information about MCP Apps, see Building MCP Apps (Interactive UI) with Custom Tools. |
Related Topics
- SuiteScript 2.1 Custom Tool Script Type Reference
- Custom Tool Script Requirements
- Building MCP Apps (Interactive UI) with Custom Tools
- Custom Tool Script Best Practices
- Custom Tool Script Impact on Other Customizations
- Custom Tool Script Error Messages
- SuiteScript 2.1 Custom Tool Script Type Code Samples