Skip to main content
ClaudeWave
cyanheads avatar
cyanheads

workflows-mcp-server

View on GitHub

Store, query, and create YAML workflow playbooks for LLM agents via MCP. STDIO or Streamable HTTP.

MCP ServersOfficial Registry31 stars6 forksTypeScriptApache-2.0Updated today
ClaudeWave Trust Score
100/100
Verified
Passed
  • Open-source license (Apache-2.0)
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
  • Mature repo (>1y old)
  • Documented (README)
Last scanned: 8/22/2026
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/cyanheads/workflows-mcp-server
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "workflows": {
      "command": "node",
      "args": ["/path/to/workflows-mcp-server/dist/index.js"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/cyanheads/workflows-mcp-server and follow its README for install instructions.
Use cases

MCP Servers overview

<div align="center">
  <h1>@cyanheads/workflows-mcp-server</h1>
  <p><b>Store, query, and create YAML workflow playbooks for LLM agents via MCP. STDIO or Streamable HTTP.</b>
  <div>5 Tools</div>
  </p>
</div>

<div align="center">

[![Version](https://img.shields.io/badge/Version-0.3.0-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/workflows-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-v2-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/workflows-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/workflows-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.0-blueviolet.svg?style=flat-square)](https://bun.sh/)

</div>

<div align="center">

[![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/workflows-mcp-server/releases/latest/download/workflows-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=workflows-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvd29ya2Zsb3dzLW1jcC1zZXJ2ZXIiXX0=) [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22workflows-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fworkflows-mcp-server%22%5D%7D)

[![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-67E8F9?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)

</div>

---

## Tools

Five tools covering the full workflow library lifecycle — discovery, retrieval, creation, and deletion for both permanent and temporary workflows:

| Tool | Description |
|:-----|:------------|
| `workflow_list` | List all permanent workflows in the index, with optional keyword, category, and tag filters. |
| `workflow_get` | Retrieve a complete workflow definition by name, with global instructions prepended. |
| `workflow_create` | Write a new permanent workflow YAML to the library. |
| `workflow_create_temp` | Write a temporary one-shot workflow, indexed but excluded from list results. |
| `workflow_delete` | Permanently remove a permanent workflow by name and optional version. |

### `workflow_list`

List permanent workflows from the in-memory index.

- Optional keyword `query` filter (case-insensitive substring across workflow name and description)
- Optional category filter (case-insensitive substring match)
- Optional tag filter (AND match — all listed tags must be present)
- Set `includeTools: true` to surface the unique `server/tool` pairs used across each workflow's steps
- Temporary workflows are excluded; results sorted by name then version descending
- Empty results echo the applied filters with a hint to broaden

---

### `workflow_get`

Retrieve a complete workflow by name, including the global instructions document.

- Semver-aware: omit `version` to get the highest available match; specify a version for an exact lookup
- Returns the full workflow YAML structure with all steps and metadata
- Injects the `global_instructions.md` content as `globalInstructions` — apply these when executing the workflow; `null` when the file is absent
- Temporary workflows are accessible here even though excluded from `workflow_list`
- Template placeholders (`{{input.foo}}`, `{{steps.X.output.Y}}`) are returned verbatim — the server never interpolates them

---

### `workflow_create`

Write a new permanent workflow to the library.

- Workflow stored at `categories/<slugified-category>/<slugified-name>-<slugified-version>-workflow.yaml` — one file per `name@version`, so multiple versions coexist
- Rejects if `name@version` already exists — bump the version to create a new revision
- Server stamps `created_date` and `last_updated_date` automatically
- Index and snapshot rebuilt after write; filesystem watcher also fires (idempotent, debounced)

---

### `workflow_create_temp`

Write a throwaway workflow to the `temp/` directory.

- No conflict check — temp workflows are intentionally ephemeral and overwriteable
- Indexed and accessible via `workflow_get` but excluded from `workflow_list` results
- Useful for one-shot plans, short-lived scaffolding, or session-specific orchestration steps

---

### `workflow_delete`

Permanently remove a permanent workflow from the library.

- Semver-aware: omit `version` to delete the highest available match; specify a version to target one exactly
- Only permanent workflows can be deleted — temporary workflows are rejected (they expire on their own)
- Irreversible: the file is removed and the workflow no longer appears in `workflow_list` or `workflow_get`

---

## Features

Built on [`@cyanheads/mcp-ts-core`](https://www.npmjs.com/package/@cyanheads/mcp-ts-core):

- Declarative tool definitions — single file per primitive, framework handles registration and validation
- Unified error handling — handlers throw, framework catches, classifies, and formats
- Pluggable auth: `none`, `jwt`, `oauth`
- Swappable storage backends: `in-memory`, `filesystem`, `Supabase`, `Cloudflare KV/R2/D1`
- Structured logging with optional OpenTelemetry tracing
- STDIO and Streamable HTTP transports

Workflow library:

- In-memory index keyed by `name@version`, built at startup from `workflows-yaml/categories/` recursively
- Semver-aware lookup — latest version returned when version is omitted
- Filesystem watcher (Node.js `fs.watch` recursive) rebuilds the index on any add/change/remove; debounced to avoid thrash
- YAML validated at index time — invalid files are skipped and logged, never crash the server
- `_index.json` snapshot written on every rebuild for external tooling and debugging
- Configurable `WORKFLOWS_DIR`, `GLOBAL_INSTRUCTIONS_PATH`, and debounce interval

Agent-friendly output:

- `workflow_get` always includes `globalInstructions` alongside the workflow — no second call needed
- Discriminated `source` field (`permanent` | `temp`) on every `workflow_get` response
- Typed error contracts with structured `reason` codes (`not_found`, `version_not_found`, `already_exists`, `temp_not_allowed`, `index_unavailable`) so callers can branch on error type rather than parsing messages
- `workflow_list` with `includeTools: true` surfaces all MCP server/tool dependencies at a glance

---

## Getting started

No API keys required. The server reads from a local `workflows-yaml/` directory by default.

Add the following to your MCP client configuration file:

```json
{
  "mcpServers": {
    "workflows-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/workflows-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "WORKFLOWS_DIR": "/absolute/path/to/your/workflows-yaml"
      }
    }
  }
}
```

Or with npx (no Bun required):

```json
{
  "mcpServers": {
    "workflows-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/workflows-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "WORKFLOWS_DIR": "/absolute/path/to/your/workflows-yaml"
      }
    }
  }
}
```

Or with Docker:

```json
{
  "mcpServers": {
    "workflows-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MCP_TRANSPORT_TYPE=stdio",
        "-v", "/absolute/path/to/your/workflows-yaml:/workflows-yaml",
        "-e", "WORKFLOWS_DIR=/workflows-yaml",
        "ghcr.io/cyanheads/workflows-mcp-server:latest"
      ]
    }
  }
}
```

For Streamable HTTP, set the transport and start the server:

```sh
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp
```

### Seed workflows

The repository ships a `workflows-yaml/` directory with example workflows organized under `categories/`. These are ready to use as a starting point. The `workflows-yaml/global_instructions.md` file contains instructions the server prepends to every `workflow_get` response — edit it to set global guidance for your agent.

### Prerequisites

- [Bun v1.3.0](https://bun.sh/) or higher (or Node.js v24+).
- A local directory containing YAML workflow files (or use the bundled `workflows-yaml/` seed).

### Installation

1. **Clone the repository:**

```sh
git clone https://github.com/cyanheads/workflows-mcp-server.git
```

2. **Navigate into the directory:**

```sh
cd workflows-mcp-server
```

3. **Install dependencies:**

```sh
bun install
```

4. **Configure environment:**

```sh
cp .env.example .env
# edit .env if needed — most settings have defaults
```

---

## Configuration

| Variable | Description | Default |
|:---------|:------------|:--------|
| `WORKFLOWS_DIR` | Absolute or relative path to the workflows root directory. | `./workflows-yaml` |
| `GLOBAL_INSTRUCTIONS_PATH` | Path to the global instructions markdown file. Derives from `WORKFLOWS_DIR` when not set. | `<WORKFLOWS_DIR>/global_instructions.md` |
| `WATCHER_DEBOUNCE_MS` | Milliseconds to debounce filesystem change events before rebuilding the index. | `500` |
| `MCP_TRANSPORT_TYPE` | Transport: `stdio` or `http`. | `stdio` |
| `MCP_HTTP_PORT` | Port for HTTP server. | `3010` |
| `MCP_AUTH_MODE` | Auth mode: `none`, `jwt`, or `oauth`. | `none` |
| `MCP_LOG_LEVEL` | Log level (RFC 5424). | `info` |
| `OTEL_
agent-automationai-agentscyanheadsmcpmcp-servermodel-context-protocolworkflowworkflow-automation

What people ask about workflows-mcp-server

What is cyanheads/workflows-mcp-server?

+

cyanheads/workflows-mcp-server is mcp servers for the Claude AI ecosystem. Store, query, and create YAML workflow playbooks for LLM agents via MCP. STDIO or Streamable HTTP. It has 31 GitHub stars and its last recorded update is dated 2026-08-21.

How do I install workflows-mcp-server?

+

You can install workflows-mcp-server by cloning the repository (https://github.com/cyanheads/workflows-mcp-server) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is cyanheads/workflows-mcp-server safe to use?

+

Our security agent has analyzed cyanheads/workflows-mcp-server and assigned a Trust Score of 100/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.

Who maintains cyanheads/workflows-mcp-server?

+

cyanheads/workflows-mcp-server is maintained by cyanheads. The last recorded GitHub activity is dated 2026-08-21, with 8 open issues.

Are there alternatives to workflows-mcp-server?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy workflows-mcp-server to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: cyanheads/workflows-mcp-server
[![Featured on ClaudeWave](https://claudewave.com/api/badge/cyanheads-workflows-mcp-server)](https://claudewave.com/repo/cyanheads-workflows-mcp-server)
<a href="https://claudewave.com/repo/cyanheads-workflows-mcp-server"><img src="https://claudewave.com/api/badge/cyanheads-workflows-mcp-server" alt="Featured on ClaudeWave: cyanheads/workflows-mcp-server" width="320" height="64" /></a>

More MCP Servers

workflows-mcp-server alternatives