CaseMgr
Shared workspace your AI agents write to.
What it can do
- Agents Deregister: Marks an agent session offline. The vertex is preserved so the next register call can refresh it; the live presence record is removed.
- Agents Get: Fetches a single agent session by RID, with `live_present` indicating live MCP connection state.
- Agents Heartbeat: Refreshes an agent session's heartbeat. Bumps last_heartbeat_at to keep the agent marked online. Call periodically (~30s) to avoid being swept offline.
What data it sees
Do you need an account
No: the server works without sign-in
Shared workspace your AI agents write to. CMMN case management with 184 MCP tools: create cases, drive event-driven workflows with sentries, persistent memory with semantic search, billing and invoicing. Connect via OAuth (no token needed) or API token.
How to connect
How to connect CaseMgr to Claude
The server address to paste into Claude settings:
https://casemgr--mstang.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect CaseMgr to ChatGPT
The server address to paste into ChatGPT settings:
https://casemgr--mstang.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect CaseMgr to Cursor
The server address to paste into Cursor settings:
https://casemgr--mstang.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (60)
Raw names from tools/list. Only developers need these.
| agents-deregister | Marks an agent session offline. The vertex is preserved so the next register call can refresh it; the live presence record is removed. |
| agents-get | Fetches a single agent session by RID, with `live_present` indicating live MCP connection state. |
| agents-heartbeat | Refreshes an agent session's heartbeat. Bumps last_heartbeat_at to keep the agent marked online. Call periodically (~30s) to avoid being swept offline. |
| agents-list | Lists agent sessions owned by the current user. Each entry includes a `live_present` flag indicating whether the agent has a live ETS frame (i.e., currently connected via MCP). |
| agents-register | Registers an MCP agent session. Upserts on (user_id, machine_id, alias) — reconnects update the existing row. Returns the agent_session_id used by other tools. |
| ai-cancel_work_item | Cancels a pending work item (pending → cancelled). Cannot cancel items that are already processing. |
| ai-claim_and_complete_work_item | Atomically claims a pending work item and completes it. Use this when the agent already knows the result and doesn't need a separate processing step — collapses the (claim → complete) two-call sequence into one. Idempotent: if the item is already in 'processing', skips the claim and just completes. Items in terminal states (completed/failed/cancelled) return an error. |
| ai-claim_work_item | Claims a pending work item for processing (pending → processing). Call this before starting to process a work item. |
| ai-complete_work_item | Marks a work item as completed with optional result and output. If output_item_type was configured, creates the output item. Triggers connected sentry if configured. Item must be in 'processing' status — call ai-claim_work_item first, or use ai-claim_and_complete_work_item to do both atomically. |
| ai-count_pending | Gets the count of pending AI work items. Useful for checking if there's work available. |
| ai-fail_work_item | Marks a work item as failed with an error message. |
| ai-get_work_item | Gets a specific AI work item with full details including prompt, input_items, and configuration. |
| ai-list_work_items | Lists AI work items. By default returns pending items sorted by priority. Use this to find work for AI agents to process. |
| billing-generate_invoice_pdf | Generates a PDF invoice and stores it as a file item in the specified case. |
| billing-generate_invoice_tex | Generates a LaTeX invoice document and stores it as a file item in the specified case. |
| calendar-get_or_create | Gets or creates the main calendar |
| calendar-get_or_create_day | Gets or creates a calendar day (also creates month if needed) |
| cases-add_documentation | Adds a documentation entry to a case following the CMMN tCmmnElement pattern. Returns the updated case with all documentation entries. |
| cases-add_tag | Adds a tag to a case for categorization |
| cases-create | Creates a new CMMN case |
| cases-delete | Deletes a case |
| cases-get | Gets a specific case by ID |
| cases-get_parent | Gets the parent case of a sub-case (if any) |
| cases-list | Lists all cases |
| cases-list_documentation | Lists all documentation entries for a case. Returns array of {id, text, textFormat, created_at, created_by}. |
| cases-list_in_workspace | Lists all cases in a workspace |
| cases-list_subcases | Lists all sub-cases of a parent case (CaseTask pattern) |
| cases-load_context | Loads a case's full context in ONE call: case metadata, all items with content, and sub-cases recursively. Use this instead of multiple cases-get + items-list + items-get calls when the user says 'load this case into context' or similar. |
| cases-remove_documentation | Removes a documentation entry from a case by its ID. |
| cases-remove_tag | Removes a tag from a case |
| cases-update | Updates a case name, description, and/or parent case |
| cases-update_status | Updates a case's lifecycle status with CMMN transition validation. Automatically sets timestamps. Valid transitions: active → completed|terminated|suspended|failed, suspended → active|terminated, completed → active|closed, terminated → closed, failed → closed, closed → active. |
| clients-create | Creates a new client (billing entity) |
| clients-delete | Deletes a client |
| clients-get | Gets a client by ID |
| clients-get_by_name | Gets a client by name |
| clients-list | Lists all clients |
| clients-update | Updates a client |
| cmmn-achieve_milestone | Achieves a milestone (transitions from available to completed). Sets achieved_at timestamp. |
| cmmn-activate_event_listener | Activates an event listener (available -> active). For timers, calculates and schedules the next trigger time. |
| cmmn-add_discretionary_item | Adds a discretionary item to a running case by instantiating from a PlanItemDefinition. The definition must be marked as discretionary. |
| cmmn-add_model_to_case | Adds items from a Case Plan Model to an existing case. Creates a 'model' container item that holds all model items as children, allowing the entire workflow to be managed as a unit. Returns model_item_id for the container. |
| cmmn-check_sentry_condition | Checks if a single condition is satisfied without updating any sentry. Useful for AI to preview conditions. |
| cmmn-claim_complete_with_evidence | Judge-layer task completion (case #1:4264 phase 3). Evaluates the task's acceptance_criteria against the supplied evidence. On satisfied: completes the task. On not_satisfied: returns a judge_rejected halt with per-criterion verdicts. On uncertain (manual criteria present): returns user_review_required (phase 4 will introduce LLM judging). Tasks with no acceptance_criteria fall through to cmmn-complete_task semantics. |
| cmmn-claim_stage_complete_with_evidence | Phase 7 — stage analogue of cmmn-claim_complete_with_evidence. Evaluates the stage's acceptance_criteria against evidence; on satisfied, transitions the stage to completed. Otherwise returns a judge_rejected or judge_uncertain halt. |
| cmmn-complete_task | Completes a task. Stores result in task.data.result, sets status to completed, and evaluates sentries. Pre-flight gates: human tasks require confirm_human=true; tasks in 'available' state with unsatisfied entry sentries return 'blocked_by'; tasks with acceptance_criteria require the judge-layer evidence path — call cmmn-claim_complete_with_evidence instead, OR use force=true here to bypass. Use force=true to bypass any gate when the user has explicitly confirmed. |
| cmmn-create_event_listener | Creates a CMMN Event Listener - timer, user, or generic event that can trigger sentries. |
| cmmn-create_milestone | Creates a CMMN Milestone - an achievable target that marks important progress (no work, just achievement). |
| cmmn-create_planning_table | Creates a Planning Table that defines which discretionary items can be added at runtime to a stage or case. |
| cmmn-create_sentry | Creates a CMMN Sentry with optional CMMN 1.1 enhancements (multiple conditions, evaluation modes). |
| cmmn-create_stage | Creates a CMMN Stage for grouping related plan items (tasks, milestones, other stages). |
| cmmn-create_task | Creates a CMMN-aligned task with lifecycle state management |
| cmmn-evaluate_sentry | Evaluates a sentry's conditions and updates its satisfied status. Returns detailed results for each condition. |
| cmmn-execute_stage | Executes a stage by traversing its task tree depth-first. Human tasks pause execution. IMPORTANT: When the result contains next_actions with action_required='llm_execute', YOU (the calling LLM) MUST process each prompt immediately. Read the 'prompt' field, execute the work it describes, then call cmmn-complete_task with the task_id and your result. Do NOT just report these back to the user — you are the executor. The stage is not complete until all llm_execute actions have been processed and their tasks completed. |
| cmmn-execute_task | Executes a single task directly. Process/decision/case tasks execute automatically. Human tasks return an error (use update_task_status instead). IMPORTANT: When the result contains action_required='llm_execute' or a 'prompt' field, YOU (the calling LLM) MUST execute the prompt immediately, then call cmmn-complete_task with the task_id and your result. You are the executor — do the work, don't just report it. |
| cmmn-get_acceptance_criteria | Returns the judge-layer acceptance criteria + required_evidence for a task. Each criterion has id, text, verifier. verifier is a registered automated check name (e.g. schema_check, file_exists) or 'manual' (deferred to LLM judge). Backwards-compatible: if only legacy data.exit_criteria strings exist, they're normalized to manual criteria with auto-generated ids. Phase 1 of case #1:4264. |
| cmmn-get_execution_flow | Gets the execution flow for a case by traversing OnPart and Guards edges. Returns workflow connections showing which items trigger sentries (OnPart) and which items are guarded by sentries (Guards). Useful for visualizing CMMN workflow dependencies. |
| cmmn-get_execution_plan | Preview execution order for a stage without executing. Shows which items are blocked by sentries and execution dependencies. |
| cmmn-get_next | Gets the next task to execute in a case workflow. Returns the task with gathered context (from context_sources), prompt, and result_schema. For human tasks, this is what to present to the user. For process tasks, includes execution instructions. |
| cmmn-get_resume_context | Gets context for AI to resume work on a case. Returns active/suspended/enabled tasks, recent completions, and summary. |