@unclick/mcp-server 0.1.0 → 0.2.0

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 (444) hide show
  1. package/dist/abn-tool.d.ts +3 -0
  2. package/dist/abn-tool.d.ts.map +1 -0
  3. package/dist/abn-tool.js +89 -0
  4. package/dist/abn-tool.js.map +1 -0
  5. package/dist/abuseipdb-tool.d.ts +4 -0
  6. package/dist/abuseipdb-tool.d.ts.map +1 -0
  7. package/dist/abuseipdb-tool.js +129 -0
  8. package/dist/abuseipdb-tool.js.map +1 -0
  9. package/dist/alphavantage-tool.d.ts +7 -0
  10. package/dist/alphavantage-tool.d.ts.map +1 -0
  11. package/dist/alphavantage-tool.js +208 -0
  12. package/dist/alphavantage-tool.js.map +1 -0
  13. package/dist/amber-tool.d.ts +4 -0
  14. package/dist/amber-tool.d.ts.map +1 -0
  15. package/dist/amber-tool.js +114 -0
  16. package/dist/amber-tool.js.map +1 -0
  17. package/dist/australiapost-tool.d.ts +4 -0
  18. package/dist/australiapost-tool.d.ts.map +1 -0
  19. package/dist/australiapost-tool.js +130 -0
  20. package/dist/australiapost-tool.js.map +1 -0
  21. package/dist/bandsintown-tool.d.ts +4 -0
  22. package/dist/bandsintown-tool.d.ts.map +1 -0
  23. package/dist/bandsintown-tool.js +76 -0
  24. package/dist/bandsintown-tool.js.map +1 -0
  25. package/dist/bungie-tool.d.ts +5 -0
  26. package/dist/bungie-tool.d.ts.map +1 -0
  27. package/dist/bungie-tool.js +138 -0
  28. package/dist/bungie-tool.js.map +1 -0
  29. package/dist/calculator-tool.d.ts +6 -0
  30. package/dist/calculator-tool.d.ts.map +1 -0
  31. package/dist/calculator-tool.js +196 -0
  32. package/dist/calculator-tool.js.map +1 -0
  33. package/dist/carboninterface-tool.d.ts +5 -0
  34. package/dist/carboninterface-tool.d.ts.map +1 -0
  35. package/dist/carboninterface-tool.js +143 -0
  36. package/dist/carboninterface-tool.js.map +1 -0
  37. package/dist/chessdotcom-tool.d.ts +6 -0
  38. package/dist/chessdotcom-tool.d.ts.map +1 -0
  39. package/dist/chessdotcom-tool.js +183 -0
  40. package/dist/chessdotcom-tool.js.map +1 -0
  41. package/dist/client.js +1 -1
  42. package/dist/clockify-tool.d.ts +2 -0
  43. package/dist/clockify-tool.d.ts.map +1 -0
  44. package/dist/clockify-tool.js +155 -0
  45. package/dist/clockify-tool.js.map +1 -0
  46. package/dist/coingecko-tool.d.ts +7 -0
  47. package/dist/coingecko-tool.d.ts.map +1 -0
  48. package/dist/coingecko-tool.js +176 -0
  49. package/dist/coingecko-tool.js.map +1 -0
  50. package/dist/coinmarketcap-tool.d.ts +6 -0
  51. package/dist/coinmarketcap-tool.d.ts.map +1 -0
  52. package/dist/coinmarketcap-tool.js +168 -0
  53. package/dist/coinmarketcap-tool.js.map +1 -0
  54. package/dist/color-tool.d.ts +6 -0
  55. package/dist/color-tool.d.ts.map +1 -0
  56. package/dist/color-tool.js +391 -0
  57. package/dist/color-tool.js.map +1 -0
  58. package/dist/connectors/bluesky.d.ts +3 -0
  59. package/dist/connectors/bluesky.d.ts.map +1 -0
  60. package/dist/connectors/bluesky.js +26 -0
  61. package/dist/connectors/bluesky.js.map +1 -0
  62. package/dist/connectors/discogs.d.ts +3 -0
  63. package/dist/connectors/discogs.d.ts.map +1 -0
  64. package/dist/connectors/discogs.js +18 -0
  65. package/dist/connectors/discogs.js.map +1 -0
  66. package/dist/connectors/discord.d.ts +3 -0
  67. package/dist/connectors/discord.d.ts.map +1 -0
  68. package/dist/connectors/discord.js +18 -0
  69. package/dist/connectors/discord.js.map +1 -0
  70. package/dist/connectors/guardian.d.ts +3 -0
  71. package/dist/connectors/guardian.d.ts.map +1 -0
  72. package/dist/connectors/guardian.js +18 -0
  73. package/dist/connectors/guardian.js.map +1 -0
  74. package/dist/connectors/index.d.ts +39 -0
  75. package/dist/connectors/index.d.ts.map +1 -0
  76. package/dist/connectors/index.js +23 -0
  77. package/dist/connectors/index.js.map +1 -0
  78. package/dist/connectors/lastfm.d.ts +3 -0
  79. package/dist/connectors/lastfm.d.ts.map +1 -0
  80. package/dist/connectors/lastfm.js +18 -0
  81. package/dist/connectors/lastfm.js.map +1 -0
  82. package/dist/connectors/mastodon.d.ts +3 -0
  83. package/dist/connectors/mastodon.d.ts.map +1 -0
  84. package/dist/connectors/mastodon.js +26 -0
  85. package/dist/connectors/mastodon.js.map +1 -0
  86. package/dist/connectors/newsapi.d.ts +3 -0
  87. package/dist/connectors/newsapi.d.ts.map +1 -0
  88. package/dist/connectors/newsapi.js +18 -0
  89. package/dist/connectors/newsapi.js.map +1 -0
  90. package/dist/connectors/ptv.d.ts +3 -0
  91. package/dist/connectors/ptv.d.ts.map +1 -0
  92. package/dist/connectors/ptv.js +26 -0
  93. package/dist/connectors/ptv.js.map +1 -0
  94. package/dist/connectors/reddit.d.ts +3 -0
  95. package/dist/connectors/reddit.d.ts.map +1 -0
  96. package/dist/connectors/reddit.js +28 -0
  97. package/dist/connectors/reddit.js.map +1 -0
  98. package/dist/connectors/seatgeek.d.ts +3 -0
  99. package/dist/connectors/seatgeek.d.ts.map +1 -0
  100. package/dist/connectors/seatgeek.js +18 -0
  101. package/dist/connectors/seatgeek.js.map +1 -0
  102. package/dist/connectors/shopify.d.ts +3 -0
  103. package/dist/connectors/shopify.d.ts.map +1 -0
  104. package/dist/connectors/shopify.js +38 -0
  105. package/dist/connectors/shopify.js.map +1 -0
  106. package/dist/connectors/slack.d.ts +3 -0
  107. package/dist/connectors/slack.d.ts.map +1 -0
  108. package/dist/connectors/slack.js +18 -0
  109. package/dist/connectors/slack.js.map +1 -0
  110. package/dist/connectors/telegram.d.ts +3 -0
  111. package/dist/connectors/telegram.d.ts.map +1 -0
  112. package/dist/connectors/telegram.js +18 -0
  113. package/dist/connectors/telegram.js.map +1 -0
  114. package/dist/connectors/ticketmaster.d.ts +3 -0
  115. package/dist/connectors/ticketmaster.d.ts.map +1 -0
  116. package/dist/connectors/ticketmaster.js +18 -0
  117. package/dist/connectors/ticketmaster.js.map +1 -0
  118. package/dist/connectors/twitch.d.ts +3 -0
  119. package/dist/connectors/twitch.d.ts.map +1 -0
  120. package/dist/connectors/twitch.js +26 -0
  121. package/dist/connectors/twitch.js.map +1 -0
  122. package/dist/connectors/xero.d.ts +3 -0
  123. package/dist/connectors/xero.d.ts.map +1 -0
  124. package/dist/connectors/xero.js +36 -0
  125. package/dist/connectors/xero.js.map +1 -0
  126. package/dist/connectors/yelp.d.ts +3 -0
  127. package/dist/connectors/yelp.d.ts.map +1 -0
  128. package/dist/connectors/yelp.js +18 -0
  129. package/dist/connectors/yelp.js.map +1 -0
  130. package/dist/datetime-tool.d.ts +8 -0
  131. package/dist/datetime-tool.d.ts.map +1 -0
  132. package/dist/datetime-tool.js +263 -0
  133. package/dist/datetime-tool.js.map +1 -0
  134. package/dist/deezer-tool.d.ts +7 -0
  135. package/dist/deezer-tool.d.ts.map +1 -0
  136. package/dist/deezer-tool.js +142 -0
  137. package/dist/deezer-tool.js.map +1 -0
  138. package/dist/discogs-tool.d.ts +7 -0
  139. package/dist/discogs-tool.d.ts.map +1 -0
  140. package/dist/discogs-tool.js +138 -0
  141. package/dist/discogs-tool.js.map +1 -0
  142. package/dist/domain-tool.d.ts +4 -0
  143. package/dist/domain-tool.d.ts.map +1 -0
  144. package/dist/domain-tool.js +155 -0
  145. package/dist/domain-tool.js.map +1 -0
  146. package/dist/ebird-tool.d.ts +5 -0
  147. package/dist/ebird-tool.d.ts.map +1 -0
  148. package/dist/ebird-tool.js +128 -0
  149. package/dist/ebird-tool.js.map +1 -0
  150. package/dist/email-tool.d.ts +8 -0
  151. package/dist/email-tool.d.ts.map +1 -0
  152. package/dist/email-tool.js +376 -0
  153. package/dist/email-tool.js.map +1 -0
  154. package/dist/espn-tool.d.ts +8 -0
  155. package/dist/espn-tool.d.ts.map +1 -0
  156. package/dist/espn-tool.js +147 -0
  157. package/dist/espn-tool.js.map +1 -0
  158. package/dist/eventbrite-tool.d.ts +7 -0
  159. package/dist/eventbrite-tool.d.ts.map +1 -0
  160. package/dist/eventbrite-tool.js +134 -0
  161. package/dist/eventbrite-tool.js.map +1 -0
  162. package/dist/feedly-tool.d.ts +2 -0
  163. package/dist/feedly-tool.d.ts.map +1 -0
  164. package/dist/feedly-tool.js +152 -0
  165. package/dist/feedly-tool.js.map +1 -0
  166. package/dist/foursquare-tool.d.ts +6 -0
  167. package/dist/foursquare-tool.d.ts.map +1 -0
  168. package/dist/foursquare-tool.js +102 -0
  169. package/dist/foursquare-tool.js.map +1 -0
  170. package/dist/fpl-tool.d.ts +8 -0
  171. package/dist/fpl-tool.d.ts.map +1 -0
  172. package/dist/fpl-tool.js +195 -0
  173. package/dist/fpl-tool.js.map +1 -0
  174. package/dist/genius-tool.d.ts +5 -0
  175. package/dist/genius-tool.d.ts.map +1 -0
  176. package/dist/genius-tool.js +62 -0
  177. package/dist/genius-tool.js.map +1 -0
  178. package/dist/guardian-tool.d.ts +6 -0
  179. package/dist/guardian-tool.d.ts.map +1 -0
  180. package/dist/guardian-tool.js +124 -0
  181. package/dist/guardian-tool.js.map +1 -0
  182. package/dist/hackernews-tool.d.ts +8 -0
  183. package/dist/hackernews-tool.d.ts.map +1 -0
  184. package/dist/hackernews-tool.js +96 -0
  185. package/dist/hackernews-tool.js.map +1 -0
  186. package/dist/haveibeenpwned-tool.d.ts +4 -0
  187. package/dist/haveibeenpwned-tool.d.ts.map +1 -0
  188. package/dist/haveibeenpwned-tool.js +162 -0
  189. package/dist/haveibeenpwned-tool.js.map +1 -0
  190. package/dist/hunter-tool.d.ts +4 -0
  191. package/dist/hunter-tool.d.ts.map +1 -0
  192. package/dist/hunter-tool.js +148 -0
  193. package/dist/hunter-tool.js.map +1 -0
  194. package/dist/instapaper-tool.d.ts +2 -0
  195. package/dist/instapaper-tool.d.ts.map +1 -0
  196. package/dist/instapaper-tool.js +257 -0
  197. package/dist/instapaper-tool.js.map +1 -0
  198. package/dist/ipapi-tool.d.ts +3 -0
  199. package/dist/ipapi-tool.d.ts.map +1 -0
  200. package/dist/ipapi-tool.js +78 -0
  201. package/dist/ipapi-tool.js.map +1 -0
  202. package/dist/ipaustralia-tool.d.ts +4 -0
  203. package/dist/ipaustralia-tool.d.ts.map +1 -0
  204. package/dist/ipaustralia-tool.js +138 -0
  205. package/dist/ipaustralia-tool.js.map +1 -0
  206. package/dist/lastfm-tool.d.ts +8 -0
  207. package/dist/lastfm-tool.d.ts.map +1 -0
  208. package/dist/lastfm-tool.js +169 -0
  209. package/dist/lastfm-tool.js.map +1 -0
  210. package/dist/lego-tool.d.ts +8 -0
  211. package/dist/lego-tool.d.ts.map +1 -0
  212. package/dist/lego-tool.js +235 -0
  213. package/dist/lego-tool.js.map +1 -0
  214. package/dist/lichess-tool.d.ts +6 -0
  215. package/dist/lichess-tool.d.ts.map +1 -0
  216. package/dist/lichess-tool.js +211 -0
  217. package/dist/lichess-tool.js.map +1 -0
  218. package/dist/meal-tool.d.ts +8 -0
  219. package/dist/meal-tool.d.ts.map +1 -0
  220. package/dist/meal-tool.js +143 -0
  221. package/dist/meal-tool.js.map +1 -0
  222. package/dist/monica-tool.d.ts +2 -0
  223. package/dist/monica-tool.d.ts.map +1 -0
  224. package/dist/monica-tool.js +160 -0
  225. package/dist/monica-tool.js.map +1 -0
  226. package/dist/musicbrainz-tool.d.ts +6 -0
  227. package/dist/musicbrainz-tool.d.ts.map +1 -0
  228. package/dist/musicbrainz-tool.js +65 -0
  229. package/dist/musicbrainz-tool.js.map +1 -0
  230. package/dist/nasa-tool.d.ts +6 -0
  231. package/dist/nasa-tool.d.ts.map +1 -0
  232. package/dist/nasa-tool.js +158 -0
  233. package/dist/nasa-tool.js.map +1 -0
  234. package/dist/newsapi-tool.d.ts +4 -0
  235. package/dist/newsapi-tool.d.ts.map +1 -0
  236. package/dist/newsapi-tool.js +108 -0
  237. package/dist/newsapi-tool.js.map +1 -0
  238. package/dist/notion-tool.d.ts +2 -0
  239. package/dist/notion-tool.d.ts.map +1 -0
  240. package/dist/notion-tool.js +167 -0
  241. package/dist/notion-tool.js.map +1 -0
  242. package/dist/numbers-tool.d.ts +3 -0
  243. package/dist/numbers-tool.d.ts.map +1 -0
  244. package/dist/numbers-tool.js +47 -0
  245. package/dist/numbers-tool.js.map +1 -0
  246. package/dist/nvd-tool.d.ts +4 -0
  247. package/dist/nvd-tool.d.ts.map +1 -0
  248. package/dist/nvd-tool.js +150 -0
  249. package/dist/nvd-tool.js.map +1 -0
  250. package/dist/omdb-tool.d.ts +4 -0
  251. package/dist/omdb-tool.d.ts.map +1 -0
  252. package/dist/omdb-tool.js +62 -0
  253. package/dist/omdb-tool.js.map +1 -0
  254. package/dist/openaq-tool.d.ts +5 -0
  255. package/dist/openaq-tool.d.ts.map +1 -0
  256. package/dist/openaq-tool.js +141 -0
  257. package/dist/openaq-tool.js.map +1 -0
  258. package/dist/openexchangerates-tool.d.ts +5 -0
  259. package/dist/openexchangerates-tool.d.ts.map +1 -0
  260. package/dist/openexchangerates-tool.js +101 -0
  261. package/dist/openexchangerates-tool.js.map +1 -0
  262. package/dist/openf1-tool.d.ts +9 -0
  263. package/dist/openf1-tool.d.ts.map +1 -0
  264. package/dist/openf1-tool.js +194 -0
  265. package/dist/openf1-tool.js.map +1 -0
  266. package/dist/openfoodfacts-tool.d.ts +5 -0
  267. package/dist/openfoodfacts-tool.d.ts.map +1 -0
  268. package/dist/openfoodfacts-tool.js +106 -0
  269. package/dist/openfoodfacts-tool.js.map +1 -0
  270. package/dist/openlibrary-tool.d.ts +7 -0
  271. package/dist/openlibrary-tool.d.ts.map +1 -0
  272. package/dist/openlibrary-tool.js +67 -0
  273. package/dist/openlibrary-tool.js.map +1 -0
  274. package/dist/openmeteo-tool.d.ts +4 -0
  275. package/dist/openmeteo-tool.d.ts.map +1 -0
  276. package/dist/openmeteo-tool.js +160 -0
  277. package/dist/openmeteo-tool.js.map +1 -0
  278. package/dist/pandascore-tool.d.ts +6 -0
  279. package/dist/pandascore-tool.d.ts.map +1 -0
  280. package/dist/pandascore-tool.js +239 -0
  281. package/dist/pandascore-tool.js.map +1 -0
  282. package/dist/podcastindex-tool.d.ts +7 -0
  283. package/dist/podcastindex-tool.d.ts.map +1 -0
  284. package/dist/podcastindex-tool.js +98 -0
  285. package/dist/podcastindex-tool.js.map +1 -0
  286. package/dist/ptv-tool.d.ts +6 -0
  287. package/dist/ptv-tool.d.ts.map +1 -0
  288. package/dist/ptv-tool.js +95 -0
  289. package/dist/ptv-tool.js.map +1 -0
  290. package/dist/radiobrowser-tool.d.ts +7 -0
  291. package/dist/radiobrowser-tool.d.ts.map +1 -0
  292. package/dist/radiobrowser-tool.js +125 -0
  293. package/dist/radiobrowser-tool.js.map +1 -0
  294. package/dist/raindrop-tool.d.ts +2 -0
  295. package/dist/raindrop-tool.d.ts.map +1 -0
  296. package/dist/raindrop-tool.js +137 -0
  297. package/dist/raindrop-tool.js.map +1 -0
  298. package/dist/random-tool.d.ts +9 -0
  299. package/dist/random-tool.d.ts.map +1 -0
  300. package/dist/random-tool.js +198 -0
  301. package/dist/random-tool.js.map +1 -0
  302. package/dist/rawg-tool.d.ts +7 -0
  303. package/dist/rawg-tool.d.ts.map +1 -0
  304. package/dist/rawg-tool.js +172 -0
  305. package/dist/rawg-tool.js.map +1 -0
  306. package/dist/readwise-tool.d.ts +2 -0
  307. package/dist/readwise-tool.d.ts.map +1 -0
  308. package/dist/readwise-tool.js +133 -0
  309. package/dist/readwise-tool.js.map +1 -0
  310. package/dist/resend-tool.d.ts +4 -0
  311. package/dist/resend-tool.d.ts.map +1 -0
  312. package/dist/resend-tool.js +133 -0
  313. package/dist/resend-tool.js.map +1 -0
  314. package/dist/restcountries-tool.d.ts +7 -0
  315. package/dist/restcountries-tool.d.ts.map +1 -0
  316. package/dist/restcountries-tool.js +141 -0
  317. package/dist/restcountries-tool.js.map +1 -0
  318. package/dist/riot-tool.d.ts +6 -0
  319. package/dist/riot-tool.d.ts.map +1 -0
  320. package/dist/riot-tool.js +166 -0
  321. package/dist/riot-tool.js.map +1 -0
  322. package/dist/seatgeek-tool.d.ts +7 -0
  323. package/dist/seatgeek-tool.d.ts.map +1 -0
  324. package/dist/seatgeek-tool.js +144 -0
  325. package/dist/seatgeek-tool.js.map +1 -0
  326. package/dist/sendle-tool.d.ts +4 -0
  327. package/dist/sendle-tool.d.ts.map +1 -0
  328. package/dist/sendle-tool.js +146 -0
  329. package/dist/sendle-tool.js.map +1 -0
  330. package/dist/server.d.ts.map +1 -1
  331. package/dist/server.js +114 -1825
  332. package/dist/server.js.map +1 -1
  333. package/dist/setlistfm-tool.d.ts +5 -0
  334. package/dist/setlistfm-tool.d.ts.map +1 -0
  335. package/dist/setlistfm-tool.js +89 -0
  336. package/dist/setlistfm-tool.js.map +1 -0
  337. package/dist/shodan-tool.d.ts +4 -0
  338. package/dist/shodan-tool.d.ts.map +1 -0
  339. package/dist/shodan-tool.js +139 -0
  340. package/dist/shodan-tool.js.map +1 -0
  341. package/dist/sleeper-tool.d.ts +7 -0
  342. package/dist/sleeper-tool.d.ts.map +1 -0
  343. package/dist/sleeper-tool.js +147 -0
  344. package/dist/sleeper-tool.js.map +1 -0
  345. package/dist/splitwise-tool.d.ts +2 -0
  346. package/dist/splitwise-tool.d.ts.map +1 -0
  347. package/dist/splitwise-tool.js +133 -0
  348. package/dist/splitwise-tool.js.map +1 -0
  349. package/dist/supercell-tool.d.ts +8 -0
  350. package/dist/supercell-tool.d.ts.map +1 -0
  351. package/dist/supercell-tool.js +258 -0
  352. package/dist/supercell-tool.js.map +1 -0
  353. package/dist/tab-tool.d.ts +4 -0
  354. package/dist/tab-tool.d.ts.map +1 -0
  355. package/dist/tab-tool.js +128 -0
  356. package/dist/tab-tool.js.map +1 -0
  357. package/dist/text-tool.d.ts +8 -0
  358. package/dist/text-tool.d.ts.map +1 -0
  359. package/dist/text-tool.js +190 -0
  360. package/dist/text-tool.js.map +1 -0
  361. package/dist/thelott-tool.d.ts +3 -0
  362. package/dist/thelott-tool.d.ts.map +1 -0
  363. package/dist/thelott-tool.js +93 -0
  364. package/dist/thelott-tool.js.map +1 -0
  365. package/dist/ticketmaster-tool.d.ts +6 -0
  366. package/dist/ticketmaster-tool.d.ts.map +1 -0
  367. package/dist/ticketmaster-tool.js +140 -0
  368. package/dist/ticketmaster-tool.js.map +1 -0
  369. package/dist/tmdb-tool.d.ts +9 -0
  370. package/dist/tmdb-tool.d.ts.map +1 -0
  371. package/dist/tmdb-tool.js +204 -0
  372. package/dist/tmdb-tool.js.map +1 -0
  373. package/dist/toggl-tool.d.ts +5 -0
  374. package/dist/toggl-tool.d.ts.map +1 -0
  375. package/dist/toggl-tool.js +203 -0
  376. package/dist/toggl-tool.js.map +1 -0
  377. package/dist/toilets-tool.d.ts +3 -0
  378. package/dist/toilets-tool.d.ts.map +1 -0
  379. package/dist/toilets-tool.js +260 -0
  380. package/dist/toilets-tool.js.map +1 -0
  381. package/dist/tomorrowio-tool.d.ts +4 -0
  382. package/dist/tomorrowio-tool.d.ts.map +1 -0
  383. package/dist/tomorrowio-tool.js +114 -0
  384. package/dist/tomorrowio-tool.js.map +1 -0
  385. package/dist/tool-wiring.d.ts +7370 -0
  386. package/dist/tool-wiring.d.ts.map +1 -0
  387. package/dist/tool-wiring.js +6068 -0
  388. package/dist/tool-wiring.js.map +1 -0
  389. package/dist/trivia-tool.d.ts +3 -0
  390. package/dist/trivia-tool.d.ts.map +1 -0
  391. package/dist/trivia-tool.js +91 -0
  392. package/dist/trivia-tool.js.map +1 -0
  393. package/dist/trove-tool.d.ts +4 -0
  394. package/dist/trove-tool.d.ts.map +1 -0
  395. package/dist/trove-tool.js +121 -0
  396. package/dist/trove-tool.js.map +1 -0
  397. package/dist/twitch-tool.d.ts +8 -0
  398. package/dist/twitch-tool.d.ts.map +1 -0
  399. package/dist/twitch-tool.js +188 -0
  400. package/dist/twitch-tool.js.map +1 -0
  401. package/dist/unit-converter-tool.d.ts +8 -0
  402. package/dist/unit-converter-tool.d.ts.map +1 -0
  403. package/dist/unit-converter-tool.js +176 -0
  404. package/dist/unit-converter-tool.js.map +1 -0
  405. package/dist/untappd-tool.d.ts +6 -0
  406. package/dist/untappd-tool.d.ts.map +1 -0
  407. package/dist/untappd-tool.js +193 -0
  408. package/dist/untappd-tool.js.map +1 -0
  409. package/dist/urlscan-tool.d.ts +4 -0
  410. package/dist/urlscan-tool.d.ts.map +1 -0
  411. package/dist/urlscan-tool.js +154 -0
  412. package/dist/urlscan-tool.js.map +1 -0
  413. package/dist/usgs-tool.d.ts +5 -0
  414. package/dist/usgs-tool.d.ts.map +1 -0
  415. package/dist/usgs-tool.js +140 -0
  416. package/dist/usgs-tool.js.map +1 -0
  417. package/dist/vault-bridge.d.ts +16 -0
  418. package/dist/vault-bridge.d.ts.map +1 -0
  419. package/dist/vault-bridge.js +139 -0
  420. package/dist/vault-bridge.js.map +1 -0
  421. package/dist/vercel-tool.d.ts +6 -0
  422. package/dist/vercel-tool.d.ts.map +1 -0
  423. package/dist/vercel-tool.js +202 -0
  424. package/dist/vercel-tool.js.map +1 -0
  425. package/dist/virustotal-tool.d.ts +5 -0
  426. package/dist/virustotal-tool.d.ts.map +1 -0
  427. package/dist/virustotal-tool.js +154 -0
  428. package/dist/virustotal-tool.js.map +1 -0
  429. package/dist/willyweather-tool.d.ts +4 -0
  430. package/dist/willyweather-tool.d.ts.map +1 -0
  431. package/dist/willyweather-tool.js +128 -0
  432. package/dist/willyweather-tool.js.map +1 -0
  433. package/dist/wise-tool.d.ts +5 -0
  434. package/dist/wise-tool.d.ts.map +1 -0
  435. package/dist/wise-tool.js +129 -0
  436. package/dist/wise-tool.js.map +1 -0
  437. package/dist/xero-tool.d.ts.map +1 -1
  438. package/dist/xero-tool.js +40 -35
  439. package/dist/xero-tool.js.map +1 -1
  440. package/dist/yelp-tool.d.ts +6 -0
  441. package/dist/yelp-tool.d.ts.map +1 -0
  442. package/dist/yelp-tool.js +150 -0
  443. package/dist/yelp-tool.js.map +1 -0
  444. package/package.json +6 -1
