@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,155 @@
1
+ // Domain.com.au integration.
2
+ // Australian property listings, property details, and suburb statistics.
3
+ // Docs: https://developer.domain.com.au/docs/
4
+ // Auth: DOMAIN_API_KEY env var (X-Api-Key header).
5
+ // Base URL: https://api.domain.com.au/v1/
6
+ const DOMAIN_BASE = "https://api.domain.com.au/v1";
7
+ function getApiKey(args) {
8
+ const key = String(args.api_key ?? process.env.DOMAIN_API_KEY ?? "").trim();
9
+ if (!key)
10
+ throw new Error("api_key is required (or set DOMAIN_API_KEY env var).");
11
+ return key;
12
+ }
13
+ async function domainFetch(apiKey, path, method = "GET", body) {
14
+ const res = await fetch(`${DOMAIN_BASE}${path}`, {
15
+ method,
16
+ headers: {
17
+ "X-Api-Key": apiKey,
18
+ "Content-Type": "application/json",
19
+ Accept: "application/json",
20
+ },
21
+ ...(body ? { body: JSON.stringify(body) } : {}),
22
+ });
23
+ if (res.status === 401 || res.status === 403)
24
+ throw new Error("Invalid Domain API key.");
25
+ if (res.status === 404)
26
+ throw new Error("Resource not found.");
27
+ if (res.status === 429)
28
+ throw new Error("Domain API rate limit exceeded.");
29
+ if (!res.ok) {
30
+ const text = await res.text().catch(() => "");
31
+ throw new Error(`Domain API HTTP ${res.status}${text ? `: ${text.slice(0, 200)}` : ""}`);
32
+ }
33
+ return res.json();
34
+ }
35
+ // ─── search_domain_listings ───────────────────────────────────────────────────
36
+ export async function searchDomainListings(args) {
37
+ try {
38
+ const apiKey = getApiKey(args);
39
+ const listingType = String(args.listing_type ?? "residential").toLowerCase();
40
+ const endpoint = listingType === "commercial"
41
+ ? "/listings/commercial/_search"
42
+ : "/listings/residential/_search";
43
+ const body = {};
44
+ if (args.suburb || args.postcode || args.state) {
45
+ const loc = {};
46
+ if (args.suburb)
47
+ loc["suburb"] = String(args.suburb);
48
+ if (args.postcode)
49
+ loc["postcode"] = String(args.postcode);
50
+ if (args.state)
51
+ loc["state"] = String(args.state);
52
+ body["locations"] = [loc];
53
+ }
54
+ if (args.property_types)
55
+ body["propertyTypes"] = args.property_types;
56
+ if (args.listing_types)
57
+ body["listingType"] = args.listing_types;
58
+ if (args.min_price)
59
+ body["minPrice"] = Number(args.min_price);
60
+ if (args.max_price)
61
+ body["maxPrice"] = Number(args.max_price);
62
+ if (args.min_bedrooms)
63
+ body["minBedrooms"] = Number(args.min_bedrooms);
64
+ if (args.max_bedrooms)
65
+ body["maxBedrooms"] = Number(args.max_bedrooms);
66
+ body["pageSize"] = Math.min(50, Number(args.page_size ?? 10));
67
+ if (args.page_number)
68
+ body["pageNumber"] = Number(args.page_number);
69
+ const data = await domainFetch(apiKey, endpoint, "POST", body);
70
+ return {
71
+ listing_type: listingType,
72
+ count: data.length,
73
+ results: data.map((item) => {
74
+ const listing = item["listing"] ?? item;
75
+ return {
76
+ id: listing["id"],
77
+ status: listing["status"],
78
+ type: listing["type"],
79
+ address: listing["addressParts"] ?? listing["address"],
80
+ price: listing["price"] ?? listing["priceDetails"],
81
+ bedrooms: listing["bedrooms"],
82
+ bathrooms: listing["bathrooms"],
83
+ carspaces: listing["carspaces"],
84
+ property_types: listing["propertyTypes"],
85
+ headline: listing["headline"],
86
+ url: listing["url"],
87
+ agency: listing["advertiser"]?.["name"],
88
+ };
89
+ }),
90
+ };
91
+ }
92
+ catch (err) {
93
+ return { error: err instanceof Error ? err.message : String(err) };
94
+ }
95
+ }
96
+ // ─── get_domain_property ─────────────────────────────────────────────────────
97
+ export async function getDomainProperty(args) {
98
+ try {
99
+ const apiKey = getApiKey(args);
100
+ const propertyId = String(args.property_id ?? "").trim();
101
+ if (!propertyId)
102
+ return { error: "property_id is required." };
103
+ const data = await domainFetch(apiKey, `/listings/${propertyId}`);
104
+ return {
105
+ id: data["id"],
106
+ status: data["status"],
107
+ type: data["type"],
108
+ address: data["addressParts"] ?? data["address"],
109
+ price: data["price"] ?? data["priceDetails"],
110
+ bedrooms: data["bedrooms"],
111
+ bathrooms: data["bathrooms"],
112
+ carspaces: data["carspaces"],
113
+ land_area_sqm: data["landAreaSqm"],
114
+ building_area_sqm: data["buildingAreaSqm"],
115
+ property_types: data["propertyTypes"],
116
+ headline: data["headline"],
117
+ description: data["description"],
118
+ url: data["url"],
119
+ listed_date: data["dateListed"],
120
+ agency: data["advertiser"],
121
+ features: data["features"],
122
+ inspection_times: data["inspectionSchedule"],
123
+ };
124
+ }
125
+ catch (err) {
126
+ return { error: err instanceof Error ? err.message : String(err) };
127
+ }
128
+ }
129
+ // ─── get_domain_suburb_stats ──────────────────────────────────────────────────
130
+ export async function getDomainSuburbStats(args) {
131
+ try {
132
+ const apiKey = getApiKey(args);
133
+ const suburb = String(args.suburb ?? "").trim();
134
+ const state = String(args.state ?? "").trim();
135
+ if (!suburb)
136
+ return { error: "suburb is required." };
137
+ if (!state)
138
+ return { error: "state is required (e.g. NSW, VIC, QLD)." };
139
+ const propertyCategory = String(args.property_category ?? "house").toLowerCase();
140
+ const bedrooms = args.bedrooms ? Number(args.bedrooms) : undefined;
141
+ const path = `/suburbPerformanceStatistics/${state}/${encodeURIComponent(suburb)}/${propertyCategory}${bedrooms !== undefined ? `/${bedrooms}` : ""}`;
142
+ const data = await domainFetch(apiKey, path);
143
+ return {
144
+ suburb,
145
+ state,
146
+ property_category: propertyCategory,
147
+ bedrooms: bedrooms ?? "all",
148
+ statistics: data,
149
+ };
150
+ }
151
+ catch (err) {
152
+ return { error: err instanceof Error ? err.message : String(err) };
153
+ }
154
+ }
155
+ //# sourceMappingURL=domain-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-tool.js","sourceRoot":"","sources":["../src/domain-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function getRecentObservations(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function getNotableObservations(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function getSpeciesInfo(args: Record<string, unknown>): Promise<unknown>;
4
+ export declare function ebirdAction(action: string, args: Record<string, unknown>): Promise<unknown>;
5
+ //# sourceMappingURL=ebird-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ebird-tool.d.ts","sourceRoot":"","sources":["../src/ebird-tool.ts"],"names":[],"mappings":"AAuCA,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAiDlB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CA8ClB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CA6ClB;AAID,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAYlB"}
@@ -0,0 +1,128 @@
1
+ // ─── eBird Bird Sightings ─────────────────────────────────────────────────────
2
+ // Cornell Lab of Ornithology eBird API v2.
3
+ // Auth: EBIRD_API_KEY env or api_key arg (X-eBirdApiToken header).
4
+ // Docs: https://documenter.getpostman.com/view/664302/S1ENwy59
5
+ const EBIRD_BASE = "https://api.ebird.org/v2";
6
+ // ─── API helper ──────────────────────────────────────────────────────────────
7
+ function getKey(args) {
8
+ const key = String(args.api_key ?? process.env.EBIRD_API_KEY ?? "").trim();
9
+ if (!key)
10
+ throw new Error("api_key is required (or set EBIRD_API_KEY env).");
11
+ return key;
12
+ }
13
+ async function ebirdFetch(path, params, apiKey) {
14
+ const url = new URL(`${EBIRD_BASE}${path}`);
15
+ for (const [k, v] of Object.entries(params)) {
16
+ if (v !== undefined && v !== "")
17
+ url.searchParams.set(k, v);
18
+ }
19
+ const res = await fetch(url.toString(), {
20
+ headers: {
21
+ "X-eBirdApiToken": apiKey,
22
+ "Accept": "application/json",
23
+ },
24
+ });
25
+ if (!res.ok) {
26
+ const text = await res.text().catch(() => "");
27
+ throw new Error(`eBird API HTTP ${res.status}: ${text.slice(0, 200)}`);
28
+ }
29
+ return res.json();
30
+ }
31
+ // ─── Operations ──────────────────────────────────────────────────────────────
32
+ export async function getRecentObservations(args) {
33
+ const apiKey = getKey(args);
34
+ const regionCode = String(args.region_code ?? "").trim().toUpperCase();
35
+ if (!regionCode)
36
+ throw new Error("region_code is required (e.g. 'US-NY', 'GB', 'AU-NSW').");
37
+ const back = String(Math.min(30, Math.max(1, Number(args.back ?? 7))));
38
+ const maxResults = String(Math.min(10000, Math.max(1, Number(args.max_results ?? 100))));
39
+ const params = { back, maxResults };
40
+ if (args.species_code)
41
+ params.speciesCode = String(args.species_code);
42
+ const data = await ebirdFetch(`/data/obs/${regionCode}/recent`, params, apiKey);
43
+ return {
44
+ region_code: regionCode,
45
+ back_days: Number(back),
46
+ count: data.length,
47
+ observations: data.map((o) => ({
48
+ species_code: o.speciesCode,
49
+ common_name: o.comName,
50
+ sci_name: o.sciName,
51
+ location: o.locName,
52
+ location_id: o.locId,
53
+ date: o.obsDt,
54
+ count: o.howMany ?? null,
55
+ lat: o.lat,
56
+ lon: o.lng,
57
+ valid: o.obsValid,
58
+ reviewed: o.obsReviewed,
59
+ })),
60
+ };
61
+ }
62
+ export async function getNotableObservations(args) {
63
+ const apiKey = getKey(args);
64
+ const regionCode = String(args.region_code ?? "").trim().toUpperCase();
65
+ if (!regionCode)
66
+ throw new Error("region_code is required (e.g. 'US-NY', 'GB').");
67
+ const back = String(Math.min(30, Math.max(1, Number(args.back ?? 7))));
68
+ const maxResults = String(Math.min(10000, Math.max(1, Number(args.max_results ?? 50))));
69
+ const detail = args.detail === "full" ? "full" : "simple";
70
+ const data = await ebirdFetch(`/data/obs/${regionCode}/recent/notable`, { back, maxResults, detail }, apiKey);
71
+ return {
72
+ region_code: regionCode,
73
+ back_days: Number(back),
74
+ count: data.length,
75
+ notable_birds: data.map((o) => ({
76
+ species_code: o.speciesCode,
77
+ common_name: o.comName,
78
+ sci_name: o.sciName,
79
+ location: o.locName,
80
+ location_id: o.locId,
81
+ date: o.obsDt,
82
+ count: o.howMany ?? null,
83
+ lat: o.lat,
84
+ lon: o.lng,
85
+ reviewed: o.obsReviewed,
86
+ })),
87
+ };
88
+ }
89
+ export async function getSpeciesInfo(args) {
90
+ const apiKey = getKey(args);
91
+ const speciesCode = String(args.species_code ?? "").trim().toLowerCase();
92
+ const locale = String(args.locale ?? "en").trim();
93
+ const params = { locale };
94
+ if (speciesCode)
95
+ params.species = speciesCode;
96
+ const data = await ebirdFetch("/ref/taxonomy/ebird", params, apiKey);
97
+ if (data.length === 0) {
98
+ return { error: `No taxonomy found for species_code: "${speciesCode}".` };
99
+ }
100
+ return {
101
+ count: data.length,
102
+ species: data.slice(0, 50).map((t) => ({
103
+ species_code: t.speciesCode,
104
+ common_name: t.comName,
105
+ sci_name: t.sciName,
106
+ category: t.category,
107
+ taxon_order: t.taxonOrder,
108
+ order: t.order ?? null,
109
+ family_sci_name: t.familySciName ?? null,
110
+ family_com_name: t.familyComName ?? null,
111
+ family_code: t.familyCode ?? null,
112
+ })),
113
+ };
114
+ }
115
+ // ─── Public dispatcher ────────────────────────────────────────────────────────
116
+ export async function ebirdAction(action, args) {
117
+ switch (action) {
118
+ case "get_recent_observations": return getRecentObservations(args);
119
+ case "get_notable_observations": return getNotableObservations(args);
120
+ case "get_species_info": return getSpeciesInfo(args);
121
+ default:
122
+ return {
123
+ error: `Unknown eBird action: "${action}". ` +
124
+ "Valid: get_recent_observations, get_notable_observations, get_species_info.",
125
+ };
126
+ }
127
+ }
128
+ //# sourceMappingURL=ebird-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ebird-tool.js","sourceRoot":"","sources":["../src/ebird-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function sendEmail(args: Record<string, unknown>): Promise<unknown>;
2
+ export declare function readInbox(args: Record<string, unknown>): Promise<unknown>;
3
+ export declare function searchEmail(args: Record<string, unknown>): Promise<unknown>;
4
+ export declare function getEmail(args: Record<string, unknown>): Promise<unknown>;
5
+ export declare function markRead(args: Record<string, unknown>): Promise<unknown>;
6
+ export declare function deleteEmail(args: Record<string, unknown>): Promise<unknown>;
7
+ export declare function emailAction(action: string, args: Record<string, unknown>): Promise<unknown>;
8
+ //# sourceMappingURL=email-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-tool.d.ts","sourceRoot":"","sources":["../src/email-tool.ts"],"names":[],"mappings":"AA+LA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA8C/E;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkC/E;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA8CjF;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAyB9E;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAgB9E;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAiDjF;AAID,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAelB"}