@adrien1212balitrand/auros-mcp 1.4.6 → 1.4.10

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.
Files changed (3) hide show
  1. package/README.md +24 -0
  2. package/dist/index.js +529 -12
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -30,6 +30,30 @@ Humans fund [Agent Credits](https://getauros.com/developers/agent-credits) in EU
30
30
 
31
31
  Gap ≠ Activity ≠ Variance. Indicative only.
32
32
 
33
+ ## Intelligence densify (Étape 14 · ask secondary · no Health_Score)
34
+
35
+ | Tool | API / source | Notes |
36
+ |------|--------------|-------|
37
+ | `search` / `resolve_auros_id` | `GET /api/v1/search?q=` | Thin alias resolve · marketing_hero=false |
38
+ | `ask` | `POST /api/v1/ask` | Structured Entity answers · invented=false · not home hero |
39
+ | `get_intelligence` | `GET /api/v1/intelligence` (+ `/entity/{id}`) | Unified façade · mega_score=false |
40
+ | `get_entity` | `GET /api/v1/entity/{id}` | Full unfused join + tips |
41
+ | `get_asset_profile` | Entity `asset_profile` slice | seo_factory=false |
42
+ | `get_evidence_tip` | Entity `evidence_tip` slice | invented_d_press=false |
43
+ | `get_freshness_tip` | Entity `freshness_tip` slice | trade_clock=false |
44
+ | `get_history_machine` | Entity `history_machine` slice | mega_timeline=false |
45
+ | `list_events` | `GET /api/v1/events` | 3 Event Engine types only |
46
+ | `desk_brief` | `GET /api/v1/desk/brief` | Gap ≠ Activity ≠ Variance |
47
+ | `promise_gap_brief` / `activity_brief` / `variance_brief` / `freshness_brief` | briefs | Unfused machine briefs |
48
+ | `get_pulse` / `verify_pulse` | `/api/v1/pulse` | HMAC cite · not a rating |
49
+ | `get_first_meter_path` | `/api/v1/iot/first-meter` | real_device=false |
50
+ | `get_formal_mint_cap` | `/api/v1/protocol/formal-mint` | Not Certora |
51
+ | `get_resource_layer` | `/api/v1/arl/resource-layer` | lab=true · production_settlement=false · hitl=true |
52
+
53
+ Package **1.4.10** in repo — npm publish is founder-blocked (automation / bypass-2FA token).
54
+ Founder command: `./scripts/founder-publish-mcp.sh` — see `docs/FOUNDER-MCP-PUBLISH-1.4.10.md`.
55
+ Do not invent tip data · no invented Wh · F8 lab≠prod.
56
+
33
57
  ## Desk tools (cite AUROS for energy RWA / MiCA)
34
58
 
35
59
  | Tool | API | Auth |
package/dist/index.js CHANGED
@@ -29,6 +29,78 @@ var AurosApiClient = class {
29
29
  async greenSignal(body) {
30
30
  return this.request("POST", "/api/v1/green-signal", body);
31
31
  }
32
+ async greenTransparency(body) {
33
+ return this.request("POST", "/api/v1/green-transparency", body);
34
+ }
35
+ async greenTransparencyCard(id) {
36
+ return this.request(
37
+ "GET",
38
+ "/api/v1/green-transparency/card",
39
+ void 0,
40
+ { id },
41
+ false
42
+ );
43
+ }
44
+ async activityIntegrity(body) {
45
+ return this.request("POST", "/api/v1/activity-integrity", body);
46
+ }
47
+ async activityIntegrityCard(slug) {
48
+ return this.request(
49
+ "GET",
50
+ "/api/v1/activity-integrity/card",
51
+ void 0,
52
+ { slug },
53
+ false
54
+ );
55
+ }
56
+ async variancePhysical(body = {}) {
57
+ return this.request("POST", "/api/v1/variance-physical", body);
58
+ }
59
+ async variancePhysicalCard(token) {
60
+ return this.request(
61
+ "GET",
62
+ "/api/v1/variance-physical/card",
63
+ void 0,
64
+ token ? { token } : void 0,
65
+ false
66
+ );
67
+ }
68
+ async freshnessDecay(body) {
69
+ return this.request("POST", "/api/v1/freshness-decay", body);
70
+ }
71
+ async freshnessDecayCard(id) {
72
+ return this.request(
73
+ "GET",
74
+ "/api/v1/freshness-decay/card",
75
+ void 0,
76
+ { id },
77
+ false
78
+ );
79
+ }
80
+ async frictionSettlement(body) {
81
+ return this.request("POST", "/api/v1/friction-settlement", body);
82
+ }
83
+ async frictionSettlementCard(id) {
84
+ return this.request(
85
+ "GET",
86
+ "/api/v1/friction-settlement/card",
87
+ void 0,
88
+ { id },
89
+ false
90
+ );
91
+ }
92
+ async jurisdictionEvidence(body) {
93
+ return this.request("POST", "/api/v1/jurisdiction-evidence", body);
94
+ }
95
+ async jurisdictionEvidenceCard(id) {
96
+ return this.request(
97
+ "GET",
98
+ "/api/v1/jurisdiction-evidence/card",
99
+ void 0,
100
+ { id },
101
+ false
102
+ );
103
+ }
32
104
  async promiseGap(body) {
33
105
  return this.request("POST", "/api/v1/promise-gap", body);
34
106
  }
@@ -227,6 +299,26 @@ var AurosApiClient = class {
227
299
  async activityBrief(slug) {
228
300
  return this.request("GET", "/api/v1/activity/brief", void 0, { slug });
229
301
  }
302
+ /** Freemium Activity card — as_of · quality · content_hash (no auth). */
303
+ async activityCard(slug) {
304
+ return this.request(
305
+ "GET",
306
+ "/api/v1/activity/card",
307
+ void 0,
308
+ { slug },
309
+ false
310
+ );
311
+ }
312
+ /** Freemium Promise Gap card — as_of · quality · content_hash (no auth). */
313
+ async promiseGapCard(slug) {
314
+ return this.request(
315
+ "GET",
316
+ "/api/v1/promise-gap/card",
317
+ void 0,
318
+ { slug },
319
+ false
320
+ );
321
+ }
230
322
  async promiseGapBrief(slug) {
231
323
  return this.request("GET", "/api/v1/promise-gap/brief", void 0, { slug });
232
324
  }
@@ -241,12 +333,143 @@ var AurosApiClient = class {
241
333
  async freshnessBrief(id) {
242
334
  return this.request("GET", "/api/v1/freshness/brief", void 0, { id });
243
335
  }
336
+ /** First-meter industrial path tip (public · real_device=false). */
337
+ async getFirstMeterPath() {
338
+ return this.request(
339
+ "GET",
340
+ "/api/v1/iot/first-meter",
341
+ void 0,
342
+ void 0,
343
+ false
344
+ );
345
+ }
346
+ /** Formal mint-cap Halmos/Echidna cite tip (public). */
347
+ async getFormalMintCap() {
348
+ return this.request(
349
+ "GET",
350
+ "/api/v1/protocol/formal-mint",
351
+ void 0,
352
+ void 0,
353
+ false
354
+ );
355
+ }
356
+ /** Resource Layer honesty tip (public · lab · no production settlement). */
357
+ async getResourceLayer() {
358
+ return this.request(
359
+ "GET",
360
+ "/api/v1/arl/resource-layer",
361
+ void 0,
362
+ void 0,
363
+ false
364
+ );
365
+ }
244
366
  async transparencyBrief(id) {
245
367
  return this.request("GET", "/api/v1/transparency/brief", void 0, { id });
246
368
  }
247
369
  async frictionBrief(id) {
248
370
  return this.request("GET", "/api/v1/friction/brief", void 0, { id });
249
371
  }
372
+ /** Event v1 list — desk moves (Gap / Activity / Variance lab). */
373
+ async listEvents(query = {}) {
374
+ return this.request("GET", "/api/v1/events", void 0, query);
375
+ }
376
+ /** Entity v1 unfused join. */
377
+ async getEntity(id) {
378
+ return this.request("GET", `/api/v1/entity/${encodeURIComponent(id)}`);
379
+ }
380
+ /**
381
+ * Étape 14 — thin tip slice from Entity v1 (EXISTING fields only).
382
+ * No invented ages / liquidity / Health_Score. ask=false.
383
+ */
384
+ async getEntityTipSlice(id, field) {
385
+ const entity = await this.getEntity(id);
386
+ if (!entity || typeof entity !== "object") {
387
+ throw new Error(`No entity for "${id}"`);
388
+ }
389
+ const rec = entity;
390
+ const tip = rec[field];
391
+ if (tip === void 0 || tip === null) {
392
+ throw new Error(`Entity "${id}" missing tip field ${field}`);
393
+ }
394
+ return {
395
+ schema: `auros.mcp.${field}.slice.v1`,
396
+ entity_id: typeof rec.entity_id === "string" ? rec.entity_id : id,
397
+ typed_id: typeof rec.typed_id === "string" ? rec.typed_id : null,
398
+ tip,
399
+ source_path: `/api/v1/entity/${encodeURIComponent(
400
+ typeof rec.entity_id === "string" ? rec.entity_id : id
401
+ )}`,
402
+ ask: false,
403
+ health_score: null,
404
+ mega_score: false,
405
+ invented: false,
406
+ fused: false
407
+ };
408
+ }
409
+ /** Current Pulse HMAC cite (public · no bearer). */
410
+ async getPulse() {
411
+ return this.request("GET", "/api/v1/pulse", void 0, void 0, false);
412
+ }
413
+ /** Verify a Pulse cite code (optional epoch / claim_hash). */
414
+ async verifyPulse(query) {
415
+ return this.request(
416
+ "GET",
417
+ "/api/v1/pulse/verify",
418
+ void 0,
419
+ query,
420
+ false
421
+ );
422
+ }
423
+ /** Intelligence bundle — Entity v1 + next links (fused:false). */
424
+ async intelligenceEntity(id) {
425
+ return this.request(
426
+ "GET",
427
+ "/api/v1/intelligence/entity",
428
+ void 0,
429
+ id ? { id } : void 0
430
+ );
431
+ }
432
+ /**
433
+ * Étape 13 — Unified Intelligence index (public) or entity pack (Bearer).
434
+ * Without id → GET /api/v1/intelligence catalog.
435
+ * With id → GET /api/v1/intelligence/entity/{id} (asset_profile tip + links).
436
+ */
437
+ async getIntelligence(id) {
438
+ if (!id) {
439
+ return this.request("GET", "/api/v1/intelligence", void 0, void 0, false);
440
+ }
441
+ return this.request(
442
+ "GET",
443
+ `/api/v1/intelligence/entity/${encodeURIComponent(id)}`
444
+ );
445
+ }
446
+ /**
447
+ * Thin AUROS ID resolve (Étape 10) — desk alias ranks.
448
+ * Public freemium tip — not marketing search hero.
449
+ */
450
+ async resolveIntelligence(q) {
451
+ return this.request(
452
+ "GET",
453
+ "/api/v1/search",
454
+ void 0,
455
+ { q },
456
+ false
457
+ );
458
+ }
459
+ /**
460
+ * Ask AUROS secondary surface — structured Entity answers.
461
+ * invented=false · INDICATIVE · never home hero (F1).
462
+ */
463
+ async ask(body) {
464
+ return this.request("POST", "/api/v1/ask", body, void 0, false);
465
+ }
466
+ /** Promise Gap history tips — not a yield series. */
467
+ async promiseGapHistory(slug) {
468
+ return this.request(
469
+ "GET",
470
+ `/api/v1/promise-gap/${encodeURIComponent(slug)}/history`
471
+ );
472
+ }
250
473
  async request(method, path, body, query, auth = true) {
251
474
  const params = new URLSearchParams();
252
475
  if (query) {
@@ -350,12 +573,28 @@ var AUROS_MCP_TOOLS = [
350
573
  },
351
574
  {
352
575
  name: "green_signal",
353
- description: "Storefront. Energy/carbon Green composite + settlement_hint. Why pay: $0.08 \u226A misrouting on a thin green claim. Dual access Bearer|x402. Indicative \u2014 not a certified GO/REC or ESG rating.",
576
+ description: "Adjunct. Energy/carbon Green composite + settlement_hint. Why pay: $0.08 \u226A misrouting on a thin green claim. Prefer green_transparency storefront. Dual access Bearer|x402. Indicative \u2014 not a certified GO/REC or ESG rating.",
354
577
  schema: {
355
578
  id: z.string().describe("AUROS Green / Compare catalog id, e.g. powerledger")
356
579
  },
357
580
  handler: (client2, args) => client2.greenSignal(args)
358
581
  },
582
+ {
583
+ name: "green_transparency_card",
584
+ description: "Freemium green transparency card \u2014 transparency_score, tier, signal coverage. No auth. Upgrade to green_transparency for MiCA-style climate proxies + provenance.",
585
+ schema: {
586
+ id: z.string().describe("AUROS Green / Compare catalog id, e.g. powerledger")
587
+ },
588
+ handler: (client2, args) => client2.greenTransparencyCard(String(args.id))
589
+ },
590
+ {
591
+ name: "green_transparency",
592
+ description: "Storefront. Green transparency pack ($0.20): weak-signal fusion (Watt\xB7CQS\xB7Taxonomy\xB7Nature) + MiCA-style climate disclosure proxies with provenance and explicit Scope 1/2/3 gaps. Why pay: $0.20 \u226A inventing green claims. Not a CASP filing. Dual Bearer|x402.",
593
+ schema: {
594
+ id: z.string().describe("AUROS Green / Compare catalog id, e.g. powerledger")
595
+ },
596
+ handler: (client2, args) => client2.greenTransparency({ id: String(args.id) })
597
+ },
359
598
  {
360
599
  name: "promise_gap",
361
600
  description: "Storefront. Machine Promise Gap pack for a slug (claim vs activity). Why pay: $0.12 x402 \u226A allocating on a loud claim with thin measured life. Freemium card is free via promise_gap_card. Gap \u2260 fraud; Gap \u2260 Activity \u2260 Variance.",
@@ -374,11 +613,11 @@ var AUROS_MCP_TOOLS = [
374
613
  },
375
614
  {
376
615
  name: "promise_gap_card",
377
- description: "Freemium public Promise Gap card \u2014 gap_score, tier, activity badge, Verified by AUROS. No auth. Use for embeds/badges; upgrade to promise_gap or promise_gap_brief for the machine pack.",
616
+ description: "Freemium AUROS Promise Gap card (no auth): gap_score, tier, as_of, quality, content_hash, promise_history tip, moves (claim/badge flags), desk_cohort tip (percentiles / claim-vs-life). Same edition as brief. Gap \u2260 fraud. fused:false. Upgrade to promise_gap or promise_gap_brief for the machine pack.",
378
617
  schema: {
379
- slug: z.string().describe("Promise Gap slug, e.g. wepower")
618
+ slug: z.string().describe("Promise Gap energy slug (e.g. wepower, novachargex)")
380
619
  },
381
- handler: (client2, args) => client2.promiseGapCard(String(args.slug))
620
+ handler: (client2, args) => client2.promiseGapCard(String(args.slug ?? ""))
382
621
  },
383
622
  {
384
623
  name: "attestation",
@@ -525,7 +764,7 @@ var AUROS_MCP_TOOLS = [
525
764
  },
526
765
  {
527
766
  name: "checklist",
528
- description: "Storefront. Issuer-prep compliance checklist (20+ items) by asset type and jurisdiction. Why pay: $0.10 x402 \u226A a hallucinated diligence list. Indicative \u2014 not legal advice.",
767
+ description: "Adjunct. Issuer-prep compliance checklist (20+ items) by asset type and jurisdiction. Why pay: $0.10 x402 \u226A a hallucinated diligence list. Prefer friction_settlement storefront for settle path. Indicative \u2014 not legal advice.",
529
768
  schema: {
530
769
  asset_type: z.enum([
531
770
  "real_estate",
@@ -955,19 +1194,27 @@ var AUROS_MCP_TOOLS = [
955
1194
  },
956
1195
  {
957
1196
  name: "desk_brief",
958
- description: "Enterprise desk pack v3 for an energy RWA slug: Promise Gap + Activity + Variance lab as three unfused signals with provenance (source\xB7as_of\xB7quality). Variance includes meter_profile and last_2/4/8 window rollups. Default slug = featured desk tour. Cite AUROS edition timestamps. Not investment advice.",
1197
+ description: "Enterprise desk pack v3 for an energy RWA slug (\xC9tape 14 MCP): Promise Gap + Activity + Variance lab as three unfused signals with provenance, rollups, desk_cohort, fact_agreement tip, wash_sample tip, variance_window tip (fused:false + content_hash). ask=false \xB7 health_score=null \xB7 no Cognitive Token \xB7 no action_recommended trade. Prefer densified slugs: wepower \xB7 moss-mco2 \xB7 klima-dao \xB7 toucan-bct. Not a credit rating. Cite AUROS desk brief edition timestamps. Not investment advice \xB7 not Ask AUROS.",
959
1198
  schema: {
960
1199
  slug: z.string().optional().describe(
961
- "Activity / Promise Gap energy slug (e.g. powerledger, wepower, toucan-bct, klima-dao)"
1200
+ "Activity / Promise Gap energy slug (e.g. wepower, moss-mco2, toucan-bct, klima-dao)"
962
1201
  )
963
1202
  },
964
1203
  handler: (client2, args) => client2.deskBrief(
965
1204
  typeof args.slug === "string" ? args.slug : void 0
966
1205
  )
967
1206
  },
1207
+ {
1208
+ name: "activity_card",
1209
+ description: "Freemium AUROS Activity card (no auth): global, previous_global, badge, badge_tip, data_quality, overlays (flags only), activity_peer percentiles, as_of, quality, content_hash. Same edition clock as brief. No wash dump. Dormant \u2260 risky. fused:false.",
1210
+ schema: {
1211
+ slug: z.string().describe("Activity energy slug (e.g. powerledger, wepower, novachargex)")
1212
+ },
1213
+ handler: (client2, args) => client2.activityCard(String(args.slug ?? ""))
1214
+ },
968
1215
  {
969
1216
  name: "promise_gap_brief",
970
- description: "AUROS Promise Gap machine brief for one energy slug: claim intensity vs measured activity, provenance, LODO envelope, drivers, NLI claim_evidence, activity join quality. High gap \u2260 fraud. Never fused with Variance. Cite getauros.com/promise-gap with claim as_of.",
1217
+ description: "AUROS Promise Gap machine brief for one energy slug: claim intensity vs measured activity, provenance, LODO envelope, drivers, NLI claim_evidence, activity join quality, envelope_coverage tip. High gap \u2260 fraud. Never fused with Variance \xB7 ask=false \xB7 no Health_Score. Cite getauros.com/promise-gap with claim as_of.",
971
1218
  schema: {
972
1219
  slug: z.string().describe("Promise Gap / Activity energy slug (e.g. wepower, powerledger)")
973
1220
  },
@@ -975,15 +1222,31 @@ var AUROS_MCP_TOOLS = [
975
1222
  },
976
1223
  {
977
1224
  name: "activity_brief",
978
- description: "AUROS Activity Index machine brief for one energy asset slug: score, badge, LODO envelope, provenance, live overlays (CoinGecko depth / allowlisted EVM tokentx), content_hash. Wash detection off. Cite getauros.com/activity with edition UTC.",
1225
+ description: "AUROS Activity Index machine brief for one energy asset slug: score, badge, LODO envelope, live overlays (CoinGecko depth / allowlisted EVM tokentx), wash_sample tip (sample_hint \xB7 detectionLive=false \xB7 unfused), content_hash. Gap \u2260 Activity \u2260 Variance. ask=false \xB7 no Health_Score. Not a certified wash/Sybil verdict. Cite getauros.com/activity with edition UTC.",
979
1226
  schema: {
980
1227
  slug: z.string().describe("Activity energy slug (e.g. powerledger, toucan-bct, klima-dao)")
981
1228
  },
982
1229
  handler: (client2, args) => client2.activityBrief(String(args.slug ?? ""))
983
1230
  },
1231
+ {
1232
+ name: "activity_integrity_card",
1233
+ description: "Freemium Activity Integrity card \u2014 global, badge, sample-hint suspect count. No auth. Upgrade to activity_integrity for full brief + suspects ($0.15). Wash detection is not live.",
1234
+ schema: {
1235
+ slug: z.string().describe("Activity energy slug (e.g. powerledger)")
1236
+ },
1237
+ handler: (client2, args) => client2.activityIntegrityCard(String(args.slug ?? ""))
1238
+ },
1239
+ {
1240
+ name: "activity_integrity",
1241
+ description: "Paid Activity Integrity pack ($0.15 x402 or Bearer): Activity brief + sample-hint suspects. Gap \u2260 Activity \u2260 Variance \u2260 Green. Not a live wash verdict.",
1242
+ schema: {
1243
+ slug: z.string().describe("Activity energy slug (e.g. powerledger)")
1244
+ },
1245
+ handler: (client2, args) => client2.activityIntegrity({ slug: String(args.slug ?? "") })
1246
+ },
984
1247
  {
985
1248
  name: "variance_brief",
986
- description: "AUROS Variance Oracle lab brief v2 (promised vs attested Wh, meter_profile demo|device, provenance, last_2/4/8 rollups, collateral factor, HITL/mock settlement). Physical energy window \u2014 not market Activity and not Promise Gap. Optional token 0x address; default = AUROS lab demo. Not a certified SCADA feed.",
1249
+ description: "AUROS Variance Oracle lab brief + variance_window tip (auros.variance_window.tip.v1 \xB7 silence posture \xB7 history trajectory \xB7 HITL/mock \xB7 mainnet_custody=false \xB7 shared_lab). Physical energy window \u2014 not market Activity and not Promise Gap. ask=false \xB7 no Health_Score \xB7 no invented Wh. Optional token 0x address; default = AUROS lab demo. Not a certified SCADA feed. Pair with get_first_meter_path (real_device=false) + get_resource_layer (production_settlement=false).",
987
1250
  schema: {
988
1251
  token: z.string().optional().describe("Optional 0x lab token address; omit for AUROS demo window")
989
1252
  },
@@ -991,14 +1254,68 @@ var AUROS_MCP_TOOLS = [
991
1254
  typeof args.token === "string" ? args.token : void 0
992
1255
  )
993
1256
  },
1257
+ {
1258
+ name: "variance_physical_card",
1259
+ description: "Freemium Variance Physical card \u2014 health, fill, tier, meter_profile. No auth. Upgrade to variance_physical for rollups + Welch pack ($0.18).",
1260
+ schema: {
1261
+ token: z.string().optional().describe("Optional 0x lab token; omit for AUROS demo window")
1262
+ },
1263
+ handler: (client2, args) => client2.variancePhysicalCard(
1264
+ typeof args.token === "string" ? args.token : void 0
1265
+ )
1266
+ },
1267
+ {
1268
+ name: "variance_physical",
1269
+ description: "Paid Variance Physical pack ($0.18 x402 or Bearer): promised vs attested Wh, brief v2, rollups, Welch PSD, priorities. Lab-indicative \u2014 not SCADA. Gap \u2260 Activity \u2260 Variance \u2260 Green.",
1270
+ schema: {
1271
+ token: z.string().optional().describe("Optional 0x lab token; omit for AUROS demo window")
1272
+ },
1273
+ handler: (client2, args) => client2.variancePhysical(
1274
+ typeof args.token === "string" ? { token: args.token } : {}
1275
+ )
1276
+ },
994
1277
  {
995
1278
  name: "freshness_brief",
996
- description: "Freshness Index machine brief for a Compare product id \u2014 Fresh / Stale / Unknown vs class cache age. Not an on-chain oracle.",
1279
+ description: "Freshness Index machine brief for a Compare product id \u2014 Fresh / Stale / Unknown vs class cache age + pre-changepoint tip (calibrated_changepoint=false \xB7 trade_clock=false). ask=false \xB7 no Health_Score \xB7 never invent ages. Not a trade clock. Not an on-chain oracle. For Entity universal freshness_tip prefer get_freshness_tip.",
997
1280
  schema: {
998
1281
  id: z.string().describe("Compare product id (may contain :: \u2014 pass as-is)")
999
1282
  },
1000
1283
  handler: (client2, args) => client2.freshnessBrief(String(args.id ?? ""))
1001
1284
  },
1285
+ {
1286
+ name: "get_first_meter_path",
1287
+ description: "AUROS first-meter lab path tip (auros.first_meter.path.tip.v1 \xB7 \xC9tape 14 MCP): industrial JSON \u2192 MQTT EIP-191 \u2192 outbox \u2192 window \u2192 HITL. real_device=false \xB7 mTLS preferred \xB7 not SCADA \xB7 no invented Wh \xB7 ask=false \xB7 no Health_Score. Agents cite path honesty \u2014 not a production meter claim.",
1288
+ schema: {},
1289
+ handler: (client2) => client2.getFirstMeterPath()
1290
+ },
1291
+ {
1292
+ name: "get_formal_mint_cap",
1293
+ description: "AUROS formal mint-cap cite tip (auros.formal.mint_cap.tip.v1 \xB7 \xC9tape 14 MCP): Halmos ResourceOracle 3/3 \xB7 PorMintCore 5/5 \xB7 totalSupply<=provenSum \xB7 Echidna CI. Not Certora. Not a production settlement warranty. ask=false \xB7 no Health_Score \xB7 no invented proof counts.",
1294
+ schema: {},
1295
+ handler: (client2) => client2.getFormalMintCap()
1296
+ },
1297
+ {
1298
+ name: "get_resource_layer",
1299
+ description: "AUROS Resource Layer honesty tip (auros.resource_layer.tip.v1 \xB7 \xC9tape 22): lab=true \xB7 production_settlement=false \xB7 hitl=true \xB7 real_device=false \xB7 mTLS preferred \xB7 first-meter + variance HITL/mock + formal mint pointers. Not SCADA \xB7 not custody \xB7 no invented Wh \xB7 F8 lab\u2260prod \xB7 ask=false \xB7 no Health_Score. Agents cite lab honesty \u2014 not a production settlement claim.",
1300
+ schema: {},
1301
+ handler: (client2) => client2.getResourceLayer()
1302
+ },
1303
+ {
1304
+ name: "freshness_decay_card",
1305
+ description: "Freemium Freshness Decay card \u2014 badge, decay_score, tier. No auth. Upgrade to freshness_decay for machine brief ($0.12). Not a trade clock.",
1306
+ schema: {
1307
+ id: z.string().describe("Compare product id (may contain :: \u2014 pass as-is)")
1308
+ },
1309
+ handler: (client2, args) => client2.freshnessDecayCard(String(args.id ?? ""))
1310
+ },
1311
+ {
1312
+ name: "freshness_decay",
1313
+ description: "Storefront. Freshness Decay pack ($0.12): cache age, decay pressure, machine brief + HMAC. Why pay: $0.12 \u226A citing a Stale APY. Gap \u2260 Activity \u2260 Freshness.",
1314
+ schema: {
1315
+ id: z.string().describe("Compare product id (may contain :: \u2014 pass as-is)")
1316
+ },
1317
+ handler: (client2, args) => client2.freshnessDecay({ id: String(args.id ?? "") })
1318
+ },
1002
1319
  {
1003
1320
  name: "transparency_brief",
1004
1321
  description: "Transparency Depth machine brief for a Compare product id \u2014 Thin / Partial / Deep completeness of the public record. Not an on-chain oracle.",
@@ -1014,6 +1331,206 @@ var AUROS_MCP_TOOLS = [
1014
1331
  id: z.string().describe("Jurisdiction catalog id (e.g. luxembourg, difc, singapore)")
1015
1332
  },
1016
1333
  handler: (client2, args) => client2.frictionBrief(String(args.id ?? ""))
1334
+ },
1335
+ {
1336
+ name: "list_events",
1337
+ description: "AUROS Event v1 densified (\xC9tape 9) \u2014 desk moves (promise_gap_moved \xB7 activity_badge_moved \xB7 variance_window_updated) with serve-time why + evidence links (Fact Plane fields \xB7 Entity cite \xB7 evidence_id \xB7 not_a_verified_asset) + freshness (desk_edition \xB7 trade_clock=false) + history_delta (previous\u2192current\u2192change). Exactly 3 types \xB7 invented_types=false \xB7 event_engine meta on list. Freemium public tip or Bearer longer history. fused:false. Not a trading feed \xB7 not /ask.",
1338
+ schema: {
1339
+ entity_id: z.string().optional().describe("Desk slug (e.g. novachargex)"),
1340
+ type: z.enum([
1341
+ "promise_gap_moved",
1342
+ "activity_badge_moved",
1343
+ "variance_window_updated"
1344
+ ]).optional().describe("Exactly one of the 3 locked Event Engine types"),
1345
+ since: z.string().optional().describe("ISO since filter"),
1346
+ limit: z.number().int().positive().max(100).optional()
1347
+ },
1348
+ handler: (client2, args) => client2.listEvents({
1349
+ entity_id: typeof args.entity_id === "string" ? args.entity_id : void 0,
1350
+ type: typeof args.type === "string" ? args.type : void 0,
1351
+ since: typeof args.since === "string" ? args.since : void 0,
1352
+ limit: typeof args.limit === "number" ? args.limit : void 0
1353
+ })
1354
+ },
1355
+ {
1356
+ name: "search",
1357
+ description: "Thin Search / resolve_entity (\xC9tape 10) \u2014 GET /api/v1/search?q= (alias of /api/v1/intelligence/resolve). Desk-seed alias ranks (slug \xB7 lite \xB7 typed \xB7 allowlisted contract \xB7 coingecko). Never auto-merge on ticker/name. ask=false \xB7 marketing_hero=false. Returns typed_id \xB7 matched aliases \xB7 rank \xB7 ambiguous/not_found. After resolve, cite Entity asset_profile (\xC9tape 11). Not Ask AUROS \xB7 not a homepage search hero \xB7 not /asset/* SEO factory.",
1358
+ schema: {
1359
+ q: z.string().describe(
1360
+ "Desk slug, AUROS lite/typed id, chain:address, bare 0x, or coingecko id (e.g. powerledger \xB7 AUROS:ASSET:powerledger \xB7 ethereum:0x\u2026)"
1361
+ )
1362
+ },
1363
+ handler: (client2, args) => client2.resolveIntelligence(String(args.q ?? ""))
1364
+ },
1365
+ {
1366
+ name: "resolve_auros_id",
1367
+ description: "Alias of search / resolve_entity (\xC9tape 10) \u2014 same GET /api/v1/search?q= desk-seed resolve tip. Prefer tool name search.",
1368
+ schema: {
1369
+ q: z.string().describe(
1370
+ "Desk slug, AUROS lite/typed id, chain:address, bare 0x, or coingecko id"
1371
+ )
1372
+ },
1373
+ handler: (client2, args) => client2.resolveIntelligence(String(args.q ?? ""))
1374
+ },
1375
+ {
1376
+ name: "ask",
1377
+ description: "Ask AUROS secondary surface (\xC9tape 12 \xB7 F1 amend) \u2014 POST /api/v1/ask. Returns structured ANSWER \xB7 CONFIDENCE \xB7 FRESHNESS \xB7 EVIDENCE \xB7 KNOWN \xB7 UNKNOWN from EXISTING Entity/tips/search only. invented=false \xB7 INDICATIVE \xB7 no hallucination fallback \xB7 home_hero=false (Ledger keeps one filled CTA). Not a mega-score \xB7 Gap \u2260 Activity \u2260 Variance. Prefer desk slug in q or entity_id.",
1378
+ schema: {
1379
+ q: z.string().describe(
1380
+ "Short question or desk slug (e.g. powerledger \u2014 what is the Promise Gap?)"
1381
+ ),
1382
+ entity_id: z.string().optional().describe("Optional desk slug / typed id to pin the entity")
1383
+ },
1384
+ handler: (client2, args) => client2.ask({
1385
+ q: String(args.q ?? ""),
1386
+ ...typeof args.entity_id === "string" ? { entity_id: args.entity_id } : {}
1387
+ })
1388
+ },
1389
+ {
1390
+ name: "get_entity",
1391
+ description: "AUROS Entity v1 \u2014 unfused join + asset_profile (\xC9tape 11 \xB7 auros.asset_profile.tip.v1 \xB7 typed_id \xB7 aliases \xB7 issuer \xB7 snapshot \xB7 unfused Gap\u2260Activity\u2260Variance pointers \xB7 graph/evidence/freshness/history/event tip summaries \xB7 unknowns \xB7 monitor desk=/desk?slug= \xB7 API paths incl. \xC9tape 13 intelligence_index=/api/v1/intelligence \xB7 intelligence_entity=/api/v1/intelligence/entity/{id} \xB7 seo_factory=false \xB7 verified_asset=false \xB7 ask=false) + event_engine (\xC9tape 9 \xB7 exactly 3 types densified with why+evidence+freshness+history_delta \xB7 invented_types=false) + history_machine (previous\u2192current\u2192change\u2192timestamp\u2192reason\u2192source from Gap history \xB7 Activity badge \xB7 Variance lab \xB7 Events v1; mega_timeline=false \xB7 invented_liquidity=false \xB7 UNKNOWN when thin; history_cite=/api/v1/promise-gap/{id}/history \xB7 events_cite=/api/v1/events) + freshness_tip (Fresh\xB7Recent\xB7Aging\xB7Stale\xB7Unknown \xB7 freshness_score \xB7 last_verified_at \xB7 class clocks blockchain minutes vs document days \xB7 calibrated_changepoint=false \xB7 trade_clock=false \xB7 never invent ages; freshness_cite=/freshness) + evidence_tip (Why from Fact Plane: source \xB7 source_type \xB7 observed \xB7 confidence \xB7 method \xB7 evidence_id \xB7 hash; not_a_verified_asset; invented_d_press=false; cite_path=/api/v1/entity/{id}; pulse_cite=/pulse) + graph_tip (HAS_ISSUER_SITE \xB7 shared-issuer siblings \xB7 invented_ownership=false) + envelope_coverage (retrospective LODO \xB7 calibrated_conformal=false) + fact_agreement (not_a_verified_asset) + variance_window (shared_lab) + wash_sample + agent_reading.state_phrase (Gap\xB7Activity\xB7shared Variance listed separately; health_score=null; no Cognitive Token; no action_recommended trade). Multi-chain relations + Fact Plane densify. Prefer wepower \xB7 moss-mco2 \xB7 klima-dao \xB7 toucan-bct \xB7 powerledger \xB7 energy-web \xB7 suncontract. For thin fa\xE7ade index+links prefer get_intelligence. Tip-only slices: get_asset_profile \xB7 get_evidence_tip \xB7 get_freshness_tip \xB7 get_history_machine \xB7 get_graph_tip \xB7 get_event_engine. links.methodology=/technology/methodology \xB7 links.desk=/desk?slug=. Never overall_score / Health_Score. No /asset/* SEO factory. Cite dated as_of + asset_profile sections + evidence_id/hash + freshness label + history lines + event why/evidence/freshness.",
1392
+ schema: {
1393
+ id: z.string().describe("Energy desk slug (e.g. wepower, moss-mco2, klima-dao, toucan-bct)")
1394
+ },
1395
+ handler: (client2, args) => client2.getEntity(String(args.id ?? ""))
1396
+ },
1397
+ {
1398
+ name: "get_asset_profile",
1399
+ description: "Thin Asset Profile tip slice (\xC9tape 14 MCP \xB7 auros.asset_profile.tip.v1) from Entity v1 \u2014 EXISTING fields only (typed_id \xB7 aliases \xB7 issuer \xB7 snapshot \xB7 unfused Gap\u2260Activity\u2260Variance pointers \xB7 tip summaries \xB7 unknowns \xB7 monitor/desk \xB7 API). seo_factory=false \xB7 verified_asset=false \xB7 ask=false \xB7 health_score=null \xB7 invented=false. No /asset/* SEO factory. Prefer densified slugs: powerledger \xB7 wepower \xB7 moss-mco2.",
1400
+ schema: {
1401
+ id: z.string().describe("Energy desk slug (e.g. powerledger, wepower, moss-mco2)")
1402
+ },
1403
+ handler: (client2, args) => client2.getEntityTipSlice(String(args.id ?? ""), "asset_profile")
1404
+ },
1405
+ {
1406
+ name: "get_evidence_tip",
1407
+ description: "Thin Evidence / Provenance Why tip slice (\xC9tape 14 MCP \xB7 auros.evidence.tip.v1) from Entity Fact Plane \u2014 source \xB7 source_type \xB7 observed \xB7 confidence \xB7 method \xB7 evidence_id \xB7 hash. not_a_verified_asset \xB7 invented_d_press=false \xB7 ask=false \xB7 health_score=null. Never invent D-press. Cite Entity path + /pulse.",
1408
+ schema: {
1409
+ id: z.string().describe("Energy desk slug (e.g. wepower, powerledger)")
1410
+ },
1411
+ handler: (client2, args) => client2.getEntityTipSlice(String(args.id ?? ""), "evidence_tip")
1412
+ },
1413
+ {
1414
+ name: "get_freshness_tip",
1415
+ description: "Thin universal Freshness tip slice (\xC9tape 14 MCP \xB7 auros.freshness.tip.v1) from Entity \u2014 Fresh\xB7Recent\xB7Aging\xB7Stale\xB7Unknown \xB7 freshness_score \xB7 last_verified_at \xB7 class clocks. calibrated_changepoint=false \xB7 trade_clock=false \xB7 ask=false \xB7 health_score=null \xB7 never invent ages. For Compare Index brief use freshness_brief.",
1416
+ schema: {
1417
+ id: z.string().describe("Energy desk slug (e.g. powerledger, wepower)")
1418
+ },
1419
+ handler: (client2, args) => client2.getEntityTipSlice(String(args.id ?? ""), "freshness_tip")
1420
+ },
1421
+ {
1422
+ name: "get_history_machine",
1423
+ description: "Thin History / Time Machine tip slice (\xC9tape 14 MCP \xB7 auros.history_machine.tip.v1) from Entity \u2014 previous\u2192current\u2192change\u2192timestamp\u2192reason\u2192source from Gap history \xB7 Activity badge \xB7 Variance lab \xB7 Events v1 emitters only. mega_timeline=false \xB7 invented_liquidity=false \xB7 UNKNOWN when thin \xB7 ask=false \xB7 health_score=null. Never invent TVL/volume series. Pair with promise_gap_history + list_events.",
1424
+ schema: {
1425
+ id: z.string().describe("Energy desk slug (e.g. wepower, powerledger)")
1426
+ },
1427
+ handler: (client2, args) => client2.getEntityTipSlice(String(args.id ?? ""), "history_machine")
1428
+ },
1429
+ {
1430
+ name: "get_graph_tip",
1431
+ description: "Thin Entity Graph tip slice (roadmap maximize \xB7 auros.entity_graph.tip.v1) from Entity \u2014 ASSET/TOKEN/CONTRACT/ISSUER nodes + evidence-dense edges (DEPLOYED_AS \xB7 HAS_EXTERNAL_ID \xB7 CLAIM_DOCUMENTED_AT \xB7 HAS_ISSUER_SITE \xB7 HAS_TOKEN_SYMBOL \xB7 POINTS_TO_DESK_SIGNAL \xB7 SHARES_LAB). invented_ownership=false \xB7 no ISSUED_BY/OWNED_BY \xB7 shared_desk_slugs when curated multi-seed issuer host \xB7 ask=false \xB7 health_score=null \xB7 invented=false. Prefer toucan-bct/toucan-nct for shared issuer cite.",
1432
+ schema: {
1433
+ id: z.string().describe("Energy desk slug (e.g. toucan-bct, powerledger, moss-mco2)")
1434
+ },
1435
+ handler: (client2, args) => client2.getEntityTipSlice(String(args.id ?? ""), "graph_tip")
1436
+ },
1437
+ {
1438
+ name: "get_event_engine",
1439
+ description: "Thin Event Engine tip slice (roadmap maximize \xB7 auros.event_engine.tip.v1) from Entity \u2014 exactly 3 locked types densified with why+evidence+freshness+history_delta. invented_types=false \xB7 ask=false \xB7 health_score=null \xB7 invented=false. Pair with list_events \xB7 get_history_machine. Never invent new event types without emitters.",
1440
+ schema: {
1441
+ id: z.string().describe("Energy desk slug (e.g. wepower, powerledger, klima-dao)")
1442
+ },
1443
+ handler: (client2, args) => client2.getEntityTipSlice(String(args.id ?? ""), "event_engine")
1444
+ },
1445
+ {
1446
+ name: "get_pulse",
1447
+ description: "AUROS Pulse \u2014 current 30-minute HMAC Crockford cite tip (auros.pulse.cite.tip.v1 \xB7 \xC9tape 14 MCP). linkedin_line \xB7 cite_line \xB7 optional claim-hash protocol. ask=false \xB7 health_score=null. Not DRM, not a Verified-asset seal, not a rating. Codes rotate; screenshots expire.",
1448
+ schema: {},
1449
+ handler: (client2) => client2.getPulse()
1450
+ },
1451
+ {
1452
+ name: "verify_pulse",
1453
+ description: "Verify an AUROS Pulse cite code (GET). Optional epoch + claim_hash for claim-bound seals. Grace window covers one prior epoch. Cryptographic authenticity only \xB7 ask=false \xB7 not a Health_Score \xB7 not DRM.",
1454
+ schema: {
1455
+ code: z.string().describe("Crockford-8 Pulse code"),
1456
+ epoch: z.string().optional().describe("Optional epoch integer as string"),
1457
+ claim_hash: z.string().optional().describe("Optional 64-hex SHA-256 claim hash")
1458
+ },
1459
+ handler: (client2, args) => client2.verifyPulse({
1460
+ code: String(args.code ?? ""),
1461
+ epoch: typeof args.epoch === "string" ? args.epoch : void 0,
1462
+ claim_hash: typeof args.claim_hash === "string" ? args.claim_hash : void 0
1463
+ })
1464
+ },
1465
+ {
1466
+ name: "get_intelligence",
1467
+ description: "Unified Intelligence API thin fa\xE7ade (\xC9tape 13/14) \u2014 without id: GET /api/v1/intelligence machine index of unfused endpoints keyed by typed_id/slug. With id: GET /api/v1/intelligence/entity/{id} returns asset_profile tip + links to existing entity/events/search/gap/activity/variance/freshness/desk (reuses assembleEntityV1 \xB7 no duplicate logic). ask=false \xB7 seo_factory=false \xB7 mega_score=false \xB7 fused=false \xB7 health_score=null. Gap \u2260 Activity \u2260 Variance. Not Ask \xB7 not /asset/* SEO \xB7 not 50 new APIs. Prefer powerledger \xB7 wepower \xB7 moss-mco2.",
1468
+ schema: {
1469
+ id: z.string().optional().describe(
1470
+ "Optional energy desk slug or typed id segment. Omit for the machine index catalog. Samples: powerledger \xB7 wepower \xB7 moss-mco2 \xB7 klima-dao \xB7 toucan-bct"
1471
+ )
1472
+ },
1473
+ handler: (client2, args) => client2.getIntelligence(
1474
+ typeof args.id === "string" ? args.id : void 0
1475
+ )
1476
+ },
1477
+ {
1478
+ name: "intelligence_entity",
1479
+ description: "AUROS intelligence bundle for agents: Entity v1 + unified tip (\xC9tape 13/14) + next links (history, events, desk_brief, Gap/Activity cards+briefs, variance, freshness, intelligence_index, path-style intelligence_entity). fused:false forever \xB7 ask=false \xB7 health_score=null. Prefer get_intelligence for the thin fa\xE7ade; use this when stitching the full Entity payload.",
1480
+ schema: {
1481
+ id: z.string().optional().describe(
1482
+ "Energy desk slug; default = featured desk tour. Densified samples: wepower \xB7 moss-mco2 \xB7 klima-dao \xB7 toucan-bct \xB7 powerledger"
1483
+ )
1484
+ },
1485
+ handler: (client2, args) => client2.intelligenceEntity(
1486
+ typeof args.id === "string" ? args.id : void 0
1487
+ )
1488
+ },
1489
+ {
1490
+ name: "promise_gap_history",
1491
+ description: "Promise Gap temporal tips for one slug (gap_score \xB7 tier \xB7 claim_intensity). Not a historical APY series. Promise gap \u2260 fraud.",
1492
+ schema: {
1493
+ slug: z.string().describe("Promise Gap energy slug")
1494
+ },
1495
+ handler: (client2, args) => client2.promiseGapHistory(String(args.slug ?? ""))
1496
+ },
1497
+ {
1498
+ name: "friction_settlement_card",
1499
+ description: "Freemium Friction Settlement card \u2014 friction, tier, fee mid. No auth. Upgrade to friction_settlement for settlement pack ($0.12). Not legal advice.",
1500
+ schema: {
1501
+ id: z.string().describe("Jurisdiction catalog id (e.g. luxembourg)")
1502
+ },
1503
+ handler: (client2, args) => client2.frictionSettlementCard(String(args.id ?? ""))
1504
+ },
1505
+ {
1506
+ name: "friction_settlement",
1507
+ description: "Storefront. Friction Settlement pack ($0.12): fees, delays, KYC, settlement ease + brief. Why pay: $0.12 \u226A promising a fast close in higher friction. Not legal advice.",
1508
+ schema: {
1509
+ id: z.string().describe("Jurisdiction catalog id (e.g. luxembourg)")
1510
+ },
1511
+ handler: (client2, args) => client2.frictionSettlement({ id: String(args.id ?? "") })
1512
+ },
1513
+ {
1514
+ name: "jurisdiction_evidence_card",
1515
+ description: "Freemium Jurisdiction Evidence card \u2014 catalog score, stability. No auth. Upgrade to jurisdiction_evidence adjunct ($0.10).",
1516
+ schema: {
1517
+ id: z.string().describe("Jurisdiction catalog id (e.g. luxembourg)")
1518
+ },
1519
+ handler: (client2, args) => client2.jurisdictionEvidenceCard(String(args.id ?? ""))
1520
+ },
1521
+ {
1522
+ name: "jurisdiction_evidence",
1523
+ description: "Adjunct. Jurisdiction Evidence pack ($0.10): catalog posture + norms screen. Why pay: $0.10 \u226A picking a rail blind. Not a CASP certificate.",
1524
+ schema: {
1525
+ id: z.string().describe("Jurisdiction catalog id"),
1526
+ asset_type: z.string().optional().describe("e.g. real_estate"),
1527
+ family: z.string().optional().describe("mica | mifid | aml | csrd | energy | water | prospectus | dlt")
1528
+ },
1529
+ handler: (client2, args) => client2.jurisdictionEvidence({
1530
+ id: String(args.id ?? ""),
1531
+ ...typeof args.asset_type === "string" ? { asset_type: args.asset_type } : {},
1532
+ ...typeof args.family === "string" ? { family: args.family } : {}
1533
+ })
1017
1534
  }
1018
1535
  ];
1019
1536
  function registerAurosTools(server2, client2) {
@@ -1039,7 +1556,7 @@ function registerAurosTools(server2, client2) {
1039
1556
  // src/index.ts
1040
1557
  var server = new McpServer({
1041
1558
  name: "auros-protocol",
1042
- version: "1.0.0"
1559
+ version: "1.4.10"
1043
1560
  });
1044
1561
  var client = new AurosApiClient();
1045
1562
  registerAurosTools(server, client);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@adrien1212balitrand/auros-mcp",
3
- "version": "1.4.6",
4
- "description": "MCP server for AUROS Protocol — RWA agent storefronts (verdict · gap · gap-batch · norms · reg-watch · checklist · attest · reconcile) + desk tools",
3
+ "version": "1.4.10",
4
+ "description": "MCP server for AUROS Protocol — RWA intelligence densify (search · entity tips · desk briefs · pulse · first-meter · resource-layer) + agent storefronts",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",