Workflows MCP serves as a Model Context Protocol (MCP) server that allows you to orchestrate multiple prompts and MCP servers into compound prompting tools. It functions as a dynamic prompting library that can be easily shared and version controlled through YAML files, enabling you to define optimal ways to utilize many MCP tools across different servers for specific tasks.
Install the Workflows MCP server with npm:
npx -y @agentdesk/workflows-mcp@latest
If you're using Cursor to configure your MCP server, you can use this JSON configuration:
{
"mcpServers": {
"workflows-mcp": {
"command": "npx",
"args": ["-y", "@agentdesk/workflows-mcp@latest"]
}
}
}
You can provide custom configurations using these flags:
--config
: Point to a directory with YAML configuration files (must be named .workflows
or .mcp-workflows
)--preset
: Specify which presets to load (options: thinking, coding, github)Example with configuration options:
npx -y @agentdesk/workflows-mcp@latest --config /path/to/.workflows --preset thinking,coding,github
Complete Cursor configuration example:
{
"mcpServers": {
"workflows-mcp": {
"command": "npx",
"args": [
"-y",
"@agentdesk/workflows-mcp@latest --config /path/to/.workflows --preset thinking,coding"
]
}
}
}
Note: If no config or preset is provided, it defaults to using the thinking
preset. If you update your configuration, you must refresh the MCP tool for changes to take effect.
Create a .workflows
or .mcp-workflows
directory in your project and add YAML configuration files (with .yaml
or .yml
extension). These configurations can override preset defaults if named the same as a preset tool.
Here's a simple workflow configuration:
workflow_name:
description: "Description of what this workflow does"
prompt: |
Enter your multi-line
prompt here like this
toolMode: "situational" # can be omitted as it's the default
tools: "analyzeLogs, generateReport, validateFindings"
You can define tools in different ways:
Tools are made available to be used as needed:
web_debugger_mode:
description: Debug my codebase my web application with browser logs and BrowserTools MCP
prompt: |
Deeply reflect upon all of this and think about why this isn't working. Theorize 4-6 different possible sources of the problem.
Then, deeply reason about the root cause and distill your theories down to the 1-2 most probable sources of the problem before suggesting next steps.
tools: getConsoleLogs, getConsoleErrors, getNetworkLogs, getNetworkErrors, takeScreenshot
Tools are executed in a specific order:
web_debugger_mode:
description: Debug my codebase my web application with browser logs and BrowserTools MCP
prompt: |
Deeply reflect upon all of this and think about why this isn't working. Theorize 4-6 different possible sources of the problem.
toolMode: sequential
tools: getConsoleLogs, getConsoleErrors, getNetworkLogs, getNetworkErrors, takeScreenshot
You can define parameters that can be injected into your prompts using the {{ parameter_name }}
syntax:
custom_mode:
description: "Workflow with parameter injection"
parameters:
thought:
type: "string"
description: "A thought to deeply reflect upon"
required: true
idea:
type: "string"
description: "An additional idea to consider"
prompt: |
Deeply reflect upon the provided thought.
Here's the thought: {{ thought }}
Additional idea to consider: {{ idea }}
Reflect upon the implications/tradeoffs it may have as it relates to my current goals.
You can define prompts for each tool and mark them as optional:
deep_thinking_mode:
description: Reflect on a thought and produce a reflection/new set of thoughts
parameters:
thought:
type: string
description: A thought to deeply reflect upon
required: true
prompt: |
Deeply reflect upon the provided thought.
Reflect upon the implications/tradeoffs it may have as it relates to my current goals, challenges and our conversation.
Do not change anything in our system, just return some thoughts/considerations/analysis based on your reflection of the provided thought.
toolMode: "sequential"
tools:
analyze_thought: analyze a previously generated thought
explore_perspectives: think about additional perspectives given the analysis
apply_findings:
propmt: implement the findings of the analysis
optional: true
Workflows MCP includes several ready-to-use preset workflows:
Workflows MCP supports various parameter types:
# String parameter
name:
type: "string"
description: "User's name"
required: true
# Number parameter
limit:
type: "number"
description: "Maximum items to return"
default: 10
# Boolean parameter
includeArchived:
type: "boolean"
description: "Include archived items"
default: false
# Enum parameter
sortOrder:
type: "enum"
enum: ["asc", "desc"]
description: "Sort direction"
default: "asc"
# Array parameter
tags:
type: "array"
description: "List of tags to filter by"
items:
type: "string"
description: "A tag value"
# Object parameter
filters:
type: "object"
description: "Complex filter object"
properties:
status:
type: "enum"
enum: ["active", "inactive", "pending"]
description: "Status filter"
To add this MCP server to Claude Code, run this command in your terminal:
claude mcp add-json "workflows-mcp" '{"command":"npx","args":["-y","@agentdesk/workflows-mcp@latest"]}'
See the official Claude Code MCP documentation for more details.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"workflows-mcp": {
"command": "npx",
"args": [
"-y",
"@agentdesk/workflows-mcp@latest"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.
To add this MCP server to Claude Desktop:
1. Find your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
~/.config/Claude/claude_desktop_config.json
2. Add this to your configuration file:
{
"mcpServers": {
"workflows-mcp": {
"command": "npx",
"args": [
"-y",
"@agentdesk/workflows-mcp@latest"
]
}
}
}
3. Restart Claude Desktop for the changes to take effect