casemgr-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CASEMGR_URL | No | MCP endpoint URL (for self-hosted instances) | https://casemgr.systems/mcp |
| CASEMGR_API_TOKEN | Yes | API token from casemgr.systems/tokens. Required for stdio clients (Claude Desktop, Cursor). |
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 | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| agents-deregisterA | Marks an agent session offline. The vertex is preserved so the next register call can refresh it; the live presence record is removed. |
| agents-getB | Fetches a single agent session by RID, with |
| agents-heartbeatA | 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-listA | Lists agent sessions owned by the current user. Each entry includes a |
| agents-registerA | 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_itemA | Cancels a pending work item (pending → cancelled). Cannot cancel items that are already processing. |
| ai-claim_and_complete_work_itemA | 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_itemA | Claims a pending work item for processing (pending → processing). Call this before starting to process a work item. |
| ai-complete_work_itemA | 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_pendingA | Gets the count of pending AI work items. Useful for checking if there's work available. |
| ai-fail_work_itemB | Marks a work item as failed with an error message. |
| ai-get_work_itemA | Gets a specific AI work item with full details including prompt, input_items, and configuration. |
| ai-list_work_itemsA | 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_pdfA | Generates a PDF invoice and stores it as a file item in the specified case. |
| billing-generate_invoice_texB | Generates a LaTeX invoice document and stores it as a file item in the specified case. |
| calendar-get_or_createC | Gets or creates the main calendar |
| calendar-get_or_create_dayA | Gets or creates a calendar day (also creates month if needed) |
| cases-add_documentationA | Adds a documentation entry to a case following the CMMN tCmmnElement pattern. Returns the updated case with all documentation entries. |
| cases-add_tagB | Adds a tag to a case for categorization |
| cases-createC | Creates a new CMMN case |
| cases-deleteC | Deletes a case |
| cases-getB | Gets a specific case by ID |
| cases-get_parentA | Gets the parent case of a sub-case (if any) |
| cases-listC | Lists all cases |
| cases-list_documentationA | Lists all documentation entries for a case. Returns array of {id, text, textFormat, created_at, created_by}. |
| cases-list_in_workspaceB | Lists all cases in a workspace |
| cases-list_subcasesA | Lists all sub-cases of a parent case (CaseTask pattern) |
| cases-load_contextA | 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_documentationB | Removes a documentation entry from a case by its ID. |
| cases-remove_tagB | Removes a tag from a case |
| cases-updateB | Updates a case name, description, and/or parent case |
| cases-update_statusA | 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-createC | Creates a new client (billing entity) |
| clients-deleteC | Deletes a client |
| clients-getB | Gets a client by ID |
| clients-get_by_nameB | Gets a client by name |
| clients-listA | Lists all clients |
| clients-updateC | Updates a client |
| cmmn-achieve_milestoneA | Achieves a milestone (transitions from available to completed). Sets achieved_at timestamp. |
| cmmn-activate_event_listenerA | Activates an event listener (available -> active). For timers, calculates and schedules the next trigger time. |
| cmmn-add_discretionary_itemB | Adds a discretionary item to a running case by instantiating from a PlanItemDefinition. The definition must be marked as discretionary. |
| cmmn-add_model_to_caseA | 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_conditionA | Checks if a single condition is satisfied without updating any sentry. Useful for AI to preview conditions. |
| cmmn-claim_complete_with_evidenceA | 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_evidenceA | 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_taskA | 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_listenerB | Creates a CMMN Event Listener - timer, user, or generic event that can trigger sentries. |
| cmmn-create_milestoneB | Creates a CMMN Milestone - an achievable target that marks important progress (no work, just achievement). |
| cmmn-create_planning_tableB | Creates a Planning Table that defines which discretionary items can be added at runtime to a stage or case. |
| cmmn-create_sentryB | Creates a CMMN Sentry with optional CMMN 1.1 enhancements (multiple conditions, evaluation modes). |
| cmmn-create_stageC | Creates a CMMN Stage for grouping related plan items (tasks, milestones, other stages). |
| cmmn-create_taskC | Creates a CMMN-aligned task with lifecycle state management |
| cmmn-evaluate_sentryB | Evaluates a sentry's conditions and updates its satisfied status. Returns detailed results for each condition. |
| cmmn-execute_stageA | 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_taskA | 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_criteriaA | 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_flowA | 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_planA | Preview execution order for a stage without executing. Shows which items are blocked by sentries and execution dependencies. |
| cmmn-get_nextA | 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_contextA | Gets context for AI to resume work on a case. Returns active/suspended/enabled tasks, recent completions, and summary. |
| cmmn-list_added_modelsA | Lists all models that have been added to a case (via add_model_to_case or instantiate). |
| cmmn-list_discretionary_itemsB | Lists all discretionary items available for a stage or case. Returns planning tables and their available PlanItemDefinitions. |
| cmmn-list_itemsA | Lists CMMN plan items for a case. Filter by type (task/stage/milestone/event_listener/sentry) and/or status. |
| cmmn-list_sentries_for_itemB | Lists all sentries (entry and exit criteria) that guard an item. |
| cmmn-mark_sentry_part_satisfiedB | Marks a specific condition/part of a sentry as satisfied (for onPart evaluation mode). |
| cmmn-mark_sentry_satisfiedB | Marks a sentry as satisfied. Sets satisfied=true and records timestamp. |
| cmmn-reset_sentryA | Resets a sentry to unsatisfied state, clearing all satisfied_parts. Used when re-evaluation is needed. |
| cmmn-reset_stageA | Resets a completed stage to active state for re-execution. The stage executor can then re-process its child tasks. Use cascade=true to also reset all downstream items. |
| cmmn-reset_taskA | Resets a task to allow re-execution. Returns reset_items audit listing every item touched (id, name, type, from_status, to_status). With cascade=true, walks the sentry graph forward and resets all downstream items so cmmn-execute_stage will re-run them rather than skipping completed work. With dry_run=true, returns the same audit without applying. Existing result data and child items are kept. |
| cmmn-set_acceptance_criteriaA | Sets the judge-layer acceptance criteria on a task. The runtime judge (case #1:4264 phase 3) will evaluate these when the agent claims completion via cmmn-claim_complete_with_evidence. Workflow authors call this to attach verification recipes — schema_check for SQL migrations, command_runs_clean for build steps, manual for natural-language assertions. |
| cmmn-terminate_event_listenerA | Terminates an event listener (cancels any scheduled timer jobs). |
| cmmn-trigger_eventB | Manually triggers an event listener (marks as completed). Use for user events or testing. |
| cmmn-update_sentryA | Updates a sentry's fields after creation. If guards_item or source_ref change, the corresponding graph edges (Guards/OnPart) are automatically deleted and recreated. |
| cmmn-update_stage_statusA | Updates a stage's status with CMMN transition validation. Automatically sets timestamps. Valid transitions: available → enabled|disabled, enabled → active|disabled, disabled → enabled, active → completed|terminated|failed|suspended, suspended → active|terminated. Note: Stages with acceptance_criteria require cmmn-claim_stage_complete_with_evidence when transitioning to 'completed' (or pass force=true). |
| cmmn-update_task_statusA | Updates a task's status with CMMN transition validation. Automatically sets timestamps. Valid transitions: available → enabled|disabled, enabled → active|disabled, disabled → enabled, active → completed|terminated|failed|suspended, suspended → active|terminated. Tip: To complete a task from any startable state (available/enabled/active), use cmmn-complete_task instead — it auto-transitions through intermediate states. |
| cmmn-validate_timer_expressionA | Validates a timer expression without creating anything. Returns parsed details (seconds for duration, datetime for date, next_trigger for cron) or an error message. Use before creating timer event listeners to catch expression errors early. |
| cmmn-verify_sentry_edgesA | Verifies sentry JSON data matches graph edges. Returns count of matching sentries and any mismatches where source_ref or guards_item JSON fields don't match OnPart/Guards edges. Useful for data integrity checks. |
| files-find_by_nameA | Finds a file by name within a case. Returns the file item if found, null if not. |
| files-list_versionsA | Lists all versions of a file, including current version info and version history |
| files-readA | Reads file content from storage. Images (PNG, JPEG, GIF, WebP, SVG) are returned as native MCP image content blocks that LLMs can view directly. Non-image files return base64-encoded content by default, or plain text if encoding='text'. |
| graph-get_linkedA | Gets all items linked from a vertex. Optionally filter by link_type (e.g., 'context'). |
| graph-linkA | Creates a LinkedTo edge between any two vertices. Use link_type='context' to link a case as a context source. |
| graph-unlinkB | Removes a LinkedTo edge between two vertices |
| invoices-createB | Creates a standalone Invoice vertex with a BillTo edge to the specified client. |
| invoices-deleteC | Deletes an invoice |
| invoices-getB | Gets an invoice by ID |
| invoices-get_clientB | Gets the client for an invoice via BillTo edge. Returns the Client details. |
| invoices-get_durationsC | Gets all durations linked to an invoice |
| invoices-get_expensesA | Gets all expenses linked to an invoice |
| invoices-link_itemB | Links a duration or expense to an invoice |
| invoices-listA | Lists invoices, optionally filtered by client, billing period, or status |
| invoices-list_unbilled_durationsB | Lists all durations not yet linked to any invoice |
| invoices-list_unbilled_expensesA | Lists all expenses not yet linked to any invoice |
| invoices-unlink_itemB | Unlinks a duration or expense from an invoice |
| invoices-updateC | Updates an invoice |
| items-add_childB | Adds an existing item as a child of another item |
| items-add_documentationB | Adds a documentation entry to a CaseFileItem following the CMMN tCmmnElement pattern. Documentation is stored in data.documentation array. |
| items-convert_typeA | Converts a CaseFileItem from one type to another. Supported conversions among todo, note, task, and checkbox (todo<->note, todo<->task, note<->task, todo<->checkbox, note<->checkbox). Previous data is preserved for recovery. |
| items-createA | Creates a case file item. Set 'type' to choose the item type. Common params: case_id, name/title, parent_id, tags, description. Type-specific: note(content), bookmark(url,title), todo(title,status,priority,due_date), duration(start_time,end_time,billable), expense(description,amount,date), invoice(invoice_number,amount,client_id), file(filename), folder(name), checkbox(label,checked), journal_entry(content,mood), sms(body,to), directory(path), desktop(name). |
| items-deleteA | Deletes a case file item. If it's a file, also removes the stored file (unless referenced by other items) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| AI Work Items Playbook | Focused guide on processing AI work items — the claim→execute→complete pipeline. |
| Agent Registry & Messaging Playbook | Agent registry, presence tracking, and cross-machine direct messaging — registering sessions, discovering agents, and routing messages by user/machine/agent. |
| CMMN Execution Playbook | Comprehensive guide for LLM agents on executing CMMN workflows — task execution rules, stage flow, session lifecycle, AI work items, and common patterns. |
| Getting Started Guide | Quick start guide for CaseMgr — key concepts, common workflows, and execution rules. |
| Orchestration & Case Hand-Off Playbook | How an orchestrator agent prepares a case and hands it off to a worker agent to execute. Covers targeted delegation, capability fan-out via messages-broadcast, reply threading, and the full worked example for the prep → hand-off → execute → reply loop. |
| Session Lifecycle Playbook | Focused guide on session management — starting sessions, compaction recovery, and journal entries. |
| Stage Execution Playbook | Focused guide on executing CMMN stages — the execute→complete loop, handling next_actions, and worked examples. |
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/mstang/casemgr-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server