Workflows MCP server

Provides specialized software development tools through a data-driven configuration system that loads tool definitions from YAML files for thinking, coding, and GitHub integration workflows
Back to servers
Setup instructions
Provider
AgentDesk AI
Release date
Mar 24, 2025
Language
TypeScript
Package
Stats
842 downloads
51 stars

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.

Installation

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"]
    }
  }
}

Configuration Options

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.

Creating Custom Workflows

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.

Basic Workflow Structure

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"

Tool Configuration Styles

You can define tools in different ways:

Situational Tool Usage (Default)

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

Sequential Tool Usage

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

Parameter Injection

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.

Advanced Tool Configuration

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

Using Presets

Workflows MCP includes several ready-to-use preset workflows:

Thinking Presets

  • Thinking Mode: Structured analysis for reflection
  • Deep Thinking Mode: Comprehensive multi-perspective analysis

Coding Presets

  • Debugger Mode: Systematic debugging with hypothesis creation and testing
  • Architecture Mode: System design with tradeoff analysis
  • Planner Mode: Code change planning with codebase analysis
  • PRD Mode: Structured product requirements documentation
  • Save Note: Document ongoing work for progress tracking

GitHub Presets

  • PR Review Mode: Comprehensive pull request analysis
  • PR Creation Mode: Structured PR creation process
  • Create Branch: Smart branch creation with contextual naming
  • Save Changes: Systematic git commit and push workflow

Parameter Types

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"

How to install this MCP server

For Claude Code

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.

For Cursor

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.

Adding an MCP server to Cursor globally

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"
            ]
        }
    }
}

Adding an MCP server to a project

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.

How to use the MCP server

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.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.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

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later