← Project Archive

Agent systems · 2025–Present

NetSuite MCP Runtime

A stable, extensible runtime that gives AI agents governed access to NetSuite tools without coupling every business capability to NetSuite’s changing CustomTool schema.

Read the design writeup: selective disclosure ↗

Why it mattered

NetSuite’s AI Connector imposed a constrained CustomTool schema that changed across releases. Instead of exposing every business operation directly through that surface, I designed a small, durable adapter layer for discovery and execution. The runtime could evolve independently while absorbing NetSuite-specific schema and compatibility changes in one place.

Selective disclosure

  • Agents first list the tools or categories available to the current user.
  • Detailed parameter schemas are retrieved only for the operations needed.
  • A single dispatcher executes the chosen operation with structured parameters.
  • The smaller surface reduces context noise and isolates callers from schema churn.

Plugin architecture

  • Core owns discovery, schema shaping, permissions, and execution dispatch.
  • Separate plugin-pack SuiteApps contribute product and client-specific tools.
  • Developers register a namespaced operation, description, parameters, and handler.
  • New workflows ship as plugins without modifying the shared runtime.

From consulting to product

The runtime became the flagship foundation for our AI consulting work and now runs in production client accounts, with three plugin-pack SuiteApps contributing domain toolsets. A typical paid engagement starts by installing the core and delivering a small set of high-value business tools, giving the client immediate use cases while leaving behind a governed platform that grows with additional plugins.

Technical range

TypeScript, Model Context Protocol, NetSuite SuiteScript 2.1, SDF, SuiteQL, runtime and plugin architecture, role-aware discovery, schema normalization, and tool execution.

This is an internal product, so its source and operational documentation are private. I wrote about the core design pattern, selective disclosure, on my TIL blog, and I am happy to discuss the architecture in more detail.

Read the selective disclosure writeup →