@scriptmasterlabs/mcp-x402 2.0.2 → 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 (323) hide show
  1. package/.well-known/x402.json +37 -0
  2. package/LICENSE +57 -21
  3. package/README.md +262 -304
  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 -70
  21. package/package.json +65 -78
  22. package/schema.jsonld +97 -0
  23. package/.env.example +0 -35
  24. package/.github/workflows/ci.yml +0 -59
  25. package/.github/workflows/keepalive.yml +0 -31
  26. package/.well-known/agentcard.json +0 -34
  27. package/CONTRIBUTING.md +0 -76
  28. package/Dockerfile +0 -19
  29. package/agents.json +0 -67
  30. package/dist/lib/chains/base.d.ts +0 -10
  31. package/dist/lib/chains/base.d.ts.map +0 -1
  32. package/dist/lib/chains/base.js +0 -73
  33. package/dist/lib/chains/base.js.map +0 -1
  34. package/dist/lib/chains/solana.d.ts +0 -10
  35. package/dist/lib/chains/solana.d.ts.map +0 -1
  36. package/dist/lib/chains/solana.js +0 -49
  37. package/dist/lib/chains/solana.js.map +0 -1
  38. package/dist/lib/chains/xrpl.d.ts +0 -10
  39. package/dist/lib/chains/xrpl.d.ts.map +0 -1
  40. package/dist/lib/chains/xrpl.js +0 -55
  41. package/dist/lib/chains/xrpl.js.map +0 -1
  42. package/dist/lib/credit/bureau.d.ts +0 -10
  43. package/dist/lib/credit/bureau.d.ts.map +0 -1
  44. package/dist/lib/credit/bureau.js +0 -58
  45. package/dist/lib/credit/bureau.js.map +0 -1
  46. package/dist/lib/sml-api/agentcard.d.ts +0 -17
  47. package/dist/lib/sml-api/agentcard.d.ts.map +0 -1
  48. package/dist/lib/sml-api/agentcard.js +0 -30
  49. package/dist/lib/sml-api/agentcard.js.map +0 -1
  50. package/dist/lib/sml-api/backtest.d.ts +0 -22
  51. package/dist/lib/sml-api/backtest.d.ts.map +0 -1
  52. package/dist/lib/sml-api/backtest.js +0 -28
  53. package/dist/lib/sml-api/backtest.js.map +0 -1
  54. package/dist/lib/sml-api/brokers.d.ts +0 -40
  55. package/dist/lib/sml-api/brokers.d.ts.map +0 -1
  56. package/dist/lib/sml-api/brokers.js +0 -128
  57. package/dist/lib/sml-api/brokers.js.map +0 -1
  58. package/dist/lib/sml-api/copytrader.d.ts +0 -11
  59. package/dist/lib/sml-api/copytrader.d.ts.map +0 -1
  60. package/dist/lib/sml-api/copytrader.js +0 -30
  61. package/dist/lib/sml-api/copytrader.js.map +0 -1
  62. package/dist/lib/sml-api/crawl.d.ts +0 -20
  63. package/dist/lib/sml-api/crawl.d.ts.map +0 -1
  64. package/dist/lib/sml-api/crawl.js +0 -32
  65. package/dist/lib/sml-api/crawl.js.map +0 -1
  66. package/dist/lib/sml-api/echo.d.ts +0 -10
  67. package/dist/lib/sml-api/echo.d.ts.map +0 -1
  68. package/dist/lib/sml-api/echo.js +0 -23
  69. package/dist/lib/sml-api/echo.js.map +0 -1
  70. package/dist/lib/sml-api/forge.d.ts +0 -11
  71. package/dist/lib/sml-api/forge.d.ts.map +0 -1
  72. package/dist/lib/sml-api/forge.js +0 -29
  73. package/dist/lib/sml-api/forge.js.map +0 -1
  74. package/dist/lib/sml-api/ftd.d.ts +0 -18
  75. package/dist/lib/sml-api/ftd.d.ts.map +0 -1
  76. package/dist/lib/sml-api/ftd.js +0 -43
  77. package/dist/lib/sml-api/ftd.js.map +0 -1
  78. package/dist/lib/sml-api/ghost.d.ts +0 -13
  79. package/dist/lib/sml-api/ghost.d.ts.map +0 -1
  80. package/dist/lib/sml-api/ghost.js +0 -29
  81. package/dist/lib/sml-api/ghost.js.map +0 -1
  82. package/dist/lib/sml-api/launchpad.d.ts +0 -20
  83. package/dist/lib/sml-api/launchpad.d.ts.map +0 -1
  84. package/dist/lib/sml-api/launchpad.js +0 -31
  85. package/dist/lib/sml-api/launchpad.js.map +0 -1
  86. package/dist/lib/sml-api/leviathan.d.ts +0 -22
  87. package/dist/lib/sml-api/leviathan.d.ts.map +0 -1
  88. package/dist/lib/sml-api/leviathan.js +0 -33
  89. package/dist/lib/sml-api/leviathan.js.map +0 -1
  90. package/dist/lib/sml-api/nexus.d.ts +0 -18
  91. package/dist/lib/sml-api/nexus.d.ts.map +0 -1
  92. package/dist/lib/sml-api/nexus.js +0 -40
  93. package/dist/lib/sml-api/nexus.js.map +0 -1
  94. package/dist/lib/sml-api/proof402.d.ts +0 -6
  95. package/dist/lib/sml-api/proof402.d.ts.map +0 -1
  96. package/dist/lib/sml-api/proof402.js +0 -30
  97. package/dist/lib/sml-api/proof402.js.map +0 -1
  98. package/dist/lib/sml-api/rails.d.ts +0 -12
  99. package/dist/lib/sml-api/rails.d.ts.map +0 -1
  100. package/dist/lib/sml-api/rails.js +0 -29
  101. package/dist/lib/sml-api/rails.js.map +0 -1
  102. package/dist/lib/sml-api/shadow.d.ts +0 -15
  103. package/dist/lib/sml-api/shadow.d.ts.map +0 -1
  104. package/dist/lib/sml-api/shadow.js +0 -27
  105. package/dist/lib/sml-api/shadow.js.map +0 -1
  106. package/dist/lib/sml-api/squeezeos.d.ts +0 -21
  107. package/dist/lib/sml-api/squeezeos.d.ts.map +0 -1
  108. package/dist/lib/sml-api/squeezeos.js +0 -97
  109. package/dist/lib/sml-api/squeezeos.js.map +0 -1
  110. package/dist/lib/sml-api/xdeo.d.ts +0 -13
  111. package/dist/lib/sml-api/xdeo.d.ts.map +0 -1
  112. package/dist/lib/sml-api/xdeo.js +0 -34
  113. package/dist/lib/sml-api/xdeo.js.map +0 -1
  114. package/dist/lib/sml-api/xmit.d.ts +0 -13
  115. package/dist/lib/sml-api/xmit.d.ts.map +0 -1
  116. package/dist/lib/sml-api/xmit.js +0 -34
  117. package/dist/lib/sml-api/xmit.js.map +0 -1
  118. package/dist/server/health.d.ts +0 -16
  119. package/dist/server/health.d.ts.map +0 -1
  120. package/dist/server/health.js +0 -39
  121. package/dist/server/health.js.map +0 -1
  122. package/dist/server/index.d.ts +0 -3
  123. package/dist/server/index.d.ts.map +0 -1
  124. package/dist/server/index.js +0 -199
  125. package/dist/server/index.js.map +0 -1
  126. package/dist/server/payments/ap2.d.ts +0 -17
  127. package/dist/server/payments/ap2.d.ts.map +0 -1
  128. package/dist/server/payments/ap2.js +0 -77
  129. package/dist/server/payments/ap2.js.map +0 -1
  130. package/dist/server/payments/receipt.d.ts +0 -28
  131. package/dist/server/payments/receipt.d.ts.map +0 -1
  132. package/dist/server/payments/receipt.js +0 -60
  133. package/dist/server/payments/receipt.js.map +0 -1
  134. package/dist/server/payments/router.d.ts +0 -23
  135. package/dist/server/payments/router.d.ts.map +0 -1
  136. package/dist/server/payments/router.js +0 -69
  137. package/dist/server/payments/router.js.map +0 -1
  138. package/dist/server/payments/wallet.d.ts +0 -18
  139. package/dist/server/payments/wallet.d.ts.map +0 -1
  140. package/dist/server/payments/wallet.js +0 -107
  141. package/dist/server/payments/wallet.js.map +0 -1
  142. package/dist/server/payments/x402.d.ts +0 -29
  143. package/dist/server/payments/x402.d.ts.map +0 -1
  144. package/dist/server/payments/x402.js +0 -138
  145. package/dist/server/payments/x402.js.map +0 -1
  146. package/dist/server/registry/catalog.d.ts +0 -12
  147. package/dist/server/registry/catalog.d.ts.map +0 -1
  148. package/dist/server/registry/catalog.js +0 -55
  149. package/dist/server/registry/catalog.js.map +0 -1
  150. package/dist/server/registry/discovery.d.ts +0 -16
  151. package/dist/server/registry/discovery.d.ts.map +0 -1
  152. package/dist/server/registry/discovery.js +0 -33
  153. package/dist/server/registry/discovery.js.map +0 -1
  154. package/dist/server/registry/pricing.d.ts +0 -10
  155. package/dist/server/registry/pricing.d.ts.map +0 -1
  156. package/dist/server/registry/pricing.js +0 -123
  157. package/dist/server/registry/pricing.js.map +0 -1
  158. package/dist/server/security/acl.d.ts +0 -28
  159. package/dist/server/security/acl.d.ts.map +0 -1
  160. package/dist/server/security/acl.js +0 -36
  161. package/dist/server/security/acl.js.map +0 -1
  162. package/dist/server/security/audit.d.ts +0 -15
  163. package/dist/server/security/audit.d.ts.map +0 -1
  164. package/dist/server/security/audit.js +0 -77
  165. package/dist/server/security/audit.js.map +0 -1
  166. package/dist/server/security/rate-limit.d.ts +0 -12
  167. package/dist/server/security/rate-limit.d.ts.map +0 -1
  168. package/dist/server/security/rate-limit.js +0 -72
  169. package/dist/server/security/rate-limit.js.map +0 -1
  170. package/dist/server/security/sandbox.d.ts +0 -7
  171. package/dist/server/security/sandbox.d.ts.map +0 -1
  172. package/dist/server/security/sandbox.js +0 -42
  173. package/dist/server/security/sandbox.js.map +0 -1
  174. package/dist/server/tools/agentcard.d.ts +0 -3
  175. package/dist/server/tools/agentcard.d.ts.map +0 -1
  176. package/dist/server/tools/agentcard.js +0 -118
  177. package/dist/server/tools/agentcard.js.map +0 -1
  178. package/dist/server/tools/backtest.d.ts +0 -3
  179. package/dist/server/tools/backtest.d.ts.map +0 -1
  180. package/dist/server/tools/backtest.js +0 -112
  181. package/dist/server/tools/backtest.js.map +0 -1
  182. package/dist/server/tools/brokers.d.ts +0 -3
  183. package/dist/server/tools/brokers.d.ts.map +0 -1
  184. package/dist/server/tools/brokers.js +0 -223
  185. package/dist/server/tools/brokers.js.map +0 -1
  186. package/dist/server/tools/copytrader.d.ts +0 -3
  187. package/dist/server/tools/copytrader.d.ts.map +0 -1
  188. package/dist/server/tools/copytrader.js +0 -90
  189. package/dist/server/tools/copytrader.js.map +0 -1
  190. package/dist/server/tools/crawl.d.ts +0 -3
  191. package/dist/server/tools/crawl.d.ts.map +0 -1
  192. package/dist/server/tools/crawl.js +0 -60
  193. package/dist/server/tools/crawl.js.map +0 -1
  194. package/dist/server/tools/discovery.d.ts +0 -3
  195. package/dist/server/tools/discovery.d.ts.map +0 -1
  196. package/dist/server/tools/discovery.js +0 -188
  197. package/dist/server/tools/discovery.js.map +0 -1
  198. package/dist/server/tools/echo.d.ts +0 -3
  199. package/dist/server/tools/echo.d.ts.map +0 -1
  200. package/dist/server/tools/echo.js +0 -48
  201. package/dist/server/tools/echo.js.map +0 -1
  202. package/dist/server/tools/forge.d.ts +0 -3
  203. package/dist/server/tools/forge.d.ts.map +0 -1
  204. package/dist/server/tools/forge.js +0 -77
  205. package/dist/server/tools/forge.js.map +0 -1
  206. package/dist/server/tools/ftd.d.ts +0 -3
  207. package/dist/server/tools/ftd.d.ts.map +0 -1
  208. package/dist/server/tools/ftd.js +0 -70
  209. package/dist/server/tools/ftd.js.map +0 -1
  210. package/dist/server/tools/ghost.d.ts +0 -3
  211. package/dist/server/tools/ghost.d.ts.map +0 -1
  212. package/dist/server/tools/ghost.js +0 -83
  213. package/dist/server/tools/ghost.js.map +0 -1
  214. package/dist/server/tools/index.d.ts +0 -3
  215. package/dist/server/tools/index.d.ts.map +0 -1
  216. package/dist/server/tools/index.js +0 -44
  217. package/dist/server/tools/index.js.map +0 -1
  218. package/dist/server/tools/launchpad.d.ts +0 -3
  219. package/dist/server/tools/launchpad.d.ts.map +0 -1
  220. package/dist/server/tools/launchpad.js +0 -151
  221. package/dist/server/tools/launchpad.js.map +0 -1
  222. package/dist/server/tools/leviathan.d.ts +0 -3
  223. package/dist/server/tools/leviathan.d.ts.map +0 -1
  224. package/dist/server/tools/leviathan.js +0 -73
  225. package/dist/server/tools/leviathan.js.map +0 -1
  226. package/dist/server/tools/nexus.d.ts +0 -3
  227. package/dist/server/tools/nexus.d.ts.map +0 -1
  228. package/dist/server/tools/nexus.js +0 -65
  229. package/dist/server/tools/nexus.js.map +0 -1
  230. package/dist/server/tools/proof402.d.ts +0 -3
  231. package/dist/server/tools/proof402.d.ts.map +0 -1
  232. package/dist/server/tools/proof402.js +0 -74
  233. package/dist/server/tools/proof402.js.map +0 -1
  234. package/dist/server/tools/rails.d.ts +0 -3
  235. package/dist/server/tools/rails.d.ts.map +0 -1
  236. package/dist/server/tools/rails.js +0 -82
  237. package/dist/server/tools/rails.js.map +0 -1
  238. package/dist/server/tools/shadow.d.ts +0 -3
  239. package/dist/server/tools/shadow.d.ts.map +0 -1
  240. package/dist/server/tools/shadow.js +0 -114
  241. package/dist/server/tools/shadow.js.map +0 -1
  242. package/dist/server/tools/squeezeos.d.ts +0 -3
  243. package/dist/server/tools/squeezeos.d.ts.map +0 -1
  244. package/dist/server/tools/squeezeos.js +0 -231
  245. package/dist/server/tools/squeezeos.js.map +0 -1
  246. package/dist/server/tools/xdeo.d.ts +0 -3
  247. package/dist/server/tools/xdeo.d.ts.map +0 -1
  248. package/dist/server/tools/xdeo.js +0 -58
  249. package/dist/server/tools/xdeo.js.map +0 -1
  250. package/dist/server/tools/xmit.d.ts +0 -3
  251. package/dist/server/tools/xmit.d.ts.map +0 -1
  252. package/dist/server/tools/xmit.js +0 -59
  253. package/dist/server/tools/xmit.js.map +0 -1
  254. package/docker-compose.yml +0 -50
  255. package/mcp-publisher.exe +0 -0
  256. package/render.yaml +0 -39
  257. package/sdk/mcp-x402-sdk/package.json +0 -18
  258. package/sdk/mcp-x402-sdk/src/index.ts +0 -118
  259. package/sdk/mcp-x402-sdk/tsconfig.json +0 -14
  260. package/server.json +0 -48
  261. package/services/backtest_service.py +0 -176
  262. package/src/lib/chains/base.ts +0 -77
  263. package/src/lib/chains/solana.ts +0 -59
  264. package/src/lib/chains/xrpl.ts +0 -63
  265. package/src/lib/credit/bureau.ts +0 -65
  266. package/src/lib/sml-api/agentcard.ts +0 -40
  267. package/src/lib/sml-api/backtest.ts +0 -47
  268. package/src/lib/sml-api/brokers.ts +0 -160
  269. package/src/lib/sml-api/copytrader.ts +0 -33
  270. package/src/lib/sml-api/crawl.ts +0 -44
  271. package/src/lib/sml-api/echo.ts +0 -28
  272. package/src/lib/sml-api/forge.ts +0 -33
  273. package/src/lib/sml-api/ftd.ts +0 -53
  274. package/src/lib/sml-api/ghost.ts +0 -35
  275. package/src/lib/sml-api/launchpad.ts +0 -43
  276. package/src/lib/sml-api/leviathan.ts +0 -49
  277. package/src/lib/sml-api/nexus.ts +0 -50
  278. package/src/lib/sml-api/proof402.ts +0 -27
  279. package/src/lib/sml-api/rails.ts +0 -34
  280. package/src/lib/sml-api/shadow.ts +0 -35
  281. package/src/lib/sml-api/squeezeos.ts +0 -95
  282. package/src/lib/sml-api/xdeo.ts +0 -40
  283. package/src/lib/sml-api/xmit.ts +0 -40
  284. package/src/server/health.ts +0 -52
  285. package/src/server/index.ts +0 -213
  286. package/src/server/payments/ap2.ts +0 -101
  287. package/src/server/payments/receipt.ts +0 -85
  288. package/src/server/payments/router.ts +0 -110
  289. package/src/server/payments/wallet.ts +0 -123
  290. package/src/server/payments/x402.ts +0 -177
  291. package/src/server/registry/catalog.ts +0 -61
  292. package/src/server/registry/discovery.ts +0 -39
  293. package/src/server/registry/pricing.ts +0 -133
  294. package/src/server/security/acl.ts +0 -42
  295. package/src/server/security/audit.ts +0 -94
  296. package/src/server/security/rate-limit.ts +0 -84
  297. package/src/server/security/sandbox.ts +0 -40
  298. package/src/server/tools/agentcard.ts +0 -134
  299. package/src/server/tools/backtest.ts +0 -119
  300. package/src/server/tools/brokers.ts +0 -250
  301. package/src/server/tools/copytrader.ts +0 -104
  302. package/src/server/tools/crawl.ts +0 -70
  303. package/src/server/tools/discovery.ts +0 -202
  304. package/src/server/tools/echo.ts +0 -58
  305. package/src/server/tools/forge.ts +0 -87
  306. package/src/server/tools/ftd.ts +0 -88
  307. package/src/server/tools/ghost.ts +0 -93
  308. package/src/server/tools/index.ts +0 -42
  309. package/src/server/tools/launchpad.ts +0 -173
  310. package/src/server/tools/leviathan.ts +0 -81
  311. package/src/server/tools/nexus.ts +0 -76
  312. package/src/server/tools/proof402.ts +0 -87
  313. package/src/server/tools/rails.ts +0 -92
  314. package/src/server/tools/shadow.ts +0 -128
  315. package/src/server/tools/squeezeos.ts +0 -312
  316. package/src/server/tools/xdeo.ts +0 -67
  317. package/src/server/tools/xmit.ts +0 -68
  318. package/tests/integration/e2e.test.ts +0 -51
  319. package/tests/unit/payments.test.ts +0 -49
  320. package/tests/unit/security.test.ts +0 -92
  321. package/tests/unit/tools.test.ts +0 -42
  322. package/tsconfig.json +0 -21
  323. package/vitest.config.ts +0 -20