@@ -0,0 +1,3 @@
1
+ export declare function abnLookup(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function abnSearch(args: Record<string, unknown>): Promise<unknown>;
3
+ //# sourceMappingURL=abn-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abn-tool.d.ts","sourceRoot":"","sources":["../src/abn-tool.ts"],"names":[],"mappings":"AA4BA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAoC/E;AAMD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA+B/E"}
@@ -0,0 +1,89 @@
1
+ // Australian Business Registry (ABN Lookup) integration.
2
+ // Uses the free ABR JSONP API — no authentication required.
3
+ // Base URL: https://abr.business.gov.au/json/
4
+ const ABN_BASE = "https://abr.business.gov.au/json";
5
+ // ─── JSONP helper ─────────────────────────────────────────────────────────────
6
+ async function fetchJsonp(url) {
7
+ const res = await fetch(url, {
8
+ headers: { "User-Agent": "UnClickMCP/1.0 (https://unclick.io)" },
9
+ });
10
+ if (!res.ok) {
11
+ throw new Error(`ABR API HTTP ${res.status}`);
12
+ }
13
+ const text = await res.text();
14
+ // Strip JSONP wrapper: callback({...}) or callback([...])
15
+ const match = text.match(/^[a-zA-Z_$][a-zA-Z0-9_$]*\s*\(([\s\S]*)\)\s*;?\s*$/);
16
+ if (!match) {
17
+ throw new Error("Unexpected ABR API response format (not JSONP).");
18
+ }
19
+ return JSON.parse(match[1]);
20
+ }
21
+ // ─── abn_lookup ───────────────────────────────────────────────────────────────
22
+ // GET /AbnDetails.aspx?abn={abn}&callback=callback
23
+ // Returns entity name, type, ABN status, GST status, main business location.
24
+ export async function abnLookup(args) {
25
+ const abn = String(args.abn ?? "").trim().replace(/\s/g, "");
26
+ if (!abn)
27
+ return { error: "abn is required (11-digit Australian Business Number)." };
28
+ const url = `${ABN_BASE}/AbnDetails.aspx?abn=${encodeURIComponent(abn)}&callback=callback`;
29
+ const data = await fetchJsonp(url);
30
+ if (data["Message"]) {
31
+ const msg = String(data["Message"]);
32
+ if (msg && msg.toLowerCase() !== "no record found") {
33
+ return { error: msg };
34
+ }
35
+ }
36
+ if (!data["Abn"]) {
37
+ return { error: "No business found for that ABN.", abn };
38
+ }
39
+ return {
40
+ abn: data["Abn"],
41
+ entity_name: data["EntityName"] ?? null,
42
+ entity_type_code: data["EntityTypeCode"] ?? null,
43
+ entity_type: data["EntityTypeName"] ?? null,
44
+ abn_status: data["AbnStatus"] ?? null,
45
+ abn_status_effective_from: data["AbnStatusEffectiveFrom"] ?? null,
46
+ gst_registered_from: data["Gst"] ?? null,
47
+ gst_status: data["Gst"] ? "Registered" : "Not registered",
48
+ acn: data["Acn"] || null,
49
+ address_state: data["AddressState"] ?? null,
50
+ address_postcode: data["AddressPostcode"] ?? null,
51
+ business_names: Array.isArray(data["BusinessName"])
52
+ ? data["BusinessName"].map((b) => ({ name: b["OrganisationName"], effective_from: b["EffectiveFrom"] }))
53
+ : [],
54
+ };
55
+ }
56
+ // ─── abn_search ───────────────────────────────────────────────────────────────
57
+ // GET /Search.aspx?name={name}&callback=callback
58
+ // Returns list of matching businesses with ABNs.
59
+ export async function abnSearch(args) {
60
+ const name = String(args.name ?? "").trim();
61
+ if (!name)
62
+ return { error: "name is required." };
63
+ const params = new URLSearchParams({ name, callback: "callback" });
64
+ if (args.postcode)
65
+ params.set("postcode", String(args.postcode));
66
+ const url = `${ABN_BASE}/Search.aspx?${params}`;
67
+ const data = await fetchJsonp(url);
68
+ if (data["Message"]) {
69
+ const msg = String(data["Message"]);
70
+ if (msg)
71
+ return { error: msg };
72
+ }
73
+ const names = Array.isArray(data["Names"]) ? data["Names"] : [];
74
+ return {
75
+ query: name,
76
+ count: names.length,
77
+ results: names.map((n) => ({
78
+ abn: n["Abn"],
79
+ name: n["Name"],
80
+ name_type: n["NameType"],
81
+ abn_status: n["AbnStatus"],
82
+ is_current: n["IsCurrent"],
83
+ state: n["State"] ?? null,
84
+ postcode: n["Postcode"] ?? null,
85
+ score: n["Score"] ?? null,
86
+ })),
87
+ };
88
+ }
89
+ //# sourceMappingURL=abn-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abn-tool.js","sourceRoot":"","sources":["../src/abn-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function checkIpAbuse(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function reportIpAbuse(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function getBlacklistAbuseipdb(args: Record<string, unknown>): Promise<unknown>;
4
+ //# sourceMappingURL=abuseipdb-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abuseipdb-tool.d.ts","sourceRoot":"","sources":["../src/abuseipdb-tool.ts"],"names":[],"mappings":"AA2DA,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BlF;AAGD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBnF;AAGD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgB3F"}
@@ -0,0 +1,129 @@
1
+ // AbuseIPDB IP reputation database.
2
+ // Docs: https://docs.abuseipdb.com/
3
+ // Auth: ABUSEIPDB_API_KEY (Key header)
4
+ // Base: https://api.abuseipdb.com/api/v2/
5
+ const ABUSEIPDB_BASE = "https://api.abuseipdb.com/api/v2";
6
+ function getApiKey(args) {
7
+ const key = String(args.api_key ?? process.env.ABUSEIPDB_API_KEY ?? "").trim();
8
+ if (!key)
9
+ throw new Error("api_key is required (or set ABUSEIPDB_API_KEY env var).");
10
+ return key;
11
+ }
12
+ async function abuseGet(apiKey, path, params) {
13
+ const qs = new URLSearchParams(params);
14
+ const res = await fetch(`${ABUSEIPDB_BASE}${path}?${qs}`, {
15
+ headers: {
16
+ Key: apiKey,
17
+ Accept: "application/json",
18
+ },
19
+ });
20
+ if (res.status === 401)
21
+ throw new Error("Invalid AbuseIPDB API key.");
22
+ if (res.status === 429)
23
+ throw new Error("AbuseIPDB rate limit exceeded. Upgrade your plan or wait.");
24
+ if (!res.ok) {
25
+ const body = await res.text().catch(() => "");
26
+ throw new Error(`AbuseIPDB HTTP ${res.status}: ${body || res.statusText}`);
27
+ }
28
+ return res.json();
29
+ }
30
+ async function abusePost(apiKey, path, params) {
31
+ const body = new URLSearchParams(params);
32
+ const res = await fetch(`${ABUSEIPDB_BASE}${path}`, {
33
+ method: "POST",
34
+ headers: {
35
+ Key: apiKey,
36
+ Accept: "application/json",
37
+ "Content-Type": "application/x-www-form-urlencoded",
38
+ },
39
+ body: body.toString(),
40
+ });
41
+ if (res.status === 401)
42
+ throw new Error("Invalid AbuseIPDB API key.");
43
+ if (res.status === 429)
44
+ throw new Error("AbuseIPDB rate limit exceeded.");
45
+ if (!res.ok) {
46
+ const body2 = await res.text().catch(() => "");
47
+ throw new Error(`AbuseIPDB HTTP ${res.status}: ${body2 || res.statusText}`);
48
+ }
49
+ return res.json();
50
+ }
51
+ // check_ip_abuse
52
+ export async function checkIpAbuse(args) {
53
+ try {
54
+ const apiKey = getApiKey(args);
55
+ const ip = String(args.ip ?? "").trim();
56
+ if (!ip)
57
+ return { error: "ip is required." };
58
+ const params = { ipAddress: ip };
59
+ if (args.max_age_in_days)
60
+ params.maxAgeInDays = String(args.max_age_in_days);
61
+ if (args.verbose)
62
+ params.verbose = "true";
63
+ const json = await abuseGet(apiKey, "/check", params);
64
+ const d = json.data;
65
+ return {
66
+ ip_address: d?.ipAddress,
67
+ is_public: d?.isPublic,
68
+ abuse_confidence_score: d?.abuseConfidenceScore,
69
+ country_code: d?.countryCode,
70
+ usage_type: d?.usageType,
71
+ isp: d?.isp,
72
+ domain: d?.domain,
73
+ is_tor: d?.isTor,
74
+ total_reports: d?.totalReports,
75
+ num_distinct_users: d?.numDistinctUsers,
76
+ last_reported_at: d?.lastReportedAt,
77
+ reports: d?.reports ?? [],
78
+ };
79
+ }
80
+ catch (err) {
81
+ return { error: err instanceof Error ? err.message : String(err) };
82
+ }
83
+ }
84
+ // report_ip_abuse
85
+ export async function reportIpAbuse(args) {
86
+ try {
87
+ const apiKey = getApiKey(args);
88
+ const ip = String(args.ip ?? "").trim();
89
+ const categories = String(args.categories ?? "").trim();
90
+ if (!ip)
91
+ return { error: "ip is required." };
92
+ if (!categories)
93
+ return { error: "categories is required (comma-separated category IDs, e.g. 18,22)." };
94
+ const params = { ip, categories };
95
+ if (args.comment)
96
+ params.comment = String(args.comment);
97
+ const json = await abusePost(apiKey, "/report", params);
98
+ const d = json.data;
99
+ return {
100
+ ip_address: d?.ipAddress,
101
+ abuse_confidence_score: d?.abuseConfidenceScore,
102
+ };
103
+ }
104
+ catch (err) {
105
+ return { error: err instanceof Error ? err.message : String(err) };
106
+ }
107
+ }
108
+ // get_blacklist_abuseipdb
109
+ export async function getBlacklistAbuseipdb(args) {
110
+ try {
111
+ const apiKey = getApiKey(args);
112
+ const params = {};
113
+ if (args.confidence_minimum)
114
+ params.confidenceMinimum = String(args.confidence_minimum);
115
+ if (args.limit)
116
+ params.limit = String(args.limit);
117
+ const json = await abuseGet(apiKey, "/blacklist", params);
118
+ const data = json.data;
119
+ return {
120
+ count: data?.length ?? 0,
121
+ generated_at: json.meta ? json.meta.generatedAt : null,
122
+ blacklist: data ?? [],
123
+ };
124
+ }
125
+ catch (err) {
126
+ return { error: err instanceof Error ? err.message : String(err) };
127
+ }
128
+ }
129
+ //# sourceMappingURL=abuseipdb-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abuseipdb-tool.js","sourceRoot":"","sources":["../src/abuseipdb-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function stockQuote(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function stockSearch(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function stockDaily(args: Record<string, unknown>): Promise<unknown>;
4
+ export declare function stockIntraday(args: Record<string, unknown>): Promise<unknown>;
5
+ export declare function forexRate(args: Record<string, unknown>): Promise<unknown>;
6
+ export declare function cryptoDaily(args: Record<string, unknown>): Promise<unknown>;
7
+ //# sourceMappingURL=alphavantage-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alphavantage-tool.d.ts","sourceRoot":"","sources":["../src/alphavantage-tool.ts"],"names":[],"mappings":"AA4CA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBhF;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBjF;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAiChF;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAwCnF;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B/E;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAqCjF"}
@@ -0,0 +1,208 @@
1
+ // Alpha Vantage financial data integration for the UnClick MCP server.
2
+ // Uses the Alpha Vantage REST API via fetch - no external dependencies.
3
+ // Users must register at alphavantage.co to get a free API key.
4
+ const ALPHAVANTAGE_BASE = "https://www.alphavantage.co/query";
5
+ // --- API helper ---
6
+ function requireKey() {
7
+ const key = (process.env.ALPHAVANTAGE_API_KEY ?? "").trim();
8
+ if (!key)
9
+ throw new Error("ALPHAVANTAGE_API_KEY environment variable is required.");
10
+ return key;
11
+ }
12
+ async function avFetch(params) {
13
+ const apikey = requireKey();
14
+ const url = new URL(ALPHAVANTAGE_BASE);
15
+ for (const [k, v] of Object.entries(params))
16
+ url.searchParams.set(k, v);
17
+ url.searchParams.set("apikey", apikey);
18
+ const response = await fetch(url.toString());
19
+ if (!response.ok) {
20
+ throw new Error(`HTTP ${response.status} from Alpha Vantage API`);
21
+ }
22
+ const data = await response.json();
23
+ // Alpha Vantage returns error messages inside the response body
24
+ if (data && typeof data === "object") {
25
+ const d = data;
26
+ if (d["Error Message"])
27
+ throw new Error(`Alpha Vantage error: ${d["Error Message"]}`);
28
+ if (d["Note"]) {
29
+ // API call frequency warning - still return data
30
+ d["_note"] = d["Note"];
31
+ delete d["Note"];
32
+ }
33
+ if (d["Information"])
34
+ throw new Error(`Alpha Vantage limit: ${d["Information"]}`);
35
+ }
36
+ return data;
37
+ }
38
+ // --- Operations ---
39
+ export async function stockQuote(args) {
40
+ const symbol = String(args.symbol ?? "").trim().toUpperCase();
41
+ if (!symbol)
42
+ throw new Error("symbol is required.");
43
+ const data = await avFetch({ function: "GLOBAL_QUOTE", symbol });
44
+ const quote = data["Global Quote"];
45
+ if (!quote || !quote["01. symbol"]) {
46
+ return { symbol, quote: null, note: "No data returned. Check symbol." };
47
+ }
48
+ return {
49
+ symbol: quote["01. symbol"],
50
+ open: quote["02. open"],
51
+ high: quote["03. high"],
52
+ low: quote["04. low"],
53
+ price: quote["05. price"],
54
+ volume: quote["06. volume"],
55
+ latest_trading_day: quote["07. latest trading day"],
56
+ previous_close: quote["08. previous close"],
57
+ change: quote["09. change"],
58
+ change_percent: quote["10. change percent"],
59
+ };
60
+ }
61
+ export async function stockSearch(args) {
62
+ const keywords = String(args.keywords ?? "").trim();
63
+ if (!keywords)
64
+ throw new Error("keywords is required.");
65
+ const data = await avFetch({ function: "SYMBOL_SEARCH", keywords });
66
+ const matches = data["bestMatches"];
67
+ return {
68
+ keywords,
69
+ results: (matches ?? []).map((m) => ({
70
+ symbol: m["1. symbol"],
71
+ name: m["2. name"],
72
+ type: m["3. type"],
73
+ region: m["4. region"],
74
+ currency: m["8. currency"],
75
+ match_score: m["9. matchScore"],
76
+ })),
77
+ };
78
+ }
79
+ export async function stockDaily(args) {
80
+ const symbol = String(args.symbol ?? "").trim().toUpperCase();
81
+ if (!symbol)
82
+ throw new Error("symbol is required.");
83
+ const outputsize = String(args.outputsize ?? "compact");
84
+ const data = await avFetch({
85
+ function: "TIME_SERIES_DAILY",
86
+ symbol,
87
+ outputsize,
88
+ });
89
+ const meta = data["Meta Data"];
90
+ const series = data["Time Series (Daily)"];
91
+ if (!series)
92
+ return { symbol, daily: null, note: "No data returned." };
93
+ const days = Object.entries(series)
94
+ .slice(0, 30)
95
+ .map(([date, v]) => ({
96
+ date,
97
+ open: v["1. open"],
98
+ high: v["2. high"],
99
+ low: v["3. low"],
100
+ close: v["4. close"],
101
+ volume: v["5. volume"],
102
+ }));
103
+ return {
104
+ symbol,
105
+ last_refreshed: meta?.["3. Last Refreshed"],
106
+ outputsize,
107
+ days,
108
+ };
109
+ }
110
+ export async function stockIntraday(args) {
111
+ const symbol = String(args.symbol ?? "").trim().toUpperCase();
112
+ if (!symbol)
113
+ throw new Error("symbol is required.");
114
+ const validIntervals = ["1min", "5min", "15min", "30min", "60min"];
115
+ const interval = String(args.interval ?? "5min");
116
+ if (!validIntervals.includes(interval)) {
117
+ throw new Error(`interval must be one of: ${validIntervals.join(", ")}.`);
118
+ }
119
+ const data = await avFetch({
120
+ function: "TIME_SERIES_INTRADAY",
121
+ symbol,
122
+ interval,
123
+ });
124
+ const meta = data["Meta Data"];
125
+ const seriesKey = `Time Series (${interval})`;
126
+ const series = data[seriesKey];
127
+ if (!series)
128
+ return { symbol, interval, bars: null, note: "No data returned." };
129
+ const bars = Object.entries(series)
130
+ .slice(0, 50)
131
+ .map(([timestamp, v]) => ({
132
+ timestamp,
133
+ open: v["1. open"],
134
+ high: v["2. high"],
135
+ low: v["3. low"],
136
+ close: v["4. close"],
137
+ volume: v["5. volume"],
138
+ }));
139
+ return {
140
+ symbol,
141
+ interval,
142
+ last_refreshed: meta?.["3. Last Refreshed"],
143
+ timezone: meta?.["6. Time Zone"],
144
+ bars,
145
+ };
146
+ }
147
+ export async function forexRate(args) {
148
+ const from_currency = String(args.from_currency ?? "").trim().toUpperCase();
149
+ const to_currency = String(args.to_currency ?? "").trim().toUpperCase();
150
+ if (!from_currency)
151
+ throw new Error("from_currency is required.");
152
+ if (!to_currency)
153
+ throw new Error("to_currency is required.");
154
+ const data = await avFetch({
155
+ function: "CURRENCY_EXCHANGE_RATE",
156
+ from_currency,
157
+ to_currency,
158
+ });
159
+ const rate = data["Realtime Currency Exchange Rate"];
160
+ if (!rate)
161
+ return { from_currency, to_currency, rate: null, note: "No data returned." };
162
+ return {
163
+ from_currency: rate["1. From_Currency Code"],
164
+ from_name: rate["2. From_Currency Name"],
165
+ to_currency: rate["3. To_Currency Code"],
166
+ to_name: rate["4. To_Currency Name"],
167
+ exchange_rate: rate["5. Exchange Rate"],
168
+ last_refreshed: rate["6. Last Refreshed"],
169
+ timezone: rate["7. Time Zone"],
170
+ bid_price: rate["8. Bid Price"],
171
+ ask_price: rate["9. Ask Price"],
172
+ };
173
+ }
174
+ export async function cryptoDaily(args) {
175
+ const symbol = String(args.symbol ?? "").trim().toUpperCase();
176
+ const market = String(args.market ?? "").trim().toUpperCase();
177
+ if (!symbol)
178
+ throw new Error("symbol is required.");
179
+ if (!market)
180
+ throw new Error("market is required (e.g. USD, EUR).");
181
+ const data = await avFetch({
182
+ function: "DIGITAL_CURRENCY_DAILY",
183
+ symbol,
184
+ market,
185
+ });
186
+ const meta = data["Meta Data"];
187
+ const series = data["Time Series (Digital Currency Daily)"];
188
+ if (!series)
189
+ return { symbol, market, daily: null, note: "No data returned." };
190
+ const days = Object.entries(series)
191
+ .slice(0, 30)
192
+ .map(([date, v]) => ({
193
+ date,
194
+ open: v[`1a. open (${market})`],
195
+ high: v[`2a. high (${market})`],
196
+ low: v[`3a. low (${market})`],
197
+ close: v[`4a. close (${market})`],
198
+ volume: v["5. volume"],
199
+ market_cap: v["6. market cap (USD)"],
200
+ }));
201
+ return {
202
+ symbol,
203
+ market,
204
+ last_refreshed: meta?.["6. Last Refreshed (UTC)"],
205
+ days,
206
+ };
207
+ }
208
+ //# sourceMappingURL=alphavantage-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alphavantage-tool.js","sourceRoot":"","sources":["../src/alphavantage-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function getAmberSites(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function getAmberCurrentPrice(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function getAmberForecast(args: Record<string, unknown>): Promise<unknown>;
4
+ //# sourceMappingURL=amber-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amber-tool.d.ts","sourceRoot":"","sources":["../src/amber-tool.ts"],"names":[],"mappings":"AAkCA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBnF;AAID,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B1F;AAID,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BtF"}
@@ -0,0 +1,114 @@
1
+ // Amber Electric AU integration.
2
+ // Real-time electricity spot prices and renewables percentage.
3
+ // Docs: https://app.amber.com.au/developers/
4
+ // Auth: Bearer token via AMBER_API_KEY env var.
5
+ // Base URL: https://api.amber.com.au/v1/
6
+ const AMBER_BASE = "https://api.amber.com.au/v1";
7
+ function getApiKey(args) {
8
+ const key = String(args.api_key ?? process.env.AMBER_API_KEY ?? "").trim();
9
+ if (!key)
10
+ throw new Error("api_key is required (or set AMBER_API_KEY env var).");
11
+ return key;
12
+ }
13
+ async function amberGet(apiKey, path, params) {
14
+ const qs = params ? "?" + new URLSearchParams(params).toString() : "";
15
+ const res = await fetch(`${AMBER_BASE}${path}${qs}`, {
16
+ headers: {
17
+ Authorization: `Bearer ${apiKey}`,
18
+ Accept: "application/json",
19
+ },
20
+ });
21
+ if (res.status === 401)
22
+ throw new Error("Invalid Amber API key.");
23
+ if (res.status === 404)
24
+ throw new Error("Resource not found.");
25
+ if (res.status === 429)
26
+ throw new Error("Amber API rate limit exceeded.");
27
+ if (!res.ok) {
28
+ const body = await res.text().catch(() => "");
29
+ throw new Error(`Amber API HTTP ${res.status}${body ? `: ${body.slice(0, 200)}` : ""}`);
30
+ }
31
+ return res.json();
32
+ }
33
+ // ─── get_amber_sites ──────────────────────────────────────────────────────────
34
+ export async function getAmberSites(args) {
35
+ try {
36
+ const apiKey = getApiKey(args);
37
+ const sites = await amberGet(apiKey, "/sites");
38
+ return {
39
+ count: sites.length,
40
+ sites: sites.map((s) => ({
41
+ id: s["id"],
42
+ nmi: s["nmi"],
43
+ status: s["status"],
44
+ network: s["network"],
45
+ loss_factor: s["lossFactor"],
46
+ channels: s["channels"],
47
+ })),
48
+ };
49
+ }
50
+ catch (err) {
51
+ return { error: err instanceof Error ? err.message : String(err) };
52
+ }
53
+ }
54
+ // ─── get_amber_current_price ─────────────────────────────────────────────────
55
+ export async function getAmberCurrentPrice(args) {
56
+ try {
57
+ const apiKey = getApiKey(args);
58
+ const siteId = String(args.site_id ?? "").trim();
59
+ if (!siteId)
60
+ return { error: "site_id is required. Call get_amber_sites to find yours." };
61
+ const prices = await amberGet(apiKey, `/sites/${siteId}/prices/current`);
62
+ return {
63
+ site_id: siteId,
64
+ prices: prices.map((p) => ({
65
+ type: p["channelType"],
66
+ start_time: p["startTime"],
67
+ end_time: p["endTime"],
68
+ duration_minutes: p["duration"],
69
+ spot_per_kwh: p["spotPerKwh"],
70
+ per_kwh: p["perKwh"],
71
+ renewables_pct: p["renewables"],
72
+ spike_status: p["spikeStatus"],
73
+ descriptor: p["descriptor"],
74
+ estimate: p["estimate"] ?? false,
75
+ })),
76
+ };
77
+ }
78
+ catch (err) {
79
+ return { error: err instanceof Error ? err.message : String(err) };
80
+ }
81
+ }
82
+ // ─── get_amber_forecast ───────────────────────────────────────────────────────
83
+ export async function getAmberForecast(args) {
84
+ try {
85
+ const apiKey = getApiKey(args);
86
+ const siteId = String(args.site_id ?? "").trim();
87
+ if (!siteId)
88
+ return { error: "site_id is required. Call get_amber_sites to find yours." };
89
+ const next = Math.min(48, Math.max(1, Number(args.next ?? 12)));
90
+ const prices = await amberGet(apiKey, `/sites/${siteId}/prices`, {
91
+ next: String(next),
92
+ resolution: "30",
93
+ });
94
+ return {
95
+ site_id: siteId,
96
+ intervals_requested: next,
97
+ forecast: prices.map((p) => ({
98
+ type: p["channelType"],
99
+ start_time: p["startTime"],
100
+ end_time: p["endTime"],
101
+ spot_per_kwh: p["spotPerKwh"],
102
+ per_kwh: p["perKwh"],
103
+ renewables_pct: p["renewables"],
104
+ spike_status: p["spikeStatus"],
105
+ descriptor: p["descriptor"],
106
+ estimate: p["estimate"] ?? false,
107
+ })),
108
+ };
109
+ }
110
+ catch (err) {
111
+ return { error: err instanceof Error ? err.message : String(err) };
112
+ }
113
+ }
114
+ //# sourceMappingURL=amber-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amber-tool.js","sourceRoot":"","sources":["../src/amber-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function trackAuspostParcel(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function getAuspostPostcode(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function getAuspostDeliveryTimes(args: Record<string, unknown>): Promise<unknown>;
4
+ //# sourceMappingURL=australiapost-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"australiapost-tool.d.ts","sourceRoot":"","sources":["../src/australiapost-tool.ts"],"names":[],"mappings":"AAkCA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BxF;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BxF;AAID,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkC7F"}