MCP servers
walkerOS provides Model Context Protocol servers for AI assistant integration.
| Package | Purpose |
|---|---|
@walkeros/mcp | Flow development: tools, reference resources, guided prompts, cloud API |
@walkeros/mcp-source-browser | HTML tagging: generate, parse, and validate data-elb attributes |
Claude Code plugin
The recommended way to get started in Claude Code. One plugin installs both MCP servers and 18 skills that teach Claude how to build sources, destinations, transformers, and flows.
Step 1: add the marketplace:
/plugin marketplace add elbwalker/walkerOS
Step 2: install the plugin:
/plugin install walkeros@elbwalker-walkerOS
That's it. Claude Code will reload with the MCP tools and skills active.
Quick start
For Claude Desktop or other MCP clients, add servers to your configuration manually:
Each server starts on STDIO and registers its tools automatically.
Environment variables
| Variable | Used by | Required | Default | Purpose |
|---|---|---|---|---|
WALKEROS_TOKEN | mcp | No | none | Bearer token fallback (alternative to auth tool login) |
WALKEROS_PROJECT_ID | mcp | No | none | Active project ID (proj_...) |
WALKEROS_APP_URL | mcp | No | https://app.walkeros.io | Base URL override |
@walkeros/mcp-source-browser works without any environment variables.
All tools are always registered. To authenticate with the walkerOS cloud, use
the auth tool (device code flow) or set WALKEROS_TOKEN as a fallback.
@walkeros/mcp (flow development)
Unified server for flow development, package discovery, reference resources,
guided prompts, and cloud API. Replaces the previous separate @walkeros/mcp-cli
and @walkeros/mcp-api packages.
Installation
Tools (12)
flow_load
Load an existing flow configuration from a local file path, URL, or walkerOS API, or create a new empty flow by specifying a platform.
| Parameter | Type | Required | Description |
|---|---|---|---|
source | string | No | Flow source: file path, URL, or API flow ID. Omit to create new. |
platform | "web" | "server" | No | Platform for new flows. Required when source is omitted. |
flow_validate
Validate walkerOS events, flow configurations, mapping rules, or data contracts.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | "event" | "flow" | "mapping" | "contract" | Yes | Validation type |
input | string | Yes | JSON string, file path, or URL to validate |
flow | string | No | Flow name for multi-flow configs |
path | string | No | Entry path for package schema validation |
flow_bundle
Bundle a walkerOS flow configuration into deployable JavaScript.
| Parameter | Type | Required | Description |
|---|---|---|---|
configPath | string | Yes | Path to flow configuration file |
flow | string | No | Flow name for multi-flow configs |
stats | boolean | No | Return bundle statistics (default: true) |
output | string | No | Output file path |
remote | boolean | No | Use remote cloud bundling (requires authentication). Default: false |
content | object | No | Flow.Config JSON content (required when remote: true) |
flow_simulate
Simulate events through a walkerOS flow without making real API calls. Returns summarized per-destination results.
| Parameter | Type | Required | Description |
|---|---|---|---|
configPath | string | Yes | Path to flow configuration file |
event | string | No | Event as JSON string, file path, or URL |
flow | string | No | Flow name for multi-flow configs |
platform | "web" | "server" | No | Override platform detection |
example | string | No | Load event from a step example |
step | string | No | Step to use with example parameter |
flow_push
Push a real event through a walkerOS flow to actual destinations. This makes real API calls. Best for server-side flows. Web destinations require browser globals not available in Node.js.
| Parameter | Type | Required | Description |
|---|---|---|---|
configPath | string | Yes | Path to flow configuration file |
event | string | Yes | Event as JSON string, file path, or URL |
flow | string | No | Flow name for multi-flow configs |
platform | "web" | "server" | No | Override platform detection |
flow_examples
List all step examples in a walkerOS flow configuration.
| Parameter | Type | Required | Description |
|---|---|---|---|
configPath | string | Yes | Path to flow configuration file |
flow | string | No | Flow name for multi-flow configs |
step | string | No | Filter to a specific step (e.g., "destination.gtag") |
full | boolean | No | Return full in/out/mapping data (default: false, metadata only) |
package_search
Browse walkerOS packages or look up a specific one. Without package name: returns catalog filtered by type/platform. With package name: returns metadata.
| Parameter | Type | Required | Description |
|---|---|---|---|
package | string | No | Exact npm package name for lookup |
type | "source" | "destination" | "transformer" | "store" | No | Filter by type (browse) |
platform | "web" | "server" | No | Filter by platform (browse) |
version | string | No | Package version (default: latest) |
package_get
Fetch walkerOS package details from npm. By default returns schemas + hint texts +
example summaries. Use section parameter for full content.
| Parameter | Type | Required | Description |
|---|---|---|---|
package | string | Yes | Exact npm package name |
version | string | No | Package version (default: latest) |
section | "hints" | "examples" | "all" | No | Section to expand with full content |
auth
Authenticate with the walkerOS cloud. Uses device code flow — the user receives a URL to open in a browser to complete login.
| Parameter | Type | Required | Description |
|---|---|---|---|
action | "status" | "login" | "logout" | Yes | Auth action |
deviceCode | string | No | Device code from a previous pending login. Provide with action: "login" to resume polling without requesting a new code. |
project_manage
Manage walkerOS projects in the cloud.
| Parameter | Type | Required | Description |
|---|---|---|---|
action | "list" | "get" | "create" | "update" | "delete" | "set_default" | Yes | Project action |
projectId | string | No | Project ID (proj_...). Required for: get, update, delete, set_default. Falls back to WALKEROS_PROJECT_ID env. |
name | string | No | Name for create/update operations |
flow_manage
Manage walkerOS flow configurations and previews in the cloud.
| Parameter | Type | Required | Description |
|---|---|---|---|
action | "list" | "get" | "create" | "update" | "delete" | "duplicate" | "preview_list" | "preview_get" | "preview_create" | "preview_delete" | Yes | Flow action |
projectId | string | No | Project ID (proj_...). Optional filter for list. Required for create if no default project set. Falls back to WALKEROS_PROJECT_ID env. |
flowId | string | No | Flow ID (flow_...) or config ID (cfg_...). Required for: get, update, delete, duplicate, preview_list, preview_get, preview_create, preview_delete. |
name | string | No | Flow name. Required for create. Optional for update (to rename) and duplicate. |
content | object | No | Flow.Config JSON content. Used for create and update. |
patch | boolean | No | Merge-patch for update (default: true). When true, only provided fields are updated. |
fields | string[] | No | Dot-path selectors for get to return only specific fields. |
sort | "name" | "updated_at" | "created_at" | No | Sort field for list. |
order | "asc" | "desc" | No | Sort order for list. |
includeDeleted | boolean | No | Include soft-deleted flows in list results. |
previewId | string | No | Preview ID (prv_...). Required for: preview_get, preview_delete. |
flowName | string | No | Flow settings name. Used by preview_create as an alternative to flowSettingsId. |
flowSettingsId | string | No | Flow settings ID. Used by preview_create as an alternative to flowName. |
siteUrl | string | No | Optional site URL for preview_create. When provided, the response includes full activationUrl and deactivationUrl the user can click. |
deploy_manage
Deploy walkerOS flows and manage deployments.
| Parameter | Type | Required | Description |
|---|---|---|---|
action | "deploy" | "list" | "get" | "delete" | Yes | Deployment action |
flowId | string | Conditional | Flow ID. Required for: deploy, get, delete. Optional filter for list. |
slug | string | No | Deployment slug. Optional disambiguator for get/delete when the flow has multiple active deployments. |
projectId | string | No | Project ID. Optional; falls back to the default project. |
type | "web" | "server" | No | Deployment type filter for list. |
status | string | No | Status filter for list. |
wait | boolean | No | Wait for deploy to complete (default: true). Only used with deploy. |
flowName | string | No | Flow name for multi-settings flows. Only used with deploy. |
When a flow has more than one active deployment and no slug is supplied, get and delete return a MULTIPLE_DEPLOYMENTS error with a details[] list so the caller can pick a specific deployment. Soft-deleted deployments are always excluded.
{
"error": "Flow flow_abc has 2 active deployments; pass slug to disambiguate",
"code": "MULTIPLE_DEPLOYMENTS",
"details": [
{ "slug": "abc123456789", "type": "web", "status": "active", "updatedAt": "2026-04-20T00:00:00.000Z" },
{ "slug": "def987654321", "type": "web", "status": "active", "updatedAt": "2026-04-21T00:00:00.000Z" }
]
}
Resources
| URI | Description |
|---|---|
walkeros://reference/flow-schema | Flow.Config structure and connection rules |
walkeros://reference/event-model | Event naming, properties, auto-populated fields |
walkeros://reference/mapping | Mapping syntax (data/map/loop/set/condition/consent/policy) |
walkeros://reference/consent | Consent model (destination/rule/field level) |
walkeros://reference/variables | Variable patterns ($var/$env/$def/$code/$store) |
walkeros://reference/contract | Event schemas, wildcards, inheritance |
walkeros://reference/openapi | OpenAPI 3.1 specification |
walkeros://reference/packages | Full package catalog |
walkeros://schema/{packageName} | Per-package JSON schemas |
Prompts
| Prompt | Description |
|---|---|
add-step | Add a source, destination, transformer, or store to a flow |
setup-mapping | Configure event mapping for a step |
manage-contract | Create/update event contracts (bidirectional with mappings) |
use-definitions | Extract shared patterns into definitions and variables |
@walkeros/mcp-source-browser (HTML tagging tools)
Generate, parse, and validate walkerOS data-elb HTML attributes using real DOM
parsing (JSDOM). No API token or CLI dependency required.
Installation
Tools (3)
generate_tagging
Generate walkerOS data-elb HTML attributes from structured input. Returns
attribute key-value pairs and an example HTML snippet.
| Parameter | Type | Required | Description |
|---|---|---|---|
entity | string | No | Entity name (creates data-elb="entity") |
data | object | No | Entity properties as key:value pairs |
action | object | No | Trigger:action pairs for data-elbaction (nearest entity) |
actions | object | No | Trigger:action pairs for data-elbactions (all entities) |
context | object | No | Context properties for data-elbcontext |
globals | object | No | Global properties for data-elbglobals |
link | object | No | Link relationships for data-elblink |
prefix | string | No | Custom prefix (default: data-elb) |
At least one parameter must be provided.
parse_tagging
Parse HTML with data-elb attributes using real DOM parsing (JSDOM). Extracts
all walkerOS events and globals.
| Parameter | Type | Required | Description |
|---|---|---|---|
html | string | Yes | HTML snippet with data-elb attributes |
prefix | string | No | Custom prefix (default: data-elb) |
validate_tagging
Validate HTML data-elb tagging for common mistakes. Checks for orphan actions,
missing entities, unknown triggers, orphan properties, and entities without
actions.
| Parameter | Type | Required | Description |
|---|---|---|---|
html | string | Yes | HTML snippet to validate |
prefix | string | No | Custom prefix (default: data-elb) |
Resources
| URI | Description |
|---|---|
walkeros://docs/tagging/html-attributes | Complete guide to data-elb HTML attribute tagging |
walkeros://docs/tagging/tagger | createTagger() fluent API reference |
Example workflows
Create and validate a flow
Ask your AI assistant:
"Create a new web flow, add a GA4 destination, then validate it."
The assistant uses flow_load to create a skeleton, the add-step prompt to
add GA4, and flow_validate to check the result.
Simulate events
"Simulate a page view event through my flow at ./flow.json."
The assistant calls flow_simulate and returns per-destination results showing
which destinations received the event.
Deploy a flow
"Deploy flow cfg_abc123 and wait for it to finish."
The assistant calls deploy_manage({ action: "deploy", flowId: "cfg_abc123" }) and
streams progress updates through bundling, publishing, and activation.
Preview a flow on a live site
"Create a preview of my demo settings on flow_abc123 and give me the link to open on https://example.com."
The assistant calls flow_manage({ action: "preview_create", flowId: "flow_abc123", flowName: "demo", siteUrl: "https://example.com" }) and returns
the activationUrl the user clicks to activate preview mode on their site.
Running flow_manage({ action: "preview_delete", … }) later removes the
bundle; the production walker self-heals on visitors' next page load.
Set up event mapping
"Help me set up mapping for the gtag destination in my flow."
The assistant uses the setup-mapping prompt, reads the mapping reference
resource, fetches package examples, and generates mapping rules.
Generate HTML tagging
"Generate data-elb attributes for a promotion entity with name 'Summer Sale' and a click action."
The assistant calls generate_tagging with entity: "promotion",
data: { name: "Summer Sale" }, and action: { click: "click" }, returning
ready-to-use HTML attributes.
Discover a package
"What configuration does the Snowplow destination need?"
The assistant calls package_search for @walkeros/web-destination-snowplow,
then package_get to fetch schemas, hints, and examples.
Next steps
- CLI: Learn about the underlying CLI commands
- Flow configuration: Understand flow structure
- HTML attributes: Learn about
data-elbtagging - MCP specification: Learn about the Model Context Protocol