Skip to content

Latest commit

 

History

54 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenSuiteMCP Icon OpenSuiteMCP

GitHub stars Release License

Source-available NetSuite MCP client — chat UI for NetSuite’s AI Connector Service, MCP Standard Tools, Companion prompt library, and SuiteCloud Agent Skills.

Bring your own LLM keys (Google Gemini, Anthropic Claude, or OpenAI GPT). Self-host for internal use. Commercial rights reserved by Unstacked Apps, LLC.

Star this repo if it helps your NetSuite team — it makes the project discoverable.

Current release: v4.1.0 · Changelog

OpenSuiteMCP chat UI

Main chat UI.

What’s in 4.1

  • Personas — Six built-in NetSuite specialists (admin, SuiteQL analyst, controller, SuiteScript dev, auditor, inventory analyst) plus custom personas via the interview builder
  • SuiteCloud Agent Skills — Oracle + Community packs, custom SKILL.md, and Connected GitHub packs (slash-invoked with inline badges)
  • App Portal — Chats, Personas, Skills, Prompts, AI Provider, NetSuite, Web Search, Timezone, and Account in one panel
  • Multiple AI providers — named Google / Anthropic / OpenAI (or a custom OpenAI-compatible endpoint) keys; Speed / Reasoning per chat
  • Companion Prompt Library — Browse, fill placeholders, send into chat
  • NetSuite MCP — Multiple connected accounts, per-account tools, encrypted OAuth tokens
  • BYOLLM — Your API keys; no shared multi-tenant model account in this app

Personas

Open Personas from the App Portal or the header badge on a new chat. Pick a built-in specialist or Create my own… to run the interview builder (guided chat that drafts a custom persona playbook).

Built-in personas ship in .personas/*.md in this repo. Custom personas are stored per user in Postgres.

Skills

Open Skills from the App Portal (or the sidebar). Four sources:

Source How it works
Oracle Shared pack; opt-in toggles; injected when enabled
Community Shared pack from opensuitemcp-community-skills; opt-in toggles
Connected Paste a public GitHub repo/folder URL; invoke with /skill-name in chat (one skill, this turn only)
Custom Paste/import custom SKILL.md; per-skill enable

Enabled Oracle/Community/custom skills are injected into the system prompt for new messages. Connected skills are not toggled on — type / in the composer to pick one for that message.

Shared packs are not vendored in git. Sync them with:

pnpm skills:sync

That downloads Oracle’s agent-skills into .data/oracle-skills (or ORACLE_SKILLS_DIR) and Community skills into .data/community-skills (or COMMUNITY_SKILLS_DIR). Run after setup, on deploy (production entrypoint), and on a weekly cron. New upstream skills appear as new toggles (off by default); removed upstream skills are pruned. Optional: GITHUB_TOKEN for higher GitHub API limits.

Connected examples:

  • https://github.com/mattpocock/skills/tree/main/skills/productivity
  • owner/repo shorthand

Public repos only in v1. Synced files live under .data/connected-skills/<userId>/….

OpenSuiteMCP Skills panel

Skills panel — Oracle, Community, Connected, and Custom.

Prompts

Open Prompts for the Companion SuiteApp library (requires NetSuite connected with Companion available). Filter by category, industry, or role; open a template; fill required placeholders; then use it in chat.

OpenSuiteMCP Prompts library

Companion prompt library — browse and fill-in.

Docs: Companion SuiteApp

NetSuite MCP tools

With AI Connector + MCP Standard Tools connected, chat can run SuiteQL, records, reports, saved searches, and related MCP tools against your account.

OpenSuiteMCP NetSuite MCP tools in chat

NetSuite MCP tools in a conversation.

Prerequisites

Quick Start

  1. Install dependencies

    pnpm install
  2. Run automated setup

    pnpm setup:backend

    Generates secrets and writes:

    • .env.local — app / migrate vars (POSTGRES_URL, REDIS_URL, auth, etc.)
    • docker/.env — Compose vars (PROJECT_NAME, POSTGRES_PW, REDIS_PW); gitignored

    It can also start Docker services (PostgreSQL, Redis, SearXNG). If Docker was not running during setup, start Docker Desktop/Engine, then:

    docker compose --env-file docker/.env -f docker/docker-compose.yml -p opensuitemcp up -d

    Use your project name instead of opensuitemcp if you chose a custom name during setup.

  3. Sync Oracle + Community skills

    pnpm skills:sync
  4. Migrate the database

    pnpm db:migrate
  5. Start the dev server

    pnpm dev

    Uses webpack by default (Turbopack can fail resolving @ai-sdk/provider-utils dynamic imports). Optional: pnpm dev:turbo if you want to try Turbopack.

    App: http://localhost:3000

  6. Configure in the App Portal (sidebar icons open the same portal)

    • AI Provider — Choose Google / Anthropic / OpenAI and enter your API key (stored encrypted)
    • NetSuite — Add an account ID, complete Integration / DCR setup, connect
    • Personas — Pick a built-in specialist or create a custom persona
    • Skills — Enable Oracle, Community, and/or custom skills; connect GitHub packs for / slash skills
    • Prompts — Browse Companion templates when NetSuite + Companion are available

NetSuite setup (short)

  1. In NetSuite, ensure AI Connector and the MCP Standard Tools SuiteApp are available for your account.
  2. In OpenSuiteMCP → NetSuite, add your account ID (e.g. 1234567 or 1234567-sb1).
  3. Follow the in-app Integration instructions (admin once per account), then Connect.
  4. Confirm the header status chip shows connected before running SuiteQL / record tools.

Official references:

Usage limits (optional)

Self-host defaults are generous. Override with env vars if needed:

Variable Default (OSS) Purpose
MAX_MESSAGES_PER_DAY_REGULAR 100 Signed-in user messages / 24h
MAX_MESSAGES_PER_DAY_GUEST 20 Guest messages / 24h
CHAT_BURST_LIMIT_PER_MINUTE unset / 0 (off) Redis burst cap; fail-open if Redis is down

Contributors

Third-party libraries and templates are listed in ATTRIBUTION.md.

License & notices

Free: your organization may self-host for its own internal use. Paid: commercial delivery, paid implementation, or paid support of this product — only via Unstacked Apps (support@unstackedapps.com). Third parties may not charge to implement or commercially support this codebase.

After go-live, update via release tags — see docs/upgrades.

Hosted product (separate from this repo): opensuitemcp.com

Releases

Packages

Contributors

Languages