@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 +11 -179
- package/dist/chunk-P6JS2RWY.js +6346 -0
- package/dist/chunk-P6JS2RWY.js.map +1 -0
- package/dist/index.d.ts +19 -1363
- package/dist/index.js +542 -5718
- package/dist/index.js.map +1 -1
- package/dist/specs.d.ts +277 -0
- package/dist/specs.js +25 -0
- package/dist/specs.js.map +1 -0
- package/dist/stdio.js +6440 -4909
- package/dist/stdio.js.map +1 -1
- package/package.json +9 -7
- package/src/surface.json +0 -375
package/README.md
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
# @walkeros/mcp
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
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
|
|