-
Notifications
You must be signed in to change notification settings - Fork 16
mcp_get_workflows
PhuocLe edited this page Jun 18, 2026
·
3 revisions
| Field | Value |
|---|---|
| Tool name | get_workflows |
| MCP title | List classic workflows |
| Category | standard |
| Implementation | DynamicsCrm.DevKit.Cli/Mcp/Tools/GetWorkflowsTool.cs |
| Estimated token count | ~402 tokens (tools/list tool JSON, o200k_base, measured 2026-06-18) |
| Last verified | 2026-06-18 |
Classic workflows (background async + realtime sync) for a Dataverse entity. workflow_id empty = list. Set = detail. Classic only — use get_business_rules / get_custom_apis / get_business_process_flows / get_flows for others.
Key fields:
- triggeronupdateattributelist: trigger fields ('statecode'=status, 'ownerid'=assignment)
- mode: Background (async, Post) | Realtime (sync, Pre/Post; Pre can cancel/rollback)
- scope: User/BU/Parent:ChildBU/Org. runas: Owner/Caller
Fuzzy on name_filter: 0/multi → tool returns disambiguation list and stops; AI must ask user. 1 → auto-detail.
WHEN TO USE:
- Check if a field triggers any workflow (trigger_field + entity_name)
- Find synchronous workflows (mode='realtime'; Pre-op can cancel/rollback)
- Inspect workflow steps before refactoring/disabling
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workflow_id |
string |
No | "" |
GUID → detail. Empty = list. |
entity_name |
string |
No | "" |
Entity Display Name or logical name (e.g. 'Account' or 'account'). Empty = all. |
mode |
string |
No | "" |
'background' / 'realtime'. Empty = both. |
active_only |
boolean |
No | true |
Only activated workflows. |
trigger_field |
string |
No | "" |
Update trigger field Display Name or logical name when entity_name is set; otherwise contains filter. |
name_filter |
string |
No | "" |
Name contains. 1 match → auto-detail. |
max_records |
integer |
No | 50 |
Max 250. |
{
"type": "object",
"properties": {
"workflow_id": {
"type": "string",
"description": "GUID → detail. Empty = list.",
"default": ""
},
"entity_name": {
"type": "string",
"description": "Entity Display Name or logical name (e.g. 'Account' or 'account'). Empty = all.",
"default": ""
},
"mode": {
"type": "string",
"description": "'background' / 'realtime'. Empty = both.",
"default": ""
},
"active_only": {
"type": "boolean",
"description": "Only activated workflows.",
"default": true
},
"trigger_field": {
"type": "string",
"description": "Update trigger field Display Name or logical name when entity_name is set; otherwise contains filter.",
"default": ""
},
"name_filter": {
"type": "string",
"description": "Name contains. 1 match → auto-detail.",
"default": ""
},
"max_records": {
"type": "integer",
"description": "Max 250.",
"default": 50
}
},
"required": []
}| Resource | URI / URI template | MIME type | Reason |
|---|---|---|---|
server_logic_guide |
docs://server_logic_guide |
text/markdown |
Inferred from source: Filtering patterns, list/detail modes, and entity scoping for server-logic tools. Read this when get_plugins, get_workflows, get_flows, etc. returns an error. |
- Check if a field triggers any workflow (trigger_field + entity_name)
- Find synchronous workflows (mode='realtime'; Pre-op can cancel/rollback)
- Inspect workflow steps before refactoring/disabling
- Use the exact MCP description and parameter schema above as the authoritative contract.
{
"workflow_id": "string"
}Returns CallToolResult from the MCP server. The response content and structured fields follow the tool implementation and model returned by GetWorkflowsTool.get_workflows.