@xrpl-utilities/mcp 0.1.38 → 0.2.1
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/dist/services/flows.d.ts +11 -0
- package/dist/services/flows.js +67 -0
- package/dist/services/flows.js.map +1 -0
- package/dist/services/index.js +2 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/pulse.js +1 -1
- package/dist/services/pulse.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XR-Flows: ETF AUM ↔ XRPL on-chain flow correlation for US-listed
|
|
3
|
+
* spot XRP ETFs.
|
|
4
|
+
*
|
|
5
|
+
* v1.0.0 preview ships two free MCP tools (correlation + launch-impact)
|
|
6
|
+
* and stubbed per-issuer scrapers. The paid /scan deep dive returns
|
|
7
|
+
* 503 in v1.0.0 and is intentionally not registered here; it lands
|
|
8
|
+
* in v1.1+ once at least four issuer scrapers return real readings.
|
|
9
|
+
*/
|
|
10
|
+
import type { ServiceDef } from "../types.js";
|
|
11
|
+
export declare const flows: ServiceDef;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XR-Flows: ETF AUM ↔ XRPL on-chain flow correlation for US-listed
|
|
3
|
+
* spot XRP ETFs.
|
|
4
|
+
*
|
|
5
|
+
* v1.0.0 preview ships two free MCP tools (correlation + launch-impact)
|
|
6
|
+
* and stubbed per-issuer scrapers. The paid /scan deep dive returns
|
|
7
|
+
* 503 in v1.0.0 and is intentionally not registered here; it lands
|
|
8
|
+
* in v1.1+ once at least four issuer scrapers return real readings.
|
|
9
|
+
*/
|
|
10
|
+
export const flows = {
|
|
11
|
+
id: "flows",
|
|
12
|
+
label: "XR-Flows",
|
|
13
|
+
baseUrl: "https://flows.xrpl-utilities.io",
|
|
14
|
+
manifestUrl: "https://flows.xrpl-utilities.io/agents.json",
|
|
15
|
+
knownSchemaVersions: ["1.0.0"],
|
|
16
|
+
tools: [
|
|
17
|
+
{
|
|
18
|
+
name: "xrpl_flows_correlation",
|
|
19
|
+
description: "Daily ETF AUM and XRPL exchange-flow delta for the six US-listed " +
|
|
20
|
+
"spot XRP ETFs (Bitwise XRP, Canary XRPC, Franklin XRPZ, Grayscale " +
|
|
21
|
+
"GXRP, 21Shares TOXR, REX-Osprey XRPR). Returns per-ticker daily " +
|
|
22
|
+
"AUM with day-over-day delta, a chain_flow_daily series from " +
|
|
23
|
+
"XR-Pulse, and a 7-day rolling Pearson coefficient measuring how " +
|
|
24
|
+
"tightly ETF flow aligns with on-chain flow. CORRELATION ONLY, " +
|
|
25
|
+
"NEVER CAUSATION: ETFs hold XRP via pooled institutional custody " +
|
|
26
|
+
"so on-chain wallets cannot be attributed to a specific fund. " +
|
|
27
|
+
"v1.0.0: per-issuer scrapers are stubbed; AUM fields return null " +
|
|
28
|
+
"until v1.x lands real readings.",
|
|
29
|
+
inputSchema: {
|
|
30
|
+
type: "object",
|
|
31
|
+
properties: {
|
|
32
|
+
days: {
|
|
33
|
+
type: "integer",
|
|
34
|
+
minimum: 1,
|
|
35
|
+
maximum: 90,
|
|
36
|
+
default: 30,
|
|
37
|
+
description: "Days of history to return (1-90, default 30).",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
additionalProperties: false,
|
|
41
|
+
},
|
|
42
|
+
method: "GET",
|
|
43
|
+
path: "/stats/correlation",
|
|
44
|
+
authMode: "free",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "xrpl_flows_launch_impact",
|
|
48
|
+
description: "Per-ETF launch-window analysis: for each tracked spot XRP ETF, " +
|
|
49
|
+
"returns its launch date and a [L-30, L+30] window summary of " +
|
|
50
|
+
"XRPL exchange-flow delta + DEX volume. The post-window vs " +
|
|
51
|
+
"pre-window ratio is the headline 'launch impact' figure. Static " +
|
|
52
|
+
"analysis; recomputed on demand rather than polled. v1.0.0 " +
|
|
53
|
+
"returns the launch metadata only; the on-chain delta window " +
|
|
54
|
+
"analysis lands once Pulse /stats/exchange-flow-delta is shipped " +
|
|
55
|
+
"and a recompute pass runs.",
|
|
56
|
+
inputSchema: {
|
|
57
|
+
type: "object",
|
|
58
|
+
properties: {},
|
|
59
|
+
additionalProperties: false,
|
|
60
|
+
},
|
|
61
|
+
method: "GET",
|
|
62
|
+
path: "/stats/launch-impact",
|
|
63
|
+
authMode: "free",
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=flows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/services/flows.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,CAAC,MAAM,KAAK,GAAe;IAC/B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,iCAAiC;IAC1C,WAAW,EAAE,6CAA6C;IAC1D,mBAAmB,EAAE,CAAC,OAAO,CAAC;IAC9B,KAAK,EAAE;QACL;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EACT,mEAAmE;gBACnE,oEAAoE;gBACpE,kEAAkE;gBAClE,8DAA8D;gBAC9D,kEAAkE;gBAClE,gEAAgE;gBAChE,kEAAkE;gBAClE,+DAA+D;gBAC/D,kEAAkE;gBAClE,iCAAiC;YACnC,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,EAAE;wBACX,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,+CAA+C;qBAC7D;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;YACD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,oBAAoB;YAC1B,QAAQ,EAAE,MAAM;SACjB;QACD;YACE,IAAI,EAAE,0BAA0B;YAChC,WAAW,EACT,iEAAiE;gBACjE,+DAA+D;gBAC/D,4DAA4D;gBAC5D,kEAAkE;gBAClE,4DAA4D;gBAC5D,8DAA8D;gBAC9D,kEAAkE;gBAClE,4BAA4B;YAC9B,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,oBAAoB,EAAE,KAAK;aAC5B;YACD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,MAAM;SACjB;KACF;CACF,CAAC"}
|
package/dist/services/index.js
CHANGED
|
@@ -11,7 +11,8 @@ import { pulse } from "./pulse.js";
|
|
|
11
11
|
import { telemetry } from "./telemetry.js";
|
|
12
12
|
import { trust } from "./trust.js";
|
|
13
13
|
import { vault } from "./vault.js";
|
|
14
|
-
|
|
14
|
+
import { flows } from "./flows.js";
|
|
15
|
+
export const SERVICES = [sentinel, pulse, telemetry, trust, vault, flows];
|
|
15
16
|
/** Flat list of every tool across every registered service. */
|
|
16
17
|
export const ALL_TOOLS = SERVICES.flatMap((s) => s.tools.map((t) => ({ ...t, _serviceId: s.id, _baseUrl: s.baseUrl })));
|
|
17
18
|
/** Look up the owning service for a given tool name. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,MAAM,QAAQ,GAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,MAAM,QAAQ,GAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAExF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CACtE,CAAC;AAEF,wDAAwD;AACxD,MAAM,UAAU,aAAa,CAAC,QAAgB;IAG5C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAC5D,IAAI,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/services/pulse.js
CHANGED
|
@@ -13,7 +13,7 @@ export const pulse = {
|
|
|
13
13
|
label: "XR-Pulse",
|
|
14
14
|
baseUrl: "https://pulse.xrpl-utilities.io",
|
|
15
15
|
manifestUrl: "https://pulse.xrpl-utilities.io/agents.json",
|
|
16
|
-
knownSchemaVersions: ["1.13.0", "1.14.0", "1.15.0", "1.16.0", "1.16.1", "1.17.0", "1.18.0", "1.19.0", "1.20.0", "1.21.0", "1.21.1", "1.21.2", "1.21.3", "1.22.0", "1.22.1", "1.23.0", "1.24.0", "1.25.0", "1.25.1", "1.25.2"],
|
|
16
|
+
knownSchemaVersions: ["1.13.0", "1.14.0", "1.15.0", "1.16.0", "1.16.1", "1.17.0", "1.18.0", "1.19.0", "1.20.0", "1.21.0", "1.21.1", "1.21.2", "1.21.3", "1.22.0", "1.22.1", "1.23.0", "1.24.0", "1.25.0", "1.25.1", "1.25.2", "1.26.0"],
|
|
17
17
|
tools: [
|
|
18
18
|
{
|
|
19
19
|
name: "xrpl_pulse_recent_events",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../src/services/pulse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,CAAC,MAAM,KAAK,GAAe;IAC/B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,iCAAiC;IAC1C,WAAW,EAAE,6CAA6C;IAC1D,mBAAmB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../src/services/pulse.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xrpl-utilities/mcp",
|
|
3
|
-
"version": "0.1
|
|
4
|
-
"description": "Model Context Protocol server for the XRPL-Utilities portfolio: Sentinel (wallet classifier), Pulse (signal feed), Telemetry (supply + utility floor), Trust (XLS-70/80/81 directory),
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Model Context Protocol server for the XRPL-Utilities portfolio: Sentinel (wallet classifier), Pulse (signal feed), Telemetry (supply + utility floor), Trust (XLS-70/80/81 directory), Vault (RWA tracker), and Flows (ETF AUM ↔ XRPL flow correlation). Exposes each service's read endpoints as MCP tools so AI agents can discover and use them via stdio (Claude Desktop) or HTTP/SSE (hosted at mcp.xrpl-utilities.io). Stateless passthrough — caller provides their own x402 payment header.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|