meguro-mcp 0.2.4 → 0.2.6
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/CHANGELOG.md +24 -0
- package/README.md +63 -25
- package/RELEASING.md +10 -5
- package/package.json +1 -1
- package/src/admin-versions.generated.mjs +32 -0
- package/src/docs.mjs +641 -11
- package/src/protocol.mjs +37 -0
- package/src/server.mjs +25 -8
- package/src/tools.mjs +729 -89
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `meguro-mcp` are recorded here. Versions follow Semantic Versioning.
|
|
4
4
|
|
|
5
|
+
## 0.2.6 — 2026-08-08
|
|
6
|
+
|
|
7
|
+
- Adds immutable `meguro://docs/getting-started/v6` and `meguro://docs/product-guide/v3` resources
|
|
8
|
+
that lead with the practice world, Store time, and the receipt as the store's memory of a run.
|
|
9
|
+
- Keeps the executable discovery sequence and evidence boundaries while stating which account,
|
|
10
|
+
plan, OAuth, and workspace-key actions require the human.
|
|
11
|
+
- Gives both resource URIs and `docs_read` fallbacks in the initialization instructions, with no
|
|
12
|
+
default evaluator address.
|
|
13
|
+
- Consolidates the current 46-tool source. Against public 0.2.5, 23 definitions remain byte-identical,
|
|
14
|
+
21 carry already-landed contracts, and the exact new identities are `gate_configure` plus
|
|
15
|
+
`gate_evaluate`. This release changes no base tool contract except registry-derived `docs_read`
|
|
16
|
+
metadata for the two new immutable guides.
|
|
17
|
+
|
|
18
|
+
## 0.2.5 — 2026-08-02
|
|
19
|
+
|
|
20
|
+
- Adds the immutable `meguro://docs/product-guide/v1` resource and matching `product-guide`
|
|
21
|
+
`docs_read` topic for stable product concepts, evidence boundaries, and question routing.
|
|
22
|
+
- Expands `docs_read` metadata from receipt-and-Gate-only wording to general Meguro documentation
|
|
23
|
+
while retaining the existing tool identity and behavior annotations.
|
|
24
|
+
- Directs new evaluators to Getting Started and general Meguro questions to Product Guide through
|
|
25
|
+
byte-identical public and hosted initialize instructions.
|
|
26
|
+
- Keeps the public registry at exactly 44 tools, the hosted registry at exactly 42 remote-safe tools,
|
|
27
|
+
and all four previously published documentation byte streams and digests unchanged.
|
|
28
|
+
|
|
5
29
|
## 0.2.4 — 2026-08-02
|
|
6
30
|
|
|
7
31
|
- Adds the immutable `meguro://docs/getting-started/v1` resource and matching `getting-started`
|
package/README.md
CHANGED
|
@@ -9,34 +9,45 @@ This is the **control plane** (world/run management, for the developer's tools).
|
|
|
9
9
|
|
|
10
10
|
Dependency-free, no build step: the server is plain Node ≥ 20.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Recommended: hosted Streamable HTTP + OAuth
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
For an interactive client that supports Streamable HTTP and browser OAuth, open Meguro Console → Settings →
|
|
15
|
+
Connection and copy the hosted MCP URL for that environment. Add it as a Streamable HTTP MCP server,
|
|
16
|
+
save or restart if the client asks, then choose Authenticate. Your browser opens so you can sign in to
|
|
17
|
+
Meguro and authorize the requested access. The default path needs no API key, environment variable,
|
|
18
|
+
package command, or pasted token.
|
|
15
19
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
The configured hosted endpoints are environment-specific: dev uses
|
|
21
|
+
`https://mcp-dev.meguro.io/mcp`, stage uses `https://mcp-stage.meguro.io/mcp`, and production uses
|
|
22
|
+
`https://mcp.meguro.io/mcp`. Use the URL shown by the Console for the environment you intend to access.
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
After connecting, read `meguro://docs/getting-started/v6` for the world-first operating sequence;
|
|
25
|
+
for general Meguro questions, read `meguro://docs/product-guide/v3`. Both are available through
|
|
26
|
+
`resources/read` or the matching `docs_read({ topic, version })` fallback.
|
|
22
27
|
|
|
23
|
-
|
|
28
|
+
The hosted server exposes 44 customer-safe tools and deliberately excludes `admin_probe` and
|
|
29
|
+
`admin_schema`. Active grants are visible and revocable under Console → Settings → Connection → MCP
|
|
30
|
+
authorizations.
|
|
24
31
|
|
|
25
|
-
|
|
32
|
+
## Transport boundaries
|
|
33
|
+
|
|
34
|
+
The public package speaks newline-delimited JSON-RPC over stdin/stdout and uses
|
|
35
|
+
`MEGURO_API_BASE_URL` plus `MEGURO_API_TOKEN` for its authenticated HTTP calls. It is the local/CI
|
|
36
|
+
fallback, separate from the hosted Streamable HTTP OAuth endpoint.
|
|
26
37
|
|
|
27
38
|
Practice stores separately expose a Storefront shopper/data-plane MCP endpoint at `https://<worldId>.meguro.io/api/mcp`. That endpoint is not this server and cannot start runs, reveal Admin connection details, inspect schemas, or collect receipts.
|
|
28
39
|
|
|
29
|
-
Console provides fast trusted proof and evidence inspection; the agency agent normally remains in its own environment. A practice-store endpoint/token remains stable while commerce time moves through explicit run tools. Practice evidence is deterministic scenario
|
|
40
|
+
Console provides fast trusted proof and evidence inspection; the agency agent normally remains in its own environment. A practice-store endpoint/token remains stable while commerce time moves through explicit run tools. Practice evidence is deterministic scenario simulation, not merchant forecasting. Console-proof actions are not credited to the agent, and Receipt Gate evidence is not public certification.
|
|
30
41
|
|
|
31
42
|
## Tools
|
|
32
43
|
|
|
33
44
|
<!-- BEGIN GENERATED MCP TOOL TABLE -->
|
|
34
45
|
<!-- Run `npm run docs:tools --workspace meguro-mcp` to refresh this section from `tools/list`. -->
|
|
35
|
-
This table is generated from the server's live `tools/list` response (
|
|
46
|
+
This table is generated from the server's live `tools/list` response (46 tools).
|
|
36
47
|
|
|
37
48
|
| Tool | Title | Behavior annotations |
|
|
38
49
|
|---|---|---|
|
|
39
|
-
| `docs_read` | Read Meguro
|
|
50
|
+
| `docs_read` | Read Meguro product and evidence documentation | read-only · non-destructive · idempotent · closed-world |
|
|
40
51
|
| `templates_list` | List practice-store templates | read-only · non-destructive · idempotent · closed-world |
|
|
41
52
|
| `stores_list` | List practice stores | read-only · non-destructive · idempotent · closed-world |
|
|
42
53
|
| `store_create` | Create a practice store | read-write · non-destructive · non-idempotent · closed-world |
|
|
@@ -61,9 +72,11 @@ This table is generated from the server's live `tools/list` response (44 tools).
|
|
|
61
72
|
| `run_ledger` | Read run ledger | read-only · non-destructive · idempotent · closed-world |
|
|
62
73
|
| `run_report` | Read run receipt | read-only · non-destructive · idempotent · closed-world |
|
|
63
74
|
| `run_resume` | Resume a Shopify dev-store run | read-write · non-destructive · non-idempotent · open-world |
|
|
64
|
-
| `runs_diff` | Compare run receipts | read-only · non-destructive · idempotent · closed-world |
|
|
75
|
+
| `runs_diff` | Compare history-run receipts | read-only · non-destructive · idempotent · closed-world |
|
|
76
|
+
| `gate_configure` | Configure the Receipt Gate | read-write · non-destructive · idempotent · closed-world |
|
|
77
|
+
| `gate_evaluate` | Evaluate the Receipt Gate | read-write · non-destructive · non-idempotent · closed-world |
|
|
65
78
|
| `gate_verdict` | Read a Gate verdict | read-only · non-destructive · idempotent · closed-world |
|
|
66
|
-
| `runs_list` | List runs | read-only · non-destructive · idempotent · closed-world |
|
|
79
|
+
| `runs_list` | List history runs | read-only · non-destructive · idempotent · closed-world |
|
|
67
80
|
| `usage_read` | Read usage headroom | read-only · non-destructive · idempotent · closed-world |
|
|
68
81
|
| `twin_diff` | Read a twin impact receipt | read-only · non-destructive · idempotent · closed-world |
|
|
69
82
|
| `exam_preflight` | Check Shopify Exam readiness | read-only · non-destructive · idempotent · open-world |
|
|
@@ -87,10 +100,26 @@ This table is generated from the server's live `tools/list` response (44 tools).
|
|
|
87
100
|
The same versioned customer documentation is available through standard MCP resources in both the
|
|
88
101
|
local stdio server and the hosted OAuth resource server:
|
|
89
102
|
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
103
|
+
| Resource | SHA-256 |
|
|
104
|
+
|---|---|
|
|
105
|
+
| `meguro://docs/gate-policy/v1` | `6d647b3c78fd4e2d93f59a85b90a853096cc73e9cdfd6ba5e3ea505dc07b4aaf` |
|
|
106
|
+
| `meguro://docs/gate-policy/v2` | `e49378fd745f71aab893db34864aefeb7345c9a25000ad328dfba4e44d007469` |
|
|
107
|
+
| `meguro://docs/getting-started/v1` | `afd19ca6576ae2a8fb03c2e143d25d47fb739682f44180541dd13f779a5f29df` |
|
|
108
|
+
| `meguro://docs/getting-started/v2` | `70fdbf36d68a6dd7abb93fe9b403f85c9c0323b3dc3472ab638c6cbe5982ec61` |
|
|
109
|
+
| `meguro://docs/getting-started/v3` | `765cba2b68806f0b1d83255a1742d83ce71ebf7f65f8095e7076cd36e4a1ba6c` |
|
|
110
|
+
| `meguro://docs/getting-started/v4` | `db534eb544e414be353d6cd4db8dfb9e8dba772dcb10d8287a1a27f8736e5307` |
|
|
111
|
+
| `meguro://docs/getting-started/v5` | `156dcf81266f2bd4e4203dbd09661e49a481395ba4a63528f0540d8ea89bc285` |
|
|
112
|
+
| `meguro://docs/getting-started/v6` | `34cf3ab48a32714b0c3edb24a7920843954172c0d5501e60574adc5a1058071f` |
|
|
113
|
+
| `meguro://docs/product-guide/v1` | `e5450c1b4181cec4d6ed0a498dbff1cb25d2e223ff2228928aecbbce9674f074` |
|
|
114
|
+
| `meguro://docs/product-guide/v2` | `b15590df7699f7ad685a30b0698e2c25b5b7b1531afa4e43e9f04a4b38ab9db2` |
|
|
115
|
+
| `meguro://docs/product-guide/v3` | `8dc9e0fae91a2433ea7ca02b9278484250be0d336e2daac96f949da577487dc9` |
|
|
116
|
+
| `meguro://docs/receipt-guide/v1` | `9d8150258765d252cb7cc3bad307acdc429b0435ca22f0362b69cf7471e3a333` |
|
|
117
|
+
| `meguro://docs/receipt-guide/v2` | `7df261021b48ce732e6043a8917f8a2673b1f83ff1d8790927abc18f34fb3f6f` |
|
|
118
|
+
| `meguro://docs/receipt-guide/v3` | `c76b823aed8187834c8ae79a751b53d2720fe7245a31b0b195f440deac9b75cb` |
|
|
119
|
+
| `meguro://docs/receipt-guide/v4` | `4a754c5d2de9899ffaafb704e8174617c9c3dc4aa7c4588811a2a0f37faa9133` |
|
|
120
|
+
| `meguro://docs/receipt-guide/v5` | `b3b3c83390b1a95ab9e0ec926fb84010070e703cd3a3cef8cecd9fef1c50adfe` |
|
|
121
|
+
| `meguro://docs/receipt-guide/v6` | `bda3ef240bdf5e6ca075bd00e51253d5d574621cb3feabf11c070aaf7e40ede2` |
|
|
122
|
+
| `meguro://docs/receipt-guide/v7` | `6dba5de1130382c77cccd4be117c002e531863955dea85d4950b36eeb8ecb6fd` |
|
|
94
123
|
|
|
95
124
|
Use `resources/list` and `resources/read` when the client supports MCP resources. Use
|
|
96
125
|
`docs_read({ topic, version })` in every client, including clients without a resource browser.
|
|
@@ -131,7 +160,6 @@ Use these tool names in order:
|
|
|
131
160
|
7. `practice_run_advance({ attemptId, days: 1, expectedDay, expectedCallSeq })`, using the exact current state cursors. Supply `until` instead of `days` for a supported event stop.
|
|
132
161
|
8. Inspect the aligned checkpoint evidence in Console or the run APIs.
|
|
133
162
|
9. `practice_run_finish({ attemptId })`, then `practice_run_report({ attemptId })` for the run's receipt.
|
|
134
|
-
10. Optionally execute an immutable temporal probe-set revision through the HTTP surface and inspect/export it in Gate.
|
|
135
163
|
|
|
136
164
|
`get_connection_details` deliberately returns `SHOPIFY_ADMIN_ACCESS_TOKEN`: it is the store-scoped
|
|
137
165
|
data-plane credential your commerce agent needs for the exact returned `*.meguro.io` Admin URL. Treat
|
|
@@ -150,7 +178,17 @@ node byo-ci-test/phase7-snippets.mjs mcp
|
|
|
150
178
|
|
|
151
179
|
See [the agency quickstart](../../docs/agency-practice-run-quickstart.md) and [HTTP reference](../../docs/practice-run-http-api.md).
|
|
152
180
|
|
|
153
|
-
##
|
|
181
|
+
## Advanced: CI or local STDIO
|
|
182
|
+
|
|
183
|
+
Use the public STDIO package for CI, local automation, or clients without hosted Streamable HTTP and
|
|
184
|
+
OAuth support. It requires a workspace-bound `meg_sk_…` API key and exposes the full 46-tool local
|
|
185
|
+
surface. Pin the exact public version in client configuration so a quickstart stays reproducible:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
npx -y meguro-mcp@0.2.6
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Environment
|
|
154
192
|
|
|
155
193
|
```
|
|
156
194
|
MEGURO_API_BASE_URL=https://api-dev.meguro.io
|
|
@@ -158,24 +196,24 @@ MEGURO_API_TOKEN=<meg_sk account key from Console → Settings>
|
|
|
158
196
|
MEGURO_DASHBOARD_URL=https://<dashboard-distribution>.cloudfront.net # optional, enables dashboard links
|
|
159
197
|
```
|
|
160
198
|
|
|
161
|
-
|
|
199
|
+
### Register — Claude Code
|
|
162
200
|
|
|
163
201
|
```bash
|
|
164
202
|
claude mcp add meguro \
|
|
165
203
|
-e MEGURO_API_BASE_URL=https://api-dev.meguro.io \
|
|
166
204
|
-e MEGURO_API_TOKEN=meg_sk_... \
|
|
167
205
|
-e MEGURO_DASHBOARD_URL=https://... \
|
|
168
|
-
-- npx -y meguro-mcp@0.2.
|
|
206
|
+
-- npx -y meguro-mcp@0.2.6
|
|
169
207
|
```
|
|
170
208
|
|
|
171
|
-
|
|
209
|
+
### Register — Cursor (`.cursor/mcp.json`)
|
|
172
210
|
|
|
173
211
|
```json
|
|
174
212
|
{
|
|
175
213
|
"mcpServers": {
|
|
176
214
|
"meguro": {
|
|
177
215
|
"command": "npx",
|
|
178
|
-
"args": ["-y", "meguro-mcp@0.2.
|
|
216
|
+
"args": ["-y", "meguro-mcp@0.2.6"],
|
|
179
217
|
"env": {
|
|
180
218
|
"MEGURO_API_BASE_URL": "https://api-dev.meguro.io",
|
|
181
219
|
"MEGURO_API_TOKEN": "meg_sk_...",
|
|
@@ -196,6 +234,6 @@ npm test --workspace meguro-mcp
|
|
|
196
234
|
```
|
|
197
235
|
|
|
198
236
|
The test suite packs the public artifact, installs it into a temporary clean-room project, starts the
|
|
199
|
-
installed binary, and requires `tools/list` to return exactly
|
|
237
|
+
installed binary, and requires `tools/list` to return exactly 46 tools without leaking supplied
|
|
200
238
|
credentials to stdout or stderr. Maintainers should follow [RELEASING.md](./RELEASING.md) for every
|
|
201
239
|
version; release notes are in [CHANGELOG.md](./CHANGELOG.md).
|
package/RELEASING.md
CHANGED
|
@@ -7,9 +7,9 @@ available from the public npm registry.
|
|
|
7
7
|
## Release checklist
|
|
8
8
|
|
|
9
9
|
1. Choose the next Semantic Versioning number.
|
|
10
|
-
2. Update `version` in `package.json`, `SERVER_INFO.version` in `src/server.mjs`,
|
|
11
|
-
`
|
|
12
|
-
|
|
10
|
+
2. Update `version` in `package.json`, `SERVER_INFO.version` in `src/server.mjs`, pinned README
|
|
11
|
+
examples, and `CHANGELOG.md` in one commit. The Console build derives its exact package spec
|
|
12
|
+
from `package.json`; do not add a second version literal to Console source or tests.
|
|
13
13
|
3. Regenerate the README table from the server's actual `tools/list` response. Never add, remove,
|
|
14
14
|
summarize, or reorder tool rows by hand:
|
|
15
15
|
|
|
@@ -29,6 +29,10 @@ available from the public npm registry.
|
|
|
29
29
|
integrity, and negative credential-leak result. The clean-room distribution test is the
|
|
30
30
|
authoritative expected tool count before publication; do not duplicate that count here.
|
|
31
31
|
|
|
32
|
+
For a documentation release, also record the resource count derived from `resources/list`, the
|
|
33
|
+
new immutable URI and SHA-256 pairs, and proof that every earlier resource byte stream and digest
|
|
34
|
+
remains unchanged. Record any registry delta against the preceding public artifact explicitly.
|
|
35
|
+
|
|
32
36
|
5. Stop at the worker handoff. The authenticated publisher confirms npm authentication and the
|
|
33
37
|
intended identity:
|
|
34
38
|
|
|
@@ -56,8 +60,9 @@ available from the public npm registry.
|
|
|
56
60
|
`resources/list` returns the versioned documentation resources. Never put the key in shell history,
|
|
57
61
|
logs, tickets, or chat.
|
|
58
62
|
|
|
59
|
-
8. Only after the registry and clean-room checks pass,
|
|
63
|
+
8. Only after the registry and clean-room checks pass, build and deploy the manifest-derived Console
|
|
64
|
+
quickstart, tag the commit as
|
|
60
65
|
`meguro-mcp-v<version>`, and publish MCP directory listings.
|
|
61
66
|
|
|
62
|
-
If any step fails, do not
|
|
67
|
+
If any step fails, do not deploy the quickstart, tag the release, or publish a
|
|
63
68
|
directory listing.
|
package/package.json
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Generated by scripts/generate-shopify-served-version-corpora.mjs from the reviewed served-version config.
|
|
2
|
+
// Do not hand-edit this file; change the configuration/corpus artifacts and regenerate.
|
|
3
|
+
|
|
4
|
+
export const ADMIN_API_DEFAULT_VERSION = "2026-07";
|
|
5
|
+
export const ADMIN_API_CONFIGURED_VERSION_REGISTRY = Object.freeze([
|
|
6
|
+
{
|
|
7
|
+
"apiVersion": "2026-04",
|
|
8
|
+
"releaseDate": "2026-04-01T17:00:00.000Z",
|
|
9
|
+
"supportedUntil": "2027-04-16T15:00:00.000Z",
|
|
10
|
+
"supportSourceUrl": "https://shopify.dev/docs/api/usage/versioning"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"apiVersion": "2026-07",
|
|
14
|
+
"releaseDate": "2026-07-01T17:00:00.000Z",
|
|
15
|
+
"supportedUntil": "2027-07-16T15:00:00.000Z",
|
|
16
|
+
"supportSourceUrl": "https://shopify.dev/docs/api/usage/versioning"
|
|
17
|
+
}
|
|
18
|
+
]);
|
|
19
|
+
|
|
20
|
+
export function deriveAdminApiVersionRegistry(entries, at = new Date()) {
|
|
21
|
+
const instant = at instanceof Date ? at.getTime() : Date.parse(String(at));
|
|
22
|
+
if (!Number.isFinite(instant)) throw new Error('Admin API version policy requires a valid instant');
|
|
23
|
+
return Object.freeze(entries.map((entry) => Object.freeze({
|
|
24
|
+
...entry,
|
|
25
|
+
lifecycle: instant < Date.parse(entry.supportedUntil) ? 'active' : 'retired',
|
|
26
|
+
})));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const ADMIN_API_VERSION_REGISTRY = deriveAdminApiVersionRegistry(ADMIN_API_CONFIGURED_VERSION_REGISTRY);
|
|
30
|
+
export const ADMIN_API_SUPPORTED_VERSIONS = Object.freeze(ADMIN_API_VERSION_REGISTRY.filter((entry) => entry.lifecycle === 'active').map((entry) => entry.apiVersion));
|
|
31
|
+
if (!ADMIN_API_SUPPORTED_VERSIONS.includes(ADMIN_API_DEFAULT_VERSION)) throw new Error("The default Admin API version is outside Shopify's published support window.");
|
|
32
|
+
export const ADMIN_API_SUPPORTED_VERSION_LABEL = ADMIN_API_SUPPORTED_VERSIONS.join(' and ');
|