@scriptmasterlabs/mcp-x402 2.1.0 → 2.1.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.
Files changed (253) hide show
  1. package/.well-known/x402.json +37 -0
  2. package/LICENSE +57 -21
  3. package/README.md +185 -227
  4. package/dist/index.d.ts +12 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +9 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/mcp-wrapper.d.ts +71 -0
  9. package/dist/mcp-wrapper.d.ts.map +1 -0
  10. package/dist/mcp-wrapper.js +104 -0
  11. package/dist/mcp-wrapper.js.map +1 -0
  12. package/dist/x402-middleware.d.ts +76 -0
  13. package/dist/x402-middleware.d.ts.map +1 -0
  14. package/dist/x402-middleware.js +113 -0
  15. package/dist/x402-middleware.js.map +1 -0
  16. package/dist/xrpl-facilitator.d.ts +77 -0
  17. package/dist/xrpl-facilitator.d.ts.map +1 -0
  18. package/dist/xrpl-facilitator.js +156 -0
  19. package/dist/xrpl-facilitator.js.map +1 -0
  20. package/llms.txt +108 -170
  21. package/package.json +43 -56
  22. package/schema.jsonld +97 -0
  23. package/.well-known/agentcard.json +0 -34
  24. package/.well-known/ai.txt +0 -32
  25. package/CONTRIBUTING.md +0 -76
  26. package/agents.json +0 -81
  27. package/ai/faq.json +0 -74
  28. package/ai/summary.json +0 -157
  29. package/dist/lib/chains/base.d.ts +0 -10
  30. package/dist/lib/chains/base.d.ts.map +0 -1
  31. package/dist/lib/chains/base.js +0 -75
  32. package/dist/lib/chains/base.js.map +0 -1
  33. package/dist/lib/chains/solana.d.ts +0 -10
  34. package/dist/lib/chains/solana.d.ts.map +0 -1
  35. package/dist/lib/chains/solana.js +0 -49
  36. package/dist/lib/chains/solana.js.map +0 -1
  37. package/dist/lib/chains/xrpl.d.ts +0 -10
  38. package/dist/lib/chains/xrpl.d.ts.map +0 -1
  39. package/dist/lib/chains/xrpl.js +0 -55
  40. package/dist/lib/chains/xrpl.js.map +0 -1
  41. package/dist/lib/credit/bureau.d.ts +0 -16
  42. package/dist/lib/credit/bureau.d.ts.map +0 -1
  43. package/dist/lib/credit/bureau.js +0 -88
  44. package/dist/lib/credit/bureau.js.map +0 -1
  45. package/dist/lib/sml-api/agentcard.d.ts +0 -17
  46. package/dist/lib/sml-api/agentcard.d.ts.map +0 -1
  47. package/dist/lib/sml-api/agentcard.js +0 -30
  48. package/dist/lib/sml-api/agentcard.js.map +0 -1
  49. package/dist/lib/sml-api/backtest.d.ts +0 -22
  50. package/dist/lib/sml-api/backtest.d.ts.map +0 -1
  51. package/dist/lib/sml-api/backtest.js +0 -28
  52. package/dist/lib/sml-api/backtest.js.map +0 -1
  53. package/dist/lib/sml-api/brokers.d.ts +0 -40
  54. package/dist/lib/sml-api/brokers.d.ts.map +0 -1
  55. package/dist/lib/sml-api/brokers.js +0 -128
  56. package/dist/lib/sml-api/brokers.js.map +0 -1
  57. package/dist/lib/sml-api/copytrader.d.ts +0 -11
  58. package/dist/lib/sml-api/copytrader.d.ts.map +0 -1
  59. package/dist/lib/sml-api/copytrader.js +0 -30
  60. package/dist/lib/sml-api/copytrader.js.map +0 -1
  61. package/dist/lib/sml-api/crawl.d.ts +0 -20
  62. package/dist/lib/sml-api/crawl.d.ts.map +0 -1
  63. package/dist/lib/sml-api/crawl.js +0 -32
  64. package/dist/lib/sml-api/crawl.js.map +0 -1
  65. package/dist/lib/sml-api/echo.d.ts +0 -10
  66. package/dist/lib/sml-api/echo.d.ts.map +0 -1
  67. package/dist/lib/sml-api/echo.js +0 -23
  68. package/dist/lib/sml-api/echo.js.map +0 -1
  69. package/dist/lib/sml-api/forge.d.ts +0 -11
  70. package/dist/lib/sml-api/forge.d.ts.map +0 -1
  71. package/dist/lib/sml-api/forge.js +0 -29
  72. package/dist/lib/sml-api/forge.js.map +0 -1
  73. package/dist/lib/sml-api/ftd.d.ts +0 -18
  74. package/dist/lib/sml-api/ftd.d.ts.map +0 -1
  75. package/dist/lib/sml-api/ftd.js +0 -43
  76. package/dist/lib/sml-api/ftd.js.map +0 -1
  77. package/dist/lib/sml-api/ghost.d.ts +0 -13
  78. package/dist/lib/sml-api/ghost.d.ts.map +0 -1
  79. package/dist/lib/sml-api/ghost.js +0 -29
  80. package/dist/lib/sml-api/ghost.js.map +0 -1
  81. package/dist/lib/sml-api/launchpad.d.ts +0 -20
  82. package/dist/lib/sml-api/launchpad.d.ts.map +0 -1
  83. package/dist/lib/sml-api/launchpad.js +0 -31
  84. package/dist/lib/sml-api/launchpad.js.map +0 -1
  85. package/dist/lib/sml-api/leviathan.d.ts +0 -22
  86. package/dist/lib/sml-api/leviathan.d.ts.map +0 -1
  87. package/dist/lib/sml-api/leviathan.js +0 -33
  88. package/dist/lib/sml-api/leviathan.js.map +0 -1
  89. package/dist/lib/sml-api/nexus.d.ts +0 -18
  90. package/dist/lib/sml-api/nexus.d.ts.map +0 -1
  91. package/dist/lib/sml-api/nexus.js +0 -40
  92. package/dist/lib/sml-api/nexus.js.map +0 -1
  93. package/dist/lib/sml-api/proof402.d.ts +0 -6
  94. package/dist/lib/sml-api/proof402.d.ts.map +0 -1
  95. package/dist/lib/sml-api/proof402.js +0 -30
  96. package/dist/lib/sml-api/proof402.js.map +0 -1
  97. package/dist/lib/sml-api/rails.d.ts +0 -12
  98. package/dist/lib/sml-api/rails.d.ts.map +0 -1
  99. package/dist/lib/sml-api/rails.js +0 -29
  100. package/dist/lib/sml-api/rails.js.map +0 -1
  101. package/dist/lib/sml-api/shadow.d.ts +0 -15
  102. package/dist/lib/sml-api/shadow.d.ts.map +0 -1
  103. package/dist/lib/sml-api/shadow.js +0 -27
  104. package/dist/lib/sml-api/shadow.js.map +0 -1
  105. package/dist/lib/sml-api/squeezeos.d.ts +0 -21
  106. package/dist/lib/sml-api/squeezeos.d.ts.map +0 -1
  107. package/dist/lib/sml-api/squeezeos.js +0 -97
  108. package/dist/lib/sml-api/squeezeos.js.map +0 -1
  109. package/dist/lib/sml-api/xdeo.d.ts +0 -13
  110. package/dist/lib/sml-api/xdeo.d.ts.map +0 -1
  111. package/dist/lib/sml-api/xdeo.js +0 -34
  112. package/dist/lib/sml-api/xdeo.js.map +0 -1
  113. package/dist/lib/sml-api/xmit.d.ts +0 -13
  114. package/dist/lib/sml-api/xmit.d.ts.map +0 -1
  115. package/dist/lib/sml-api/xmit.js +0 -34
  116. package/dist/lib/sml-api/xmit.js.map +0 -1
  117. package/dist/server/health.d.ts +0 -16
  118. package/dist/server/health.d.ts.map +0 -1
  119. package/dist/server/health.js +0 -39
  120. package/dist/server/health.js.map +0 -1
  121. package/dist/server/index.d.ts +0 -3
  122. package/dist/server/index.d.ts.map +0 -1
  123. package/dist/server/index.js +0 -322
  124. package/dist/server/index.js.map +0 -1
  125. package/dist/server/payments/ap2.d.ts +0 -17
  126. package/dist/server/payments/ap2.d.ts.map +0 -1
  127. package/dist/server/payments/ap2.js +0 -77
  128. package/dist/server/payments/ap2.js.map +0 -1
  129. package/dist/server/payments/receipt.d.ts +0 -28
  130. package/dist/server/payments/receipt.d.ts.map +0 -1
  131. package/dist/server/payments/receipt.js +0 -60
  132. package/dist/server/payments/receipt.js.map +0 -1
  133. package/dist/server/payments/router.d.ts +0 -23
  134. package/dist/server/payments/router.d.ts.map +0 -1
  135. package/dist/server/payments/router.js +0 -69
  136. package/dist/server/payments/router.js.map +0 -1
  137. package/dist/server/payments/wallet.d.ts +0 -18
  138. package/dist/server/payments/wallet.d.ts.map +0 -1
  139. package/dist/server/payments/wallet.js +0 -107
  140. package/dist/server/payments/wallet.js.map +0 -1
  141. package/dist/server/payments/x402.d.ts +0 -29
  142. package/dist/server/payments/x402.d.ts.map +0 -1
  143. package/dist/server/payments/x402.js +0 -138
  144. package/dist/server/payments/x402.js.map +0 -1
  145. package/dist/server/registry/catalog.d.ts +0 -12
  146. package/dist/server/registry/catalog.d.ts.map +0 -1
  147. package/dist/server/registry/catalog.js +0 -55
  148. package/dist/server/registry/catalog.js.map +0 -1
  149. package/dist/server/registry/discovery.d.ts +0 -16
  150. package/dist/server/registry/discovery.d.ts.map +0 -1
  151. package/dist/server/registry/discovery.js +0 -33
  152. package/dist/server/registry/discovery.js.map +0 -1
  153. package/dist/server/registry/pricing.d.ts +0 -10
  154. package/dist/server/registry/pricing.d.ts.map +0 -1
  155. package/dist/server/registry/pricing.js +0 -123
  156. package/dist/server/registry/pricing.js.map +0 -1
  157. package/dist/server/security/acl.d.ts +0 -28
  158. package/dist/server/security/acl.d.ts.map +0 -1
  159. package/dist/server/security/acl.js +0 -36
  160. package/dist/server/security/acl.js.map +0 -1
  161. package/dist/server/security/audit.d.ts +0 -15
  162. package/dist/server/security/audit.d.ts.map +0 -1
  163. package/dist/server/security/audit.js +0 -77
  164. package/dist/server/security/audit.js.map +0 -1
  165. package/dist/server/security/rate-limit.d.ts +0 -12
  166. package/dist/server/security/rate-limit.d.ts.map +0 -1
  167. package/dist/server/security/rate-limit.js +0 -72
  168. package/dist/server/security/rate-limit.js.map +0 -1
  169. package/dist/server/security/sandbox.d.ts +0 -7
  170. package/dist/server/security/sandbox.d.ts.map +0 -1
  171. package/dist/server/security/sandbox.js +0 -42
  172. package/dist/server/security/sandbox.js.map +0 -1
  173. package/dist/server/tools/agentcard.d.ts +0 -3
  174. package/dist/server/tools/agentcard.d.ts.map +0 -1
  175. package/dist/server/tools/agentcard.js +0 -118
  176. package/dist/server/tools/agentcard.js.map +0 -1
  177. package/dist/server/tools/backtest.d.ts +0 -3
  178. package/dist/server/tools/backtest.d.ts.map +0 -1
  179. package/dist/server/tools/backtest.js +0 -112
  180. package/dist/server/tools/backtest.js.map +0 -1
  181. package/dist/server/tools/brokers.d.ts +0 -3
  182. package/dist/server/tools/brokers.d.ts.map +0 -1
  183. package/dist/server/tools/brokers.js +0 -223
  184. package/dist/server/tools/brokers.js.map +0 -1
  185. package/dist/server/tools/copytrader.d.ts +0 -3
  186. package/dist/server/tools/copytrader.d.ts.map +0 -1
  187. package/dist/server/tools/copytrader.js +0 -90
  188. package/dist/server/tools/copytrader.js.map +0 -1
  189. package/dist/server/tools/crawl.d.ts +0 -3
  190. package/dist/server/tools/crawl.d.ts.map +0 -1
  191. package/dist/server/tools/crawl.js +0 -60
  192. package/dist/server/tools/crawl.js.map +0 -1
  193. package/dist/server/tools/discovery.d.ts +0 -3
  194. package/dist/server/tools/discovery.d.ts.map +0 -1
  195. package/dist/server/tools/discovery.js +0 -188
  196. package/dist/server/tools/discovery.js.map +0 -1
  197. package/dist/server/tools/echo.d.ts +0 -3
  198. package/dist/server/tools/echo.d.ts.map +0 -1
  199. package/dist/server/tools/echo.js +0 -48
  200. package/dist/server/tools/echo.js.map +0 -1
  201. package/dist/server/tools/forge.d.ts +0 -3
  202. package/dist/server/tools/forge.d.ts.map +0 -1
  203. package/dist/server/tools/forge.js +0 -77
  204. package/dist/server/tools/forge.js.map +0 -1
  205. package/dist/server/tools/ftd.d.ts +0 -3
  206. package/dist/server/tools/ftd.d.ts.map +0 -1
  207. package/dist/server/tools/ftd.js +0 -70
  208. package/dist/server/tools/ftd.js.map +0 -1
  209. package/dist/server/tools/ghost.d.ts +0 -3
  210. package/dist/server/tools/ghost.d.ts.map +0 -1
  211. package/dist/server/tools/ghost.js +0 -83
  212. package/dist/server/tools/ghost.js.map +0 -1
  213. package/dist/server/tools/index.d.ts +0 -3
  214. package/dist/server/tools/index.d.ts.map +0 -1
  215. package/dist/server/tools/index.js +0 -44
  216. package/dist/server/tools/index.js.map +0 -1
  217. package/dist/server/tools/launchpad.d.ts +0 -3
  218. package/dist/server/tools/launchpad.d.ts.map +0 -1
  219. package/dist/server/tools/launchpad.js +0 -151
  220. package/dist/server/tools/launchpad.js.map +0 -1
  221. package/dist/server/tools/leviathan.d.ts +0 -3
  222. package/dist/server/tools/leviathan.d.ts.map +0 -1
  223. package/dist/server/tools/leviathan.js +0 -73
  224. package/dist/server/tools/leviathan.js.map +0 -1
  225. package/dist/server/tools/nexus.d.ts +0 -3
  226. package/dist/server/tools/nexus.d.ts.map +0 -1
  227. package/dist/server/tools/nexus.js +0 -65
  228. package/dist/server/tools/nexus.js.map +0 -1
  229. package/dist/server/tools/proof402.d.ts +0 -3
  230. package/dist/server/tools/proof402.d.ts.map +0 -1
  231. package/dist/server/tools/proof402.js +0 -74
  232. package/dist/server/tools/proof402.js.map +0 -1
  233. package/dist/server/tools/rails.d.ts +0 -3
  234. package/dist/server/tools/rails.d.ts.map +0 -1
  235. package/dist/server/tools/rails.js +0 -82
  236. package/dist/server/tools/rails.js.map +0 -1
  237. package/dist/server/tools/shadow.d.ts +0 -3
  238. package/dist/server/tools/shadow.d.ts.map +0 -1
  239. package/dist/server/tools/shadow.js +0 -114
  240. package/dist/server/tools/shadow.js.map +0 -1
  241. package/dist/server/tools/squeezeos.d.ts +0 -3
  242. package/dist/server/tools/squeezeos.d.ts.map +0 -1
  243. package/dist/server/tools/squeezeos.js +0 -231
  244. package/dist/server/tools/squeezeos.js.map +0 -1
  245. package/dist/server/tools/xdeo.d.ts +0 -3
  246. package/dist/server/tools/xdeo.d.ts.map +0 -1
  247. package/dist/server/tools/xdeo.js +0 -58
  248. package/dist/server/tools/xdeo.js.map +0 -1
  249. package/dist/server/tools/xmit.d.ts +0 -3
  250. package/dist/server/tools/xmit.d.ts.map +0 -1
  251. package/dist/server/tools/xmit.js +0 -59
  252. package/dist/server/tools/xmit.js.map +0 -1
  253. package/server.json +0 -52
