@walkeros/mcp 4.8.0 → 4.8.1-next-1792019907609

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  # @walkeros/mcp
8
8
 
9
- Model Context Protocol server for walkerOS flow development. Gives an AI
10
- assistant the tools to discover packages, build a flow configuration, validate
11
- it, simulate events through it, bundle it, and deploy it.
9
+ The local walkerOS MCP server: validate, simulate, bundle and push flows on your
10
+ own machine; the hosted server at https://app.walkeros.io/api/mcp covers what
11
+ the walkerOS app stores.
12
12
 
13
13
  [Documentation](https://www.walkeros.io/docs/apps/mcp) •
14
14
  [NPM Package](https://www.npmjs.com/package/@walkeros/mcp) •
@@ -16,6 +16,12 @@ it, simulate events through it, bundle it, and deploy it.
16
16
 
17
17
  ## Installation
18
18
 
19
+ ```bash
20
+ npm install @walkeros/mcp
21
+ ```
22
+
23
+ ## Quick start
24
+
19
25
  The server runs over stdio and is started by your MCP client. Add it to the
20
26
  client's configuration:
21
27
 
@@ -30,184 +36,10 @@ client's configuration:
30
36
  }
31
37
  ```
32
38
 
33
- | Client | File |
34
- | -------------- | ---------------------------------------------------------- |
35
- | Claude Code | `.mcp.json` in the project root |
36
- | Cursor | `.cursor/mcp.json` in the project root |
37
- | Claude Desktop | `claude_desktop_config.json` |
38
- | VS Code | `.vscode/mcp.json`, with `servers` instead of `mcpServers` |
39
-
40
- In Claude Code you can also install the walkerOS plugin, which registers this
41
- server, the tagging server, and the walkerOS skills in one step:
42
-
43
- ```
44
- /plugin marketplace add elbwalker/walkerOS
45
- /plugin install walkeros@elbwalker
46
- ```
47
-
48
- To install the binary directly instead of running it through `npx`:
49
-
50
- ```bash
51
- npm install @walkeros/mcp
52
- ```
53
-
54
- ## No account required
55
-
56
- The server starts, registers all tools, and runs the whole local loop without
57
- any credentials. `auth` reports `{ "authenticated": false }` and the local tools
58
- work regardless. Only the walkerOS cloud tools need a credential.
59
-
60
- Two ways to get one:
61
-
62
- - **`auth` with `action: "login"`** runs the RFC 8628 device authorization
63
- grant. It answers with a URL, you approve it in a browser you are already
64
- signed in to, and a second call with the same `deviceCode` resumes polling
65
- until the approval lands. The session that results refreshes itself, and it
66
- appears in the app under Account, Connected apps, where disconnecting it takes
67
- effect on the next call. `auth` with `action: "logout"` revokes it.
68
- - **`WALKEROS_TOKEN`** carries an automation token (`wos_pat_...`) minted in the
69
- app under Account, then Automation tokens. It is used as-is and never
70
- refreshed, which is what a CI job or a headless server wants.
71
-
72
- There is no endpoint that mints a token from another token, and nothing issues
73
- `sk-walkeros-` or `mcp-walkeros-` values any more; rows carrying them keep
74
- verifying until they expire.
75
-
76
- ## Quick start
77
-
78
- Five tools cover building a flow from nothing to a tested configuration, and all
79
- five run locally:
80
-
81
- 1. **`flow_load`** creates an empty flow for a platform, or loads an existing
82
- one from a file, URL, or inline JSON.
83
- 2. **`package_search`** finds the exact package names for the sources,
84
- destinations, transformers, and stores the flow needs. Never guess a package
85
- name, search for it.
86
- 3. **`package_get`** returns that package's configuration schema, hints, and
87
- worked examples, so the config is written against the real shape.
88
- 4. **`flow_validate`** checks the result. Fix and re-validate until it passes.
89
- 5. **`flow_simulate`** pushes an event through the flow with vendor calls mocked
90
- and shows what each step produced.
91
-
92
- ## Tools
93
-
94
- The server registers 19 tools.
95
-
96
- ### Local, no account
97
-
98
- | Tool | Description |
99
- | ---------------- | ------------------------------------------------------------------------------------ |
100
- | `flow_load` | Load a flow from a file path, URL, inline JSON, or flow ID, or create an empty one |
101
- | `flow_validate` | Validate an event, flow config, mapping rule, or data contract |
102
- | `flow_simulate` | Run an event through a flow with mocked vendor calls and inspect each step |
103
- | `flow_bundle` | Compile a flow into a tree-shaken, deployable JavaScript bundle |
104
- | `flow_push` | Push a real event through a flow to real destinations, making real API calls |
105
- | `flow_examples` | List the step examples in a flow, the fixtures simulation can replay |
106
- | `package_search` | Find packages by name, type, or platform. The entry point for package discovery |
107
- | `package_get` | Read one package's schemas, configuration hints, and examples by exact name |
108
- | `diagnostics` | Report MCP and CLI versions, app URL, app reachability, and the API contract verdict |
109
-
110
- ### walkerOS cloud
111
-
112
- | Tool | Description |
113
- | ------------------ | ----------------------------------------------------------------------------------------- |
114
- | `auth` | Check login status, log in through the device code flow, or log out |
115
- | `project_manage` | List, create, update, or delete projects, and set the default one |
116
- | `flow_manage` | List, create, update, delete, or duplicate saved flows, and manage their previews |
117
- | `deploy_manage` | Deploy a flow and list, inspect, or delete its deployments |
118
- | `secret_manage` | Manage a flow's `$secret.<NAME>` values. Write-mostly, values are never returned |
119
- | `observe_session` | Start, inspect, or stop an Observe session, a time-boxed window on one running flow |
120
- | `observe_journeys` | Read the assembled journeys for an observed flow, each event traced across web and server |
121
- | `hub_manage` | Read a flow's release history and the reasoning behind it, and add to the discussion |
122
- | `frame_manage` | Read the frames of a measurement plan, the named rectangles and the marks inside them |
123
- | `feedback` | Send feedback about walkerOS |
124
-
125
- ## Resources
126
-
127
- | URI | Content |
128
- | ---------------------------------- | --------------------------------------------------------------- |
129
- | `walkeros://reference/flow-schema` | Flow configuration structure and connection rules |
130
- | `walkeros://reference/event-model` | Event naming, properties, and auto-populated fields |
131
- | `walkeros://reference/mapping` | Mapping syntax: data, map, loop, set, condition, policy |
132
- | `walkeros://reference/consent` | The consent model at destination and field level |
133
- | `walkeros://reference/variables` | Variable patterns: `$var`, `$env`, `$secret`, `$code`, `$store` |
134
- | `walkeros://reference/contract` | Event schemas, wildcards, and inheritance |
135
- | `walkeros://reference/openapi` | The live OpenAPI 3.1 document of the app this server talks to |
136
- | `walkeros://reference/packages` | The full package catalog |
137
- | `walkeros://schema/{packageName}` | JSON schema for one package |
138
-
139
- Read these before writing a configuration by hand.
140
-
141
- ## Prompts
142
-
143
- | Prompt | Purpose |
144
- | ----------------- | ------------------------------------------------------------------ |
145
- | `add-step` | Add a source, destination, transformer, or store to a flow |
146
- | `setup-mapping` | Configure event mapping for a step |
147
- | `manage-contract` | Create or update event contracts, in both directions with mappings |
148
-
149
- ## Environment variables
150
-
151
- | Variable | Required | Default | Purpose |
152
- | --------------------- | -------- | ------------------------- | -------------------------------------------------------------------------- |
153
- | `WALKEROS_TOKEN` | No | none | Automation token (`wos_pat_...`), an alternative to the `auth` tool login |
154
- | `WALKEROS_PROJECT_ID` | No | none | Project (`proj_...`) for calls without `projectId`, ahead of `set_default` |
155
- | `WALKEROS_APP_URL` | No | `https://app.walkeros.io` | Base URL override |
156
-
157
- ## Programmatic usage
158
-
159
- The package exports a transport-agnostic server factory, so a host application
160
- can mount the protocol over HTTP instead of running the stdio binary:
161
-
162
- ```typescript
163
- import {
164
- createWalkerOSMcpServer,
165
- createHostedRuntime,
166
- HttpToolClient,
167
- createStreamableHttpHandler,
168
- } from '@walkeros/mcp';
169
-
170
- const client = new HttpToolClient();
171
- const server = createWalkerOSMcpServer({
172
- client,
173
- version: '1.0.0',
174
- runtime: createHostedRuntime(client),
175
- });
176
-
177
- export const POST = createStreamableHttpHandler(server, {
178
- sessionIdGenerator: () => crypto.randomUUID(),
179
- });
180
- ```
181
-
182
- The server reads, bundles and runs flows only through a runtime, which decides
183
- what the process it lives in may do. `createHostedRuntime(client)` is the
184
- default when `runtime` is omitted and the right choice for anything reached over
185
- the network: it loads inline JSON and saved flow ids, refuses local file paths
186
- and URLs, and never bundles, simulates or pushes in the host process.
187
- `createLocalRuntime()` keeps every capability, including local files, URLs and
188
- in-process execution, and belongs only on the user's own machine; the stdio
189
- binary uses it.
190
-
191
- To use the tool registry without the MCP protocol, for example with the Vercel
192
- AI SDK, call `createToolHandlers(client, version, runtime)` or import
193
- `TOOL_DEFINITIONS` and supply your own `ToolClient`. The stdio binary stays
194
- available as `@walkeros/mcp/stdio` and the `walkeros-mcp` bin entry.
195
-
196
- A `ToolClient` served inside a host that authenticates every request itself
197
- returns `'host'` from `credentialSource()`. The `auth` tool then reports the
198
- connection as logged in, answers `login` with "no login needed" and refuses
199
- `logout`, which never reaches the client: the connection ends in the host.
200
-
201
- A `ToolClient` may implement `checkContract()` and `openapiDocument()`. The
202
- `diagnostics` tool reports the first as its contract verdict, `unknown` when it
203
- is absent; the `walkeros://reference/openapi` resource serves the second.
204
- `HttpToolClient` implements both against the app it talks to. The tool roster
205
- ships as `@walkeros/mcp/surface.json`.
206
-
207
39
  ## Documentation
208
40
 
209
- Full parameter tables, workflows, and examples live in the docs:
210
- **https://www.walkeros.io/docs/apps/mcp**
41
+ Tools, resources, prompts, programmatic usage and the hosted server live in the
42
+ docs: **https://www.walkeros.io/docs/apps/mcp**
211
43
 
212
44
  ## Contribute
213
45