Inistate MCP Server
OfficialInistate MCP Server
MCP server for the Inistate platform — module discovery, entry management, and activity submission.
Setup
Environment Variables
Variable | Required | Default | Description |
| Yes | — | Bearer token for Inistate API authentication |
| No |
| API base URL |
| No |
| Initial mode: |
| No | — | Set to |
| No | — | Set to |
Install from npm (recommended)
No clone or build needed — npx will fetch and run the published package on demand:
npx -y inistate-mcpOr install globally:
npm install -g inistate-mcp
inistate-mcpInteractive setup (recommended)
Run the binary in a terminal with no MCP client attached and it walks you through entering your API token and picks the right config file for your client:
npx -y inistate-mcp
# or, explicitly:
npx -y inistate-mcp setupSupported clients: Claude Desktop, Claude Code (global or project-local .mcp.json), Cursor, Windsurf, Codex CLI, VS Code (user profile or workspace .vscode/mcp.json), Cline, Gemini CLI (global or workspace). Pick "Print config only" to get a JSON block to paste anywhere else.
The wizard only runs when stdin is a TTY (i.e., you launched it yourself). When an MCP client spawns the binary via piped stdio, it skips the wizard and runs as a normal MCP server — set INISTATE_MCP_NO_SETUP=1 if you need to force server mode from a terminal.
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"inistate": {
"command": "npx",
"args": ["-y", "inistate-mcp"],
"env": {
"INISTATE_API_TOKEN": "your-token-here"
}
}
}
}Claude Code Configuration
claude mcp add inistate -e INISTATE_API_TOKEN=your-token-here -- npx -y inistate-mcpInstall from source
git clone https://github.com/Inistate/inistate-mcp.git
cd inistate-mcp
npm install
npm run buildThen point your MCP client at node /absolute/path/to/inistate-mcp/build/index.js.
Tools
Tools marked (configure) are only exposed in configure mode — see Modes. Tools the active backend cannot serve (e.g. scaffold_module on the hosted Platform) stay registered but return a structured capability message instead of failing silently.
Tool | Description |
| List workspaces the user has access to |
| Set the active workspace |
| List all discoverable modules in the workspace |
| Get the canvas schema (basic or extended tier) — available in every mode |
| Get full module definition with stable IDs (round-trippable) (configure) |
| Query entries with filters, sorting, and pagination |
| Read a single entry by ID |
| Get form fields and defaults for an activity |
| Create, edit, delete, or run custom activities |
| Bulk variant — same activity applied to up to 100 entries in one call |
| Get entry audit trail and comments |
| Default upload path — get a presigned S3 URL to PUT file bytes to |
| Confirm a presigned upload completed; returns the File/Image field path |
| Fallback upload via base64/multipart (use only if the presigned flow fails) |
| Download a file (returns pre-signed URL) |
| Generate a scaffolded module template from a description (configure) |
| Validate a module schema before creating or updating (configure) |
| Create a new module with schema (configure) |
| Update an existing module's schema (configure) |
| Draft a module schema from existing data (SQLite, Notion, or Airtable table) (configure) — served by the local runtime (inistate-core); on the hosted Platform backend it returns a capability message pointing to |
| Switch the active mode (runtime / configure / frontend) |
Resources
URI | Description |
| List all modules |
| Basic module schema (fields + states) |
| Extended schema with activities and flows |
| Server-enforced |
| Runtime schema — entry/activity/file types and filter operators (default) |
| Module-design schema — write format, field types, colors (configure) |
| FACTS Module Design Guide (configure) |
| REST API reference for hand-written UIs (frontend) |
Prompts
Prompt | Description |
| Guide an agent through designing a complete workflow module (configure) |
| Guide an agent through executing a specific activity |
| Guide an agent through investigating an entry's state and history |
| Guide an agent through modifying an existing module's schema (configure) |
Modes
The server exposes a focused tool/resource surface depending on the active mode, keeping agent context lean. Use switch_mode to change it, or set the initial mode via the INISTATE_MCP_MODE env var (default: configure).
Mode | Surface |
| Entry and activity operations only — querying, reading, submitting, files, history. The leanest surface for using existing modules. |
| Everything in |
| Everything in |
Tools and resources marked (configure) / (frontend) are absent from the tool list in narrower modes — switch modes to reveal them.
Typical Workflow
list_workspaces→set_workspace— select a workspace (auto-selected when exactly one matches; both return the workspace's module list, solist_modulesis only needed to refresh)get_module_schema— understand a module's fields, states, and activitiesget_form— discover required fields before the first submission per (module, activity); reuse its schema for further entriessubmit_activity— create or update entries (submit_activitiesfor bulk)list_entries— query and browse data (use thefieldsparameter to keep payloads small)get_entry_history— review entry history
Development
npm run watch # Watch mode for TypeScript compilation
npm run inspector # Test with MCP InspectorMCP Setup
Setup
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher && sudo mv mcp-publisher /usr/local/bin/or
$arch = if ([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture -eq "Arm64") { "arm64" } else { "amd64" }; Invoke-WebRequest -Uri "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_windows_$arch.tar.gz" -OutFile "mcp-publisher.tar.gz"; tar xf mcp-publisher.tar.gz mcp-publisher.exe; rm mcp-publisher.tar.gz
Verify
mcp-publisher --helpAuthenticate
mcp-publisher login githubPublish: see below
Packaging & Versioning
# Example adding new feature
git checkout -b feat/add-user-tool
# After coding
npx changeset
# Choose:
#
# minor
# Added new user search tool
# Release
npm run release
# This does:
# install dependencies
# test
# bump version + update changelog + sync server.json
# validate MCP server config
# build (via npm prepare hook)
# publish to npm
# publish to MCP registryPM2 (Ubuntu/AWS)
Run the HTTP transport in production using PM2:
npm install
npm run build
npm run pm2:start
npx pm2 saveEnable startup on reboot:
sudo npx pm2 startup systemd -u ubuntu --hp /home/ubuntu
npx pm2 saveCommon operations:
npm run pm2:restart
npm run pm2:logs
npm run pm2:stopSet required environment variables (INISTATE_API_TOKEN, and optionally INISTATE_API_BASE, INISTATE_WORKSPACE_ID, OAUTH_ISSUER_URL, INISTATE_APP_URL) in your shell, PM2 ecosystem env, or deployment secret manager before starting.
Testing
Run all tests
npm testWatch mode (re-runs on file changes)
npm run test:watchTest structure
Tests are in src/ alongside the source files and use Vitest:
File | Type | What it covers |
| Unit tests (76) |
|
| Unit tests (42) |
|
| Unit tests (19) | Tool input-schema shapes and validation |
| Unit tests (9) | Capability gating — tools the active backend cannot serve return a capability message |
| Integration tests (5) | Flagged-response annotation — suppressed transitions are explained ( |
| Integration tests (17) | Spins up the MCP server as a child process and exercises it through the official MCP SDK client — mode-gated tool/resource/prompt discovery, |
Unit tests cover:
Field type and color validation against the schema
State color suggestion logic
Design validation: duplicate names, invalid types/colors/actors, initial state rules, flow integrity, unreachable states, unused activities, AI confidence warnings
Input normalization: field-type, state-color, and industry aliases; parsing states from a description
Workflow design: pattern detection (approval, ticket, pipeline, record list), industry defaults
Integration tests verify (no API token needed):
Mode-gated tool/resource/prompt discovery — runtime mode hides the configure surface,
switch_modereveals and collapses itdesign_workflow,validate_designwork end-to-end through the MCP protocolStatic resources (
inistate://schema/runtime,inistate://design-guide) return valid contentAll 4 prompts return correctly templated messages
Interactive testing with MCP Inspector
INISTATE_API_TOKEN=your-token npm run inspectorOpens a browser UI where you can interactively call tools, inspect schemas, and see responses.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Inistate/inistate-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server