@codeqr/ts-mcp 0.2.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 (432) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +267 -0
  3. package/code-tool-paths.cjs +6 -0
  4. package/code-tool-paths.cjs.map +1 -0
  5. package/code-tool-paths.d.cts +2 -0
  6. package/code-tool-paths.d.cts.map +1 -0
  7. package/code-tool-types.d.mts +14 -0
  8. package/code-tool-types.d.mts.map +1 -0
  9. package/code-tool-types.d.ts +14 -0
  10. package/code-tool-types.d.ts.map +1 -0
  11. package/code-tool-types.js +4 -0
  12. package/code-tool-types.js.map +1 -0
  13. package/code-tool-types.mjs +3 -0
  14. package/code-tool-types.mjs.map +1 -0
  15. package/code-tool-worker.d.mts +5 -0
  16. package/code-tool-worker.d.mts.map +1 -0
  17. package/code-tool-worker.d.ts +5 -0
  18. package/code-tool-worker.d.ts.map +1 -0
  19. package/code-tool-worker.js +45 -0
  20. package/code-tool-worker.js.map +1 -0
  21. package/code-tool-worker.mjs +40 -0
  22. package/code-tool-worker.mjs.map +1 -0
  23. package/code-tool.d.mts +12 -0
  24. package/code-tool.d.mts.map +1 -0
  25. package/code-tool.d.ts +12 -0
  26. package/code-tool.d.ts.map +1 -0
  27. package/code-tool.js +157 -0
  28. package/code-tool.js.map +1 -0
  29. package/code-tool.mjs +121 -0
  30. package/code-tool.mjs.map +1 -0
  31. package/compat.d.mts +58 -0
  32. package/compat.d.mts.map +1 -0
  33. package/compat.d.ts +58 -0
  34. package/compat.d.ts.map +1 -0
  35. package/compat.js +387 -0
  36. package/compat.js.map +1 -0
  37. package/compat.mjs +378 -0
  38. package/compat.mjs.map +1 -0
  39. package/dynamic-tools.d.mts +12 -0
  40. package/dynamic-tools.d.mts.map +1 -0
  41. package/dynamic-tools.d.ts +12 -0
  42. package/dynamic-tools.d.ts.map +1 -0
  43. package/dynamic-tools.js +135 -0
  44. package/dynamic-tools.js.map +1 -0
  45. package/dynamic-tools.mjs +132 -0
  46. package/dynamic-tools.mjs.map +1 -0
  47. package/filtering.d.mts +2 -0
  48. package/filtering.d.mts.map +1 -0
  49. package/filtering.d.ts +2 -0
  50. package/filtering.d.ts.map +1 -0
  51. package/filtering.js +20 -0
  52. package/filtering.js.map +1 -0
  53. package/filtering.mjs +13 -0
  54. package/filtering.mjs.map +1 -0
  55. package/headers.d.mts +4 -0
  56. package/headers.d.mts.map +1 -0
  57. package/headers.d.ts +4 -0
  58. package/headers.d.ts.map +1 -0
  59. package/headers.js +22 -0
  60. package/headers.js.map +1 -0
  61. package/headers.mjs +18 -0
  62. package/headers.mjs.map +1 -0
  63. package/http.d.mts +9 -0
  64. package/http.d.mts.map +1 -0
  65. package/http.d.ts +9 -0
  66. package/http.d.ts.map +1 -0
  67. package/http.js +108 -0
  68. package/http.js.map +1 -0
  69. package/http.mjs +100 -0
  70. package/http.mjs.map +1 -0
  71. package/index.d.mts +3 -0
  72. package/index.d.mts.map +1 -0
  73. package/index.d.ts +3 -0
  74. package/index.d.ts.map +1 -0
  75. package/index.js +91 -0
  76. package/index.js.map +1 -0
  77. package/index.mjs +89 -0
  78. package/index.mjs.map +1 -0
  79. package/options.d.mts +19 -0
  80. package/options.d.mts.map +1 -0
  81. package/options.d.ts +19 -0
  82. package/options.d.ts.map +1 -0
  83. package/options.js +417 -0
  84. package/options.js.map +1 -0
  85. package/options.mjs +410 -0
  86. package/options.mjs.map +1 -0
  87. package/package.json +206 -0
  88. package/server.d.mts +35 -0
  89. package/server.d.mts.map +1 -0
  90. package/server.d.ts +35 -0
  91. package/server.d.ts.map +1 -0
  92. package/server.js +170 -0
  93. package/server.js.map +1 -0
  94. package/server.mjs +156 -0
  95. package/server.mjs.map +1 -0
  96. package/src/code-tool-paths.cts +3 -0
  97. package/src/code-tool-types.ts +14 -0
  98. package/src/code-tool-worker.ts +46 -0
  99. package/src/code-tool.ts +146 -0
  100. package/src/compat.ts +483 -0
  101. package/src/dynamic-tools.ts +153 -0
  102. package/src/filtering.ts +14 -0
  103. package/src/headers.ts +23 -0
  104. package/src/http.ts +127 -0
  105. package/src/index.ts +108 -0
  106. package/src/options.ts +456 -0
  107. package/src/server.ts +204 -0
  108. package/src/stdio.ts +13 -0
  109. package/src/tools/analytics/retrieve-analytics.ts +434 -0
  110. package/src/tools/domains/create-domains.ts +59 -0
  111. package/src/tools/domains/delete-domains.ts +48 -0
  112. package/src/tools/domains/list-domains.ts +61 -0
  113. package/src/tools/domains/update-domains.ts +63 -0
  114. package/src/tools/events/list-events.ts +414 -0
  115. package/src/tools/index.ts +133 -0
  116. package/src/tools/links/bulk/create-links-bulk.ts +955 -0
  117. package/src/tools/links/bulk/delete-links-bulk.ts +52 -0
  118. package/src/tools/links/count-links.ts +946 -0
  119. package/src/tools/links/create-links.ts +946 -0
  120. package/src/tools/links/delete-links.ts +49 -0
  121. package/src/tools/links/list-links.ts +969 -0
  122. package/src/tools/links/retrieve-info-links.ts +68 -0
  123. package/src/tools/links/update-links.ts +953 -0
  124. package/src/tools/links/upsert-links.ts +947 -0
  125. package/src/tools/projects/list-projects.ts +44 -0
  126. package/src/tools/projects/retrieve-projects.ts +49 -0
  127. package/src/tools/qrcodes/bulk/create-qrcodes-bulk.ts +1066 -0
  128. package/src/tools/qrcodes/bulk/delete-qrcodes-bulk.ts +52 -0
  129. package/src/tools/qrcodes/count-qrcodes.ts +209 -0
  130. package/src/tools/qrcodes/create-qrcodes.ts +1056 -0
  131. package/src/tools/qrcodes/delete-qrcodes.ts +49 -0
  132. package/src/tools/qrcodes/list-qrcodes.ts +210 -0
  133. package/src/tools/qrcodes/retrieve-qrcodes.ts +60 -0
  134. package/src/tools/qrcodes/update-qrcodes.ts +1063 -0
  135. package/src/tools/qrcodes/upsert-qrcodes.ts +1057 -0
  136. package/src/tools/tags/create-tags.ts +52 -0
  137. package/src/tools/tags/delete-tags.ts +48 -0
  138. package/src/tools/tags/list-tags.ts +80 -0
  139. package/src/tools/tags/update-tags.ts +56 -0
  140. package/src/tools/track/track-lead-track.ts +72 -0
  141. package/src/tools/track/track-sale-track.ts +74 -0
  142. package/src/tools/types.ts +103 -0
  143. package/src/tools.ts +1 -0
  144. package/src/tsconfig.json +11 -0
  145. package/stdio.d.mts +3 -0
  146. package/stdio.d.mts.map +1 -0
  147. package/stdio.d.ts +3 -0
  148. package/stdio.d.ts.map +1 -0
  149. package/stdio.js +14 -0
  150. package/stdio.js.map +1 -0
  151. package/stdio.mjs +10 -0
  152. package/stdio.mjs.map +1 -0
  153. package/tools/analytics/retrieve-analytics.d.mts +45 -0
  154. package/tools/analytics/retrieve-analytics.d.mts.map +1 -0
  155. package/tools/analytics/retrieve-analytics.d.ts +45 -0
  156. package/tools/analytics/retrieve-analytics.d.ts.map +1 -0
  157. package/tools/analytics/retrieve-analytics.js +426 -0
  158. package/tools/analytics/retrieve-analytics.js.map +1 -0
  159. package/tools/analytics/retrieve-analytics.mjs +422 -0
  160. package/tools/analytics/retrieve-analytics.mjs.map +1 -0
  161. package/tools/domains/create-domains.d.mts +45 -0
  162. package/tools/domains/create-domains.d.mts.map +1 -0
  163. package/tools/domains/create-domains.d.ts +45 -0
  164. package/tools/domains/create-domains.d.ts.map +1 -0
  165. package/tools/domains/create-domains.js +53 -0
  166. package/tools/domains/create-domains.js.map +1 -0
  167. package/tools/domains/create-domains.mjs +49 -0
  168. package/tools/domains/create-domains.mjs.map +1 -0
  169. package/tools/domains/delete-domains.d.mts +45 -0
  170. package/tools/domains/delete-domains.d.mts.map +1 -0
  171. package/tools/domains/delete-domains.d.ts +45 -0
  172. package/tools/domains/delete-domains.d.ts.map +1 -0
  173. package/tools/domains/delete-domains.js +43 -0
  174. package/tools/domains/delete-domains.js.map +1 -0
  175. package/tools/domains/delete-domains.mjs +39 -0
  176. package/tools/domains/delete-domains.mjs.map +1 -0
  177. package/tools/domains/list-domains.d.mts +45 -0
  178. package/tools/domains/list-domains.d.mts.map +1 -0
  179. package/tools/domains/list-domains.d.ts +45 -0
  180. package/tools/domains/list-domains.d.ts.map +1 -0
  181. package/tools/domains/list-domains.js +55 -0
  182. package/tools/domains/list-domains.js.map +1 -0
  183. package/tools/domains/list-domains.mjs +51 -0
  184. package/tools/domains/list-domains.mjs.map +1 -0
  185. package/tools/domains/update-domains.d.mts +45 -0
  186. package/tools/domains/update-domains.d.mts.map +1 -0
  187. package/tools/domains/update-domains.d.ts +45 -0
  188. package/tools/domains/update-domains.d.ts.map +1 -0
  189. package/tools/domains/update-domains.js +57 -0
  190. package/tools/domains/update-domains.js.map +1 -0
  191. package/tools/domains/update-domains.mjs +53 -0
  192. package/tools/domains/update-domains.mjs.map +1 -0
  193. package/tools/events/list-events.d.mts +45 -0
  194. package/tools/events/list-events.d.mts.map +1 -0
  195. package/tools/events/list-events.d.ts +45 -0
  196. package/tools/events/list-events.d.ts.map +1 -0
  197. package/tools/events/list-events.js +406 -0
  198. package/tools/events/list-events.js.map +1 -0
  199. package/tools/events/list-events.mjs +402 -0
  200. package/tools/events/list-events.mjs.map +1 -0
  201. package/tools/index.d.mts +10 -0
  202. package/tools/index.d.mts.map +1 -0
  203. package/tools/index.d.ts +10 -0
  204. package/tools/index.d.ts.map +1 -0
  205. package/tools/index.js +117 -0
  206. package/tools/index.js.map +1 -0
  207. package/tools/index.mjs +110 -0
  208. package/tools/index.mjs.map +1 -0
  209. package/tools/links/bulk/create-links-bulk.d.mts +45 -0
  210. package/tools/links/bulk/create-links-bulk.d.mts.map +1 -0
  211. package/tools/links/bulk/create-links-bulk.d.ts +45 -0
  212. package/tools/links/bulk/create-links-bulk.d.ts.map +1 -0
  213. package/tools/links/bulk/create-links-bulk.js +940 -0
  214. package/tools/links/bulk/create-links-bulk.js.map +1 -0
  215. package/tools/links/bulk/create-links-bulk.mjs +936 -0
  216. package/tools/links/bulk/create-links-bulk.mjs.map +1 -0
  217. package/tools/links/bulk/delete-links-bulk.d.mts +45 -0
  218. package/tools/links/bulk/delete-links-bulk.d.mts.map +1 -0
  219. package/tools/links/bulk/delete-links-bulk.d.ts +45 -0
  220. package/tools/links/bulk/delete-links-bulk.d.ts.map +1 -0
  221. package/tools/links/bulk/delete-links-bulk.js +46 -0
  222. package/tools/links/bulk/delete-links-bulk.js.map +1 -0
  223. package/tools/links/bulk/delete-links-bulk.mjs +42 -0
  224. package/tools/links/bulk/delete-links-bulk.mjs.map +1 -0
  225. package/tools/links/count-links.d.mts +45 -0
  226. package/tools/links/count-links.d.mts.map +1 -0
  227. package/tools/links/count-links.d.ts +45 -0
  228. package/tools/links/count-links.d.ts.map +1 -0
  229. package/tools/links/count-links.js +935 -0
  230. package/tools/links/count-links.js.map +1 -0
  231. package/tools/links/count-links.mjs +931 -0
  232. package/tools/links/count-links.mjs.map +1 -0
  233. package/tools/links/create-links.d.mts +45 -0
  234. package/tools/links/create-links.d.mts.map +1 -0
  235. package/tools/links/create-links.d.ts +45 -0
  236. package/tools/links/create-links.d.ts.map +1 -0
  237. package/tools/links/create-links.js +931 -0
  238. package/tools/links/create-links.js.map +1 -0
  239. package/tools/links/create-links.mjs +927 -0
  240. package/tools/links/create-links.mjs.map +1 -0
  241. package/tools/links/delete-links.d.mts +45 -0
  242. package/tools/links/delete-links.d.mts.map +1 -0
  243. package/tools/links/delete-links.d.ts +45 -0
  244. package/tools/links/delete-links.d.ts.map +1 -0
  245. package/tools/links/delete-links.js +43 -0
  246. package/tools/links/delete-links.js.map +1 -0
  247. package/tools/links/delete-links.mjs +39 -0
  248. package/tools/links/delete-links.mjs.map +1 -0
  249. package/tools/links/list-links.d.mts +45 -0
  250. package/tools/links/list-links.d.mts.map +1 -0
  251. package/tools/links/list-links.d.ts +45 -0
  252. package/tools/links/list-links.d.ts.map +1 -0
  253. package/tools/links/list-links.js +957 -0
  254. package/tools/links/list-links.js.map +1 -0
  255. package/tools/links/list-links.mjs +953 -0
  256. package/tools/links/list-links.mjs.map +1 -0
  257. package/tools/links/retrieve-info-links.d.mts +45 -0
  258. package/tools/links/retrieve-info-links.d.mts.map +1 -0
  259. package/tools/links/retrieve-info-links.d.ts +45 -0
  260. package/tools/links/retrieve-info-links.d.ts.map +1 -0
  261. package/tools/links/retrieve-info-links.js +59 -0
  262. package/tools/links/retrieve-info-links.js.map +1 -0
  263. package/tools/links/retrieve-info-links.mjs +55 -0
  264. package/tools/links/retrieve-info-links.mjs.map +1 -0
  265. package/tools/links/update-links.d.mts +45 -0
  266. package/tools/links/update-links.d.mts.map +1 -0
  267. package/tools/links/update-links.d.ts +45 -0
  268. package/tools/links/update-links.d.ts.map +1 -0
  269. package/tools/links/update-links.js +937 -0
  270. package/tools/links/update-links.js.map +1 -0
  271. package/tools/links/update-links.mjs +933 -0
  272. package/tools/links/update-links.mjs.map +1 -0
  273. package/tools/links/upsert-links.d.mts +45 -0
  274. package/tools/links/upsert-links.d.mts.map +1 -0
  275. package/tools/links/upsert-links.d.ts +45 -0
  276. package/tools/links/upsert-links.d.ts.map +1 -0
  277. package/tools/links/upsert-links.js +931 -0
  278. package/tools/links/upsert-links.js.map +1 -0
  279. package/tools/links/upsert-links.mjs +927 -0
  280. package/tools/links/upsert-links.mjs.map +1 -0
  281. package/tools/projects/list-projects.d.mts +45 -0
  282. package/tools/projects/list-projects.d.mts.map +1 -0
  283. package/tools/projects/list-projects.d.ts +45 -0
  284. package/tools/projects/list-projects.d.ts.map +1 -0
  285. package/tools/projects/list-projects.js +39 -0
  286. package/tools/projects/list-projects.js.map +1 -0
  287. package/tools/projects/list-projects.mjs +35 -0
  288. package/tools/projects/list-projects.mjs.map +1 -0
  289. package/tools/projects/retrieve-projects.d.mts +45 -0
  290. package/tools/projects/retrieve-projects.d.mts.map +1 -0
  291. package/tools/projects/retrieve-projects.d.ts +45 -0
  292. package/tools/projects/retrieve-projects.d.ts.map +1 -0
  293. package/tools/projects/retrieve-projects.js +43 -0
  294. package/tools/projects/retrieve-projects.js.map +1 -0
  295. package/tools/projects/retrieve-projects.mjs +39 -0
  296. package/tools/projects/retrieve-projects.mjs.map +1 -0
  297. package/tools/qrcodes/bulk/create-qrcodes-bulk.d.mts +45 -0
  298. package/tools/qrcodes/bulk/create-qrcodes-bulk.d.mts.map +1 -0
  299. package/tools/qrcodes/bulk/create-qrcodes-bulk.d.ts +45 -0
  300. package/tools/qrcodes/bulk/create-qrcodes-bulk.d.ts.map +1 -0
  301. package/tools/qrcodes/bulk/create-qrcodes-bulk.js +1052 -0
  302. package/tools/qrcodes/bulk/create-qrcodes-bulk.js.map +1 -0
  303. package/tools/qrcodes/bulk/create-qrcodes-bulk.mjs +1048 -0
  304. package/tools/qrcodes/bulk/create-qrcodes-bulk.mjs.map +1 -0
  305. package/tools/qrcodes/bulk/delete-qrcodes-bulk.d.mts +45 -0
  306. package/tools/qrcodes/bulk/delete-qrcodes-bulk.d.mts.map +1 -0
  307. package/tools/qrcodes/bulk/delete-qrcodes-bulk.d.ts +45 -0
  308. package/tools/qrcodes/bulk/delete-qrcodes-bulk.d.ts.map +1 -0
  309. package/tools/qrcodes/bulk/delete-qrcodes-bulk.js +46 -0
  310. package/tools/qrcodes/bulk/delete-qrcodes-bulk.js.map +1 -0
  311. package/tools/qrcodes/bulk/delete-qrcodes-bulk.mjs +42 -0
  312. package/tools/qrcodes/bulk/delete-qrcodes-bulk.mjs.map +1 -0
  313. package/tools/qrcodes/count-qrcodes.d.mts +45 -0
  314. package/tools/qrcodes/count-qrcodes.d.mts.map +1 -0
  315. package/tools/qrcodes/count-qrcodes.d.ts +45 -0
  316. package/tools/qrcodes/count-qrcodes.d.ts.map +1 -0
  317. package/tools/qrcodes/count-qrcodes.js +199 -0
  318. package/tools/qrcodes/count-qrcodes.js.map +1 -0
  319. package/tools/qrcodes/count-qrcodes.mjs +195 -0
  320. package/tools/qrcodes/count-qrcodes.mjs.map +1 -0
  321. package/tools/qrcodes/create-qrcodes.d.mts +45 -0
  322. package/tools/qrcodes/create-qrcodes.d.mts.map +1 -0
  323. package/tools/qrcodes/create-qrcodes.d.ts +45 -0
  324. package/tools/qrcodes/create-qrcodes.d.ts.map +1 -0
  325. package/tools/qrcodes/create-qrcodes.js +1043 -0
  326. package/tools/qrcodes/create-qrcodes.js.map +1 -0
  327. package/tools/qrcodes/create-qrcodes.mjs +1039 -0
  328. package/tools/qrcodes/create-qrcodes.mjs.map +1 -0
  329. package/tools/qrcodes/delete-qrcodes.d.mts +45 -0
  330. package/tools/qrcodes/delete-qrcodes.d.mts.map +1 -0
  331. package/tools/qrcodes/delete-qrcodes.d.ts +45 -0
  332. package/tools/qrcodes/delete-qrcodes.d.ts.map +1 -0
  333. package/tools/qrcodes/delete-qrcodes.js +43 -0
  334. package/tools/qrcodes/delete-qrcodes.js.map +1 -0
  335. package/tools/qrcodes/delete-qrcodes.mjs +39 -0
  336. package/tools/qrcodes/delete-qrcodes.mjs.map +1 -0
  337. package/tools/qrcodes/list-qrcodes.d.mts +45 -0
  338. package/tools/qrcodes/list-qrcodes.d.mts.map +1 -0
  339. package/tools/qrcodes/list-qrcodes.d.ts +45 -0
  340. package/tools/qrcodes/list-qrcodes.d.ts.map +1 -0
  341. package/tools/qrcodes/list-qrcodes.js +201 -0
  342. package/tools/qrcodes/list-qrcodes.js.map +1 -0
  343. package/tools/qrcodes/list-qrcodes.mjs +197 -0
  344. package/tools/qrcodes/list-qrcodes.mjs.map +1 -0
  345. package/tools/qrcodes/retrieve-qrcodes.d.mts +45 -0
  346. package/tools/qrcodes/retrieve-qrcodes.d.mts.map +1 -0
  347. package/tools/qrcodes/retrieve-qrcodes.d.ts +45 -0
  348. package/tools/qrcodes/retrieve-qrcodes.d.ts.map +1 -0
  349. package/tools/qrcodes/retrieve-qrcodes.js +53 -0
  350. package/tools/qrcodes/retrieve-qrcodes.js.map +1 -0
  351. package/tools/qrcodes/retrieve-qrcodes.mjs +49 -0
  352. package/tools/qrcodes/retrieve-qrcodes.mjs.map +1 -0
  353. package/tools/qrcodes/update-qrcodes.d.mts +45 -0
  354. package/tools/qrcodes/update-qrcodes.d.mts.map +1 -0
  355. package/tools/qrcodes/update-qrcodes.d.ts +45 -0
  356. package/tools/qrcodes/update-qrcodes.d.ts.map +1 -0
  357. package/tools/qrcodes/update-qrcodes.js +1049 -0
  358. package/tools/qrcodes/update-qrcodes.js.map +1 -0
  359. package/tools/qrcodes/update-qrcodes.mjs +1045 -0
  360. package/tools/qrcodes/update-qrcodes.mjs.map +1 -0
  361. package/tools/qrcodes/upsert-qrcodes.d.mts +45 -0
  362. package/tools/qrcodes/upsert-qrcodes.d.mts.map +1 -0
  363. package/tools/qrcodes/upsert-qrcodes.d.ts +45 -0
  364. package/tools/qrcodes/upsert-qrcodes.d.ts.map +1 -0
  365. package/tools/qrcodes/upsert-qrcodes.js +1043 -0
  366. package/tools/qrcodes/upsert-qrcodes.js.map +1 -0
  367. package/tools/qrcodes/upsert-qrcodes.mjs +1039 -0
  368. package/tools/qrcodes/upsert-qrcodes.mjs.map +1 -0
  369. package/tools/tags/create-tags.d.mts +45 -0
  370. package/tools/tags/create-tags.d.mts.map +1 -0
  371. package/tools/tags/create-tags.d.ts +45 -0
  372. package/tools/tags/create-tags.d.ts.map +1 -0
  373. package/tools/tags/create-tags.js +46 -0
  374. package/tools/tags/create-tags.js.map +1 -0
  375. package/tools/tags/create-tags.mjs +42 -0
  376. package/tools/tags/create-tags.mjs.map +1 -0
  377. package/tools/tags/delete-tags.d.mts +45 -0
  378. package/tools/tags/delete-tags.d.mts.map +1 -0
  379. package/tools/tags/delete-tags.d.ts +45 -0
  380. package/tools/tags/delete-tags.d.ts.map +1 -0
  381. package/tools/tags/delete-tags.js +43 -0
  382. package/tools/tags/delete-tags.js.map +1 -0
  383. package/tools/tags/delete-tags.mjs +39 -0
  384. package/tools/tags/delete-tags.mjs.map +1 -0
  385. package/tools/tags/list-tags.d.mts +45 -0
  386. package/tools/tags/list-tags.d.mts.map +1 -0
  387. package/tools/tags/list-tags.d.ts +45 -0
  388. package/tools/tags/list-tags.d.ts.map +1 -0
  389. package/tools/tags/list-tags.js +75 -0
  390. package/tools/tags/list-tags.js.map +1 -0
  391. package/tools/tags/list-tags.mjs +71 -0
  392. package/tools/tags/list-tags.mjs.map +1 -0
  393. package/tools/tags/update-tags.d.mts +45 -0
  394. package/tools/tags/update-tags.d.mts.map +1 -0
  395. package/tools/tags/update-tags.d.ts +45 -0
  396. package/tools/tags/update-tags.d.ts.map +1 -0
  397. package/tools/tags/update-tags.js +51 -0
  398. package/tools/tags/update-tags.js.map +1 -0
  399. package/tools/tags/update-tags.mjs +47 -0
  400. package/tools/tags/update-tags.mjs.map +1 -0
  401. package/tools/track/track-lead-track.d.mts +45 -0
  402. package/tools/track/track-lead-track.d.mts.map +1 -0
  403. package/tools/track/track-lead-track.d.ts +45 -0
  404. package/tools/track/track-lead-track.d.ts.map +1 -0
  405. package/tools/track/track-lead-track.js +66 -0
  406. package/tools/track/track-lead-track.js.map +1 -0
  407. package/tools/track/track-lead-track.mjs +62 -0
  408. package/tools/track/track-lead-track.mjs.map +1 -0
  409. package/tools/track/track-sale-track.d.mts +45 -0
  410. package/tools/track/track-sale-track.d.mts.map +1 -0
  411. package/tools/track/track-sale-track.d.ts +45 -0
  412. package/tools/track/track-sale-track.d.ts.map +1 -0
  413. package/tools/track/track-sale-track.js +67 -0
  414. package/tools/track/track-sale-track.js.map +1 -0
  415. package/tools/track/track-sale-track.mjs +63 -0
  416. package/tools/track/track-sale-track.mjs.map +1 -0
  417. package/tools/types.d.mts +51 -0
  418. package/tools/types.d.mts.map +1 -0
  419. package/tools/types.d.ts +51 -0
  420. package/tools/types.d.ts.map +1 -0
  421. package/tools/types.js +46 -0
  422. package/tools/types.js.map +1 -0
  423. package/tools/types.mjs +42 -0
  424. package/tools/types.mjs.map +1 -0
  425. package/tools.d.mts +2 -0
  426. package/tools.d.mts.map +1 -0
  427. package/tools.d.ts +2 -0
  428. package/tools.d.ts.map +1 -0
  429. package/tools.js +18 -0
  430. package/tools.js.map +1 -0
  431. package/tools.mjs +2 -0
  432. package/tools.mjs.map +1 -0
