meguro-mcp 0.2.8 → 0.2.9

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 CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  All notable changes to `meguro-mcp` are recorded here. Versions follow Semantic Versioning.
4
4
 
5
+ ## 0.2.9 — 2026-08-10
6
+
7
+ - Keeps the full real-store history-run family in the public STDIO registry while the hosted OAuth
8
+ surface now teaches and exposes only the practice-world run lane.
9
+ - Adds immutable getting-started v7, product-guide v4, and documentation-index v2 resources with
10
+ hosted-first control-plane guidance, Gate-policy v2 citations, and one honest STDIO history-lane
11
+ bridge.
12
+ - Reconciles `usage_read` with the exempt auto-provisioned sample store shown by `stores_list`, while
13
+ preserving every existing tool name, input schema, and prior documentation byte stream.
14
+
5
15
  ## 0.2.8 — 2026-08-09
6
16
 
7
17
  - Adds `practice_runs_list` so a cold MCP-only evaluator can discover existing practice attempts
package/README.md CHANGED
@@ -182,11 +182,11 @@ See [the agency quickstart](../../docs/agency-practice-run-quickstart.md) and [H
182
182
  ## Advanced: CI or local STDIO
183
183
 
184
184
  Use the public STDIO package for CI, local automation, or clients without hosted Streamable HTTP and
185
- OAuth support. It requires a workspace-bound `meg_sk_…` API key and exposes the full 46-tool local
185
+ OAuth support. It requires a workspace-bound `meg_sk_…` API key and exposes the full 47-tool local
186
186
  surface. Pin the exact public version in client configuration so a quickstart stays reproducible:
187
187
 
188
188
  ```bash
189
- npx -y meguro-mcp@0.2.8
189
+ npx -y meguro-mcp@0.2.9
190
190
  ```
191
191
 
192
192
  ### Environment
@@ -204,7 +204,7 @@ claude mcp add meguro \
204
204
  -e MEGURO_API_BASE_URL=https://api-dev.meguro.io \
205
205
  -e MEGURO_API_TOKEN=meg_sk_... \
206
206
  -e MEGURO_DASHBOARD_URL=https://... \
207
- -- npx -y meguro-mcp@0.2.8
207
+ -- npx -y meguro-mcp@0.2.9
208
208
  ```
209
209
 
210
210
  ### Register — Cursor (`.cursor/mcp.json`)
@@ -214,7 +214,7 @@ claude mcp add meguro \
214
214
  "mcpServers": {
215
215
  "meguro": {
216
216
  "command": "npx",
217
- "args": ["-y", "meguro-mcp@0.2.8"],
217
+ "args": ["-y", "meguro-mcp@0.2.9"],
218
218
  "env": {
219
219
  "MEGURO_API_BASE_URL": "https://api-dev.meguro.io",
220
220
  "MEGURO_API_TOKEN": "meg_sk_...",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meguro-mcp",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Meguro control-plane MCP server: drive worlds, runs, and verdicts from your own AI tools.",
package/src/docs.mjs CHANGED
@@ -20,9 +20,11 @@ const GETTING_STARTED_LATEST_VERSION = 3;
20
20
  const GETTING_STARTED_V4_VERSION = 4;
21
21
  const GETTING_STARTED_V5_VERSION = 5;
22
22
  const GETTING_STARTED_V6_VERSION = 6;
23
+ const GETTING_STARTED_V7_VERSION = 7;
23
24
  const PRODUCT_GUIDE_VERSION = 1;
24
25
  const PRODUCT_GUIDE_V2_VERSION = 2;
25
26
  const PRODUCT_GUIDE_V3_VERSION = 3;
27
+ const PRODUCT_GUIDE_V4_VERSION = 4;
26
28
  const RECEIPT_GUIDE_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_VERSION}`;
27
29
  const RECEIPT_GUIDE_V2_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V2_VERSION}`;
28
30
  const RECEIPT_GUIDE_V3_URI = `meguro://docs/receipt-guide/v${RECEIPT_GUIDE_V3_VERSION}`;
@@ -38,10 +40,13 @@ const GETTING_STARTED_LATEST_URI = `meguro://docs/getting-started/v${GETTING_STA
38
40
  const GETTING_STARTED_V4_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V4_VERSION}`;
39
41
  const GETTING_STARTED_V5_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V5_VERSION}`;
40
42
  const GETTING_STARTED_V6_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V6_VERSION}`;
43
+ const GETTING_STARTED_V7_URI = `meguro://docs/getting-started/v${GETTING_STARTED_V7_VERSION}`;
41
44
  const PRODUCT_GUIDE_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_VERSION}`;
42
45
  const PRODUCT_GUIDE_V2_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V2_VERSION}`;
43
46
  const PRODUCT_GUIDE_V3_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V3_VERSION}`;
47
+ const PRODUCT_GUIDE_V4_URI = `meguro://docs/product-guide/v${PRODUCT_GUIDE_V4_VERSION}`;
44
48
  export const DOCUMENTATION_INDEX_URI = 'meguro://docs/index/v1';
