@scriptmasterlabs/mcp-x402 2.1.1 → 2.1.2
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/.well-known/agentcard.json +34 -0
- package/.well-known/ai.txt +32 -0
- package/CONTRIBUTING.md +76 -0
- package/LICENSE +21 -57
- package/README.md +304 -262
- package/agents.json +81 -0
- package/ai/faq.json +74 -0
- package/ai/summary.json +157 -0
- package/dist/lib/chains/base.d.ts +10 -0
- package/dist/lib/chains/base.d.ts.map +1 -0
- package/dist/lib/chains/base.js +75 -0
- package/dist/lib/chains/base.js.map +1 -0
- package/dist/lib/chains/solana.d.ts +10 -0
- package/dist/lib/chains/solana.d.ts.map +1 -0
- package/dist/lib/chains/solana.js +49 -0
- package/dist/lib/chains/solana.js.map +1 -0
- package/dist/lib/chains/xrpl.d.ts +10 -0
- package/dist/lib/chains/xrpl.d.ts.map +1 -0
- package/dist/lib/chains/xrpl.js +55 -0
- package/dist/lib/chains/xrpl.js.map +1 -0
- package/dist/lib/credit/bureau.d.ts +16 -0
- package/dist/lib/credit/bureau.d.ts.map +1 -0
- package/dist/lib/credit/bureau.js +88 -0
- package/dist/lib/credit/bureau.js.map +1 -0
- package/dist/lib/sml-api/agentcard.d.ts +17 -0
- package/dist/lib/sml-api/agentcard.d.ts.map +1 -0
- package/dist/lib/sml-api/agentcard.js +30 -0
- package/dist/lib/sml-api/agentcard.js.map +1 -0
- package/dist/lib/sml-api/backtest.d.ts +22 -0
- package/dist/lib/sml-api/backtest.d.ts.map +1 -0
- package/dist/lib/sml-api/backtest.js +28 -0
- package/dist/lib/sml-api/backtest.js.map +1 -0
- package/dist/lib/sml-api/brokers.d.ts +40 -0
- package/dist/lib/sml-api/brokers.d.ts.map +1 -0
- package/dist/lib/sml-api/brokers.js +128 -0
- package/dist/lib/sml-api/brokers.js.map +1 -0
- package/dist/lib/sml-api/copytrader.d.ts +11 -0
- package/dist/lib/sml-api/copytrader.d.ts.map +1 -0
- package/dist/lib/sml-api/copytrader.js +30 -0
- package/dist/lib/sml-api/copytrader.js.map +1 -0
- package/dist/lib/sml-api/crawl.d.ts +20 -0
- package/dist/lib/sml-api/crawl.d.ts.map +1 -0
- package/dist/lib/sml-api/crawl.js +32 -0
- package/dist/lib/sml-api/crawl.js.map +1 -0
- package/dist/lib/sml-api/echo.d.ts +10 -0
- package/dist/lib/sml-api/echo.d.ts.map +1 -0
- package/dist/lib/sml-api/echo.js +23 -0
- package/dist/lib/sml-api/echo.js.map +1 -0
- package/dist/lib/sml-api/forge.d.ts +11 -0
- package/dist/lib/sml-api/forge.d.ts.map +1 -0
- package/dist/lib/sml-api/forge.js +29 -0
- package/dist/lib/sml-api/forge.js.map +1 -0
- package/dist/lib/sml-api/ftd.d.ts +18 -0
- package/dist/lib/sml-api/ftd.d.ts.map +1 -0
- package/dist/lib/sml-api/ftd.js +43 -0
- package/dist/lib/sml-api/ftd.js.map +1 -0
- package/dist/lib/sml-api/ghost.d.ts +13 -0
- package/dist/lib/sml-api/ghost.d.ts.map +1 -0
- package/dist/lib/sml-api/ghost.js +29 -0
- package/dist/lib/sml-api/ghost.js.map +1 -0
- package/dist/lib/sml-api/launchpad.d.ts +20 -0
- package/dist/lib/sml-api/launchpad.d.ts.map +1 -0
- package/dist/lib/sml-api/launchpad.js +31 -0
- package/dist/lib/sml-api/launchpad.js.map +1 -0
- package/dist/lib/sml-api/leviathan.d.ts +22 -0
- package/dist/lib/sml-api/leviathan.d.ts.map +1 -0
- package/dist/lib/sml-api/leviathan.js +33 -0
- package/dist/lib/sml-api/leviathan.js.map +1 -0
- package/dist/lib/sml-api/nexus.d.ts +18 -0
- package/dist/lib/sml-api/nexus.d.ts.map +1 -0
- package/dist/lib/sml-api/nexus.js +40 -0
- package/dist/lib/sml-api/nexus.js.map +1 -0
- package/dist/lib/sml-api/proof402.d.ts +6 -0
- package/dist/lib/sml-api/proof402.d.ts.map +1 -0
- package/dist/lib/sml-api/proof402.js +30 -0
- package/dist/lib/sml-api/proof402.js.map +1 -0
- package/dist/lib/sml-api/rails.d.ts +12 -0
- package/dist/lib/sml-api/rails.d.ts.map +1 -0
- package/dist/lib/sml-api/rails.js +29 -0
- package/dist/lib/sml-api/rails.js.map +1 -0
- package/dist/lib/sml-api/shadow.d.ts +15 -0
- package/dist/lib/sml-api/shadow.d.ts.map +1 -0
- package/dist/lib/sml-api/shadow.js +27 -0
- package/dist/lib/sml-api/shadow.js.map +1 -0
- package/dist/lib/sml-api/squeezeos.d.ts +21 -0
- package/dist/lib/sml-api/squeezeos.d.ts.map +1 -0
- package/dist/lib/sml-api/squeezeos.js +97 -0
- package/dist/lib/sml-api/squeezeos.js.map +1 -0
- package/dist/lib/sml-api/xdeo.d.ts +13 -0
- package/dist/lib/sml-api/xdeo.d.ts.map +1 -0
- package/dist/lib/sml-api/xdeo.js +34 -0
- package/dist/lib/sml-api/xdeo.js.map +1 -0
- package/dist/lib/sml-api/xmit.d.ts +13 -0
- package/dist/lib/sml-api/xmit.d.ts.map +1 -0
- package/dist/lib/sml-api/xmit.js +34 -0
- package/dist/lib/sml-api/xmit.js.map +1 -0
- package/dist/server/apm/capabilities.d.ts +31 -0
- package/dist/server/apm/capabilities.d.ts.map +1 -0
- package/dist/server/apm/capabilities.js +157 -0
- package/dist/server/apm/capabilities.js.map +1 -0
- package/dist/server/apm/execute.d.ts +18 -0
- package/dist/server/apm/execute.d.ts.map +1 -0
- package/dist/server/apm/execute.js +37 -0
- package/dist/server/apm/execute.js.map +1 -0
- package/dist/server/apm/matcher.d.ts +17 -0
- package/dist/server/apm/matcher.d.ts.map +1 -0
- package/dist/server/apm/matcher.js +71 -0
- package/dist/server/apm/matcher.js.map +1 -0
- package/dist/server/apm/quote.d.ts +53 -0
- package/dist/server/apm/quote.d.ts.map +1 -0
- package/dist/server/apm/quote.js +82 -0
- package/dist/server/apm/quote.js.map +1 -0
- package/dist/server/apm/schema.d.ts +109 -0
- package/dist/server/apm/schema.d.ts.map +1 -0
- package/dist/server/apm/schema.js +31 -0
- package/dist/server/apm/schema.js.map +1 -0
- package/dist/server/health.d.ts +16 -0
- package/dist/server/health.d.ts.map +1 -0
- package/dist/server/health.js +39 -0
- package/dist/server/health.js.map +1 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +322 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/payments/agent-payment.d.ts +71 -0
- package/dist/server/payments/agent-payment.d.ts.map +1 -0
- package/dist/server/payments/agent-payment.js +112 -0
- package/dist/server/payments/agent-payment.js.map +1 -0
- package/dist/server/payments/ap2.d.ts +17 -0
- package/dist/server/payments/ap2.d.ts.map +1 -0
- package/dist/server/payments/ap2.js +77 -0
- package/dist/server/payments/ap2.js.map +1 -0
- package/dist/server/payments/receipt.d.ts +28 -0
- package/dist/server/payments/receipt.d.ts.map +1 -0
- package/dist/server/payments/receipt.js +60 -0
- package/dist/server/payments/receipt.js.map +1 -0
- package/dist/server/payments/router.d.ts +23 -0
- package/dist/server/payments/router.d.ts.map +1 -0
- package/dist/server/payments/router.js +69 -0
- package/dist/server/payments/router.js.map +1 -0
- package/dist/server/payments/wallet.d.ts +18 -0
- package/dist/server/payments/wallet.d.ts.map +1 -0
- package/dist/server/payments/wallet.js +107 -0
- package/dist/server/payments/wallet.js.map +1 -0
- package/dist/server/payments/x402.d.ts +55 -0
- package/dist/server/payments/x402.d.ts.map +1 -0
- package/dist/server/payments/x402.js +247 -0
- package/dist/server/payments/x402.js.map +1 -0
- package/dist/server/registry/backends.d.ts +29 -0
- package/dist/server/registry/backends.d.ts.map +1 -0
- package/dist/server/registry/backends.js +61 -0
- package/dist/server/registry/backends.js.map +1 -0
- package/dist/server/registry/catalog.d.ts +12 -0
- package/dist/server/registry/catalog.d.ts.map +1 -0
- package/dist/server/registry/catalog.js +55 -0
- package/dist/server/registry/catalog.js.map +1 -0
- package/dist/server/registry/discovery.d.ts +16 -0
- package/dist/server/registry/discovery.d.ts.map +1 -0
- package/dist/server/registry/discovery.js +33 -0
- package/dist/server/registry/discovery.js.map +1 -0
- package/dist/server/registry/pricing.d.ts +10 -0
- package/dist/server/registry/pricing.d.ts.map +1 -0
- package/dist/server/registry/pricing.js +124 -0
- package/dist/server/registry/pricing.js.map +1 -0
- package/dist/server/security/acl.d.ts +28 -0
- package/dist/server/security/acl.d.ts.map +1 -0
- package/dist/server/security/acl.js +36 -0
- package/dist/server/security/acl.js.map +1 -0
- package/dist/server/security/audit.d.ts +15 -0
- package/dist/server/security/audit.d.ts.map +1 -0
- package/dist/server/security/audit.js +77 -0
- package/dist/server/security/audit.js.map +1 -0
- package/dist/server/security/rate-limit.d.ts +12 -0
- package/dist/server/security/rate-limit.d.ts.map +1 -0
- package/dist/server/security/rate-limit.js +72 -0
- package/dist/server/security/rate-limit.js.map +1 -0
- package/dist/server/security/sandbox.d.ts +7 -0
- package/dist/server/security/sandbox.d.ts.map +1 -0
- package/dist/server/security/sandbox.js +42 -0
- package/dist/server/security/sandbox.js.map +1 -0
- package/dist/server/tools/agentcard.d.ts +3 -0
- package/dist/server/tools/agentcard.d.ts.map +1 -0
- package/dist/server/tools/agentcard.js +118 -0
- package/dist/server/tools/agentcard.js.map +1 -0
- package/dist/server/tools/apm-execute.d.ts +3 -0
- package/dist/server/tools/apm-execute.d.ts.map +1 -0
- package/dist/server/tools/apm-execute.js +94 -0
- package/dist/server/tools/apm-execute.js.map +1 -0
- package/dist/server/tools/apm.d.ts +3 -0
- package/dist/server/tools/apm.d.ts.map +1 -0
- package/dist/server/tools/apm.js +135 -0
- package/dist/server/tools/apm.js.map +1 -0
- package/dist/server/tools/backtest.d.ts +3 -0
- package/dist/server/tools/backtest.d.ts.map +1 -0
- package/dist/server/tools/backtest.js +112 -0
- package/dist/server/tools/backtest.js.map +1 -0
- package/dist/server/tools/brokers.d.ts +3 -0
- package/dist/server/tools/brokers.d.ts.map +1 -0
- package/dist/server/tools/brokers.js +223 -0
- package/dist/server/tools/brokers.js.map +1 -0
- package/dist/server/tools/copytrader.d.ts +3 -0
- package/dist/server/tools/copytrader.d.ts.map +1 -0
- package/dist/server/tools/copytrader.js +90 -0
- package/dist/server/tools/copytrader.js.map +1 -0
- package/dist/server/tools/crawl.d.ts +3 -0
- package/dist/server/tools/crawl.d.ts.map +1 -0
- package/dist/server/tools/crawl.js +60 -0
- package/dist/server/tools/crawl.js.map +1 -0
- package/dist/server/tools/discovery.d.ts +3 -0
- package/dist/server/tools/discovery.d.ts.map +1 -0
- package/dist/server/tools/discovery.js +181 -0
- package/dist/server/tools/discovery.js.map +1 -0
- package/dist/server/tools/echo.d.ts +3 -0
- package/dist/server/tools/echo.d.ts.map +1 -0
- package/dist/server/tools/echo.js +48 -0
- package/dist/server/tools/echo.js.map +1 -0
- package/dist/server/tools/forge.d.ts +3 -0
- package/dist/server/tools/forge.d.ts.map +1 -0
- package/dist/server/tools/forge.js +77 -0
- package/dist/server/tools/forge.js.map +1 -0
- package/dist/server/tools/ftd.d.ts +3 -0
- package/dist/server/tools/ftd.d.ts.map +1 -0
- package/dist/server/tools/ftd.js +70 -0
- package/dist/server/tools/ftd.js.map +1 -0
- package/dist/server/tools/ghost.d.ts +3 -0
- package/dist/server/tools/ghost.d.ts.map +1 -0
- package/dist/server/tools/ghost.js +83 -0
- package/dist/server/tools/ghost.js.map +1 -0
- package/dist/server/tools/index.d.ts +3 -0
- package/dist/server/tools/index.d.ts.map +1 -0
- package/dist/server/tools/index.js +48 -0
- package/dist/server/tools/index.js.map +1 -0
- package/dist/server/tools/launchpad.d.ts +3 -0
- package/dist/server/tools/launchpad.d.ts.map +1 -0
- package/dist/server/tools/launchpad.js +151 -0
- package/dist/server/tools/launchpad.js.map +1 -0
- package/dist/server/tools/leviathan.d.ts +3 -0
- package/dist/server/tools/leviathan.d.ts.map +1 -0
- package/dist/server/tools/leviathan.js +73 -0
- package/dist/server/tools/leviathan.js.map +1 -0
- package/dist/server/tools/nexus.d.ts +3 -0
- package/dist/server/tools/nexus.d.ts.map +1 -0
- package/dist/server/tools/nexus.js +65 -0
- package/dist/server/tools/nexus.js.map +1 -0
- package/dist/server/tools/proof402.d.ts +3 -0
- package/dist/server/tools/proof402.d.ts.map +1 -0
- package/dist/server/tools/proof402.js +74 -0
- package/dist/server/tools/proof402.js.map +1 -0
- package/dist/server/tools/rails.d.ts +3 -0
- package/dist/server/tools/rails.d.ts.map +1 -0
- package/dist/server/tools/rails.js +82 -0
- package/dist/server/tools/rails.js.map +1 -0
- package/dist/server/tools/shadow.d.ts +3 -0
- package/dist/server/tools/shadow.d.ts.map +1 -0
- package/dist/server/tools/shadow.js +114 -0
- package/dist/server/tools/shadow.js.map +1 -0
- package/dist/server/tools/squeezeos.d.ts +3 -0
- package/dist/server/tools/squeezeos.d.ts.map +1 -0
- package/dist/server/tools/squeezeos.js +249 -0
- package/dist/server/tools/squeezeos.js.map +1 -0
- package/dist/server/tools/xdeo.d.ts +3 -0
- package/dist/server/tools/xdeo.d.ts.map +1 -0
- package/dist/server/tools/xdeo.js +58 -0
- package/dist/server/tools/xdeo.js.map +1 -0
- package/dist/server/tools/xmit.d.ts +3 -0
- package/dist/server/tools/xmit.d.ts.map +1 -0
- package/dist/server/tools/xmit.js +59 -0
- package/dist/server/tools/xmit.js.map +1 -0
- package/eslint.config.mjs +28 -0
- package/llms.txt +170 -108
- package/package.json +78 -65
- package/server.json +24 -0
- package/.well-known/x402.json +0 -37
- package/dist/index.d.ts +0 -12
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -9
- package/dist/index.js.map +0 -1
- package/dist/mcp-wrapper.d.ts +0 -71
- package/dist/mcp-wrapper.d.ts.map +0 -1
- package/dist/mcp-wrapper.js +0 -104
- package/dist/mcp-wrapper.js.map +0 -1
- package/dist/x402-middleware.d.ts +0 -76
- package/dist/x402-middleware.d.ts.map +0 -1
- package/dist/x402-middleware.js +0 -113
- package/dist/x402-middleware.js.map +0 -1
- package/dist/xrpl-facilitator.d.ts +0 -77
- package/dist/xrpl-facilitator.d.ts.map +0 -1
- package/dist/xrpl-facilitator.js +0 -156
- package/dist/xrpl-facilitator.js.map +0 -1
- package/schema.jsonld +0 -97
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerXdeo = registerXdeo;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const x402_js_1 = require("../payments/x402.js");
|
|
6
|
+
const rate_limit_js_1 = require("../security/rate-limit.js");
|
|
7
|
+
const sandbox_js_1 = require("../security/sandbox.js");
|
|
8
|
+
const audit_js_1 = require("../security/audit.js");
|
|
9
|
+
const xdeo_js_1 = require("../../lib/sml-api/xdeo.js");
|
|
10
|
+
const bureau_js_1 = require("../../lib/credit/bureau.js");
|
|
11
|
+
const wallet_js_1 = require("../payments/wallet.js");
|
|
12
|
+
const pricing_js_1 = require("../registry/pricing.js");
|
|
13
|
+
const InputSchema = zod_1.z.object({
|
|
14
|
+
ticker: zod_1.z.string().regex(/^[A-Z]{1,5}$/),
|
|
15
|
+
fiscal_quarter: zod_1.z.string().regex(/^Q[1-4]\d{4}$/),
|
|
16
|
+
estimate_type: zod_1.z.enum(['eps', 'revenue', 'guidance', 'all']),
|
|
17
|
+
wallet_address: zod_1.z.string().optional(),
|
|
18
|
+
});
|
|
19
|
+
function registerXdeo(server) {
|
|
20
|
+
server.tool('xdeo_earnings_estimate', {
|
|
21
|
+
ticker: zod_1.z.string().describe('Ticker symbol (e.g. NVDA).'),
|
|
22
|
+
fiscal_quarter: zod_1.z.string().describe('Quarter in format Q1YYYY (e.g. Q12025).'),
|
|
23
|
+
estimate_type: zod_1.z.enum(['eps', 'revenue', 'guidance', 'all']).describe('What estimate to fetch.'),
|
|
24
|
+
wallet_address: zod_1.z.string().describe('Agent wallet for payment.'),
|
|
25
|
+
}, async (rawArgs) => {
|
|
26
|
+
const args = sandbox_js_1.Sandbox.validate(InputSchema, rawArgs);
|
|
27
|
+
const audit = audit_js_1.AuditLogger.getInstance();
|
|
28
|
+
if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('xdeo_earnings_estimate')) {
|
|
29
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded' }) }], isError: true };
|
|
30
|
+
}
|
|
31
|
+
await pricing_js_1.PriceRegistry.getInstance().seedDefaults();
|
|
32
|
+
const price = await pricing_js_1.PriceRegistry.getInstance().getPrice('xdeo_earnings_estimate');
|
|
33
|
+
if (!price) {
|
|
34
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: 'price_unavailable' }) }], isError: true };
|
|
35
|
+
}
|
|
36
|
+
let payment;
|
|
37
|
+
try {
|
|
38
|
+
payment = await (0, x402_js_1.executeX402Payment)({ price, currency: 'USDC', toolName: 'xdeo_earnings_estimate', walletAddress: args.wallet_address });
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: 'payment_failed', message: String(err) }) }], isError: true };
|
|
42
|
+
}
|
|
43
|
+
const client = xdeo_js_1.XdeoClient.getInstance();
|
|
44
|
+
const data = await client.getEstimate({
|
|
45
|
+
ticker: args.ticker,
|
|
46
|
+
fiscalQuarter: args.fiscal_quarter,
|
|
47
|
+
estimateType: args.estimate_type,
|
|
48
|
+
});
|
|
49
|
+
// +2 bureau_score on success (spec requirement)
|
|
50
|
+
const wallet = await wallet_js_1.WalletManager.getInstance().getOrCreateWallet();
|
|
51
|
+
await bureau_js_1.CreditBureau.getInstance().incrementScore(wallet.address, 2);
|
|
52
|
+
audit.info('xdeo_success', { ticker: args.ticker, quarter: args.fiscal_quarter, receiptId: payment.receiptId });
|
|
53
|
+
return {
|
|
54
|
+
content: [{ type: 'text', text: JSON.stringify({ data, bureau_score_delta: '+2', _meta: { receipt_id: payment.receiptId, tx_hash: payment.txHash, chain: payment.chain, amount_paid: `${payment.amountPaid} ${payment.currency}` } }) }],
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=xdeo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xdeo.js","sourceRoot":"","sources":["../../../src/server/tools/xdeo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xmit.d.ts","sourceRoot":"","sources":["../../../src/server/tools/xmit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmDpD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerXmit = registerXmit;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const x402_js_1 = require("../payments/x402.js");
|
|
6
|
+
const rate_limit_js_1 = require("../security/rate-limit.js");
|
|
7
|
+
const sandbox_js_1 = require("../security/sandbox.js");
|
|
8
|
+
const audit_js_1 = require("../security/audit.js");
|
|
9
|
+
const xmit_js_1 = require("../../lib/sml-api/xmit.js");
|
|
10
|
+
const pricing_js_1 = require("../registry/pricing.js");
|
|
11
|
+
const InputSchema = zod_1.z.object({
|
|
12
|
+
filing_url: zod_1.z.string().url(),
|
|
13
|
+
parse_target: zod_1.z.enum(['executive_pay', 'holdings', 'ownership_changes', 'all']),
|
|
14
|
+
format: zod_1.z.enum(['json', 'markdown']).default('json'),
|
|
15
|
+
wallet_address: zod_1.z.string().optional(),
|
|
16
|
+
});
|
|
17
|
+
function registerXmit(server) {
|
|
18
|
+
server.tool('xmit_edgar_decode', {
|
|
19
|
+
filing_url: zod_1.z.string().describe('SEC EDGAR filing URL (DEF 14A, 13F, or 13D).'),
|
|
20
|
+
parse_target: zod_1.z.enum(['executive_pay', 'holdings', 'ownership_changes', 'all']).describe('What to extract.'),
|
|
21
|
+
format: zod_1.z.enum(['json', 'markdown']).describe('Output format. Default: json.'),
|
|
22
|
+
wallet_address: zod_1.z.string().describe('Agent wallet for payment.'),
|
|
23
|
+
}, async (rawArgs) => {
|
|
24
|
+
const args = sandbox_js_1.Sandbox.validate(InputSchema, rawArgs);
|
|
25
|
+
const audit = audit_js_1.AuditLogger.getInstance();
|
|
26
|
+
// Validate URL is https SEC EDGAR URL
|
|
27
|
+
const url = sandbox_js_1.Sandbox.validateUrl(args.filing_url);
|
|
28
|
+
if (!url.hostname.endsWith('sec.gov') && !url.hostname.endsWith('edgar.sec.gov')) {
|
|
29
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: 'invalid_url', message: 'Only SEC EDGAR URLs are accepted.' }) }], isError: true };
|
|
30
|
+
}
|
|
31
|
+
if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('xmit_edgar_decode')) {
|
|
32
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded' }) }], isError: true };
|
|
33
|
+
}
|
|
34
|
+
await pricing_js_1.PriceRegistry.getInstance().seedDefaults();
|
|
35
|
+
const price = await pricing_js_1.PriceRegistry.getInstance().getPrice('xmit_edgar_decode');
|
|
36
|
+
if (!price) {
|
|
37
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: 'price_unavailable' }) }], isError: true };
|
|
38
|
+
}
|
|
39
|
+
let payment;
|
|
40
|
+
try {
|
|
41
|
+
payment = await (0, x402_js_1.executeX402Payment)({ price, currency: 'USDC', toolName: 'xmit_edgar_decode', walletAddress: args.wallet_address });
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
return { content: [{ type: 'text', text: JSON.stringify({ error: 'payment_failed', message: String(err) }) }], isError: true };
|
|
45
|
+
}
|
|
46
|
+
const client = xmit_js_1.XmitClient.getInstance();
|
|
47
|
+
const data = await client.decode({
|
|
48
|
+
filingUrl: args.filing_url,
|
|
49
|
+
parseTarget: args.parse_target,
|
|
50
|
+
format: args.format ?? 'json',
|
|
51
|
+
});
|
|
52
|
+
// Raw text NEVER returned (N3) — only structured parsed output
|
|
53
|
+
audit.info('xmit_success', { receiptId: payment.receiptId });
|
|
54
|
+
return {
|
|
55
|
+
content: [{ type: 'text', text: JSON.stringify({ data, _meta: { receipt_id: payment.receiptId, tx_hash: payment.txHash, chain: payment.chain, amount_paid: `${payment.amountPaid} ${payment.currency}` } }) }],
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=xmit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xmit.js","sourceRoot":"","sources":["../../../src/server/tools/xmit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// ESLint 9 flat config. The repo had no config file, so `npm run lint` always
|
|
2
|
+
// errored out. This is a sane TypeScript baseline: style issues are warnings (so
|
|
3
|
+
// lint passes and can be ratcheted up over time), not hard build-breaking errors.
|
|
4
|
+
import tsparser from '@typescript-eslint/parser';
|
|
5
|
+
import tseslint from '@typescript-eslint/eslint-plugin';
|
|
6
|
+
|
|
7
|
+
export default [
|
|
8
|
+
{
|
|
9
|
+
ignores: ['dist/**', 'node_modules/**', 'coverage/**', 'sdk/**'],
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
files: ['src/**/*.ts', 'tests/**/*.ts'],
|
|
13
|
+
languageOptions: {
|
|
14
|
+
parser: tsparser,
|
|
15
|
+
ecmaVersion: 2022,
|
|
16
|
+
sourceType: 'module',
|
|
17
|
+
},
|
|
18
|
+
plugins: { '@typescript-eslint': tseslint },
|
|
19
|
+
rules: {
|
|
20
|
+
'no-unused-vars': 'off',
|
|
21
|
+
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_', varsIgnorePattern: '^_' }],
|
|
22
|
+
'@typescript-eslint/no-explicit-any': 'warn',
|
|
23
|
+
eqeqeq: ['warn', 'smart'],
|
|
24
|
+
'prefer-const': 'warn',
|
|
25
|
+
'no-var': 'error',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
];
|
package/llms.txt
CHANGED
|
@@ -1,108 +1,170 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
1
|
+
# mcp-x402 — ScriptMasterLabs Autonomous Payment MCP Server
|
|
2
|
+
# The x402 Amazon: 51 tools, pay-per-call, no API keys
|
|
3
|
+
|
|
4
|
+
> The first MCP server that pays for itself.
|
|
5
|
+
|
|
6
|
+
## What this is
|
|
7
|
+
|
|
8
|
+
mcp-x402 is the front door to ScriptMasterLabs financial intelligence products. AI agents (Claude, Cursor, GPT, etc.) connect once and get access to 51 tools covering market intelligence, SEC data, XRPL payments, copy-trading, web scraping, and more. Agents pay with stablecoins autonomously — no human billing, no API keys.
|
|
9
|
+
|
|
10
|
+
## Quick Start (30 seconds)
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx @scriptmasterlabs/mcp-x402 init
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add to Claude Code / Cursor config:
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{
|
|
20
|
+
"mcpServers": {
|
|
21
|
+
"sml": {
|
|
22
|
+
"command": "npx",
|
|
23
|
+
"args": ["@scriptmasterlabs/mcp-x402"]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Or connect to the live remote:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"mcpServers": {
|
|
34
|
+
"sml": {
|
|
35
|
+
"url": "https://mcp-x402.onrender.com/mcp",
|
|
36
|
+
"transport": "streamable-http"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Chains & Currencies
|
|
43
|
+
|
|
44
|
+
- Base (USDC) — preferred for speed (<3s)
|
|
45
|
+
- XRPL (RLUSD) — preferred for XRPL ecosystem agents
|
|
46
|
+
- Solana (USDC-SPL) — fallback
|
|
47
|
+
- Xahau (RLUSD) — XAH holders
|
|
48
|
+
|
|
49
|
+
Auto-selects the cheapest/fastest chain. No configuration needed.
|
|
50
|
+
|
|
51
|
+
## Tools
|
|
52
|
+
|
|
53
|
+
### Discovery (free)
|
|
54
|
+
- sml_discover — Full SML product catalog: all tools, prices, chains. Start here.
|
|
55
|
+
- sml_status — Health of all SML services in one call.
|
|
56
|
+
|
|
57
|
+
### Market Intelligence — SqueezeOS (squeezeos-api.onrender.com)
|
|
58
|
+
- squeezeos_preview — FREE. Bias + regime preview for any ticker. 15-min cache.
|
|
59
|
+
- squeezeos_demo — FREE. IWM council demo verdict. 5-min cache.
|
|
60
|
+
- squeezeos_history — FREE. Recent signal ring buffer (200/symbol).
|
|
61
|
+
- squeezeos_oracle — FREE. Aggregated oracle directive for any ticker.
|
|
62
|
+
- squeezeos_ftd — FREE. SEC Reg SHO FTD registry (GME/AMC).
|
|
63
|
+
- squeezeos_status — FREE. SqueezeOS system health.
|
|
64
|
+
- squeezeos_marketplace_browse — FREE. Browse peer signal listings.
|
|
65
|
+
- squeezeos_futures_leaderboard — FREE. Top signal predictors.
|
|
66
|
+
- squeezeos_council — 0.10 USDC. Multi-engine AI verdict for any ticker.
|
|
67
|
+
- squeezeos_scan — 0.05 USDC. Full $1–$50 institutional squeeze scanner.
|
|
68
|
+
- squeezeos_options — 0.05 USDC. Institutional options flow scanner.
|
|
69
|
+
- squeezeos_iwm — 0.03 USDC. IWM zero-day-to-expiry contract scorer.
|
|
70
|
+
- squeezeos_marketplace_read — 0.02 USDC. Full signal thesis from marketplace.
|
|
71
|
+
|
|
72
|
+
### SEC Filings — XMIT (free preview / 0.02 USDC paid)
|
|
73
|
+
- xmit_edgar_decode — 0.02 USDC. Parse SEC DEF 14A / 13F / 13D filings.
|
|
74
|
+
|
|
75
|
+
### FTD Data (free / 0.05 USDC)
|
|
76
|
+
- ftd_threshold_scan — Alerts free; full SEC Reg SHO FTD scan 0.05 USDC.
|
|
77
|
+
|
|
78
|
+
### Earnings Intelligence — XDEO (0.02 USDC)
|
|
79
|
+
- xdeo_earnings_estimate — 0.02 USDC. Decentralized earnings oracle. +2 bureau score.
|
|
80
|
+
|
|
81
|
+
### Leviathan Squeeze Signal (0.05 USDC)
|
|
82
|
+
- leviathan_signal — 0.05 USDC. Institutional squeeze signals, multi-engine verdict.
|
|
83
|
+
|
|
84
|
+
### Echo Pattern Matching (free preview)
|
|
85
|
+
- echo_pattern_match — Historical pattern similarity scan (Polygon + ML cosine similarity).
|
|
86
|
+
|
|
87
|
+
### XRPL Payments — Ghost Layer (ghost-layer.onrender.com)
|
|
88
|
+
- ghost_route — Route private XRPL payments via Ghost Layer toll gateway.
|
|
89
|
+
- ghost_status — Ghost Layer service health.
|
|
90
|
+
|
|
91
|
+
### XRPL Rails (sml-rails.onrender.com)
|
|
92
|
+
- rails_transfer — RLUSD/XRP remittance on XRPL/Xahau.
|
|
93
|
+
- rails_status — Rails service health.
|
|
94
|
+
|
|
95
|
+
### XRPL Copy-Trader (sml-copytrader.onrender.com)
|
|
96
|
+
- copytrader_subscribe — Subscribe to whale wallet copy-trading.
|
|
97
|
+
- copytrader_whales — Browse top whale wallets.
|
|
98
|
+
- copytrader_status — Copy-trader service health.
|
|
99
|
+
|
|
100
|
+
### Memecoin Launchpad (sml-launchpad.onrender.com)
|
|
101
|
+
- launchpad_create — Deploy a bonding-curve memecoin on XRPL.
|
|
102
|
+
- launchpad_buy — Buy a memecoin from the bonding curve.
|
|
103
|
+
- launchpad_list — Browse active memecoins.
|
|
104
|
+
- launchpad_status — Launchpad service health.
|
|
105
|
+
|
|
106
|
+
### Shadow Desk Signal Server (shadow-desk.onrender.com)
|
|
107
|
+
- shadow_ingest — Ingest proprietary signal data.
|
|
108
|
+
- shadow_query — Query shadow desk signal store.
|
|
109
|
+
|
|
110
|
+
### LLM Forge (forge-gateway-a822.onrender.com)
|
|
111
|
+
- forge_llm — BYOK LLM proxy. Pay with USDC; use any model.
|
|
112
|
+
- forge_status — Forge gateway health.
|
|
113
|
+
|
|
114
|
+
### Web Scraping — Aetheris (aetheris-mcp.onrender.com)
|
|
115
|
+
- crawl_paid_fetch — 0.005 USDC per page. Clean Markdown via JSDOM.
|
|
116
|
+
|
|
117
|
+
### Agent Credit Bureau — 402Proof (four02proof.onrender.com)
|
|
118
|
+
- proof_invoice — Get a payment invoice for any SML endpoint.
|
|
119
|
+
- proof_verify — Submit payment tx_hash → receive JWT access token.
|
|
120
|
+
- proof_credit_score — FICO-style 300–850 score for any wallet. Free.
|
|
121
|
+
|
|
122
|
+
### Agent Marketplace — Nexus (free / commission)
|
|
123
|
+
- nexus_agent_hire — Browse + hire agents. Query free; hire 5% commission.
|
|
124
|
+
|
|
125
|
+
### Agent Identity — AgentCard
|
|
126
|
+
- agentcard_lookup — Look up an agent's card by DID or wallet.
|
|
127
|
+
- agentcard_mint — Mint a new agent card (identity on XRPL).
|
|
128
|
+
- agentcard_verify — Verify an agent card signature.
|
|
129
|
+
|
|
130
|
+
### Broker Integrations
|
|
131
|
+
- tradier_quote — Real-time Tradier quote.
|
|
132
|
+
- tradier_order — Place a Tradier order.
|
|
133
|
+
- tradier_positions — Tradier positions.
|
|
134
|
+
- robinhood_quote — Robinhood quote.
|
|
135
|
+
- robinhood_order — Place a Robinhood order.
|
|
136
|
+
- robinhood_portfolio — Robinhood portfolio.
|
|
137
|
+
|
|
138
|
+
### Backtesting
|
|
139
|
+
- backtest_run — Run a strategy backtest.
|
|
140
|
+
- backtest_validate — Validate backtest parameters.
|
|
141
|
+
|
|
142
|
+
## Payment Architecture
|
|
143
|
+
|
|
144
|
+
1. Agent calls `sml_discover` → sees full catalog with prices
|
|
145
|
+
2. Agent calls a tool → AP2 mandate checked (Credit Bureau score ≥ 300 auto-approves)
|
|
146
|
+
3. x402 payment fires autonomously on cheapest/fastest available chain
|
|
147
|
+
4. 402Proof receipt returned in every paid response
|
|
148
|
+
5. Credit Bureau score updates (+5 per paid call)
|
|
149
|
+
|
|
150
|
+
## Spend Controls
|
|
151
|
+
|
|
152
|
+
- Auto-approve: all sessions (AP2 mandate)
|
|
153
|
+
- Daily cap: $50.00 per wallet
|
|
154
|
+
- Per-session soft limit: $1.00 (prompt before exceeding)
|
|
155
|
+
|
|
156
|
+
## Security
|
|
157
|
+
|
|
158
|
+
- Private keys: OS keychain ONLY — never env vars or files
|
|
159
|
+
- Append-only SHA-256 chained audit log
|
|
160
|
+
- Rate limit: 100 req/min per tool, 1000 req/day per wallet
|
|
161
|
+
- Zod validation on all inputs
|
|
162
|
+
|
|
163
|
+
## Links
|
|
164
|
+
|
|
165
|
+
- npm: https://www.npmjs.com/package/@scriptmasterlabs/mcp-x402
|
|
166
|
+
- Remote MCP: https://mcp-x402.onrender.com/mcp
|
|
167
|
+
- GitHub: https://github.com/timwal78/SML_Portfolio/tree/main/mcp-x402
|
|
168
|
+
- ScriptMasterLabs: https://scriptmasterlabs.com
|
|
169
|
+
- 402Proof: https://four02proof.onrender.com
|
|
170
|
+
- SqueezeOS API: https://squeezeos-api.onrender.com
|
package/package.json
CHANGED
|
@@ -1,65 +1,78 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@scriptmasterlabs/mcp-x402",
|
|
3
|
-
"version": "2.1.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"scriptmasterlabs"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"@
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@scriptmasterlabs/mcp-x402",
|
|
3
|
+
"version": "2.1.2",
|
|
4
|
+
"mcpName": "io.github.Timwal78/mcp-x402",
|
|
5
|
+
"description": "The first MCP server that pays for itself. AI agents pay for ScriptMasterLabs data autonomously via x402.",
|
|
6
|
+
"main": "dist/server/index.js",
|
|
7
|
+
"types": "dist/server/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"mcp-x402": "dist/server/index.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"dev": "tsx watch src/server/index.ts",
|
|
14
|
+
"start": "node dist/server/index.js",
|
|
15
|
+
"start:sse": "MCP_TRANSPORT=sse node dist/server/index.js",
|
|
16
|
+
"test": "vitest run",
|
|
17
|
+
"test:unit": "vitest run tests/unit",
|
|
18
|
+
"test:integration": "vitest run tests/integration",
|
|
19
|
+
"test:coverage": "vitest run --coverage",
|
|
20
|
+
"lint": "eslint src tests",
|
|
21
|
+
"typecheck": "tsc --noEmit",
|
|
22
|
+
"prepublishOnly": "npm run build && npm run typecheck"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"mcp",
|
|
26
|
+
"model-context-protocol",
|
|
27
|
+
"x402",
|
|
28
|
+
"ai-agents",
|
|
29
|
+
"autonomous-payments",
|
|
30
|
+
"scriptmasterlabs",
|
|
31
|
+
"xrpl",
|
|
32
|
+
"base",
|
|
33
|
+
"solana",
|
|
34
|
+
"stablecoins",
|
|
35
|
+
"rlusd",
|
|
36
|
+
"usdc"
|
|
37
|
+
],
|
|
38
|
+
"author": "ScriptMasterLabs <timothy.walton45@gmail.com>",
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "https://github.com/timwal78/sml_portfolio.git"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
46
|
+
"zod": "^3.23.8",
|
|
47
|
+
"viem": "^2.21.0",
|
|
48
|
+
"xrpl": "^4.1.0",
|
|
49
|
+
"@solana/web3.js": "^1.95.5",
|
|
50
|
+
"@solana/spl-token": "^0.4.9",
|
|
51
|
+
"keytar": "^7.9.0",
|
|
52
|
+
"node-forge": "^1.3.1",
|
|
53
|
+
"express": "^4.21.0",
|
|
54
|
+
"cors": "^2.8.5",
|
|
55
|
+
"bip39": "^3.1.0",
|
|
56
|
+
"hdkey": "^2.1.0"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@types/node": "^22.0.0",
|
|
60
|
+
"@types/express": "^5.0.0",
|
|
61
|
+
"@types/cors": "^2.8.17",
|
|
62
|
+
"@types/node-forge": "^1.3.11",
|
|
63
|
+
"@types/hdkey": "^2.0.5",
|
|
64
|
+
"typescript": "^5.6.0",
|
|
65
|
+
"tsx": "^4.19.0",
|
|
66
|
+
"vitest": "^2.1.0",
|
|
67
|
+
"@vitest/coverage-v8": "^2.1.0",
|
|
68
|
+
"eslint": "^9.11.0",
|
|
69
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
70
|
+
"@typescript-eslint/parser": "^8.0.0"
|
|
71
|
+
},
|
|
72
|
+
"engines": {
|
|
73
|
+
"node": ">=20.0.0"
|
|
74
|
+
},
|
|
75
|
+
"workspaces": [
|
|
76
|
+
"sdk/mcp-x402-sdk"
|
|
77
|
+
]
|
|
78
|
+
}
|
package/server.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.Timwal78/mcp-x402",
|
|
4
|
+
"title": "mcp-x402 — The x402 Amazon for AI Agents",
|
|
5
|
+
"description": "51 pay-per-call MCP tools: market intel, SEC, XRPL payments, copy-trading. USDC/RLUSD. No keys.",
|
|
6
|
+
"version": "2.1.0",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "https://github.com/timwal78/SML_Portfolio",
|
|
9
|
+
"source": "github"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://scriptmasterlabs.com",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"remotes": [
|
|
14
|
+
{
|
|
15
|
+
"type": "streamable-http",
|
|
16
|
+
"url": "https://mcp-x402.onrender.com/mcp"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"type": "sse",
|
|
20
|
+
"url": "https://mcp-x402.onrender.com/sse"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"keywords": ["x402", "micropayments", "usdc", "rlusd", "xrpl", "solana", "base", "squeeze", "options", "sec-filings", "ftd", "market-intelligence", "pay-per-call", "autonomous-agents"]
|
|
24
|
+
}
|