Tutorials
Custom Workflows
Step-by-step guide to building your own MCPN workflow
- Make a new YAML file in your
.mcp-workflows
or.workflows
folder:mkdir -p .mcp-workflows touch .mcp-workflows/my-custom-workflow.yaml
- Define your workflow:
Basic Configuration
my_custom_mode: description: "Demonstrates a custom workflow mode" prompt: | You are now in "Custom Mode". Let's walk through a series of steps: 1. ... 2. ... Please follow this pattern for all tasks.
With Parameters
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.
With Tools (Situational Mode)
web_debugger_mode: description: "Debug my web application with browser logs" prompt: | Deeply reflect upon all of this and think about why this isn't working. Theorize 4-6 different possible sources of the problem. tools: getConsoleLogs, getConsoleErrors, getNetworkLogs, getNetworkErrors, takeScreenshot
With Sequential Tools
web_debugger_mode: description: "Debug my web application with browser logs" 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
Advanced Tool Configuration
deep_thinking_mode: description: "Reflect on a thought and produce a reflection" 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. toolMode: "sequential" tools: analyze_thought: analyze a previously generated thought explore_perspectives: think about additional perspectives given the analysis apply_findings: prompt: implement the findings of the analysis optional: true
- Use the workflow:
- If you've installed the MCPN server using
npx -y mcpn@latest init
- Reference your workflow in your MCP client by its name (e.g.,
my_custom_mode
) - For Cursor, you can configure your MCPN server like this:
{ "mcpServers": { "workflows-mcp": { "command": "npx", "args": ["mcpn@latest server", "--config", "/path/to/.mcp-workflows", "--preset", "thinking,coding"] } } }
- If you've installed the MCPN server using
- Test & Iterate:
- Add or remove sections, prompts, or parameters as you refine your workflow
- Experiment with different tool modes (sequential vs. situational)
- Share your workflow configurations with your team via version control
Parameter Types
You can define various parameter types in your workflows:
- String:
name: type: "string" description: "User's name" required: true
- Number:
limit: type: "number" description: "Maximum items to return" default: 10
- Boolean:
includeArchived: type: "boolean" description: "Include archived items" default: false
- Enum:
sortOrder: type: "enum" enum: ["asc", "desc"] description: "Sort direction" default: "asc"
- Array:
tags: type: "array" description: "List of tags to filter by" items: type: "string" description: "A tag value"
- Object:
filters: type: "object" description: "Complex filter object" properties: status: type: "enum" enum: ["active", "inactive", "pending"] description: "Status filter"