@@ -1,3 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerLaunchpad(server: McpServer): void;
3
- //# sourceMappingURL=launchpad.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"launchpad.d.ts","sourceRoot":"","sources":["../../../src/server/tools/launchpad.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkJzD"}
@@ -1,151 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerLaunchpad = registerLaunchpad;
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 pricing_js_1 = require("../registry/pricing.js");
10
- const launchpad_js_1 = require("../../lib/sml-api/launchpad.js");
11
- const CreateSchema = zod_1.z.object({
12
- name: zod_1.z.string().min(1).max(64),
13
- symbol: zod_1.z.string().min(1).max(10).toUpperCase(),
14
- description: zod_1.z.string().max(512),
15
- creator_address: zod_1.z.string().min(10),
16
- initial_supply: zod_1.z.number().int().positive(),
17
- target_liquidity_xrp: zod_1.z.number().positive(),
18
- wallet_address: zod_1.z.string().optional(),
19
- });
20
- const BuySchema = zod_1.z.object({
21
- token_address: zod_1.z.string().min(10),
22
- buyer_address: zod_1.z.string().min(10),
23
- xrp_amount: zod_1.z.number().positive(),
24
- wallet_address: zod_1.z.string().optional(),
25
- });
26
- function registerLaunchpad(server) {
27
- const audit = audit_js_1.AuditLogger.getInstance();
28
- // ── FREE: launchpad_status ─────────────────────────────────────────────────
29
- server.tool('launchpad_status', {}, async () => {
30
- try {
31
- const data = await launchpad_js_1.LaunchpadAPI.status();
32
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
33
- }
34
- catch (err) {
35
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
36
- }
37
- });
38
- // ── FREE: launchpad_list ───────────────────────────────────────────────────
39
- server.tool('launchpad_list', {}, async () => {
40
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('launchpad_list')) {
41
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
42
- }
43
- try {
44
- const data = await launchpad_js_1.LaunchpadAPI.list();
45
- audit.info('launchpad_list', {});
46
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
47
- }
48
- catch (err) {
49
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
50
- }
51
- });
52
- // ── PAID: launchpad_create (0.10 USDC) ────────────────────────────────────
53
- server.tool('launchpad_create', {
54
- name: zod_1.z.string().describe('Token name (e.g. "Moon Rocket").'),
55
- symbol: zod_1.z.string().describe('Ticker symbol (e.g. MNRKT, max 10 chars).'),
56
- description: zod_1.z.string().describe('Token description (max 512 chars).'),
57
- creator_address: zod_1.z.string().describe('XRPL address of the token creator.'),
58
- initial_supply: zod_1.z.number().describe('Total token supply (integer).'),
59
- target_liquidity_xrp: zod_1.z.number().describe('XRP target to graduate from bonding curve to DEX.'),
60
- wallet_address: zod_1.z.string().describe('Agent wallet for x402 payment.'),
61
- }, async (rawArgs) => {
62
- const args = sandbox_js_1.Sandbox.validate(CreateSchema, rawArgs);
63
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('launchpad_create')) {
64
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
65
- }
66
- await pricing_js_1.PriceRegistry.getInstance().seedDefaults();
67
- const price = await pricing_js_1.PriceRegistry.getInstance().getPrice('launchpad_create');
68
- if (!price) {
69
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'price_unavailable' }) }], isError: true };
70
- }
71
- let payment;
72
- try {
73
- payment = await (0, x402_js_1.executeX402Payment)({ price, currency: 'USDC', toolName: 'launchpad_create', walletAddress: args.wallet_address });
74
- }
75
- catch (err) {
76
- audit.warn('launchpad_create_payment_fail', { error: String(err) });
77
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'payment_failed', message: String(err) }) }], isError: true };
78
- }
79
- try {
80
- const data = await launchpad_js_1.LaunchpadAPI.create({
81
- name: args.name,
82
- symbol: args.symbol,
83
- description: args.description,
84
- creatorAddress: args.creator_address,
85
- initialSupply: args.initial_supply,
86
- targetLiquidityXrp: args.target_liquidity_xrp,
87
- });
88
- audit.info('launchpad_create_success', { symbol: args.symbol, receiptId: payment.receiptId });
89
- return {
90
- content: [{
91
- type: 'text',
92
- text: JSON.stringify({
93
- data,
94
- _meta: { receipt_id: payment.receiptId, tx_hash: payment.txHash, chain: payment.chain, amount_paid: `${payment.amountPaid} ${payment.currency}`, timestamp: payment.timestamp },
95
- }),
96
- }],
97
- };
98
- }
99
- catch (err) {
100
- audit.error('launchpad_create_api_fail', { error: String(err) });
101
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
102
- }
103
- });
104
- // ── PAID: launchpad_buy (0.01 USDC) ───────────────────────────────────────
105
- server.tool('launchpad_buy', {
106
- token_address: zod_1.z.string().describe('Token contract/address on XRPL.'),
107
- buyer_address: zod_1.z.string().describe('XRPL address of the buyer.'),
108
- xrp_amount: zod_1.z.number().describe('Amount of XRP to spend on the bonding curve.'),
109
- wallet_address: zod_1.z.string().describe('Agent wallet for x402 payment.'),
110
- }, async (rawArgs) => {
111
- const args = sandbox_js_1.Sandbox.validate(BuySchema, rawArgs);
112
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('launchpad_buy')) {
113
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
114
- }
115
- await pricing_js_1.PriceRegistry.getInstance().seedDefaults();
116
- const price = await pricing_js_1.PriceRegistry.getInstance().getPrice('launchpad_buy');
117
- if (!price) {
118
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'price_unavailable' }) }], isError: true };
119
- }
120
- let payment;
121
- try {
122
- payment = await (0, x402_js_1.executeX402Payment)({ price, currency: 'USDC', toolName: 'launchpad_buy', walletAddress: args.wallet_address });
123
- }
124
- catch (err) {
125
- audit.warn('launchpad_buy_payment_fail', { error: String(err) });
126
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'payment_failed', message: String(err) }) }], isError: true };
127
- }
128
- try {
129
- const data = await launchpad_js_1.LaunchpadAPI.buy({
130
- tokenAddress: args.token_address,
131
- buyerAddress: args.buyer_address,
132
- xrpAmount: args.xrp_amount,
133
- });
134
- audit.info('launchpad_buy_success', { receiptId: payment.receiptId });
135
- return {
136
- content: [{
137
- type: 'text',
138
- text: JSON.stringify({
139
- data,
140
- _meta: { receipt_id: payment.receiptId, tx_hash: payment.txHash, chain: payment.chain, amount_paid: `${payment.amountPaid} ${payment.currency}`, timestamp: payment.timestamp },
141
- }),
142
- }],
143
- };
144
- }
145
- catch (err) {
146
- audit.error('launchpad_buy_api_fail', { error: String(err) });
147
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
148
- }
149
- });
150
- }
151
- //# sourceMappingURL=launchpad.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"launchpad.js","sourceRoot":"","sources":["../../../src/server/tools/launchpad.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerLeviathan(server: McpServer): void;
3
- //# sourceMappingURL=leviathan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leviathan.d.ts","sourceRoot":"","sources":["../../../src/server/tools/leviathan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgEzD"}
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerLeviathan = registerLeviathan;
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 leviathan_js_1 = require("../../lib/sml-api/leviathan.js");
10
- const pricing_js_1 = require("../registry/pricing.js");
11
- const InputSchema = zod_1.z.object({
12
- ticker: zod_1.z.string().regex(/^[A-Z]{1,5}$/).optional(),
13
- signal_type: zod_1.z.enum(['squeeze', 'momentum', 'dark_pool', 'all']),
14
- min_confidence: zod_1.z.number().min(0).max(100).default(60),
15
- wallet_address: zod_1.z.string().optional(),
16
- });
17
- function registerLeviathan(server) {
18
- server.tool('leviathan_signal', {
19
- ticker: zod_1.z.string().describe('Ticker symbol (e.g. TSLA, MSTR). Optional — omit for top signals.'),
20
- signal_type: zod_1.z.enum(['squeeze', 'momentum', 'dark_pool', 'all']).describe('Signal category.'),
21
- min_confidence: zod_1.z.number().describe('Minimum confidence score 0-100. Default: 60.'),
22
- wallet_address: zod_1.z.string().describe('Agent wallet address for payment. Auto-provisioned if omitted.'),
23
- }, async (rawArgs) => {
24
- const args = sandbox_js_1.Sandbox.validate(InputSchema, rawArgs);
25
- const audit = audit_js_1.AuditLogger.getInstance();
26
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('leviathan_signal')) {
27
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
28
- }
29
- await pricing_js_1.PriceRegistry.getInstance().seedDefaults();
30
- const price = await pricing_js_1.PriceRegistry.getInstance().getPrice('leviathan_signal');
31
- if (!price) {
32
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'price_unavailable', message: 'Cannot determine price. Try again shortly.' }) }], isError: true };
33
- }
34
- let payment;
35
- try {
36
- payment = await (0, x402_js_1.executeX402Payment)({
37
- price,
38
- currency: 'USDC',
39
- toolName: 'leviathan_signal',
40
- walletAddress: args.wallet_address,
41
- });
42
- }
43
- catch (err) {
44
- audit.warn('leviathan_payment_fail', { error: String(err) });
45
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'payment_failed', message: String(err) }) }], isError: true };
46
- }
47
- const client = leviathan_js_1.LeviathanClient.getInstance();
48
- const data = await client.getSignal({
49
- ticker: args.ticker,
50
- signalType: args.signal_type,
51
- minConfidence: args.min_confidence ?? 60,
52
- });
53
- audit.info('leviathan_success', { ticker: args.ticker ?? 'all', receiptId: payment.receiptId });
54
- return {
55
- content: [
56
- {
57
- type: 'text',
58
- text: JSON.stringify({
59
- data,
60
- _meta: {
61
- receipt_id: payment.receiptId,
62
- tx_hash: payment.txHash,
63
- chain: payment.chain,
64
- amount_paid: `${payment.amountPaid} ${payment.currency}`,
65
- timestamp: payment.timestamp,
66
- },
67
- }),
68
- },
69
- ],
70
- };
71
- });
72
- }
73
- //# sourceMappingURL=leviathan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"leviathan.js","sourceRoot":"","sources":["../../../src/server/tools/leviathan.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerNexus(server: McpServer): void;
3
- //# sourceMappingURL=nexus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nexus.d.ts","sourceRoot":"","sources":["../../../src/server/tools/nexus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkBzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwDrD"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerNexus = registerNexus;
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 nexus_js_1 = require("../../lib/sml-api/nexus.js");
10
- const InputSchema = zod_1.z.object({
11
- capability: zod_1.z.string().min(1).max(200),
12
- max_budget: zod_1.z.string().regex(/^\d+(\.\d+)?$/),
13
- chain_preference: zod_1.z.enum(['base', 'xrpl', 'solana']).optional(),
14
- action: zod_1.z.enum(['query', 'hire']).default('query'),
15
- agent_id: zod_1.z.string().optional(),
16
- wallet_address: zod_1.z.string().optional(),
17
- });
18
- const COMMISSION_RATE = 0.05;
19
- function registerNexus(server) {
20
- server.tool('nexus_agent_hire', {
21
- capability: zod_1.z.string().describe('Capability or skill to search for (e.g. "options flow analysis").'),
22
- max_budget: zod_1.z.string().describe('Max budget in USDC for hire (e.g. "1.00").'),
23
- chain_preference: zod_1.z.enum(['base', 'xrpl', 'solana']).describe('Preferred payment chain.'),
24
- action: zod_1.z.enum(['query', 'hire']).describe('"query" is free. "hire" charges 5% commission on agent fee.'),
25
- agent_id: zod_1.z.string().describe('Agent ID to hire (required for action=hire).'),
26
- wallet_address: zod_1.z.string().describe('Agent wallet for payment.'),
27
- }, async (rawArgs) => {
28
- const args = sandbox_js_1.Sandbox.validate(InputSchema, rawArgs);
29
- const audit = audit_js_1.AuditLogger.getInstance();
30
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('nexus_agent_hire')) {
31
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded' }) }], isError: true };
32
- }
33
- const client = nexus_js_1.NexusClient.getInstance();
34
- // Free query tier
35
- if (args.action === 'query') {
36
- const results = await client.queryAgents({ capability: args.capability, maxBudget: args.max_budget });
37
- audit.info('nexus_query_success', { capability: args.capability });
38
- return { content: [{ type: 'text', text: JSON.stringify({ data: results, tier: 'free' }) }] };
39
- }
40
- // Hire — commission-based payment
41
- if (!args.agent_id) {
42
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'agent_id_required', message: 'Specify agent_id to hire.' }) }], isError: true };
43
- }
44
- const agentFee = parseFloat(args.max_budget);
45
- const commission = (agentFee * COMMISSION_RATE).toFixed(4);
46
- let payment;
47
- try {
48
- payment = await (0, x402_js_1.executeX402Payment)({
49
- price: commission,
50
- currency: 'USDC',
51
- toolName: 'nexus_agent_hire',
52
- walletAddress: args.wallet_address,
53
- });
54
- }
55
- catch (err) {
56
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'payment_failed', message: String(err) }) }], isError: true };
57
- }
58
- const hireResult = await client.hireAgent({ agentId: args.agent_id, budget: args.max_budget, chainPreference: args.chain_preference });
59
- audit.info('nexus_hire_success', { agentId: args.agent_id, commission, receiptId: payment.receiptId });
60
- return {
61
- content: [{ type: 'text', text: JSON.stringify({ data: hireResult, commission: `${commission} USDC (5%)`, _meta: { receipt_id: payment.receiptId, tx_hash: payment.txHash, chain: payment.chain } }) }],
62
- };
63
- });
64
- }
65
- //# sourceMappingURL=nexus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nexus.js","sourceRoot":"","sources":["../../../src/server/tools/nexus.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerProof402(server: McpServer): void;
3
- //# sourceMappingURL=proof402.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proof402.d.ts","sourceRoot":"","sources":["../../../src/server/tools/proof402.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkExD"}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerProof402 = registerProof402;
4
- const zod_1 = require("zod");
5
- const rate_limit_js_1 = require("../security/rate-limit.js");
6
- const sandbox_js_1 = require("../security/sandbox.js");
7
- const audit_js_1 = require("../security/audit.js");
8
- const proof402_js_1 = require("../../lib/sml-api/proof402.js");
9
- const InvoiceSchema = zod_1.z.object({
10
- endpoint_id: zod_1.z.string().uuid(),
11
- });
12
- const VerifySchema = zod_1.z.object({
13
- tx_hash: zod_1.z.string().min(10),
14
- endpoint_id: zod_1.z.string().uuid(),
15
- });
16
- const CreditSchema = zod_1.z.object({
17
- wallet_address: zod_1.z.string().min(10),
18
- });
19
- function registerProof402(server) {
20
- const audit = audit_js_1.AuditLogger.getInstance();
21
- // ── FREE: proof_invoice ────────────────────────────────────────────────────
22
- server.tool('proof_invoice', {
23
- endpoint_id: zod_1.z.string().describe('UUID of the premium endpoint to get a payment invoice for.'),
24
- }, async (rawArgs) => {
25
- const { endpoint_id } = sandbox_js_1.Sandbox.validate(InvoiceSchema, rawArgs);
26
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('proof_invoice')) {
27
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
28
- }
29
- try {
30
- const data = await proof402_js_1.Proof402API.invoice(endpoint_id);
31
- audit.info('proof_invoice', { endpoint_id });
32
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
33
- }
34
- catch (err) {
35
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
36
- }
37
- });
38
- // ── FREE: proof_verify ─────────────────────────────────────────────────────
39
- server.tool('proof_verify', {
40
- tx_hash: zod_1.z.string().describe('XRPL transaction hash to verify.'),
41
- endpoint_id: zod_1.z.string().describe('UUID of the endpoint the payment was for.'),
42
- }, async (rawArgs) => {
43
- const args = sandbox_js_1.Sandbox.validate(VerifySchema, rawArgs);
44
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('proof_verify')) {
45
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
46
- }
47
- try {
48
- const data = await proof402_js_1.Proof402API.verify(args.tx_hash, args.endpoint_id);
49
- audit.info('proof_verify', { tx_hash: args.tx_hash });
50
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
51
- }
52
- catch (err) {
53
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
54
- }
55
- });
56
- // ── FREE: proof_credit_score ───────────────────────────────────────────────
57
- server.tool('proof_credit_score', {
58
- wallet_address: zod_1.z.string().describe('Agent wallet address to look up credit score for (300-850 scale).'),
59
- }, async (rawArgs) => {
60
- const { wallet_address } = sandbox_js_1.Sandbox.validate(CreditSchema, rawArgs);
61
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('proof_credit_score')) {
62
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
63
- }
64
- try {
65
- const data = await proof402_js_1.Proof402API.creditScore(wallet_address);
66
- audit.info('proof_credit_score', { wallet_address });
67
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
68
- }
69
- catch (err) {
70
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
71
- }
72
- });
73
- }
74
- //# sourceMappingURL=proof402.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proof402.js","sourceRoot":"","sources":["../../../src/server/tools/proof402.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerRails(server: McpServer): void;
3
- //# sourceMappingURL=rails.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rails.d.ts","sourceRoot":"","sources":["../../../src/server/tools/rails.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyErD"}
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerRails = registerRails;
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 pricing_js_1 = require("../registry/pricing.js");
10
- const rails_js_1 = require("../../lib/sml-api/rails.js");
11
- const TransferSchema = zod_1.z.object({
12
- from_address: zod_1.z.string().min(10),
13
- to_address: zod_1.z.string().min(10),
14
- amount: zod_1.z.string().min(1),
15
- currency: zod_1.z.enum(['RLUSD', 'XRP']),
16
- memo: zod_1.z.string().max(256).optional(),
17
- wallet_address: zod_1.z.string().optional(),
18
- });
19
- function registerRails(server) {
20
- const audit = audit_js_1.AuditLogger.getInstance();
21
- // ── FREE: rails_status ────────────────────────────────────────────────────
22
- server.tool('rails_status', {}, async () => {
23
- try {
24
- const data = await rails_js_1.RailsAPI.status();
25
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
26
- }
27
- catch (err) {
28
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
29
- }
30
- });
31
- // ── PAID: rails_transfer (0.01 USDC) ──────────────────────────────────────
32
- server.tool('rails_transfer', {
33
- from_address: zod_1.z.string().describe('Sender XRPL address.'),
34
- to_address: zod_1.z.string().describe('Recipient XRPL or Xahau address.'),
35
- amount: zod_1.z.string().describe('Amount to transfer (as string to preserve precision).'),
36
- currency: zod_1.z.enum(['RLUSD', 'XRP']).describe('Token to transfer.'),
37
- memo: zod_1.z.string().describe('Optional transfer memo (max 256 chars).'),
38
- wallet_address: zod_1.z.string().describe('Agent wallet for x402 payment.'),
39
- }, async (rawArgs) => {
40
- const args = sandbox_js_1.Sandbox.validate(TransferSchema, rawArgs);
41
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('rails_transfer')) {
42
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
43
- }
44
- await pricing_js_1.PriceRegistry.getInstance().seedDefaults();
45
- const price = await pricing_js_1.PriceRegistry.getInstance().getPrice('rails_transfer');
46
- if (!price) {
47
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'price_unavailable' }) }], isError: true };
48
- }
49
- let payment;
50
- try {
51
- payment = await (0, x402_js_1.executeX402Payment)({ price, currency: 'USDC', toolName: 'rails_transfer', walletAddress: args.wallet_address });
52
- }
53
- catch (err) {
54
- audit.warn('rails_transfer_payment_fail', { error: String(err) });
55
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'payment_failed', message: String(err) }) }], isError: true };
56
- }
57
- try {
58
- const data = await rails_js_1.RailsAPI.transfer({
59
- fromAddress: args.from_address,
60
- toAddress: args.to_address,
61
- amount: args.amount,
62
- currency: args.currency,
63
- memo: args.memo,
64
- });
65
- audit.info('rails_transfer_success', { receiptId: payment.receiptId });
66
- return {
67
- content: [{
68
- type: 'text',
69
- text: JSON.stringify({
70
- data,
71
- _meta: { receipt_id: payment.receiptId, tx_hash: payment.txHash, chain: payment.chain, amount_paid: `${payment.amountPaid} ${payment.currency}`, timestamp: payment.timestamp },
72
- }),
73
- }],
74
- };
75
- }
76
- catch (err) {
77
- audit.error('rails_transfer_api_fail', { error: String(err) });
78
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
79
- }
80
- });
81
- }
82
- //# sourceMappingURL=rails.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rails.js","sourceRoot":"","sources":["../../../src/server/tools/rails.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerShadow(server: McpServer): void;
3
- //# sourceMappingURL=shadow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../../src/server/tools/shadow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoBzE,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0GtD"}