Inistate MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Inistate MCP Serverlist entries in the Tasks module"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Inistate 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.
Related MCP server: moodle-mcp
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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