@@ -1,188 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerDiscovery = registerDiscovery;
4
- const audit_js_1 = require("../security/audit.js");
5
- const CATALOG = {
6
- version: '2.0.0',
7
- description: 'ScriptMasterLabs unified MCP gateway — the Amazon for agentic payrails. One endpoint, every SML product, autonomous x402 payments.',
8
- quickstart: 'Call sml_discover first (free). Call sml_status to check backend health. Then call any tool — free tools need no payment, paid tools auto-collect via x402.',
9
- payment: {
10
- protocol: 'x402',
11
- chains: ['base (USDC — preferred, <3s)', 'xrpl (RLUSD)', 'solana (USDC — fallback)'],
12
- daily_cap_usd: 50,
13
- auto_approve_under_usd: 1.00,
14
- min_credit_score: 300,
15
- credit_bureau: 'https://four02proof.onrender.com/v1/score',
16
- price_cache_seconds: 60,
17
- },
18
- products: [
19
- {
20
- product: 'SqueezeOS',
21
- description: 'Institutional-grade equity intelligence — squeeze scanner, options flow, multi-engine AI council verdicts',
22
- backend: 'https://squeezeos-api.onrender.com',
23
- tools: [
24
- { name: 'squeezeos_preview', type: 'FREE', description: 'Signal bias preview for any ticker (15-min cache)' },
25
- { name: 'squeezeos_history', type: 'FREE', description: 'Recent signal history — up to 200 events per symbol' },
26
- { name: 'squeezeos_oracle', type: 'FREE', description: 'Oracle directive — aggregated signal across all engines' },
27
- { name: 'squeezeos_ftd', type: 'FREE', description: 'SEC FTD (Failure to Deliver) registry for threshold securities' },
28
- { name: 'squeezeos_status', type: 'FREE', description: 'SqueezeOS system health and uptime' },
29
- { name: 'squeezeos_demo', type: 'FREE', description: 'Free IWM council verdict sample (5-min cache)' },
30
- { name: 'squeezeos_marketplace_browse', type: 'FREE', description: 'Browse peer signal marketplace — listings and metadata' },
31
- { name: 'squeezeos_futures_leaderboard', type: 'FREE', description: 'Top signal prediction market performers' },
32
- { name: 'squeezeos_council', type: 'PAID', price_usdc: '0.10', description: 'Multi-engine AI council verdict for any symbol — highest confidence signal' },
33
- { name: 'squeezeos_scan', type: 'PAID', price_usdc: '0.05', description: 'Full $1–$50 squeeze candidate scanner — ranked by squeeze score' },
34
- { name: 'squeezeos_options', type: 'PAID', price_usdc: '0.05', description: 'Institutional options flow analysis — dark pool, sweep detection' },
35
- { name: 'squeezeos_iwm', type: 'PAID', price_usdc: '0.03', description: 'IWM 0DTE contract scorer — real-time Greeks and probability' },
36
- { name: 'squeezeos_marketplace_read', type: 'PAID', price_usdc: '0.02', description: 'Full signal thesis from peer marketplace — complete analysis' },
37
- ],
38
- },
39
- {
40
- product: 'Ghost Layer',
41
- description: 'Ephemeral dual-chain XRPL+Base toll routing gateway for autonomous agents',
42
- backend: 'https://ghost-layer.onrender.com',
43
- tools: [
44
- { name: 'ghost_status', type: 'FREE', description: 'Ghost Layer service health and active routes' },
45
- { name: 'ghost_route', type: 'PAID', price_usdc: '0.01', description: 'Route transaction through dual-chain XRPL+Base gateway with toll collection' },
46
- ],
47
- },
48
- {
49
- product: '402Proof',
50
- description: 'x402 payment firewall — invoice gen, XRPL tx verification, Agent Credit Bureau (score 300–850)',
51
- backend: 'https://four02proof.onrender.com',
52
- tools: [
53
- { name: 'proof_invoice', type: 'FREE', description: 'Generate x402 payment invoice for any SML endpoint — returns amount, chain, wallet' },
54
- { name: 'proof_verify', type: 'FREE', description: 'Verify XRPL or Base payment tx_hash — returns receipt and confirmation' },
55
- { name: 'proof_credit_score', type: 'FREE', description: 'Get agent credit score (300–850) and payment history by wallet address' },
56
- ],
57
- },
58
- {
59
- product: 'RLUSD Rails',
60
- description: 'RLUSD/XRP remittance rails on XRPL and Xahau networks',
61
- backend: 'https://sml-rails.onrender.com',
62
- tools: [
63
- { name: 'rails_status', type: 'FREE', description: 'RLUSD Rails service health and network status' },
64
- { name: 'rails_transfer', type: 'PAID', price_usdc: '0.01', description: 'Initiate RLUSD or XRP transfer via SML Rails — returns tx_hash' },
65
- ],
66
- },
67
- {
68
- product: 'XRPL Copy-Trader',
69
- description: 'Copy institutional whale positions on the XRP Ledger autonomously',
70
- backend: 'https://sml-copytrader.onrender.com',
71
- tools: [
72
- { name: 'copytrader_status', type: 'FREE', description: 'Copy-Trader service health and active subscriptions count' },
73
- { name: 'copytrader_whales', type: 'FREE', description: 'List tracked whale wallets, their recent moves, and performance metrics' },
74
- { name: 'copytrader_subscribe', type: 'PAID', price_usdc: '0.05', description: 'Subscribe to mirror a whale wallet — auto-copies all future positions' },
75
- ],
76
- },
77
- {
78
- product: 'Memecoin Launchpad',
79
- description: 'XRPL memecoin bonding curve launchpad — create and trade tokens',
80
- backend: 'https://sml-launchpad.onrender.com',
81
- tools: [
82
- { name: 'launchpad_status', type: 'FREE', description: 'Launchpad service health and total tokens launched' },
83
- { name: 'launchpad_list', type: 'FREE', description: 'Browse live memecoins on bonding curve — price, volume, holders' },
84
- { name: 'launchpad_create', type: 'PAID', price_usdc: '0.10', description: 'Create new memecoin with bonding curve — supply, price curve, metadata' },
85
- { name: 'launchpad_buy', type: 'PAID', price_usdc: '0.01', description: 'Buy tokens on memecoin bonding curve — returns executed price and tx' },
86
- ],
87
- },
88
- {
89
- product: 'Shadow Desk',
90
- description: 'MCP signal intelligence server with alpha-provider billing',
91
- backend: 'https://shadow-desk.onrender.com',
92
- tools: [
93
- { name: 'shadow_query', type: 'PAID', price_usdc: '0.02', description: 'Query signal intelligence from Shadow Desk alpha feed' },
94
- { name: 'shadow_ingest', type: 'PAID', price_usdc: '0.01', description: 'Ingest alpha signal data into Shadow Desk for distribution' },
95
- ],
96
- },
97
- {
98
- product: 'Forge Gateway',
99
- description: 'x402 payment protocol + BYOK LLM proxy — pay per token, any model',
100
- backend: 'https://forge-gateway-a822.onrender.com',
101
- tools: [
102
- { name: 'forge_status', type: 'FREE', description: 'Forge Gateway health and supported models' },
103
- { name: 'forge_llm', type: 'PAID', price_usdc: '0.02', description: 'BYOK LLM proxy — call any AI model, pay per request via x402' },
104
- ],
105
- },
106
- {
107
- product: 'agentcard',
108
- description: 'Ed25519 A2A agent identity cards — mint, lookup, verify agent signatures',
109
- backend: 'configurable via AGENTCARD_URL env var',
110
- tools: [
111
- { name: 'agentcard_lookup', type: 'FREE', description: 'Lookup agent identity card by wallet address or DID' },
112
- { name: 'agentcard_verify', type: 'FREE', description: 'Verify Ed25519 agent signature against their identity card' },
113
- { name: 'agentcard_mint', type: 'PAID', price_usdc: '0.01', description: 'Create new Ed25519 agent identity card — returns card JSON and DID' },
114
- ],
115
- },
116
- {
117
- product: 'echo-forge',
118
- description: 'Historical equity pattern similarity engine — ML cosine similarity on Polygon.io data',
119
- backend: 'coming_soon',
120
- tools: [
121
- { name: 'echo_pattern_match', type: 'PAID', price_usdc: '0.05', status: 'coming_soon', description: '[COMING SOON] Find historical equity patterns similar to current price action' },
122
- ],
123
- },
124
- {
125
- product: 'Core SML Intelligence',
126
- description: 'Original 6 SML tools — squeeze signals, EDGAR parsing, earnings oracle, FTD data, agent hiring, web scraping',
127
- tools: [
128
- { name: 'leviathan_signal', type: 'PAID', price_usdc: '0.05', description: 'Institutional squeeze signals — proprietary multi-engine verdict for any ticker' },
129
- { name: 'xmit_edgar_decode', type: 'PAID', price_usdc: '0.02', description: 'Parse SEC DEF 14A / 13F / 13D filings — raw text never leaves SML servers' },
130
- { name: 'xdeo_earnings_estimate', type: 'PAID', price_usdc: '0.02', description: 'Decentralized earnings oracle — consensus estimate across data sources' },
131
- { name: 'ftd_threshold_scan', type: 'FREE|PAID', price_usdc: '0.05', description: 'SEC Reg SHO FTD data — threshold alerts free, full scanner $0.05' },
132
- { name: 'nexus_agent_hire', type: 'FREE|PAID', price_usdc: '5% commission', description: 'Agent job marketplace — browse free, hire charges 5% of contract value' },
133
- { name: 'crawl_paid_fetch', type: 'PAID', price_usdc: '0.005', description: 'Pay-per-fetch web scraping — humans bypass free, AI agents pay $0.005/fetch' },
134
- ],
135
- },
136
- ],
137
- stats: {
138
- total_tools: 43,
139
- free_tools: 22,
140
- paid_tools: 21,
141
- products: 11,
142
- chains_supported: 3,
143
- },
144
- };
145
- const BACKENDS = [
146
- { name: 'SqueezeOS', url: 'https://squeezeos-api.onrender.com/api/status' },
147
- { name: 'Ghost Layer', url: 'https://ghost-layer.onrender.com/api/status' },
148
- { name: '402Proof', url: 'https://four02proof.onrender.com/health' },
149
- { name: 'RLUSD Rails', url: 'https://sml-rails.onrender.com/health' },
150
- { name: 'Copy-Trader', url: 'https://sml-copytrader.onrender.com/health' },
151
- { name: 'Launchpad', url: 'https://sml-launchpad.onrender.com/health' },
152
- { name: 'Shadow Desk', url: 'https://shadow-desk.onrender.com/health' },
153
- { name: 'Forge Gateway', url: 'https://forge-gateway-a822.onrender.com/health' },
154
- ];
155
- function registerDiscovery(server) {
156
- server.tool('sml_discover', 'Returns the complete ScriptMasterLabs product catalog — all 43 tools, prices, and payment instructions. Call this first. FREE.', {}, async () => {
157
- audit_js_1.AuditLogger.getInstance().info('sml_discover', {});
158
- return { content: [{ type: 'text', text: JSON.stringify(CATALOG, null, 2) }] };
159
- });
160
- server.tool('sml_status', 'Real-time health check of all 8 SML backends simultaneously. Call before making paid requests to avoid wasted payments. FREE.', {}, async () => {
161
- audit_js_1.AuditLogger.getInstance().info('sml_status', {});
162
- const results = await Promise.allSettled(BACKENDS.map(async (b) => {
163
- const start = Date.now();
164
- try {
165
- const res = await fetch(b.url, { signal: AbortSignal.timeout(5000) });
166
- return { name: b.name, status: res.ok ? 'online' : 'degraded', http: res.status, latency_ms: Date.now() - start };
167
- }
168
- catch (err) {
169
- return { name: b.name, status: 'offline', error: String(err), latency_ms: Date.now() - start };
170
- }
171
- }));
172
- const statuses = results.map((r) => r.status === 'fulfilled' ? r.value : { name: 'unknown', status: 'error' });
173
- const online = statuses.filter((s) => s.status === 'online').length;
174
- return {
175
- content: [{
176
- type: 'text',
177
- text: JSON.stringify({
178
- summary: `${online}/${BACKENDS.length} backends online`,
179
- all_systems_go: online === BACKENDS.length,
180
- backends: statuses,
181
- checked_at: new Date().toISOString(),
182
- tip: online < BACKENDS.length ? 'Some backends are offline. Avoid paid calls to those products.' : 'All systems operational. Safe to make paid calls.',
183
- }, null, 2),
184
- }],
185
- };
186
- });
187
- }
188
- //# sourceMappingURL=discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/server/tools/discovery.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 registerEcho(server: McpServer): void;
3
- //# sourceMappingURL=echo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"echo.d.ts","sourceRoot":"","sources":["../../../src/server/tools/echo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyCpD"}
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerEcho = registerEcho;
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 echo_js_1 = require("../../lib/sml-api/echo.js");
11
- const PatternMatchSchema = zod_1.z.object({
12
- symbol: zod_1.z.string().min(1).max(10).toUpperCase(),
13
- lookback_days: zod_1.z.number().int().min(1).max(3650),
14
- top_n: zod_1.z.number().int().min(1).max(20).default(5),
15
- wallet_address: zod_1.z.string().optional(),
16
- });
17
- function registerEcho(server) {
18
- const audit = audit_js_1.AuditLogger.getInstance();
19
- // ── PAID: echo_pattern_match (0.05 USDC — coming soon) ────────────────────
20
- server.tool('echo_pattern_match', {
21
- symbol: zod_1.z.string().describe('Ticker symbol to find historical analogs for (e.g. TSLA, GME).'),
22
- lookback_days: zod_1.z.number().describe('Days of price history to encode as the query pattern (1-3650).'),
23
- top_n: zod_1.z.number().describe('Number of closest historical matches to return (1-20, default 5).'),
24
- wallet_address: zod_1.z.string().describe('Agent wallet for x402 payment.'),
25
- }, async (rawArgs) => {
26
- const args = sandbox_js_1.Sandbox.validate(PatternMatchSchema, rawArgs);
27
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('echo_pattern_match')) {
28
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
29
- }
30
- // Service not yet deployed — skip payment and return informative stub
31
- const data = await echo_js_1.EchoForgeAPI.patternMatch({
32
- symbol: args.symbol,
33
- lookbackDays: args.lookback_days,
34
- topN: args.top_n,
35
- walletAddress: args.wallet_address ?? 'anonymous',
36
- });
37
- audit.info('echo_pattern_match_stub', { symbol: args.symbol });
38
- // Still go through payment flow once the service is live — skeleton already wired:
39
- // const price = await PriceRegistry.getInstance().getPrice('echo_pattern_match');
40
- // payment = await executeX402Payment(...);
41
- // Then call real API
42
- // Suppress unused import warnings until service goes live
43
- void x402_js_1.executeX402Payment;
44
- void pricing_js_1.PriceRegistry;
45
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
46
- });
47
- }
48
- //# sourceMappingURL=echo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"echo.js","sourceRoot":"","sources":["../../../src/server/tools/echo.ts"],"names":[],"mappings":";;AAgBA,oCAyCC;AAzDD,6BAAwB;AAExB,iDAAyD;AACzD,6DAAwD;AACxD,uDAAiD;AACjD,mDAAmD;AACnD,uDAAuD;AACvD,uDAAyD;AAEzD,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IAC/C,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAChD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,SAAgB,YAAY,CAAC,MAAiB;IAC5C,MAAM,KAAK,GAAG,sBAAW,CAAC,WAAW,EAAE,CAAC;IAExC,6EAA6E;IAC7E,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB;QACE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;QAC7F,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;QACpG,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;QAC/F,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KACtE,EACD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,IAAI,GAAG,oBAAO,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC,2BAAW,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC/D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjI,CAAC;QAED,sEAAsE;QACtE,MAAM,IAAI,GAAG,MAAM,sBAAY,CAAC,YAAY,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,aAAa,EAAE,IAAI,CAAC,cAAc,IAAI,WAAW;SAClD,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/D,mFAAmF;QACnF,kFAAkF;QAClF,2CAA2C;QAC3C,qBAAqB;QAErB,0DAA0D;QAC1D,KAAK,4BAAkB,CAAC;QACxB,KAAK,0BAAa,CAAC;QAEnB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerForge(server: McpServer): void;
3
- //# sourceMappingURL=forge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../../../src/server/tools/forge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsErD"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerForge = registerForge;
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 forge_js_1 = require("../../lib/sml-api/forge.js");
11
- const LLMSchema = zod_1.z.object({
12
- model: zod_1.z.string().min(1).max(64),
13
- prompt: zod_1.z.string().min(1).max(32768),
14
- max_tokens: zod_1.z.number().int().positive().max(8192).optional(),
15
- wallet_address: zod_1.z.string().optional(),
16
- });
17
- function registerForge(server) {
18
- const audit = audit_js_1.AuditLogger.getInstance();
19
- // ── FREE: forge_status ─────────────────────────────────────────────────────
20
- server.tool('forge_status', {}, async () => {
21
- try {
22
- const data = await forge_js_1.ForgeGatewayAPI.status();
23
- return { content: [{ type: 'text', text: JSON.stringify(data) }] };
24
- }
25
- catch (err) {
26
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
27
- }
28
- });
29
- // ── PAID: forge_llm (0.02 USDC) ───────────────────────────────────────────
30
- server.tool('forge_llm', {
31
- model: zod_1.z.string().describe('Model identifier (e.g. "claude-3-5-haiku-20241022", "gpt-4o-mini").'),
32
- prompt: zod_1.z.string().describe('Prompt to send to the LLM (max 32768 chars).'),
33
- max_tokens: zod_1.z.number().describe('Maximum tokens in the response (default: model max). Max: 8192.'),
34
- wallet_address: zod_1.z.string().describe('Agent wallet for x402 pay-per-token billing.'),
35
- }, async (rawArgs) => {
36
- const args = sandbox_js_1.Sandbox.validate(LLMSchema, rawArgs);
37
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('forge_llm')) {
38
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded', retry_after: 60 }) }], isError: true };
39
- }
40
- await pricing_js_1.PriceRegistry.getInstance().seedDefaults();
41
- const price = await pricing_js_1.PriceRegistry.getInstance().getPrice('forge_llm');
42
- if (!price) {
43
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'price_unavailable' }) }], isError: true };
44
- }
45
- let payment;
46
- try {
47
- payment = await (0, x402_js_1.executeX402Payment)({ price, currency: 'USDC', toolName: 'forge_llm', walletAddress: args.wallet_address });
48
- }
49
- catch (err) {
50
- audit.warn('forge_llm_payment_fail', { error: String(err) });
51
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'payment_failed', message: String(err) }) }], isError: true };
52
- }
53
- try {
54
- const data = await forge_js_1.ForgeGatewayAPI.llm({
55
- model: args.model,
56
- prompt: args.prompt,
57
- maxTokens: args.max_tokens,
58
- walletAddress: args.wallet_address ?? payment.walletAddress ?? 'anonymous',
59
- });
60
- audit.info('forge_llm_success', { model: args.model, receiptId: payment.receiptId });
61
- return {
62
- content: [{
63
- type: 'text',
64
- text: JSON.stringify({
65
- data,
66
- _meta: { receipt_id: payment.receiptId, tx_hash: payment.txHash, chain: payment.chain, amount_paid: `${payment.amountPaid} ${payment.currency}`, timestamp: payment.timestamp },
67
- }),
68
- }],
69
- };
70
- }
71
- catch (err) {
72
- audit.error('forge_llm_api_fail', { error: String(err) });
73
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
74
- }
75
- });
76
- }
77
- //# sourceMappingURL=forge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forge.js","sourceRoot":"","sources":["../../../src/server/tools/forge.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 registerFtd(server: McpServer): void;
3
- //# sourceMappingURL=ftd.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ftd.d.ts","sourceRoot":"","sources":["../../../src/server/tools/ftd.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAyBzE,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6DnD"}
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerFtd = registerFtd;
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 ftd_js_1 = require("../../lib/sml-api/ftd.js");
10
- const pricing_js_1 = require("../registry/pricing.js");
11
- const CACHE_TTL_MS = 15 * 60 * 1000; // 15-min cache per spec
12
- const alertCache = new Map();
13
- const fullCache = new Map();
14
- const InputSchema = zod_1.z.object({
15
- scan_type: zod_1.z.enum(['alerts', 'full', 'spike_history']),
16
- ticker: zod_1.z.string().regex(/^[A-Z]{1,5}$/).optional(),
17
- min_spike_multiplier: zod_1.z.number().min(1).default(2),
18
- wallet_address: zod_1.z.string().optional(),
19
- });
20
- function registerFtd(server) {
21
- server.tool('ftd_threshold_scan', {
22
- scan_type: zod_1.z.enum(['alerts', 'full', 'spike_history']).describe('"alerts" is free. "full" and "spike_history" require 0.05 USDC.'),
23
- ticker: zod_1.z.string().describe('Filter by ticker. Optional.'),
24
- min_spike_multiplier: zod_1.z.number().describe('Minimum FTD spike multiplier vs baseline. Default: 2x.'),
25
- wallet_address: zod_1.z.string().describe('Agent wallet for paid scans.'),
26
- }, async (rawArgs) => {
27
- const args = sandbox_js_1.Sandbox.validate(InputSchema, rawArgs);
28
- const audit = audit_js_1.AuditLogger.getInstance();
29
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('ftd_threshold_scan')) {
30
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'rate_limit_exceeded' }) }], isError: true };
31
- }
32
- const cacheKey = `${args.scan_type}:${args.ticker ?? 'all'}:${args.min_spike_multiplier}`;
33
- const now = Date.now();
34
- // Free tier: alerts only
35
- if (args.scan_type === 'alerts') {
36
- const cached = alertCache.get(cacheKey);
37
- if (cached && now - cached.ts < CACHE_TTL_MS) {
38
- return { content: [{ type: 'text', text: JSON.stringify({ data: cached.data, cached: true, tier: 'free' }) }] };
39
- }
40
- const client = ftd_js_1.FtdClient.getInstance();
41
- const data = await client.getAlerts({ ticker: args.ticker, minSpikeMultiplier: args.min_spike_multiplier ?? 2 });
42
- alertCache.set(cacheKey, { data, ts: now });
43
- audit.info('ftd_alert_success', { ticker: args.ticker ?? 'all' });
44
- return { content: [{ type: 'text', text: JSON.stringify({ data, tier: 'free' }) }] };
45
- }
46
- // Paid tier: full data
47
- const cached = fullCache.get(cacheKey);
48
- if (cached && now - cached.ts < CACHE_TTL_MS) {
49
- return { content: [{ type: 'text', text: JSON.stringify({ data: cached.data, cached: true, tier: 'paid' }) }] };
50
- }
51
- await pricing_js_1.PriceRegistry.getInstance().seedDefaults();
52
- const price = await pricing_js_1.PriceRegistry.getInstance().getPrice('ftd_threshold_scan');
53
- if (!price) {
54
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'price_unavailable' }) }], isError: true };
55
- }
56
- let payment;
57
- try {
58
- payment = await (0, x402_js_1.executeX402Payment)({ price, currency: 'USDC', toolName: 'ftd_threshold_scan', walletAddress: args.wallet_address });
59
- }
60
- catch (err) {
61
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'payment_failed', message: String(err) }) }], isError: true };
62
- }
63
- const client = ftd_js_1.FtdClient.getInstance();
64
- const data = await client.getFullScan({ ticker: args.ticker, scanType: args.scan_type, minSpikeMultiplier: args.min_spike_multiplier ?? 2 });
65
- fullCache.set(cacheKey, { data, ts: now });
66
- audit.info('ftd_paid_success', { ticker: args.ticker ?? 'all', receiptId: payment.receiptId });
67
- return { content: [{ type: 'text', text: JSON.stringify({ data, tier: 'paid', _meta: { receipt_id: payment.receiptId, tx_hash: payment.txHash, chain: payment.chain, amount_paid: `${payment.amountPaid} ${payment.currency}` } }) }] };
68
- });
69
- }
70
- //# sourceMappingURL=ftd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ftd.js","sourceRoot":"","sources":["../../../src/server/tools/ftd.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 registerGhost(server: McpServer): void;
3
- //# sourceMappingURL=ghost.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ghost.d.ts","sourceRoot":"","sources":["../../../src/server/tools/ghost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0ErD"}
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerGhost = registerGhost;
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 ghost_js_1 = require("../../lib/sml-api/ghost.js");
11
- const RouteSchema = zod_1.z.object({
12
- from_chain: zod_1.z.enum(['xrpl', 'base']),
13
- to_chain: zod_1.z.enum(['xrpl', 'base']),
14
- amount: zod_1.z.string().min(1),
15
- currency: zod_1.z.string().min(1).max(10),
16
- destination_address: zod_1.z.string().min(10),
17
- wallet_address: zod_1.z.string().optional(),
18
- });
19
- function registerGhost(server) {
20
- const audit = audit_js_1.AuditLogger.getInstance();
21
- // ── FREE: ghost_status ────────────────────────────────────────────────────
22
- server.tool('ghost_status', {}, async () => {
23
- try {
24
- const data = await ghost_js_1.GhostLayerAPI.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: ghost_route (0.01 USDC) ─────────────────────────────────────────
32
- server.tool('ghost_route', {
33
- from_chain: zod_1.z.enum(['xrpl', 'base']).describe('Source chain.'),
34
- to_chain: zod_1.z.enum(['xrpl', 'base']).describe('Destination chain.'),
35
- amount: zod_1.z.string().describe('Amount to route (as string to preserve precision).'),
36
- currency: zod_1.z.string().describe('Token/currency symbol (e.g. RLUSD, XRP, ETH).'),
37
- destination_address: zod_1.z.string().describe('Recipient address on the destination chain.'),
38
- wallet_address: zod_1.z.string().describe('Agent wallet for x402 payment.'),
39
- }, async (rawArgs) => {
40
- const args = sandbox_js_1.Sandbox.validate(RouteSchema, rawArgs);
41
- if (!rate_limit_js_1.RateLimiter.getInstance().checkTool('ghost_route')) {
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('ghost_route');
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: 'ghost_route', walletAddress: args.wallet_address });
52
- }
53
- catch (err) {
54
- audit.warn('ghost_route_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 ghost_js_1.GhostLayerAPI.route({
59
- fromChain: args.from_chain,
60
- toChain: args.to_chain,
61
- amount: args.amount,
62
- currency: args.currency,
63
- destinationAddress: args.destination_address,
64
- walletAddress: args.wallet_address ?? payment.walletAddress ?? 'anonymous',
65
- });
66
- audit.info('ghost_route_success', { receiptId: payment.receiptId });
67
- return {
68
- content: [{
69
- type: 'text',
70
- text: JSON.stringify({
71
- data,
72
- _meta: { receipt_id: payment.receiptId, tx_hash: payment.txHash, chain: payment.chain, amount_paid: `${payment.amountPaid} ${payment.currency}`, timestamp: payment.timestamp },
73
- }),
74
- }],
75
- };
76
- }
77
- catch (err) {
78
- audit.error('ghost_route_api_fail', { error: String(err) });
79
- return { content: [{ type: 'text', text: JSON.stringify({ error: 'api_error', message: String(err) }) }], isError: true };
80
- }
81
- });
82
- }
83
- //# sourceMappingURL=ghost.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ghost.js","sourceRoot":"","sources":["../../../src/server/tools/ghost.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 registerTools(server: McpServer): Promise<void>;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqBzE,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBpE"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerTools = registerTools;
4
- const agentcard_js_1 = require("./agentcard.js");
5
- const backtest_js_1 = require("./backtest.js");
6
- const brokers_js_1 = require("./brokers.js");
7
- const copytrader_js_1 = require("./copytrader.js");
8
- const crawl_js_1 = require("./crawl.js");
9
- const discovery_js_1 = require("./discovery.js");
10
- const echo_js_1 = require("./echo.js");
11
- const forge_js_1 = require("./forge.js");
12
- const ftd_js_1 = require("./ftd.js");
13
- const ghost_js_1 = require("./ghost.js");
14
- const launchpad_js_1 = require("./launchpad.js");
15
- const leviathan_js_1 = require("./leviathan.js");
16
- const nexus_js_1 = require("./nexus.js");
17
- const proof402_js_1 = require("./proof402.js");
18
- const rails_js_1 = require("./rails.js");
19
- const shadow_js_1 = require("./shadow.js");
20
- const squeezeos_js_1 = require("./squeezeos.js");
21
- const xdeo_js_1 = require("./xdeo.js");
22
- const xmit_js_1 = require("./xmit.js");
23
- async function registerTools(server) {
24
- (0, discovery_js_1.registerDiscovery)(server);
25
- (0, agentcard_js_1.registerAgentCard)(server);
26
- (0, backtest_js_1.registerBacktest)(server);
27
- (0, brokers_js_1.registerBrokers)(server);
28
- (0, copytrader_js_1.registerCopyTrader)(server);
29
- (0, crawl_js_1.registerCrawl)(server);
30
- (0, echo_js_1.registerEcho)(server);
31
- (0, forge_js_1.registerForge)(server);
32
- (0, ftd_js_1.registerFtd)(server);
33
- (0, ghost_js_1.registerGhost)(server);
34
- (0, launchpad_js_1.registerLaunchpad)(server);
35
- await (0, leviathan_js_1.registerLeviathan)(server);
36
- (0, nexus_js_1.registerNexus)(server);
37
- (0, proof402_js_1.registerProof402)(server);
38
- (0, rails_js_1.registerRails)(server);
39
- (0, shadow_js_1.registerShadow)(server);
40
- (0, squeezeos_js_1.registerSqueezeOS)(server);
41
- (0, xdeo_js_1.registerXdeo)(server);
42
- await (0, xmit_js_1.registerXmit)(server);
43
- }
44
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/tools/index.ts"],"names":[],"mappings":";;AAqBA,sCAoBC;AAxCD,iDAAmD;AACnD,+CAAiD;AACjD,6CAA+C;AAC/C,mDAAqD;AACrD,yCAA2C;AAC3C,iDAAmD;AACnD,uCAAyC;AACzC,yCAA2C;AAC3C,qCAAuC;AACvC,yCAA2C;AAC3C,iDAAmD;AACnD,iDAAmD;AACnD,yCAA2C;AAC3C,+CAAiD;AACjD,yCAA2C;AAC3C,2CAA6C;AAC7C,iDAAmD;AACnD,uCAAyC;AACzC,uCAAyC;AAElC,KAAK,UAAU,aAAa,CAAC,MAAiB;IACnD,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;IAC1B,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;IAC1B,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;IACzB,IAAA,4BAAe,EAAC,MAAM,CAAC,CAAC;IACxB,IAAA,kCAAkB,EAAC,MAAM,CAAC,CAAC;IAC3B,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC;IACtB,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;IACrB,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC;IACtB,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;IACpB,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC;IACtB,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;IAChC,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC;IACtB,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;IACzB,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC;IACtB,IAAA,0BAAc,EAAC,MAAM,CAAC,CAAC;IACvB,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;IAC1B,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;IACrB,MAAM,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}