# walkerOS Flow (npm · @walkeros/mcp)

Build, validate, simulate, and deploy walkerOS event pipelines

- Trust score: 90/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- npm · `@walkeros/mcp`: 90/100 (this document), [markdown](https://verifymcp.io/servers/io-walkeros-flow/walkeros-mcp.md), [page](https://verifymcp.io/servers/io-walkeros-flow/walkeros-mcp)

## Channel facts

- Registry: `npm`
- Package: `@walkeros/mcp`
- Version: `4.5.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 61 of 291 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to elbwalker/walkerOS).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 6 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 78/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 5463 tokens (~210/item across 26 items; 17 tools + 9 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 63/100
  - Stability observed for 19 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (35% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the walkerOS Flow MCP server?

walkerOS Flow runs locally as an npm package, launched with npx -y @walkeros/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add io-walkeros-flow -- npx -y @walkeros/mcp
```

### Cursor

```json
{
  "mcpServers": {
    "io-walkeros-flow": {
      "command": "npx",
      "args": [
        "-y",
        "@walkeros/mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-walkeros-flow": {
      "command": "npx",
      "args": [
        "-y",
        "@walkeros/mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add io-walkeros-flow -- npx -y @walkeros/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-walkeros-flow": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@walkeros/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-walkeros-flow --command npx --arg -y --arg @walkeros/mcp
```

### Hermes

```yaml
mcp_servers:
  io-walkeros-flow:
    command: "npx"
    args: ["-y", "@walkeros/mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "io-walkeros-flow": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@walkeros/mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-walkeros-flow -t stdio -c npx -a -y @walkeros/mcp
```

### Other

```json
{
  "mcpServers": {
    "io-walkeros-flow": {
      "command": "npx",
      "args": [
        "-y",
        "@walkeros/mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-20 (score 90, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-18 (score 89, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-16 (score 88, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-14 (score 87, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-12 (score 86, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-10 (score 85, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-09-03 (score 81, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-02 (score 66)

First indexed and scored.

## MCP tools (17)

### `auth` (~78 tokens)

Authentication

Manage walkerOS authentication. Check login status, log in via device code flow, or log out. No terminal or browser required, the MCP client handles the authorization URL.

Input parameters:

- `action` (string, required): Authentication action to perform
- `deviceCode` (string): Device code from a previous pending login attempt. Provide to resume polling without requesting a new code.

### `project_manage` (~122 tokens)

Project Management

Manage walkerOS projects. List, create, update, delete projects, or set a default project for CLI operations.

Input parameters:

- `action` (string, required): Project management action to perform
- `cursor` (string): Pagination cursor from a previous list response. Only used with the list action.
- `limit` (integer): Max items per page (1-100). Only used with the list action.
- `name` (string): Required for create and update (update also requires projectId).
- `projectId` (string): Required for get, update, delete, set_default.

### `flow_manage` (~580 tokens)

Flow Management

Manage walkerOS flows and their previews. List/get/create/update/delete/duplicate flows, or create/inspect/delete preview bundles and mint activation grants (preview_regrant) for testing flow changes on live sites.

Input parameters:

- `action` (string, required): Flow management action to perform
- `content` (object): Flow.Json content. Used for create and update.
- `cursor` (string): Pagination cursor from a previous list response. Only used with the list action.
- `fields` (array): Dot-path selectors for get to return only specific fields.
- `flowId` (string): Flow ID (flow_...) or config ID (cfg_...). Required for get, update, delete, duplicate, preview_list, preview_get, preview_create, preview_delete, preview_regrant.
- `flowName` (string): Used by preview_create — provide one of flowName or flowSettingsId (preview_create also requires flowId).
- `flowSettingsId` (string): Used by preview_create — provide one of flowName or flowSettingsId (preview_create also requires flowId).
- `includeDeleted` (boolean): Include soft-deleted flows in list results.
- `limit` (integer): Max items per page (1-100). Only used with the list action.
- `name` (string): Flow name. Required for create. Optional for update (to rename) and duplicate.
- `order` (string): Sort order for list.
- `origins` (array): Site origins (bare https://host[:port]) to mint a preview activation grant for. Used by preview_regrant; the returned activationUrl targets the first origin.
- `patch` (boolean): Merge-patch for update (default true). When true, only provided fields are updated.
- `previewId` (string): Preview ID (prv_...). Required for preview_get, preview_delete, and preview_regrant (all also require flowId).
- `projectId` (string): Project ID. Optional filter for list (omit to list all projects). Required for create if no default project set.
- `sessionId` (string): Observe session id — when set, preview_regrant mints an activation/forwarding grant PAIR: the returned activationUrl both activates the web preview and lets the page forward events to the session con…
- `siteUrl` (string): Optional site URL (e.g. https://shop.example.com) for preview_create. When provided, the activation grant is minted for that origin so the returned activationUrl works there.
- `sort` (string): Sort field for list.
- `source`: What the preview should run, for preview_create: the flow's draft (default) or a deployed version's stored config (kind 'deployment-version' with its deploymentVersionId).

### `deploy_manage` (~357 tokens)

Deploy Management

Deploy walkerOS flows and manage deployments. deploy waits for the deployment to reach a terminal status by default (wait=true), with a 12-minute budget; pass wait=false to return immediately with the deployment id. A finished deployment carries its status and, on failure, an errorMessage with the user-facing reason; use the get action to re-read it. list supports cursor and limit for pagination. delete removes an active deployment. For get and delete pass flowId (required) plus optional slug to disambiguate when a flow has multiple active deployments. If a flow has >=2 active deployments and no slug is supplied, the tool returns a MULTIPLE_DEPLOYMENTS error with a details[] list showing each deployment's slug, type, status, and updatedAt.

Input parameters:

- `action` (string, required): Deployment action to perform
- `cursor` (string): Pagination cursor from a previous list response. Only used with the list action.
- `flowId` (string): Required for deploy, get, delete.
- `flowName` (string): Flow name for multi-settings flows. Only used with deploy action.
- `limit` (integer): Max items per page (1-100). Only used with the list action.
- `projectId` (string): Project ID. Optional; falls back to the default project.
- `slug` (string): Deployment slug. Optional disambiguator for get/delete when the flow has multiple active deployments.
- `status` (string): Status filter for list.
- `type` (string): Deployment type filter for list.
- `wait` (boolean): Wait for the deployment to reach a terminal status (default true), with a 12-minute budget. Set false to return the deployment id immediately. Only used with deploy action.

### `secret_manage` (~278 tokens)

Secret Management

Manage a flow’s managed secrets (the $secret.<NAME> values its steps reference at deploy/run time). Actions: list (metadata only), set (create), update (rotate value), delete. Secrets are write-mostly: values are encrypted at rest and are NEVER returned, listed, or echoed. Reference a secret from a flow step as $secret.<NAME>. Credentials, tokens, and private keys must use $secret, not $env: the deploy pipeline only injects values referenced as $secret.<NAME> into the server runner. Server flows only.

Input parameters:

- `action` (string, required): Secret management action to perform
- `flowId` (string, required): Flow ID (flow_...) or config ID (cfg_...). Required for list, set, update, and delete: secrets are flow-scoped.
- `name` (string): Secret name (UPPER_SNAKE_CASE). Required for set. Referenced in flows as $secret.<NAME>.
- `projectId` (string): Project ID. Optional: falls back to the default project when omitted.
- `secretId` (string): Secret ID (sec_...). Required for update and delete. Use action "list" to find it.
- `value` (string): Secret value (1-65536 chars). Required for set and update. Write-only: never returned or logged.

### `observe_session` (~325 tokens)

Observe Session

Open, inspect, or end an Observe session: a time-boxed window on one flow that runtimes attach to as arms. A preview arm streams from a browser, a container arm runs server-side, and both feed ONE shared journeys feed. start opens the window (arms picks which runtimes attach), status reports per-arm state plus recordsReceived and expiresAt, stop ends the whole session including every arm. A flow has at most one session, so status/stop resolve it from flowId when sessionId is omitted. Read the events with observe_journeys; this tool never returns event data and never judges whether events are correct.

Input parameters:

- `action` (string, required): start opens a session, status reports arm state, stop ends the whole session.
- `arms` (object): Which runtimes attach. Omit to attach the default preview arm; a web settings that references a server flow brings its container arm with it.
- `flowId` (string, required): Flow the Observe session runs on.
- `level` (string): Container observation verbosity. Defaults to the app's own.
- `origins` (array): Bare https origins (https://host[:port]) the session may ingest web events from.
- `projectId` (string): Project ID. Optional; falls back to the default project.
- `replace` (boolean): Replace the flow's existing window instead of attaching to it. Re-provisions from the new config.
- `sessionId` (string): Session to act on for status/stop. Optional; the flow has at most one session and it is resolved for you.

### `observe_journeys` (~288 tokens)

Observe Journeys

Read the assembled, cross-runtime journeys for a flow that is currently being observed (an active Observe session). Pass flowId; the active session is resolved for you (a flow has at most one). Each journey is one traced event reconstructed end to end across web and server: its ordered hops (source, transformer, collector, destination), each hop status (pending/done/skipped/error), captured in/out payloads, consent, and vendor calls. Use this to see what actually happened to live events: which destinations fired, what mapping ran, where an event was skipped or errored, and whether records were lost (gaps + a journey `lossy` flag). When the flow has no active session the result is `{ sessionId: null, journeys: [], gaps: [] }` — start an Observe session in the app and drive traffic first, then read again. Narrow with traceId (one trace) and limit (page cap, most recent kept; default 50). Read-only.

Input parameters:

- `flowId` (string, required): Flow to read journeys for (its active Observe session).
- `limit` (integer): Max journeys to return (1-100, most recent kept). Defaults to 50.
- `projectId` (string): Project ID. Optional; falls back to the default project.
- `traceId` (string): Return only the journeys for this trace id.

### `feedback` (~52 tokens)

Send Feedback

Send feedback about walkerOS

Input parameters:

- `anonymous` (boolean): Include user/project info? false = include, true = anonymous. Only needed on first call if not yet configured.
- `text` (string, required): Your feedback text

### `diagnostics` (~75 tokens)

Diagnostics

Report the MCP runtime surface: MCP and CLI versions, the resolved app URL and its source, app /api/health reachability, the bundled OpenAPI contract version, and which source served the last package catalog fetch. Read-only and callable when logged out; use it when a request fails to see which versions and backend you are on.

### `flow_validate` (~140 tokens)

Validate Flow

Validate walkerOS events, flow configurations, mapping rules, or data contracts. Accepts JSON strings, file paths, or URLs as input. Returns validation results with errors, warnings, and details.

Input parameters:

- `flow` (string): Flow name for multi-flow configs
- `input` (string, required): JSON string, file path, or URL to validate
- `path` (string): Entry path for package schema validation (e.g., "destinations.snowplow"). When provided, validates the entry against its package JSON Schema instead of using --type.
- `type` (string, required): Validation type: "event", "flow", "mapping", or "contract"

Output parameters:

- `details` (object): Additional validation details
- `errors` (array): Validation errors
- `type`: What was validated
- `valid` (boolean): Whether validation passed
- `warnings` (array): Validation warnings

### `flow_bundle` (~106 tokens)

Bundle Flow

Bundle a walkerOS flow configuration into deployable JavaScript. Resolves all destinations, sources, and transformers, then outputs a tree-shaken production bundle. Returns bundle statistics.

Input parameters:

- `configPath` (string, required): Path to flow configuration file (JSON or JavaScript), URL, or inline JSON string
- `flow` (string): Flow name for multi-flow configs
- `output` (string): Output file path (defaults to config-defined)
- `stats` (boolean): Return bundle statistics

Output parameters:

- `buildTime` (number): Build time in milliseconds
- `message` (string): Status message
- `packages` (array): Names of packages included in the bundle
- `success` (boolean): Whether bundling succeeded
- `totalSize` (number): Total bundle size in bytes
- `treeshakingEffective` (boolean): Whether tree-shaking was effective

### `flow_simulate` (~421 tokens)

Simulate Flow

Simulate events through a walkerOS flow without making real API calls. For destinations: event is a walkerOS event { name: "entity action", data: {...} }. For sources: event is { content, trigger?: { type?, options? } }, where content is the walkerOS event { name: "entity action", data: {...} }. step (required) targets the step to simulate, e.g. "destination.gtag". Use flow_examples to discover available test data. IMPORTANT: Destinations with require (e.g. require: ["consent"]) stay pending until that collector event fires — simulation will error "not found" if require is not satisfied. Remove require from config or provide consent/user events before simulating. Separately, destinations with consent (e.g. consent: { marketing: true }) only receive events where the event includes matching consent. Mapping transforms event names and data at the destination level. Policy redacts or injects fields before mapping runs.

Input parameters:

- `configPath` (string, required): Path to flow configuration file, URL, or inline JSON string
- `event`: For destinations: { name, data, consent? }. Include consent (e.g. { marketing: true }) to satisfy destination consent requirements. For sources: { content, trigger? } where content is the walkerOS ev…
- `flow` (string): Flow name for multi-flow configs
- `ingest` (object): Pipeline context a transformer reads via ctx.ingest, e.g. { url } for a request decoder. Only used for transformer steps.
- `platform` (string): Override platform detection
- `state` (object): Collector-state snapshot for collector steps: consent/user/globals/timing. Seeds the collector before enrichment runs.
- `step` (string, required): Required. Target step as "type.name" — e.g. "source.demo", "destination.gtag", "transformer.router".
- `verbose` (boolean): Include full payload per destination (default: false)

Output parameters:

- `capturedEvents` (array): Events captured by source simulation
- `destinations` (object): Per-destination results
- `duration` (number): Simulation duration in ms
- `error` (string): Error message if failed
- `success` (boolean): Whether simulation succeeded
- `summary` (string): One-line result summary

### `flow_push` (~111 tokens)

Push Events

Push a real event through a walkerOS flow to actual destinations. Makes real API calls to real endpoints. Best suited for server-side flows — web flows should use flow_simulate for testing.

Input parameters:

- `configPath` (string, required): Path to flow configuration file
- `event` (object, required): Event object, e.g. { name: "page view", data: { title: "Home" } }
- `flow` (string): Flow name for multi-flow configs
- `platform` (string): Override platform detection

Output parameters:

- `duration` (number): Push duration in milliseconds
- `elbResult`: Push result from the collector
- `error` (string): Error message if push failed
- `success` (boolean): Whether push succeeded

### `flow_examples` (~182 tokens)

Flow Examples

List all step examples in a walkerOS flow configuration. Shows example names, step locations, and in/out shapes. Inline examples on a step take precedence; steps without inline examples fall back to the examples shipped by their referenced package. Each result is tagged with its source ("inline" or "package"). Use this to discover available test fixtures and simulation data.

Input parameters:

- `configPath` (string, required): Path to flow configuration file, URL, or inline JSON string
- `flow` (string): Flow name for multi-flow configs
- `full` (boolean): Return full in/out/mapping data for each example (default: false, returns metadata only)
- `includeHidden` (boolean): Include examples marked public: false (default: false). Set true for test/debug discovery.
- `step` (string): Filter to a specific step (e.g., "destination.gtag")

Output parameters:

- `count` (number): Number of examples found
- `examples` (array): Step examples
- `flow` (string): Flow name

### `flow_load` (~134 tokens)

Load or Create Flow

Load an existing flow configuration from a local file path, URL, or walkerOS API (by flow ID). Or create a new empty flow by specifying a platform (web or server). Use the add-step prompt to add sources, destinations, transformers, or stores to the flow.

Input parameters:

- `platform` (string): Platform for new flows. Required when source is omitted. web = browser tracking, server = Node.js HTTP.
- `source` (string): Flow source: local file path (./flow.json), URL (https://...), inline JSON string, or API flow ID (cfg_...). Omit to create a new flow.

Output parameters:

- `flows` (object): Flow entries
- `version` (number): Flow config version

### `package_search` (~128 tokens)

Search Package

Start here for package discovery. Never guess package names: use this tool first to find exact names. Without package name: returns catalog filtered by type/platform. With package name: returns metadata, hint keys, and example summaries.

Input parameters:

- `package` (string): Exact npm package name for detailed lookup (e.g., @walkeros/web-destination-snowplow)
- `platform` (string): Filter by platform (browse mode, includes universal packages)
- `type` (string): Filter by package type (browse mode)
- `version` (string): Package version for detailed lookup (default: latest)

### `package_get` (~133 tokens)

Get Package

Requires exact package name: do not guess names, use package_search first to find them. Returns schemas + hint texts + example summaries by default (lightweight). Use section parameter for full content: "hints" (with code blocks), "examples" (full in/out data), or "all".

Input parameters:

- `package` (string, required): Exact npm package name (e.g., @walkeros/web-destination-snowplow)
- `section` (string): Section to expand with full content. Default: summary view with schemas + hint texts + example descriptions
- `version` (string): Package version (default: latest)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/io-walkeros-flow/walkeros-mcp#diagnostics

## Score history

- 2026-09-21: 90
- 2026-09-20: 90
- 2026-09-19: 89
- 2026-09-18: 89
- 2026-09-17: 88
- 2026-09-16: 88
- 2026-09-15: 87
- 2026-09-14: 87
- 2026-09-13: 86
- 2026-09-12: 86
- 2026-09-11: 85
- 2026-09-10: 85
- 2026-09-09: 81
- 2026-09-08: 81
- 2026-09-07: 81
- 2026-09-06: 81
- 2026-09-05: 81
- 2026-09-04: 81
- 2026-09-03: 81
- 2026-09-02: 66

## Common questions

### What is the walkerOS Flow MCP server?

walkerOS Flow is an MCP server listed in the public MCP registry as io.walkeros/flow. Build, validate, simulate, and deploy walkerOS event pipelines. This page covers its npm package (@walkeros/mcp).

### Is the walkerOS Flow MCP server safe to use?

walkerOS Flow scores 90 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the walkerOS Flow MCP server expose?

walkerOS Flow exposes 17 tools: auth, project_manage, flow_manage, deploy_manage, secret_manage, and 12 more. Their descriptions and schemas cost roughly 3,510 tokens of context every time the server is loaded.

### Is the walkerOS Flow MCP server still maintained?

walkerOS Flow is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the walkerOS Flow MCP server under?

walkerOS Flow declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@walkeros/mcp
- Socket report: https://socket.dev/npm/package/@walkeros/mcp
- Repository: https://github.com/elbwalker/walkerOS
- Website: https://www.walkeros.io/docs/apps/mcp
- Changelog RSS feed: https://verifymcp.io/servers/io-walkeros-flow/walkeros-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-walkeros-flow/walkeros-mcp.json
- HTML version of this page: https://verifymcp.io/servers/io-walkeros-flow/walkeros-mcp
