@xrpl-utilities/mcp 0.2.166 → 0.2.167
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 -0
- package/dist/hSeal.d.ts +29 -0
- package/dist/hSeal.js +49 -0
- package/dist/hSeal.js.map +1 -0
- package/dist/server.js +11 -0
- package/dist/server.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -42,6 +42,17 @@ Operators can set `MCP_BYPASS_KEY` on the server to enable an opt-in
|
|
|
42
42
|
bypass for friendlies / demos. The caller passes the matching key as
|
|
43
43
|
`_bypass_key` in the tool args. Rate-limited at the proxy layer.
|
|
44
44
|
|
|
45
|
+
### H-Seal receipt co-signing (optional)
|
|
46
|
+
|
|
47
|
+
Set `PROVIDER_IDENTITY` (our CAIP-10, e.g. `xrpl:0:r...`) and
|
|
48
|
+
`PROVIDER_KEY_RAW` (32-byte ed25519 seed, hex) on the server to have every
|
|
49
|
+
tool response co-signed with an [H-Seal](https://h-seal.xr-utilities.com)
|
|
50
|
+
provider attestation. The attestation rides on the tool result's
|
|
51
|
+
`_meta.hSeal`, so a caller can anchor a tamper-evident, independently
|
|
52
|
+
verifiable on-chain receipt of the interaction. When either var is unset the
|
|
53
|
+
feature is inert and responses are unchanged. Never hardcode the key — env
|
|
54
|
+
only. See `src/hSeal.ts`.
|
|
55
|
+
|
|
45
56
|
## Use it
|
|
46
57
|
|
|
47
58
|
### Locally via Claude Desktop (stdio)
|
package/dist/hSeal.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* H-Seal provider co-signing for the MCP surface.
|
|
3
|
+
*
|
|
4
|
+
* After a tool response is produced, the MCP server co-signs the
|
|
5
|
+
* (request, response) pair so the caller can anchor a tamper-evident,
|
|
6
|
+
* independently verifiable H-Seal receipt that carries our attestation that we
|
|
7
|
+
* served it. See https://h-seal.xr-utilities.com and the H-Series white paper.
|
|
8
|
+
*
|
|
9
|
+
* Configured entirely from env — never hardcode a signing key:
|
|
10
|
+
* PROVIDER_IDENTITY our CAIP-10 identity, e.g. "xrpl:0:r..."
|
|
11
|
+
* (or "hedera:mainnet:0.0.x")
|
|
12
|
+
* PROVIDER_KEY_RAW 32-byte ed25519 seed (hex) for that identity
|
|
13
|
+
*
|
|
14
|
+
* When either is unset the module is inert: attest() returns undefined and the
|
|
15
|
+
* response path is untouched. That keeps the live server safe if the key is not
|
|
16
|
+
* provisioned yet, and makes co-signing strictly additive — a paid tool call
|
|
17
|
+
* that succeeds today keeps succeeding whether or not H-Seal is configured.
|
|
18
|
+
*/
|
|
19
|
+
import { HSealProvider, type ProviderAttestation } from "@xr-utilities/h-seal-provider";
|
|
20
|
+
/** True when both PROVIDER_IDENTITY and PROVIDER_KEY_RAW are present. */
|
|
21
|
+
export declare const hSealEnabled: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Co-sign a request/response pair. Returns the provider attestation, or
|
|
24
|
+
* undefined when H-Seal is not configured. Never throws: a receipt-signing
|
|
25
|
+
* failure must not break the paid tool call it decorates.
|
|
26
|
+
*/
|
|
27
|
+
export declare function attest(request: unknown, response: unknown): Promise<ProviderAttestation | undefined>;
|
|
28
|
+
/** The configured provider (null when env is unset). Exposed for smokes/tests. */
|
|
29
|
+
export declare const hSeal: HSealProvider | null;
|
package/dist/hSeal.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* H-Seal provider co-signing for the MCP surface.
|
|
3
|
+
*
|
|
4
|
+
* After a tool response is produced, the MCP server co-signs the
|
|
5
|
+
* (request, response) pair so the caller can anchor a tamper-evident,
|
|
6
|
+
* independently verifiable H-Seal receipt that carries our attestation that we
|
|
7
|
+
* served it. See https://h-seal.xr-utilities.com and the H-Series white paper.
|
|
8
|
+
*
|
|
9
|
+
* Configured entirely from env — never hardcode a signing key:
|
|
10
|
+
* PROVIDER_IDENTITY our CAIP-10 identity, e.g. "xrpl:0:r..."
|
|
11
|
+
* (or "hedera:mainnet:0.0.x")
|
|
12
|
+
* PROVIDER_KEY_RAW 32-byte ed25519 seed (hex) for that identity
|
|
13
|
+
*
|
|
14
|
+
* When either is unset the module is inert: attest() returns undefined and the
|
|
15
|
+
* response path is untouched. That keeps the live server safe if the key is not
|
|
16
|
+
* provisioned yet, and makes co-signing strictly additive — a paid tool call
|
|
17
|
+
* that succeeds today keeps succeeding whether or not H-Seal is configured.
|
|
18
|
+
*/
|
|
19
|
+
import { HSealProvider, ed25519Signer, } from "@xr-utilities/h-seal-provider";
|
|
20
|
+
const identity = process.env["PROVIDER_IDENTITY"];
|
|
21
|
+
const keyRaw = process.env["PROVIDER_KEY_RAW"];
|
|
22
|
+
/** True when both PROVIDER_IDENTITY and PROVIDER_KEY_RAW are present. */
|
|
23
|
+
export const hSealEnabled = Boolean(identity && keyRaw);
|
|
24
|
+
const provider = hSealEnabled
|
|
25
|
+
? new HSealProvider({
|
|
26
|
+
identity: identity,
|
|
27
|
+
signer: ed25519Signer(keyRaw),
|
|
28
|
+
network: "mainnet",
|
|
29
|
+
})
|
|
30
|
+
: null;
|
|
31
|
+
/**
|
|
32
|
+
* Co-sign a request/response pair. Returns the provider attestation, or
|
|
33
|
+
* undefined when H-Seal is not configured. Never throws: a receipt-signing
|
|
34
|
+
* failure must not break the paid tool call it decorates.
|
|
35
|
+
*/
|
|
36
|
+
export async function attest(request, response) {
|
|
37
|
+
if (!provider)
|
|
38
|
+
return undefined;
|
|
39
|
+
try {
|
|
40
|
+
return await provider.attest({ request, response });
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
console.error(`[hSeal] attest failed, returning response without attestation: ${err.message}`);
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** The configured provider (null when env is unset). Exposed for smokes/tests. */
|
|
48
|
+
export const hSeal = provider;
|
|
49
|
+
//# sourceMappingURL=hSeal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hSeal.js","sourceRoot":"","sources":["../src/hSeal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,aAAa,EACb,aAAa,GAEd,MAAM,+BAA+B,CAAC;AAEvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAClD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAE/C,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAY,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;AAEjE,MAAM,QAAQ,GAAyB,YAAY;IACjD,CAAC,CAAC,IAAI,aAAa,CAAC;QAChB,QAAQ,EAAE,QAAkB;QAC5B,MAAM,EAAE,aAAa,CAAC,MAAgB,CAAC;QACvC,OAAO,EAAE,SAAS;KACnB,CAAC;IACJ,CAAC,CAAC,IAAI,CAAC;AAET;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAgB,EAChB,QAAiB;IAEjB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,kEACG,GAAa,CAAC,OACjB,EAAE,CACH,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -8,6 +8,7 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
|
8
8
|
import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
9
9
|
import { ALL_TOOLS, SERVICES } from "./services/index.js";
|
|
10
10
|
import { dispatchTool } from "./dispatch.js";
|
|
11
|
+
import { attest } from "./hSeal.js";
|
|
11
12
|
import { SERVER_VERSION } from "./version.js";
|
|
12
13
|
const SERVER_NAME = "xrpl-utilities";
|
|
13
14
|
export function buildServer(opts = {}) {
|
|
@@ -38,6 +39,15 @@ export function buildServer(opts = {}) {
|
|
|
38
39
|
const args = (req.params.arguments ?? {});
|
|
39
40
|
try {
|
|
40
41
|
const result = await dispatchTool(req.params.name, args, opts);
|
|
42
|
+
// Co-sign the (request, response) pair so the caller can anchor a
|
|
43
|
+
// tamper-evident H-Seal receipt carrying our attestation that we served
|
|
44
|
+
// it. Strip transport-only secrets from the signed request so the
|
|
45
|
+
// attestation stays reproducible and never folds a payment signature or
|
|
46
|
+
// bypass key into the receipt hash. No-op when H-Seal env is unset.
|
|
47
|
+
const signedArgs = { ...args };
|
|
48
|
+
delete signedArgs["payment_signature"];
|
|
49
|
+
delete signedArgs["_bypass_key"];
|
|
50
|
+
const attestation = await attest({ tool: req.params.name, args: signedArgs }, result);
|
|
41
51
|
return {
|
|
42
52
|
content: [
|
|
43
53
|
{
|
|
@@ -45,6 +55,7 @@ export function buildServer(opts = {}) {
|
|
|
45
55
|
text: typeof result === "string" ? result : JSON.stringify(result, null, 2),
|
|
46
56
|
},
|
|
47
57
|
],
|
|
58
|
+
...(attestation ? { _meta: { hSeal: attestation } } : {}),
|
|
48
59
|
};
|
|
49
60
|
}
|
|
50
61
|
catch (e) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAwB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAErC,MAAM,UAAU,WAAW,CAAC,OAAwB,EAAE;IACpD,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,EAC9C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAC/C,CAAC;IAEF,6EAA6E;IAC7E,yEAAyE;IACzE,2EAA2E;IAC3E,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,MAAM,OAAO,GACX,CAAC,CAAC,QAAQ,KAAK,MAAM;gBACnB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAC9B,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,eAAe;oBAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE;oBAC5D,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,4BAA4B;wBACvC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,EAAE;wBACxG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;YACpE,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,KAAK,EAAE,EAAE,OAAO,EAAE;aACnB,CAAC;QACJ,CAAC,CAAC;KACH,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5D,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;QACrE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xrpl-utilities/mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.167",
|
|
4
4
|
"mcpName": "io.github.XRPL-Utilities/mcp",
|
|
5
5
|
"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 vs 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.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
25
|
+
"@xr-utilities/h-seal-provider": "github:XR-Utilities/h-seal-provider#v0.1.0",
|
|
25
26
|
"express": "^4.21.0"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|