Inistate MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INISTATE_API_BASE | No | API base URL | https://api.inistate.com |
| INISTATE_MCP_MODE | No | Initial mode: runtime, configure, or frontend | configure |
| INISTATE_API_TOKEN | Yes | Bearer token for Inistate API authentication | |
| INISTATE_DEBUG_FILE | No | Set to 1 to log write-path tool calls to ./debug.log, or to a path to log there. Off by default; logs identifiers only, never field values | |
| INISTATE_MCP_NO_SETUP | No | Set to 1 to force server mode from a terminal (skip the interactive wizard) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_workspacesA | List workspaces the current user has access to. Typically the first call of a session. If exactly one workspace matches, it is selected automatically and its module list is returned — no set_workspace or list_modules needed; otherwise call set_workspace next. |
| set_workspaceA | Set the active workspace for the current session. The response includes the workspace's module list — go straight to list_entries / get_form / get_module_schema with those names; list_modules is only needed to refresh. In stateless/remote mode, prefer passing workspaceId directly to each tool instead. Workflow sequences after workspace is set:
|
| list_modulesA | List all discoverable modules in the current workspace. set_workspace already returns this list — call this only to refresh it or when operating stateless without set_workspace. |
| get_module_schemaA | Get the canvas schema for a module. Use tier=basic (default) for fields and states only. Use tier=extended to also include activities and flows. Use basic for query operations. Use extended when you need to understand available activities and state transitions. |
| get_module_canvasA | Get the full module definition with stable IDs. The output is round-trippable — modify and send back via update_module. Use this when modifying a module to preserve IDs for renaming. Modify workflow: list_modules → get_module_canvas → (apply changes) → validate_design → update_module. Load resource inistate://schema before modifying to know valid field types, colors, and actors. |
| list_entriesA | Query entries with filters, sorting, pagination. Filter keys are field display names; values are equality (simple) or operator objects (contains/startsWith/endsWith/min/max/above/below/between/after/before/empty/exists/yes/no/is/not/excludes). Use {or:[…]} for OR; multiple keys are AND-ed. Use 'me' for User-field self-match. See FilterOperators in inistate://schema/runtime for the full set. Token control: use |
| get_entryA | Read a single entry by its ID. Returns current field values, state, audit metadata, and available activities. |
| get_formA | Get the form fields, current values, and options for a module activity. Call this before the FIRST submit_activity on each (module, activity) pair — the form schema is stable within a session, so reuse it for subsequent entries (per-entry current values come from get_entry/list_entries). User values with no matching field: omit them and note the omission. Never fabricate form data — when a value is uncertain, submit with a lower ai.confidence and state the assumption instead of blocking to ask. |
| submit_activityA | Perform an activity on a module entry: standard (create [no entryId], edit, delete, changeStatus, comment, duplicate, manage) or any custom activity from get_module_schema. Call get_form before the first submission per (module, activity); reuse its schema for further entries. The |
| submit_activitiesA | Bulk variant of submit_activity: one module + one activity applied to many entries, each item with its own input. Use instead of N sequential submit_activity calls when creating/editing many rows — one tool turn instead of N. A per-item |
| get_entry_historyA | Get the audit trail and comments for an entry. Returns chronological list of actions (create, edit, state changes, comments) with field-level change details and AI traceability context. |
| upload_fileA | FALLBACK ONLY — use request_upload_url + confirm_upload first; call this only after that presigned flow has actually failed. Uploads via base64. Returns { path, filename, mimeType, size } — use path as the File/Image field value in submit_activity. Max 50MB. Blocked: .exe, .bat, .cmd, .dll, .msi. |
| download_fileA | Download a file by module name. Construct the URL from a File/Image field value: field.path = '/s/{guid}/{fileName}'. Returns a pre-signed S3 URL (1hr TTL). |
| request_upload_urlA | DEFAULT upload path for every file (up to 500MB); upload_file is only the fallback if this flow fails. Flow: 1) call this tool, 2) PUT the raw bytes to uploadUrl with Content-Type exactly matching contentType (S3 rejects mismatches with 403), 3) call confirm_upload({ s3Key }) — its returned path is the File/Image field value for submit_activity. uploadUrl expires in ~1 hour; call again on expiry. |
| confirm_uploadA | Confirm a presigned upload after the PUT to uploadUrl succeeded. The server verifies the object in S3 and returns { url, filename, mimeType, size } — url is the /s/ path usable as a File/Image field value. Returns 400 if the file is not in S3 (ensure the PUT completed first). |
| design_workflowA | Generate a scaffolded ModuleSchema template from a natural language description. Use when the user wants to create a new module or workflow. Design workflow: design_workflow → (complete template) → validate_design → create_module → get_module_schema(tier=extended). Load resources inistate://schema and inistate://design-guide before designing for valid field types, colors, and design rules. |
| validate_designA | Validate a module schema without submitting anything. create_module (and update_module on full-canvas payloads) runs these same checks internally, so this tool is optional there — use it to iterate on a draft, or before a partial update_module where the merged canvas cannot be checked client-side. |
| create_moduleA | Create a new module. Supports workflow modules (states, activities, flows) and record list modules (fields only). Requires Administrator, Consultant, or Workspace Admin role. Validates internally with the same rules as validate_design and returns structured errors without creating anything — a separate validate_design call beforehand is optional. See inistate://schema/configure for field types, color palette, and design rules. |
| update_moduleA | Update an existing module. A section you pass (information/states/activities/flows) replaces that section's entire list — include every existing item you want to keep (matched by id, which enables renaming; omit id to add new items). Omitted sections are left unchanged. Always call get_module_canvas first to obtain the stable module id and item ids. Full-canvas payloads (information included) are validated internally like create_module; for partial payloads, validate the merged canvas with validate_design first. |
| scaffold_moduleA | Not available on this backend — calls return a structured capability_unavailable message. Local-runtime only; use design_workflow to draft a module here. |
| switch_modeA | Switch tool surface. 'configure' (default) = entry CRUD + module design tools and design resources. 'runtime' = entry CRUD plus get_module_schema (available in every mode). 'frontend' = configure + the inistate://frontend-guide resource (REST reference for building Vue/React UIs that call the Inistate API directly) — use it when the user wants a custom UI. The tool/resource list refreshes via list_changed after this call. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| design_factsops_workflow | Guide an AI agent through designing a complete FACTSOps workflow module from scratch. |
| execute_activity | Guide an AI agent through executing a specific activity on an entry. |
| diagnose_entry | Guide an AI agent through investigating the current state and history of an entry. |
| modify_module | Guide an AI agent through modifying an existing module's schema — adding fields, states, activities, or flows. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| modules | List of all FACTSOps modules in the workspace — quick capability indexing |
| guardrails | Server-enforced rules for submit_activity. Read once per session — they apply silently and only surface as structured errors when triggered. |
| schema-runtime | DEFAULT resource — load at session start for runtime work (reading/writing entries, files, history). Reference for what tool schemas don't carry: response/type definitions (entry, form, history), field value shapes (File/Image/Module/User), filter operators, and key workflow rules. Tool inputs are documented on the tools themselves. Does NOT include module design content — for creating/updating modules load inistate://schema/configure + inistate://design-guide instead; loading both doubles context cost, pick one. |
| schema-configure | Load ONLY when the user asks to create a new module, edit a module schema, or design a workflow. Contains the ModuleSchema write format (Field/State/Activity/Flow definitions), state color palette with decision rules and keyword hints, and module_types (workflow vs record list). Pair with inistate://design-guide for a complete design context. Do NOT load for runtime data operations — use inistate://schema/runtime instead. |
| design-guide | FACTS Module Design Guide — requirements gathering questions, state color system, SVG workflow diagram specification, and module design rules. Load this in design mode alongside inistate://schema/configure to generate workflow diagrams and ask structured requirements questions. Do NOT load for runtime operations. |
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