49
+ export const DOCUMENTATION_INDEX_V2_URI = 'meguro://docs/index/v2';
45
50
 
46
51
  const DOCUMENTATION_CURRENCY_V1 = deepFreeze({
47
52
  indexVersion: 1,
@@ -53,7 +58,17 @@ const DOCUMENTATION_CURRENCY_V1 = deepFreeze({
53
58
  'receipt-guide': RECEIPT_GUIDE_V7_URI,
54
59
  },
55
60
  });
56
- const CURRENT_DOCUMENTATION_CURRENCY = DOCUMENTATION_CURRENCY_V1;
61
+ const DOCUMENTATION_CURRENCY_V2 = deepFreeze({
62
+ indexVersion: 2,
63
+ currentUriByTopic: {
64
+ 'gate-policy': GATE_POLICY_V2_URI,
65
+ 'getting-started': GETTING_STARTED_V7_URI,
66
+ index: DOCUMENTATION_INDEX_V2_URI,
67
+ 'product-guide': PRODUCT_GUIDE_V4_URI,
68
+ 'receipt-guide': RECEIPT_GUIDE_V7_URI,
69
+ },
70
+ });
71
+ const CURRENT_DOCUMENTATION_CURRENCY = DOCUMENTATION_CURRENCY_V2;
57
72
 
58
73
  function documentationVersionFromUri(uri) {
59
74
  const match = /\/v([1-9][0-9]*)$/u.exec(uri);
@@ -61,12 +76,12 @@ function documentationVersionFromUri(uri) {
61
76
  return Number(match[1]);
62
77
  }
63
78
 
64
- function documentationIndexText(currency) {
79
+ function documentationIndexText(currency, publishedUri = DOCUMENTATION_INDEX_URI) {
65
80
  const rows = Object.entries(currency.currentUriByTopic).sort(([left], [right]) => codepointCompare(left, right));
66
81
  return [
67
82
  `# Meguro documentation index v${currency.indexVersion}`,
68
83
  '',
69
- `Published URI: \`${DOCUMENTATION_INDEX_URI}\``,
84
+ `Published URI: \`${publishedUri}\``,
70
85
  '',
71
86
  'This immutable index records the current published version of every documentation family at issuance.',
72
87
  'Use the `meguro/status` annotations from `resources/list` for live currency; cited versioned resources never change.',
@@ -1248,6 +1263,38 @@ a plan, consent for the human, or reveal a credential that the human has not gra
1248
1263
  ## Question-to-source routing`,
1249
1264
  )
1250
1265
  .replace('Read \`meguro://docs/getting-started/v1\`.', `Read \`${GETTING_STARTED_V6_URI}\`.`);
1266
+ const REAL_STORE_HISTORY_LANE_BRIDGE = 'Meguro\'s separate real-store history lane still exists in the public STDIO distribution for internal and CI use; hosted OAuth MCP does not expose or teach that lane.';
1267
+ const GETTING_STARTED_V7_TEXT = GETTING_STARTED_V6_TEXT
1268
+ .replace('# Getting started with Meguro v6', '# Getting started with Meguro v7')
1269
+ .replace(`Published URI: \`${GETTING_STARTED_V6_URI}\``, `Published URI: \`${GETTING_STARTED_V7_URI}\``)
1270
+ .replaceAll('meguro://docs/gate-policy/v1', 'meguro://docs/gate-policy/v2')
1271
+ .replace(
1272
+ `The local \`meguro-mcp\` server is the Meguro control plane: it discovers stores and drives run
1273
+ lifecycle. The practice store's returned Shopify-shaped Admin endpoint is the data plane used by the
1274
+ commerce agent under evaluation. A practice store's storefront MCP endpoint is neither of those and
1275
+ cannot replace the local control plane or the Shopify-shaped Admin endpoint.`,
1276
+ `Hosted OAuth MCP is the recommended control plane for interactive agents. The public STDIO
1277
+ distribution is the CI and internal fallback. The practice store's returned Shopify-shaped Admin
1278
+ endpoint is the data plane used by the commerce agent under evaluation; its storefront MCP endpoint
1279
+ is neither control plane nor a substitute for the Shopify-shaped Admin endpoint.
1280
+
1281
+ ${REAL_STORE_HISTORY_LANE_BRIDGE}`,
1282
+ );
1283
+ const PRODUCT_GUIDE_V4_TEXT = PRODUCT_GUIDE_V3_TEXT
1284
+ .replace('# Meguro product guide v3', '# Meguro product guide v4')
1285
+ .replace(`Published URI: \`${PRODUCT_GUIDE_V3_URI}\``, `Published URI: \`${PRODUCT_GUIDE_V4_URI}\``)
1286
+ .replaceAll('meguro://docs/gate-policy/v1', 'meguro://docs/gate-policy/v2')
1287
+ .replace(`Read \`${GETTING_STARTED_V6_URI}\`.`, `Read \`${GETTING_STARTED_V7_URI}\`.`)
1288
+ .replace(
1289
+ '- **Public STDIO MCP** is the local and CI fallback.',
1290
+ `- **Public STDIO MCP** is the CI and internal fallback.
1291
+
1292
+ ${REAL_STORE_HISTORY_LANE_BRIDGE}`,
1293
+ )
1294
+ .replace(
1295
+ '| What runs exist or what happened? | Call \`runs_list\` and the relevant status, report, or impact tool. |',
1296
+ '| What practice runs exist or what happened? | Call \`practice_runs_list\` and the relevant \`practice_run_status\`, \`practice_run_report\`, or \`practice_run_impact\` tool. |',
1297
+ );
1251
1298
  const RECEIPT_GUIDE_V6_TEXT = simulationVocabularyText(
1252
1299
  RECEIPT_GUIDE_V5_TEXT
1253
1300
  .replace('# Meguro receipt guide v5', '# Meguro receipt guide v6')
@@ -1415,6 +1462,15 @@ const CATALOG = buildDocumentationCatalog([
1415
1462
  description: `World-first discovery sequence for Shopify Admin GraphQL ${ADMIN_API_SUPPORTED_VERSIONS.join(' and ')} with default ${ADMIN_API_DEFAULT_VERSION}.`,
1416
1463
  text: GETTING_STARTED_V6_TEXT,
1417
1464
  },
1465
+ {
1466
+ topic: 'getting-started',
1467
+ version: GETTING_STARTED_V7_VERSION,
1468
+ uri: GETTING_STARTED_V7_URI,
1469
+ name: 'Getting started with Meguro v7',
1470
+ title: 'Getting started with Meguro v7',
1471
+ description: `Hosted-first practice-store sequence for Shopify Admin GraphQL ${ADMIN_API_SUPPORTED_VERSIONS.join(' and ')} with default ${ADMIN_API_DEFAULT_VERSION}.`,
1472
+ text: GETTING_STARTED_V7_TEXT,
1473
+ },
1418
1474
  {
1419
1475
  topic: 'product-guide',
1420
1476
  version: PRODUCT_GUIDE_VERSION,
@@ -1443,6 +1499,15 @@ const CATALOG = buildDocumentationCatalog([
1443
1499
  description: 'World-first product concepts, evidence boundaries, surface responsibilities, and question-to-source routing.',
1444
1500
  text: PRODUCT_GUIDE_V3_TEXT,
1445
1501
  },
1502
+ {
1503
+ topic: 'product-guide',
1504
+ version: PRODUCT_GUIDE_V4_VERSION,
1505
+ uri: PRODUCT_GUIDE_V4_URI,
1506
+ name: 'Meguro product guide v4',
1507
+ title: 'Meguro product guide v4',
1508
+ description: 'Hosted-first product concepts, practice-run vocabulary, evidence boundaries, and question-to-source routing.',
1509
+ text: PRODUCT_GUIDE_V4_TEXT,
1510
+ },
1446
1511
  {
1447
1512
  topic: 'index',
1448
1513
  version: DOCUMENTATION_CURRENCY_V1.indexVersion,
@@ -1452,6 +1517,15 @@ const CATALOG = buildDocumentationCatalog([
1452
1517
  description: 'Immutable current-version pointers for every published Meguro documentation family.',
1453
1518
  text: documentationIndexText(DOCUMENTATION_CURRENCY_V1),
1454
1519
  },
1520
+ {
1521
+ topic: 'index',
1522
+ version: DOCUMENTATION_CURRENCY_V2.indexVersion,
1523
+ uri: DOCUMENTATION_INDEX_V2_URI,
1524
+ name: 'Meguro documentation index v2',
1525
+ title: 'Meguro documentation index v2',
1526
+ description: 'Immutable current-version pointers for every published Meguro documentation family after the hosted run-lane separation.',
1527
+ text: documentationIndexText(DOCUMENTATION_CURRENCY_V2, DOCUMENTATION_INDEX_V2_URI),
1528
+ },
1455
1529
  {
1456
1530
  topic: 'receipt-guide',
1457
1531
  version: RECEIPT_GUIDE_VERSION,
package/src/server.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  } from './protocol.mjs';
15
15
  import { createTools, redactSecrets } from './tools.mjs';
16
16
 
17
- const SERVER_INFO = { name: 'meguro', version: '0.2.8' };
17
+ const SERVER_INFO = { name: 'meguro', version: '0.2.9' };
18
18
  const PROTOCOL_VERSION = '2025-03-26';
19
19
 
20
20
  const tools = createTools({
package/src/tools.mjs CHANGED
@@ -1055,6 +1055,11 @@ function usageProjection(value) {
1055
1055
  },
1056
1056
  limits: {
1057
1057
  activeStores,
1058
+ activeStoreAccounting: {
1059
+ basis: 'metered-active-stores',
1060
+ exemptionMarker: 'auto-provisioned-sample-store',
1061
+ note: 'activeStores counts metered stores. A stores_list row marked auto-provisioned-sample-store is an exempt sample store and is not counted here.',
1062
+ },
1058
1063
  activeStoreLimit,
1059
1064
  activeWorkspaces,
1060
1065
  activeWorkspaceLimit,