package/src/server.ts ADDED
@@ -0,0 +1,204 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
4
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import { Endpoint, endpoints, HandlerFunction, query } from './tools';
6
+ import {
7
+ CallToolRequestSchema,
8
+ ListToolsRequestSchema,
9
+ SetLevelRequestSchema,
10
+ Implementation,
11
+ Tool,
12
+ } from '@modelcontextprotocol/sdk/types.js';
13
+ import { ClientOptions } from '@codeqr/ts';
14
+ import Codeqr from '@codeqr/ts';
15
+ import {
16
+ applyCompatibilityTransformations,
17
+ ClientCapabilities,
18
+ defaultClientCapabilities,
19
+ knownClients,
20
+ parseEmbeddedJSON,
21
+ } from './compat';
22
+ import { dynamicTools } from './dynamic-tools';
23
+ import { codeTool } from './code-tool';
24
+ import { McpOptions } from './options';
25
+
26
+ export { McpOptions } from './options';
27
+ export { ClientType } from './compat';
28
+ export { Filter } from './tools';
29
+ export { ClientOptions } from '@codeqr/ts';
30
+ export { endpoints } from './tools';
31
+
32
+ export const newMcpServer = () =>
33
+ new McpServer(
34
+ {
35
+ name: 'codeqr_ts_api',
36
+ version: '0.2.1',
37
+ },
38
+ { capabilities: { tools: {}, logging: {} } },
39
+ );
40
+
41
+ // Create server instance
42
+ export const server = newMcpServer();
43
+
44
+ /**
45
+ * Initializes the provided MCP Server with the given tools and handlers.
46
+ * If not provided, the default client, tools and handlers will be used.
47
+ */
48
+ export function initMcpServer(params: {
49
+ server: Server | McpServer;
50
+ clientOptions?: ClientOptions;
51
+ mcpOptions?: McpOptions;
52
+ }) {
53
+ const server = params.server instanceof McpServer ? params.server.server : params.server;
54
+ const mcpOptions = params.mcpOptions ?? {};
55
+
56
+ let providedEndpoints: Endpoint[] | null = null;
57
+ let endpointMap: Record<string, Endpoint> | null = null;
58
+
59
+ const initTools = async (implementation?: Implementation) => {
60
+ if (implementation && (!mcpOptions.client || mcpOptions.client === 'infer')) {
61
+ mcpOptions.client =
62
+ implementation.name.toLowerCase().includes('claude') ? 'claude'
63
+ : implementation.name.toLowerCase().includes('cursor') ? 'cursor'
64
+ : undefined;
65
+ mcpOptions.capabilities = {
66
+ ...(mcpOptions.client && knownClients[mcpOptions.client]),
67
+ ...mcpOptions.capabilities,
68
+ };
69
+ }
70
+ providedEndpoints ??= await selectTools(endpoints, mcpOptions);
71
+ endpointMap ??= Object.fromEntries(providedEndpoints.map((endpoint) => [endpoint.tool.name, endpoint]));
72
+ };
73
+
74
+ const logAtLevel =
75
+ (level: 'debug' | 'info' | 'warning' | 'error') =>
76
+ (message: string, ...rest: unknown[]) => {
77
+ void server.sendLoggingMessage({
78
+ level,
79
+ data: { message, rest },
80
+ });
81
+ };
82
+ const logger = {
83
+ debug: logAtLevel('debug'),
84
+ info: logAtLevel('info'),
85
+ warn: logAtLevel('warning'),
86
+ error: logAtLevel('error'),
87
+ };
88
+
89
+ let client = new Codeqr({
90
+ logger,
91
+ ...params.clientOptions,
92
+ defaultHeaders: {
93
+ ...params.clientOptions?.defaultHeaders,
94
+ 'X-Stainless-MCP': 'true',
95
+ },
96
+ });
97
+
98
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
99
+ if (providedEndpoints === null) {
100
+ await initTools(server.getClientVersion());
101
+ }
102
+ return {
103
+ tools: providedEndpoints!.map((endpoint) => endpoint.tool),
104
+ };
105
+ });
106
+
107
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
108
+ if (endpointMap === null) {
109
+ await initTools(server.getClientVersion());
110
+ }
111
+ const { name, arguments: args } = request.params;
112
+ const endpoint = endpointMap![name];
113
+ if (!endpoint) {
114
+ throw new Error(`Unknown tool: ${name}`);
115
+ }
116
+
117
+ return executeHandler(endpoint.tool, endpoint.handler, client, args, mcpOptions.capabilities);
118
+ });
119
+
120
+ server.setRequestHandler(SetLevelRequestSchema, async (request) => {
121
+ const { level } = request.params;
122
+ switch (level) {
123
+ case 'debug':
124
+ client = client.withOptions({ logLevel: 'debug' });
125
+ break;
126
+ case 'info':
127
+ client = client.withOptions({ logLevel: 'info' });
128
+ break;
129
+ case 'notice':
130
+ case 'warning':
131
+ client = client.withOptions({ logLevel: 'warn' });
132
+ break;
133
+ case 'error':
134
+ client = client.withOptions({ logLevel: 'error' });
135
+ break;
136
+ default:
137
+ client = client.withOptions({ logLevel: 'off' });
138
+ break;
139
+ }
140
+ return {};
141
+ });
142
+ }
143
+
144
+ /**
145
+ * Selects the tools to include in the MCP Server based on the provided options.
146
+ */
147
+ export async function selectTools(endpoints: Endpoint[], options?: McpOptions): Promise<Endpoint[]> {
148
+ const filteredEndpoints = query(options?.filters ?? [], endpoints);
149
+
150
+ let includedTools = filteredEndpoints;
151
+
152
+ if (includedTools.length > 0) {
153
+ if (options?.includeDynamicTools) {
154
+ includedTools = dynamicTools(includedTools);
155
+ }
156
+ } else {
157
+ if (options?.includeAllTools) {
158
+ includedTools = endpoints;
159
+ } else if (options?.includeDynamicTools) {
160
+ includedTools = dynamicTools(endpoints);
161
+ } else if (options?.includeCodeTools) {
162
+ includedTools = [await codeTool()];
163
+ } else {
164
+ includedTools = endpoints;
165
+ }
166
+ }
167
+
168
+ const capabilities = { ...defaultClientCapabilities, ...options?.capabilities };
169
+ return applyCompatibilityTransformations(includedTools, capabilities);
170
+ }
171
+
172
+ /**
173
+ * Runs the provided handler with the given client and arguments.
174
+ */
175
+ export async function executeHandler(
176
+ tool: Tool,
177
+ handler: HandlerFunction,
178
+ client: Codeqr,
179
+ args: Record<string, unknown> | undefined,
180
+ compatibilityOptions?: Partial<ClientCapabilities>,
181
+ ) {
182
+ const options = { ...defaultClientCapabilities, ...compatibilityOptions };
183
+ if (!options.validJson && args) {
184
+ args = parseEmbeddedJSON(args, tool.inputSchema);
185
+ }
186
+ return await handler(client, args || {});
187
+ }
188
+
189
+ export const readEnv = (env: string): string | undefined => {
190
+ if (typeof (globalThis as any).process !== 'undefined') {
191
+ return (globalThis as any).process.env?.[env]?.trim();
192
+ } else if (typeof (globalThis as any).Deno !== 'undefined') {
193
+ return (globalThis as any).Deno.env?.get?.(env)?.trim();
194
+ }
195
+ return;
196
+ };
197
+
198
+ export const readEnvOrError = (env: string): string => {
199
+ let envValue = readEnv(env);
200
+ if (envValue === undefined) {
201
+ throw new Error(`Environment variable ${env} is not set`);
202
+ }
203
+ return envValue;
204
+ };
package/src/stdio.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
2
+ import { initMcpServer, newMcpServer } from './server';
3
+ import { McpOptions } from './options';
4
+
5
+ export const launchStdioServer = async (options: McpOptions) => {
6
+ const server = newMcpServer();
7
+
8
+ initMcpServer({ server, mcpOptions: options });
9
+
10
+ const transport = new StdioServerTransport();
11
+ await server.connect(transport);
12
+ console.error('MCP Server running on stdio');
13
+ };
@@ -0,0 +1,434 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { Metadata, asTextContentResult } from '@codeqr/ts-mcp/tools/types';
4
+
5
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
6
+ import Codeqr from '@codeqr/ts';
7
+
8
+ export const metadata: Metadata = {
9
+ resource: 'analytics',
10
+ operation: 'read',
11
+ tags: [],
12
+ httpMethod: 'get',
13
+ httpPath: '/analytics',
14
+ operationId: 'retrieveAnalytics',
15
+ };
16
+
17
+ export const tool: Tool = {
18
+ name: 'retrieve_analytics',
19
+ description:
20
+ 'Retrieve analytics for a link, a domain, or the authenticated workspace. The response type depends on the `event` and `type` query parameters.',
21
+ inputSchema: {
22
+ type: 'object',
23
+ properties: {
24
+ browser: {
25
+ type: 'string',
26
+ description: 'The browser to retrieve analytics for.',
27
+ },
28
+ city: {
29
+ type: 'string',
30
+ description: 'The city to retrieve analytics for.',
31
+ },
32
+ continent: {
33
+ $ref: '#/$defs/continent_code',
34
+ },
35
+ country: {
36
+ $ref: '#/$defs/country_code',
37
+ },
38
+ device: {
39
+ type: 'string',
40
+ description: 'The device to retrieve analytics for.',
41
+ },
42
+ domain: {
43
+ type: 'string',
44
+ description: 'The domain of the short link.',
45
+ },
46
+ end: {
47
+ type: 'string',
48
+ description:
49
+ 'The end date and time when to retrieve analytics from. If not provided, defaults to the current date.',
50
+ },
51
+ event: {
52
+ type: 'string',
53
+ description: "The type of event to retrieve analytics for. Defaults to 'analytics'.",
54
+ enum: ['clicks', 'leads', 'sales', 'scans', 'views', 'composite'],
55
+ },
56
+ excludeRoot: {
57
+ type: 'boolean',
58
+ description: 'Whether to exclude the root link from the response.',
59
+ },
60
+ externalId: {
61
+ type: 'string',
62
+ description:
63
+ "This is the ID of the link in the your database. Must be prefixed with 'ext_' when passed as a query parameter.",
64
+ },
65
+ groupBy: {
66
+ type: 'string',
67
+ description: "The parameter to group the analytics data points by. Defaults to 'count' if undefined.",
68
+ enum: [
69
+ 'timeseries',
70
+ 'clicks',
71
+ 'count',
72
+ 'totals',
73
+ 'top_urls',
74
+ 'top_links',
75
+ 'top_qrcodes',
76
+ 'top_pages',
77
+ 'top_events',
78
+ 'scans',
79
+ 'views',
80
+ 'country',
81
+ 'city',
82
+ 'region',
83
+ 'devices',
84
+ 'browsers',
85
+ 'os',
86
+ 'referers',
87
+ 'referer_urls',
88
+ 'trend_live',
89
+ 'kpis',
90
+ 'analytics',
91
+ 'continents',
92
+ 'countries',
93
+ 'cities',
94
+ 'leads',
95
+ 'sales',
96
+ 'composite',
97
+ ],
98
+ },
99
+ interval: {
100
+ type: 'string',
101
+ description: 'The interval to retrieve analytics for. Takes precedence over start and end.',
102
+ enum: ['1h', '24h', '7d', '30d', '90d', 'ytd', '1y', 'all', 'all_unfiltered'],
103
+ },
104
+ key: {
105
+ type: 'string',
106
+ description: 'The short link slug.',
107
+ },
108
+ linkId: {
109
+ type: 'string',
110
+ description: 'The unique ID of the short link on CodeQR.',
111
+ },
112
+ os: {
113
+ type: 'string',
114
+ description: 'The OS to retrieve analytics for.',
115
+ },
116
+ pageId: {
117
+ type: 'string',
118
+ description: 'The unique ID of the page on CodeQR.',
119
+ },
120
+ qrcodeId: {
121
+ type: 'string',
122
+ description: 'The unique ID of the QR code on CodeQR.',
123
+ },
124
+ referer: {
125
+ type: 'string',
126
+ description: 'The referer to retrieve analytics for.',
127
+ },
128
+ root: {
129
+ type: 'boolean',
130
+ description:
131
+ 'Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both.',
132
+ },
133
+ start: {
134
+ type: 'string',
135
+ description: 'The start date and time when to retrieve analytics from.',
136
+ },
137
+ tagId: {
138
+ type: 'string',
139
+ description: 'The tag ID to retrieve analytics for.',
140
+ },
141
+ timezone: {
142
+ type: 'string',
143
+ description:
144
+ 'The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC.',
145
+ },
146
+ type: {
147
+ type: 'string',
148
+ description: 'The type of analytics to retrieve.',
149
+ },
150
+ types: {
151
+ type: 'string',
152
+ description: 'The types of analytics to retrieve.',
153
+ },
154
+ url: {
155
+ type: 'string',
156
+ description: 'The URL to retrieve analytics for.',
157
+ },
158
+ },
159
+ required: [],
160
+ $defs: {
161
+ continent_code: {
162
+ type: 'string',
163
+ description: 'The continent to retrieve analytics for.',
164
+ enum: ['AF', 'AN', 'AS', 'EU', 'NA', 'OC', 'SA'],
165
+ },
166
+ country_code: {
167
+ type: 'string',
168
+ description: 'The country to retrieve analytics for.',
169
+ enum: [
170
+ 'AF',
171
+ 'AL',
172
+ 'DZ',
173
+ 'AS',
174
+ 'AD',
175
+ 'AO',
176
+ 'AI',
177
+ 'AQ',
178
+ 'AG',
179
+ 'AR',
180
+ 'AM',
181
+ 'AW',
182
+ 'AU',
183
+ 'AT',
184
+ 'AZ',
185
+ 'BS',
186
+ 'BH',
187
+ 'BD',
188
+ 'BB',
189
+ 'BY',
190
+ 'BE',
191
+ 'BZ',
192
+ 'BJ',
193
+ 'BM',
194
+ 'BT',
195
+ 'BO',
196
+ 'BA',
197
+ 'BW',
198
+ 'BV',
199
+ 'BR',
200
+ 'IO',
201
+ 'BN',
202
+ 'BG',
203
+ 'BF',
204
+ 'BI',
205
+ 'KH',
206
+ 'CM',
207
+ 'CA',
208
+ 'CV',
209
+ 'KY',
210
+ 'CF',
211
+ 'TD',
212
+ 'CL',
213
+ 'CN',
214
+ 'CX',
215
+ 'CC',
216
+ 'CO',
217
+ 'KM',
218
+ 'CG',
219
+ 'CD',
220
+ 'CK',
221
+ 'CR',
222
+ 'CI',
223
+ 'HR',
224
+ 'CU',
225
+ 'CY',
226
+ 'CZ',
227
+ 'DK',
228
+ 'DJ',
229
+ 'DM',
230
+ 'DO',
231
+ 'EC',
232
+ 'EG',
233
+ 'SV',
234
+ 'GQ',
235
+ 'ER',
236
+ 'EE',
237
+ 'ET',
238
+ 'FK',
239
+ 'FO',
240
+ 'FJ',
241
+ 'FI',
242
+ 'FR',
243
+ 'GF',
244
+ 'PF',
245
+ 'TF',
246
+ 'GA',
247
+ 'GM',
248
+ 'GE',
249
+ 'DE',
250
+ 'GH',
251
+ 'GI',
252
+ 'GR',
253
+ 'GL',
254
+ 'GD',
255
+ 'GP',
256
+ 'GU',
257
+ 'GT',
258
+ 'GN',
259
+ 'GW',
260
+ 'GY',
261
+ 'HT',
262
+ 'HM',
263
+ 'VA',
264
+ 'HN',
265
+ 'HK',
266
+ 'HU',
267
+ 'IS',
268
+ 'IN',
269
+ 'ID',
270
+ 'IR',
271
+ 'IQ',
272
+ 'IE',
273
+ 'IL',
274
+ 'IT',
275
+ 'JM',
276
+ 'JP',
277
+ 'JO',
278
+ 'KZ',
279
+ 'KE',
280
+ 'KI',
281
+ 'KP',
282
+ 'KR',
283
+ 'KW',
284
+ 'KG',
285
+ 'LA',
286
+ 'LV',
287
+ 'LB',
288
+ 'LS',
289
+ 'LR',
290
+ 'LY',
291
+ 'LI',
292
+ 'LT',
293
+ 'LU',
294
+ 'MO',
295
+ 'MG',
296
+ 'MW',
297
+ 'MY',
298
+ 'MV',
299
+ 'ML',
300
+ 'MT',
301
+ 'MH',
302
+ 'MQ',
303
+ 'MR',
304
+ 'MU',
305
+ 'YT',
306
+ 'MX',
307
+ 'FM',
308
+ 'MD',
309
+ 'MC',
310
+ 'MN',
311
+ 'MS',
312
+ 'MA',
313
+ 'MZ',
314
+ 'MM',
315
+ 'NA',
316
+ 'NR',
317
+ 'NP',
318
+ 'NL',
319
+ 'NC',
320
+ 'NZ',
321
+ 'NI',
322
+ 'NE',
323
+ 'NG',
324
+ 'NU',
325
+ 'NF',
326
+ 'MK',
327
+ 'MP',
328
+ 'NO',
329
+ 'OM',
330
+ 'PK',
331
+ 'PW',
332
+ 'PS',
333
+ 'PA',
334
+ 'PG',
335
+ 'PY',
336
+ 'PE',
337
+ 'PH',
338
+ 'PN',
339
+ 'PL',
340
+ 'PT',
341
+ 'PR',
342
+ 'QA',
343
+ 'RE',
344
+ 'RO',
345
+ 'RU',
346
+ 'RW',
347
+ 'SH',
348
+ 'KN',
349
+ 'LC',
350
+ 'PM',
351
+ 'VC',
352
+ 'WS',
353
+ 'SM',
354
+ 'ST',
355
+ 'SA',
356
+ 'SN',
357
+ 'SC',
358
+ 'SL',
359
+ 'SG',
360
+ 'SK',
361
+ 'SI',
362
+ 'SB',
363
+ 'SO',
364
+ 'ZA',
365
+ 'GS',
366
+ 'ES',
367
+ 'LK',
368
+ 'SD',
369
+ 'SR',
370
+ 'SJ',
371
+ 'SZ',
372
+ 'SE',
373
+ 'CH',
374
+ 'SY',
375
+ 'TW',
376
+ 'TJ',
377
+ 'TZ',
378
+ 'TH',
379
+ 'TL',
380
+ 'TG',
381
+ 'TK',
382
+ 'TO',
383
+ 'TT',
384
+ 'TN',
385
+ 'TR',
386
+ 'TM',
387
+ 'TC',
388
+ 'TV',
389
+ 'UG',
390
+ 'UA',
391
+ 'AE',
392
+ 'GB',
393
+ 'US',
394
+ 'UM',
395
+ 'UY',
396
+ 'UZ',
397
+ 'VU',
398
+ 'VE',
399
+ 'VN',
400
+ 'VG',
401
+ 'VI',
402
+ 'WF',
403
+ 'EH',
404
+ 'YE',
405
+ 'ZM',
406
+ 'ZW',
407
+ 'AX',
408
+ 'BQ',
409
+ 'CW',
410
+ 'GG',
411
+ 'IM',
412
+ 'JE',
413
+ 'ME',
414
+ 'BL',
415
+ 'MF',
416
+ 'RS',
417
+ 'SX',
418
+ 'SS',
419
+ 'XK',
420
+ ],
421
+ },
422
+ },
423
+ },
424
+ annotations: {
425
+ readOnlyHint: true,
426
+ },
427
+ };
428
+
429
+ export const handler = async (client: Codeqr, args: Record<string, unknown> | undefined) => {
430
+ const body = args as any;
431
+ return asTextContentResult(await client.analytics.retrieve(body));
432
+ };
433
+
434
+ export default { metadata, tool, handler };
@@ -0,0 +1,59 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { maybeFilter } from '@codeqr/ts-mcp/filtering';
4
+ import { Metadata, asTextContentResult } from '@codeqr/ts-mcp/tools/types';
5
+
6
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import Codeqr from '@codeqr/ts';
8
+
9
+ export const metadata: Metadata = {
10
+ resource: 'domains',
11
+ operation: 'write',
12
+ tags: [],
13
+ httpMethod: 'post',
14
+ httpPath: '/domains',
15
+ operationId: 'createDomain',
16
+ };
17
+
18
+ export const tool: Tool = {
19
+ name: 'create_domains',
20
+ description:
21
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCreate a domain for the authenticated workspace.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/domain',\n $defs: {\n domain: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'The unique identifier of the domain.'\n },\n archived: {\n type: 'boolean',\n description: 'Whether the domain is archived.'\n },\n createdAt: {\n type: 'string',\n description: 'The date the domain was created.'\n },\n expiredUrl: {\n type: 'string',\n description: 'The URL to redirect to when a link under this domain has expired.'\n },\n placeholder: {\n type: 'string',\n description: 'Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened.'\n },\n primary: {\n type: 'boolean',\n description: 'Whether the domain is the primary domain for the project.'\n },\n slug: {\n type: 'string',\n description: 'The domain name.'\n },\n updatedAt: {\n type: 'string',\n description: 'The date the domain was last updated.'\n },\n verified: {\n type: 'boolean',\n description: 'Whether the domain is verified.'\n }\n },\n required: [ 'id',\n 'archived',\n 'createdAt',\n 'expiredUrl',\n 'placeholder',\n 'primary',\n 'slug',\n 'updatedAt',\n 'verified'\n ]\n }\n }\n}\n```",
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ slug: {
26
+ type: 'string',
27
+ description: 'Name of the domain.',
28
+ },
29
+ archived: {
30
+ type: 'boolean',
31
+ description: 'Whether to archive this domain. `false` will unarchive a previously archived domain.',
32
+ },
33
+ expiredUrl: {
34
+ type: 'string',
35
+ description: 'Redirect users to a specific URL when any link under this domain has expired.',
36
+ },
37
+ placeholder: {
38
+ type: 'string',
39
+ description:
40
+ 'Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened.',
41
+ },
42
+ jq_filter: {
43
+ type: 'string',
44
+ title: 'jq Filter',
45
+ description:
46
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
47
+ },
48
+ },
49
+ required: ['slug'],
50
+ },
51
+ annotations: {},
52
+ };
53
+
54
+ export const handler = async (client: Codeqr, args: Record<string, unknown> | undefined) => {
55
+ const { jq_filter, ...body } = args as any;
56
+ return asTextContentResult(await maybeFilter(jq_filter, await client.domains.create(body)));
57
+ };
58
+
59
+ export default { metadata, tool, handler };