@mcp-z/mcp-gmail 1.0.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 (321) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +167 -0
  3. package/bin/server.js +5 -0
  4. package/dist/cjs/constants.d.cts +11 -0
  5. package/dist/cjs/constants.d.ts +11 -0
  6. package/dist/cjs/constants.js +39 -0
  7. package/dist/cjs/constants.js.map +1 -0
  8. package/dist/cjs/email/composition/rfc822-builder.d.cts +11 -0
  9. package/dist/cjs/email/composition/rfc822-builder.d.ts +11 -0
  10. package/dist/cjs/email/composition/rfc822-builder.js +24 -0
  11. package/dist/cjs/email/composition/rfc822-builder.js.map +1 -0
  12. package/dist/cjs/email/messages/fetch-message.d.cts +24 -0
  13. package/dist/cjs/email/messages/fetch-message.d.ts +24 -0
  14. package/dist/cjs/email/messages/fetch-message.js +367 -0
  15. package/dist/cjs/email/messages/fetch-message.js.map +1 -0
  16. package/dist/cjs/email/messages/messages.d.cts +7 -0
  17. package/dist/cjs/email/messages/messages.d.ts +7 -0
  18. package/dist/cjs/email/messages/messages.js +146 -0
  19. package/dist/cjs/email/messages/messages.js.map +1 -0
  20. package/dist/cjs/email/parsing/header-parsing.d.cts +1 -0
  21. package/dist/cjs/email/parsing/header-parsing.d.ts +1 -0
  22. package/dist/cjs/email/parsing/header-parsing.js +20 -0
  23. package/dist/cjs/email/parsing/header-parsing.js.map +1 -0
  24. package/dist/cjs/email/parsing/headers-utils.d.cts +5 -0
  25. package/dist/cjs/email/parsing/headers-utils.d.ts +5 -0
  26. package/dist/cjs/email/parsing/headers-utils.js +46 -0
  27. package/dist/cjs/email/parsing/headers-utils.js.map +1 -0
  28. package/dist/cjs/email/parsing/html-processing.d.cts +8 -0
  29. package/dist/cjs/email/parsing/html-processing.d.ts +8 -0
  30. package/dist/cjs/email/parsing/html-processing.js +72 -0
  31. package/dist/cjs/email/parsing/html-processing.js.map +1 -0
  32. package/dist/cjs/email/parsing/message-extraction.d.cts +2 -0
  33. package/dist/cjs/email/parsing/message-extraction.d.ts +2 -0
  34. package/dist/cjs/email/parsing/message-extraction.js +25 -0
  35. package/dist/cjs/email/parsing/message-extraction.js.map +1 -0
  36. package/dist/cjs/email/querying/execute-query.d.cts +17 -0
  37. package/dist/cjs/email/querying/execute-query.d.ts +17 -0
  38. package/dist/cjs/email/querying/execute-query.js +265 -0
  39. package/dist/cjs/email/querying/execute-query.js.map +1 -0
  40. package/dist/cjs/email/querying/pagination.d.cts +27 -0
  41. package/dist/cjs/email/querying/pagination.d.ts +27 -0
  42. package/dist/cjs/email/querying/pagination.js +533 -0
  43. package/dist/cjs/email/querying/pagination.js.map +1 -0
  44. package/dist/cjs/email/querying/query-builder.d.cts +47 -0
  45. package/dist/cjs/email/querying/query-builder.d.ts +47 -0
  46. package/dist/cjs/email/querying/query-builder.js +387 -0
  47. package/dist/cjs/email/querying/query-builder.js.map +1 -0
  48. package/dist/cjs/email/querying/search-execution.d.cts +29 -0
  49. package/dist/cjs/email/querying/search-execution.d.ts +29 -0
  50. package/dist/cjs/email/querying/search-execution.js +190 -0
  51. package/dist/cjs/email/querying/search-execution.js.map +1 -0
  52. package/dist/cjs/index.d.cts +8 -0
  53. package/dist/cjs/index.d.ts +8 -0
  54. package/dist/cjs/index.js +314 -0
  55. package/dist/cjs/index.js.map +1 -0
  56. package/dist/cjs/labels/gmail-labels.d.cts +2 -0
  57. package/dist/cjs/labels/gmail-labels.d.ts +2 -0
  58. package/dist/cjs/labels/gmail-labels.js +206 -0
  59. package/dist/cjs/labels/gmail-labels.js.map +1 -0
  60. package/dist/cjs/lib/base64-encoding.d.cts +2 -0
  61. package/dist/cjs/lib/base64-encoding.d.ts +2 -0
  62. package/dist/cjs/lib/base64-encoding.js +32 -0
  63. package/dist/cjs/lib/base64-encoding.js.map +1 -0
  64. package/dist/cjs/lib/create-store.d.cts +2 -0
  65. package/dist/cjs/lib/create-store.d.ts +2 -0
  66. package/dist/cjs/lib/create-store.js +166 -0
  67. package/dist/cjs/lib/create-store.js.map +1 -0
  68. package/dist/cjs/lib/date-conversion.d.cts +1 -0
  69. package/dist/cjs/lib/date-conversion.d.ts +1 -0
  70. package/dist/cjs/lib/date-conversion.js +16 -0
  71. package/dist/cjs/lib/date-conversion.js.map +1 -0
  72. package/dist/cjs/lib/messages-to-row.d.cts +61 -0
  73. package/dist/cjs/lib/messages-to-row.d.ts +61 -0
  74. package/dist/cjs/lib/messages-to-row.js +243 -0
  75. package/dist/cjs/lib/messages-to-row.js.map +1 -0
  76. package/dist/cjs/mcp/index.d.cts +3 -0
  77. package/dist/cjs/mcp/index.d.ts +3 -0
  78. package/dist/cjs/mcp/index.js +66 -0
  79. package/dist/cjs/mcp/index.js.map +1 -0
  80. package/dist/cjs/mcp/prompts/draft-email.d.cts +30 -0
  81. package/dist/cjs/mcp/prompts/draft-email.d.ts +30 -0
  82. package/dist/cjs/mcp/prompts/draft-email.js +184 -0
  83. package/dist/cjs/mcp/prompts/draft-email.js.map +1 -0
  84. package/dist/cjs/mcp/prompts/index.d.cts +2 -0
  85. package/dist/cjs/mcp/prompts/index.d.ts +2 -0
  86. package/dist/cjs/mcp/prompts/index.js +26 -0
  87. package/dist/cjs/mcp/prompts/index.js.map +1 -0
  88. package/dist/cjs/mcp/prompts/query-syntax.d.cts +19 -0
  89. package/dist/cjs/mcp/prompts/query-syntax.d.ts +19 -0
  90. package/dist/cjs/mcp/prompts/query-syntax.js +169 -0
  91. package/dist/cjs/mcp/prompts/query-syntax.js.map +1 -0
  92. package/dist/cjs/mcp/resources/email.d.cts +11 -0
  93. package/dist/cjs/mcp/resources/email.d.ts +11 -0
  94. package/dist/cjs/mcp/resources/email.js +256 -0
  95. package/dist/cjs/mcp/resources/email.js.map +1 -0
  96. package/dist/cjs/mcp/resources/index.d.cts +1 -0
  97. package/dist/cjs/mcp/resources/index.d.ts +1 -0
  98. package/dist/cjs/mcp/resources/index.js +17 -0
  99. package/dist/cjs/mcp/resources/index.js.map +1 -0
  100. package/dist/cjs/mcp/tools/categories-list.d.cts +58 -0
  101. package/dist/cjs/mcp/tools/categories-list.d.ts +58 -0
  102. package/dist/cjs/mcp/tools/categories-list.js +298 -0
  103. package/dist/cjs/mcp/tools/categories-list.js.map +1 -0
  104. package/dist/cjs/mcp/tools/index.d.cts +11 -0
  105. package/dist/cjs/mcp/tools/index.d.ts +11 -0
  106. package/dist/cjs/mcp/tools/index.js +62 -0
  107. package/dist/cjs/mcp/tools/index.js.map +1 -0
  108. package/dist/cjs/mcp/tools/label-add.d.cts +61 -0
  109. package/dist/cjs/mcp/tools/label-add.d.ts +61 -0
  110. package/dist/cjs/mcp/tools/label-add.js +280 -0
  111. package/dist/cjs/mcp/tools/label-add.js.map +1 -0
  112. package/dist/cjs/mcp/tools/label-delete.d.cts +71 -0
  113. package/dist/cjs/mcp/tools/label-delete.d.ts +71 -0
  114. package/dist/cjs/mcp/tools/label-delete.js +476 -0
  115. package/dist/cjs/mcp/tools/label-delete.js.map +1 -0
  116. package/dist/cjs/mcp/tools/labels-list.d.cts +75 -0
  117. package/dist/cjs/mcp/tools/labels-list.d.ts +75 -0
  118. package/dist/cjs/mcp/tools/labels-list.js +298 -0
  119. package/dist/cjs/mcp/tools/labels-list.js.map +1 -0
  120. package/dist/cjs/mcp/tools/message-get.d.cts +146 -0
  121. package/dist/cjs/mcp/tools/message-get.d.ts +146 -0
  122. package/dist/cjs/mcp/tools/message-get.js +317 -0
  123. package/dist/cjs/mcp/tools/message-get.js.map +1 -0
  124. package/dist/cjs/mcp/tools/message-mark-read.d.cts +50 -0
  125. package/dist/cjs/mcp/tools/message-mark-read.d.ts +50 -0
  126. package/dist/cjs/mcp/tools/message-mark-read.js +254 -0
  127. package/dist/cjs/mcp/tools/message-mark-read.js.map +1 -0
  128. package/dist/cjs/mcp/tools/message-move-to-trash.d.cts +71 -0
  129. package/dist/cjs/mcp/tools/message-move-to-trash.d.ts +71 -0
  130. package/dist/cjs/mcp/tools/message-move-to-trash.js +450 -0
  131. package/dist/cjs/mcp/tools/message-move-to-trash.js.map +1 -0
  132. package/dist/cjs/mcp/tools/message-respond.d.cts +60 -0
  133. package/dist/cjs/mcp/tools/message-respond.d.ts +60 -0
  134. package/dist/cjs/mcp/tools/message-respond.js +367 -0
  135. package/dist/cjs/mcp/tools/message-respond.js.map +1 -0
  136. package/dist/cjs/mcp/tools/message-search.d.cts +182 -0
  137. package/dist/cjs/mcp/tools/message-search.d.ts +182 -0
  138. package/dist/cjs/mcp/tools/message-search.js +405 -0
  139. package/dist/cjs/mcp/tools/message-search.js.map +1 -0
  140. package/dist/cjs/mcp/tools/message-send.d.cts +87 -0
  141. package/dist/cjs/mcp/tools/message-send.d.ts +87 -0
  142. package/dist/cjs/mcp/tools/message-send.js +288 -0
  143. package/dist/cjs/mcp/tools/message-send.js.map +1 -0
  144. package/dist/cjs/mcp/tools/messages-export-csv.d.cts +84 -0
  145. package/dist/cjs/mcp/tools/messages-export-csv.d.ts +84 -0
  146. package/dist/cjs/mcp/tools/messages-export-csv.js +530 -0
  147. package/dist/cjs/mcp/tools/messages-export-csv.js.map +1 -0
  148. package/dist/cjs/package.json +1 -0
  149. package/dist/cjs/schemas/gmail-query-schema.d.cts +36 -0
  150. package/dist/cjs/schemas/gmail-query-schema.d.ts +36 -0
  151. package/dist/cjs/schemas/gmail-query-schema.js +117 -0
  152. package/dist/cjs/schemas/gmail-query-schema.js.map +1 -0
  153. package/dist/cjs/schemas/index.d.cts +1 -0
  154. package/dist/cjs/schemas/index.d.ts +1 -0
  155. package/dist/cjs/schemas/index.js +19 -0
  156. package/dist/cjs/schemas/index.js.map +1 -0
  157. package/dist/cjs/setup/config.d.cts +48 -0
  158. package/dist/cjs/setup/config.d.ts +48 -0
  159. package/dist/cjs/setup/config.js +217 -0
  160. package/dist/cjs/setup/config.js.map +1 -0
  161. package/dist/cjs/setup/http.d.cts +8 -0
  162. package/dist/cjs/setup/http.d.ts +8 -0
  163. package/dist/cjs/setup/http.js +267 -0
  164. package/dist/cjs/setup/http.js.map +1 -0
  165. package/dist/cjs/setup/index.d.cts +5 -0
  166. package/dist/cjs/setup/index.d.ts +5 -0
  167. package/dist/cjs/setup/index.js +46 -0
  168. package/dist/cjs/setup/index.js.map +1 -0
  169. package/dist/cjs/setup/oauth-google.d.cts +54 -0
  170. package/dist/cjs/setup/oauth-google.d.ts +54 -0
  171. package/dist/cjs/setup/oauth-google.js +332 -0
  172. package/dist/cjs/setup/oauth-google.js.map +1 -0
  173. package/dist/cjs/setup/runtime.d.cts +12 -0
  174. package/dist/cjs/setup/runtime.d.ts +12 -0
  175. package/dist/cjs/setup/runtime.js +489 -0
  176. package/dist/cjs/setup/runtime.js.map +1 -0
  177. package/dist/cjs/setup/stdio.d.cts +7 -0
  178. package/dist/cjs/setup/stdio.d.ts +7 -0
  179. package/dist/cjs/setup/stdio.js +239 -0
  180. package/dist/cjs/setup/stdio.js.map +1 -0
  181. package/dist/cjs/types.d.cts +54 -0
  182. package/dist/cjs/types.d.ts +54 -0
  183. package/dist/cjs/types.js +5 -0
  184. package/dist/cjs/types.js.map +1 -0
  185. package/dist/esm/constants.d.ts +11 -0
  186. package/dist/esm/constants.js +14 -0
  187. package/dist/esm/constants.js.map +1 -0
  188. package/dist/esm/email/composition/rfc822-builder.d.ts +11 -0
  189. package/dist/esm/email/composition/rfc822-builder.js +13 -0
  190. package/dist/esm/email/composition/rfc822-builder.js.map +1 -0
  191. package/dist/esm/email/messages/fetch-message.d.ts +24 -0
  192. package/dist/esm/email/messages/fetch-message.js +123 -0
  193. package/dist/esm/email/messages/fetch-message.js.map +1 -0
  194. package/dist/esm/email/messages/messages.d.ts +7 -0
  195. package/dist/esm/email/messages/messages.js +91 -0
  196. package/dist/esm/email/messages/messages.js.map +1 -0
  197. package/dist/esm/email/parsing/header-parsing.d.ts +1 -0
  198. package/dist/esm/email/parsing/header-parsing.js +1 -0
  199. package/dist/esm/email/parsing/header-parsing.js.map +1 -0
  200. package/dist/esm/email/parsing/headers-utils.d.ts +5 -0
  201. package/dist/esm/email/parsing/headers-utils.js +25 -0
  202. package/dist/esm/email/parsing/headers-utils.js.map +1 -0
  203. package/dist/esm/email/parsing/html-processing.d.ts +8 -0
  204. package/dist/esm/email/parsing/html-processing.js +39 -0
  205. package/dist/esm/email/parsing/html-processing.js.map +1 -0
  206. package/dist/esm/email/parsing/message-extraction.d.ts +2 -0
  207. package/dist/esm/email/parsing/message-extraction.js +3 -0
  208. package/dist/esm/email/parsing/message-extraction.js.map +1 -0
  209. package/dist/esm/email/querying/execute-query.d.ts +17 -0
  210. package/dist/esm/email/querying/execute-query.js +45 -0
  211. package/dist/esm/email/querying/execute-query.js.map +1 -0
  212. package/dist/esm/email/querying/pagination.d.ts +27 -0
  213. package/dist/esm/email/querying/pagination.js +152 -0
  214. package/dist/esm/email/querying/pagination.js.map +1 -0
  215. package/dist/esm/email/querying/query-builder.d.ts +47 -0
  216. package/dist/esm/email/querying/query-builder.js +306 -0
  217. package/dist/esm/email/querying/query-builder.js.map +1 -0
  218. package/dist/esm/email/querying/search-execution.d.ts +29 -0
  219. package/dist/esm/email/querying/search-execution.js +35 -0
  220. package/dist/esm/email/querying/search-execution.js.map +1 -0
  221. package/dist/esm/index.d.ts +8 -0
  222. package/dist/esm/index.js +34 -0
  223. package/dist/esm/index.js.map +1 -0
  224. package/dist/esm/labels/gmail-labels.d.ts +2 -0
  225. package/dist/esm/labels/gmail-labels.js +43 -0
  226. package/dist/esm/labels/gmail-labels.js.map +1 -0
  227. package/dist/esm/lib/base64-encoding.d.ts +2 -0
  228. package/dist/esm/lib/base64-encoding.js +13 -0
  229. package/dist/esm/lib/base64-encoding.js.map +1 -0
  230. package/dist/esm/lib/create-store.d.ts +2 -0
  231. package/dist/esm/lib/create-store.js +6 -0
  232. package/dist/esm/lib/create-store.js.map +1 -0
  233. package/dist/esm/lib/date-conversion.d.ts +1 -0
  234. package/dist/esm/lib/date-conversion.js +5 -0
  235. package/dist/esm/lib/date-conversion.js.map +1 -0
  236. package/dist/esm/lib/messages-to-row.d.ts +61 -0
  237. package/dist/esm/lib/messages-to-row.js +188 -0
  238. package/dist/esm/lib/messages-to-row.js.map +1 -0
  239. package/dist/esm/mcp/index.d.ts +3 -0
  240. package/dist/esm/mcp/index.js +6 -0
  241. package/dist/esm/mcp/index.js.map +1 -0
  242. package/dist/esm/mcp/prompts/draft-email.d.ts +30 -0
  243. package/dist/esm/mcp/prompts/draft-email.js +37 -0
  244. package/dist/esm/mcp/prompts/draft-email.js.map +1 -0
  245. package/dist/esm/mcp/prompts/index.d.ts +2 -0
  246. package/dist/esm/mcp/prompts/index.js +2 -0
  247. package/dist/esm/mcp/prompts/index.js.map +1 -0
  248. package/dist/esm/mcp/prompts/query-syntax.d.ts +19 -0
  249. package/dist/esm/mcp/prompts/query-syntax.js +74 -0
  250. package/dist/esm/mcp/prompts/query-syntax.js.map +1 -0
  251. package/dist/esm/mcp/resources/email.d.ts +11 -0
  252. package/dist/esm/mcp/resources/email.js +92 -0
  253. package/dist/esm/mcp/resources/email.js.map +1 -0
  254. package/dist/esm/mcp/resources/index.d.ts +1 -0
  255. package/dist/esm/mcp/resources/index.js +1 -0
  256. package/dist/esm/mcp/resources/index.js.map +1 -0
  257. package/dist/esm/mcp/tools/categories-list.d.ts +58 -0
  258. package/dist/esm/mcp/tools/categories-list.js +124 -0
  259. package/dist/esm/mcp/tools/categories-list.js.map +1 -0
  260. package/dist/esm/mcp/tools/index.d.ts +11 -0
  261. package/dist/esm/mcp/tools/index.js +11 -0
  262. package/dist/esm/mcp/tools/index.js.map +1 -0
  263. package/dist/esm/mcp/tools/label-add.d.ts +61 -0
  264. package/dist/esm/mcp/tools/label-add.js +101 -0
  265. package/dist/esm/mcp/tools/label-add.js.map +1 -0
  266. package/dist/esm/mcp/tools/label-delete.d.ts +71 -0
  267. package/dist/esm/mcp/tools/label-delete.js +186 -0
  268. package/dist/esm/mcp/tools/label-delete.js.map +1 -0
  269. package/dist/esm/mcp/tools/labels-list.d.ts +75 -0
  270. package/dist/esm/mcp/tools/labels-list.js +122 -0
  271. package/dist/esm/mcp/tools/labels-list.js.map +1 -0
  272. package/dist/esm/mcp/tools/message-get.d.ts +146 -0
  273. package/dist/esm/mcp/tools/message-get.js +145 -0
  274. package/dist/esm/mcp/tools/message-get.js.map +1 -0
  275. package/dist/esm/mcp/tools/message-mark-read.d.ts +50 -0
  276. package/dist/esm/mcp/tools/message-mark-read.js +80 -0
  277. package/dist/esm/mcp/tools/message-mark-read.js.map +1 -0
  278. package/dist/esm/mcp/tools/message-move-to-trash.d.ts +71 -0
  279. package/dist/esm/mcp/tools/message-move-to-trash.js +167 -0
  280. package/dist/esm/mcp/tools/message-move-to-trash.js.map +1 -0
  281. package/dist/esm/mcp/tools/message-respond.d.ts +60 -0
  282. package/dist/esm/mcp/tools/message-respond.js +152 -0
  283. package/dist/esm/mcp/tools/message-respond.js.map +1 -0
  284. package/dist/esm/mcp/tools/message-search.d.ts +182 -0
  285. package/dist/esm/mcp/tools/message-search.js +180 -0
  286. package/dist/esm/mcp/tools/message-search.js.map +1 -0
  287. package/dist/esm/mcp/tools/message-send.d.ts +87 -0
  288. package/dist/esm/mcp/tools/message-send.js +115 -0
  289. package/dist/esm/mcp/tools/message-send.js.map +1 -0
  290. package/dist/esm/mcp/tools/messages-export-csv.d.ts +84 -0
  291. package/dist/esm/mcp/tools/messages-export-csv.js +261 -0
  292. package/dist/esm/mcp/tools/messages-export-csv.js.map +1 -0
  293. package/dist/esm/package.json +1 -0
  294. package/dist/esm/schemas/gmail-query-schema.d.ts +36 -0
  295. package/dist/esm/schemas/gmail-query-schema.js +72 -0
  296. package/dist/esm/schemas/gmail-query-schema.js.map +1 -0
  297. package/dist/esm/schemas/index.d.ts +1 -0
  298. package/dist/esm/schemas/index.js +1 -0
  299. package/dist/esm/schemas/index.js.map +1 -0
  300. package/dist/esm/setup/config.d.ts +48 -0
  301. package/dist/esm/setup/config.js +175 -0
  302. package/dist/esm/setup/config.js.map +1 -0
  303. package/dist/esm/setup/http.d.ts +8 -0
  304. package/dist/esm/setup/http.js +61 -0
  305. package/dist/esm/setup/http.js.map +1 -0
  306. package/dist/esm/setup/index.d.ts +5 -0
  307. package/dist/esm/setup/index.js +5 -0
  308. package/dist/esm/setup/index.js.map +1 -0
  309. package/dist/esm/setup/oauth-google.d.ts +54 -0
  310. package/dist/esm/setup/oauth-google.js +142 -0
  311. package/dist/esm/setup/oauth-google.js.map +1 -0
  312. package/dist/esm/setup/runtime.d.ts +12 -0
  313. package/dist/esm/setup/runtime.js +115 -0
  314. package/dist/esm/setup/runtime.js.map +1 -0
  315. package/dist/esm/setup/stdio.d.ts +7 -0
  316. package/dist/esm/setup/stdio.js +38 -0
  317. package/dist/esm/setup/stdio.js.map +1 -0
  318. package/dist/esm/types.d.ts +54 -0
  319. package/dist/esm/types.js +1 -0
  320. package/dist/esm/types.js.map +1 -0
  321. package/package.json +110 -0
@@ -0,0 +1,476 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createTool;
9
+ }
10
+ });
11
+ var _oauthgoogle = require("@mcp-z/oauth-google");
12
+ var _types = require("@modelcontextprotocol/sdk/types.js");
13
+ var _googleapis = require("googleapis");
14
+ var _zod = require("zod");
15
+ var _constantsts = require("../../constants.js");
16
+ function _array_like_to_array(arr, len) {
17
+ if (len == null || len > arr.length) len = arr.length;
18
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
19
+ return arr2;
20
+ }
21
+ function _array_without_holes(arr) {
22
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
23
+ }
24
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
25
+ try {
26
+ var info = gen[key](arg);
27
+ var value = info.value;
28
+ } catch (error) {
29
+ reject(error);
30
+ return;
31
+ }
32
+ if (info.done) {
33
+ resolve(value);
34
+ } else {
35
+ Promise.resolve(value).then(_next, _throw);
36
+ }
37
+ }
38
+ function _async_to_generator(fn) {
39
+ return function() {
40
+ var self = this, args = arguments;
41
+ return new Promise(function(resolve, reject) {
42
+ var gen = fn.apply(self, args);
43
+ function _next(value) {
44
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
45
+ }
46
+ function _throw(err) {
47
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
48
+ }
49
+ _next(undefined);
50
+ });
51
+ };
52
+ }
53
+ function _instanceof(left, right) {
54
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
55
+ return !!right[Symbol.hasInstance](left);
56
+ } else {
57
+ return left instanceof right;
58
+ }
59
+ }
60
+ function _iterable_to_array(iter) {
61
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
62
+ }
63
+ function _non_iterable_spread() {
64
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
65
+ }
66
+ function _to_consumable_array(arr) {
67
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
68
+ }
69
+ function _type_of(obj) {
70
+ "@swc/helpers - typeof";
71
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
72
+ }
73
+ function _unsupported_iterable_to_array(o, minLen) {
74
+ if (!o) return;
75
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
76
+ var n = Object.prototype.toString.call(o).slice(8, -1);
77
+ if (n === "Object" && o.constructor) n = o.constructor.name;
78
+ if (n === "Map" || n === "Set") return Array.from(n);
79
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
80
+ }
81
+ function _ts_generator(thisArg, body) {
82
+ var f, y, t, _ = {
83
+ label: 0,
84
+ sent: function() {
85
+ if (t[0] & 1) throw t[1];
86
+ return t[1];
87
+ },
88
+ trys: [],
89
+ ops: []
90
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
91
+ return d(g, "next", {
92
+ value: verb(0)
93
+ }), d(g, "throw", {
94
+ value: verb(1)
95
+ }), d(g, "return", {
96
+ value: verb(2)
97
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
98
+ value: function() {
99
+ return this;
100
+ }
101
+ }), g;
102
+ function verb(n) {
103
+ return function(v) {
104
+ return step([
105
+ n,
106
+ v
107
+ ]);
108
+ };
109
+ }
110
+ function step(op) {
111
+ if (f) throw new TypeError("Generator is already executing.");
112
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
113
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
114
+ if (y = 0, t) op = [
115
+ op[0] & 2,
116
+ t.value
117
+ ];
118
+ switch(op[0]){
119
+ case 0:
120
+ case 1:
121
+ t = op;
122
+ break;
123
+ case 4:
124
+ _.label++;
125
+ return {
126
+ value: op[1],
127
+ done: false
128
+ };
129
+ case 5:
130
+ _.label++;
131
+ y = op[1];
132
+ op = [
133
+ 0
134
+ ];
135
+ continue;
136
+ case 7:
137
+ op = _.ops.pop();
138
+ _.trys.pop();
139
+ continue;
140
+ default:
141
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
142
+ _ = 0;
143
+ continue;
144
+ }
145
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
146
+ _.label = op[1];
147
+ break;
148
+ }
149
+ if (op[0] === 6 && _.label < t[1]) {
150
+ _.label = t[1];
151
+ t = op;
152
+ break;
153
+ }
154
+ if (t && _.label < t[2]) {
155
+ _.label = t[2];
156
+ _.ops.push(op);
157
+ break;
158
+ }
159
+ if (t[2]) _.ops.pop();
160
+ _.trys.pop();
161
+ continue;
162
+ }
163
+ op = body.call(thisArg, _);
164
+ } catch (e) {
165
+ op = [
166
+ 6,
167
+ e
168
+ ];
169
+ y = 0;
170
+ } finally{
171
+ f = t = 0;
172
+ }
173
+ if (op[0] & 5) throw op[1];
174
+ return {
175
+ value: op[0] ? op[1] : void 0,
176
+ done: true
177
+ };
178
+ }
179
+ }
180
+ function _ts_values(o) {
181
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
182
+ if (m) return m.call(o);
183
+ if (o && typeof o.length === "number") return {
184
+ next: function() {
185
+ if (o && i >= o.length) o = void 0;
186
+ return {
187
+ value: o && o[i++],
188
+ done: !o
189
+ };
190
+ }
191
+ };
192
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
193
+ }
194
+ var AuthRequiredBranchSchema = _oauthgoogle.schemas.AuthRequiredBranchSchema;
195
+ var inputSchema = _zod.z.object({
196
+ ids: _zod.z.array(_zod.z.coerce.string().trim().min(1)).min(1).describe('Gmail label IDs to delete')
197
+ });
198
+ var successBranchSchema = _zod.z.object({
199
+ type: _zod.z.literal('success'),
200
+ totalRequested: _zod.z.number().describe('Total number of labels requested to delete'),
201
+ successCount: _zod.z.number().describe('Number of labels successfully deleted'),
202
+ failureCount: _zod.z.number().describe('Number of labels that failed to delete'),
203
+ results: _zod.z.array(_zod.z.object({
204
+ id: _zod.z.string().describe('Label ID'),
205
+ success: _zod.z.boolean().describe('Whether the operation succeeded'),
206
+ error: _zod.z.string().optional().describe('Error message if operation failed')
207
+ })).describe('Individual results for each label')
208
+ });
209
+ var outputSchema = _zod.z.discriminatedUnion('type', [
210
+ successBranchSchema,
211
+ AuthRequiredBranchSchema
212
+ ]);
213
+ var config = {
214
+ description: 'Delete Gmail labels permanently (irreversible). System labels (INBOX, SENT, etc.) cannot be deleted.',
215
+ inputSchema: inputSchema,
216
+ outputSchema: _zod.z.object({
217
+ result: outputSchema
218
+ })
219
+ };
220
+ function handler(_0, _1) {
221
+ return _async_to_generator(function(param, extra) {
222
+ var ids, logger, validatedIds, invalidIds, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, id, trimmedId, _loop, gmail, labelsResponse, allLabels, labelMap, allResults, i, successCount, failureCount, result, error, message;
223
+ return _ts_generator(this, function(_state) {
224
+ switch(_state.label){
225
+ case 0:
226
+ ids = param.ids;
227
+ logger = extra.logger;
228
+ logger.info('gmail-label-delete called', {
229
+ count: ids.length
230
+ });
231
+ if (!ids || ids.length === 0) {
232
+ throw new _types.McpError(_types.ErrorCode.InvalidParams, 'Missing ids');
233
+ }
234
+ // Validate batch size to prevent memory exhaustion
235
+ if (ids.length > _constantsts.MAX_BATCH_SIZE) {
236
+ throw new _types.McpError(_types.ErrorCode.InvalidParams, "Batch size ".concat(ids.length, " exceeds maximum allowed size of ").concat(_constantsts.MAX_BATCH_SIZE));
237
+ }
238
+ // Validate and sanitize IDs
239
+ validatedIds = [];
240
+ invalidIds = [];
241
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
242
+ try {
243
+ for(_iterator = ids[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
244
+ id = _step.value;
245
+ trimmedId = id.trim();
246
+ if (!trimmedId) {
247
+ invalidIds.push(id);
248
+ continue;
249
+ }
250
+ // Basic Gmail label ID validation - should not contain certain characters
251
+ if (trimmedId.includes('/') || trimmedId.includes('\\') || trimmedId.includes('<') || trimmedId.includes('>')) {
252
+ invalidIds.push(id);
253
+ continue;
254
+ }
255
+ validatedIds.push(trimmedId);
256
+ }
257
+ } catch (err) {
258
+ _didIteratorError = true;
259
+ _iteratorError = err;
260
+ } finally{
261
+ try {
262
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
263
+ _iterator.return();
264
+ }
265
+ } finally{
266
+ if (_didIteratorError) {
267
+ throw _iteratorError;
268
+ }
269
+ }
270
+ }
271
+ if (invalidIds.length > 0) {
272
+ throw new _types.McpError(_types.ErrorCode.InvalidParams, "Found ".concat(invalidIds.length, " invalid IDs: ").concat(invalidIds.join(', ')));
273
+ }
274
+ if (validatedIds.length === 0) {
275
+ throw new _types.McpError(_types.ErrorCode.InvalidParams, 'No valid IDs found after validation');
276
+ }
277
+ _state.label = 1;
278
+ case 1:
279
+ _state.trys.push([
280
+ 1,
281
+ 7,
282
+ ,
283
+ 8
284
+ ]);
285
+ _loop = function(i) {
286
+ var _allResults, chunk, chunkResults, processedChunkResults;
287
+ return _ts_generator(this, function(_state) {
288
+ switch(_state.label){
289
+ case 0:
290
+ chunk = validatedIds.slice(i, i + _constantsts.CHUNK_SIZE);
291
+ logger.info('Processing chunk', {
292
+ chunkIndex: i / _constantsts.CHUNK_SIZE + 1,
293
+ chunkSize: chunk.length,
294
+ totalChunks: Math.ceil(validatedIds.length / _constantsts.CHUNK_SIZE)
295
+ });
296
+ return [
297
+ 4,
298
+ Promise.allSettled(chunk.map(function(id) {
299
+ return _async_to_generator(function() {
300
+ var label;
301
+ return _ts_generator(this, function(_state) {
302
+ switch(_state.label){
303
+ case 0:
304
+ label = labelMap.get(id);
305
+ // Check if label exists
306
+ if (!label) {
307
+ throw new Error("Label not found: ".concat(id));
308
+ }
309
+ // Check if it's a system label
310
+ if (label.type === 'system') {
311
+ throw new Error("Cannot delete system label: ".concat(label.name, " (").concat(id, ")"));
312
+ }
313
+ // Delete the label
314
+ return [
315
+ 4,
316
+ gmail.users.labels.delete({
317
+ userId: 'me',
318
+ id: id
319
+ })
320
+ ];
321
+ case 1:
322
+ _state.sent();
323
+ return [
324
+ 2,
325
+ {
326
+ id: id,
327
+ success: true
328
+ }
329
+ ];
330
+ }
331
+ });
332
+ })();
333
+ }))
334
+ ];
335
+ case 1:
336
+ chunkResults = _state.sent();
337
+ // Process chunk results
338
+ processedChunkResults = chunkResults.map(function(result, chunkIndex) {
339
+ var id = chunk[chunkIndex];
340
+ if (!id) {
341
+ throw new Error("Chunk index ".concat(chunkIndex, " is out of bounds for chunk of size ").concat(chunk.length));
342
+ }
343
+ if (result.status === 'fulfilled') {
344
+ return {
345
+ id: id,
346
+ success: true
347
+ };
348
+ }
349
+ // Extract error message more robustly
350
+ var errorMessage = 'Unknown error';
351
+ if (result.reason) {
352
+ if (typeof result.reason === 'string') {
353
+ errorMessage = result.reason;
354
+ } else if (_instanceof(result.reason, Error)) {
355
+ errorMessage = result.reason.message;
356
+ } else if (result.reason && _type_of(result.reason) === 'object' && 'message' in result.reason) {
357
+ errorMessage = String(result.reason.message);
358
+ } else if (result.reason && _type_of(result.reason) === 'object' && 'error' in result.reason) {
359
+ errorMessage = String(result.reason.error);
360
+ } else {
361
+ errorMessage = String(result.reason);
362
+ }
363
+ }
364
+ return {
365
+ id: id,
366
+ success: false,
367
+ error: errorMessage
368
+ };
369
+ });
370
+ (_allResults = allResults).push.apply(_allResults, _to_consumable_array(processedChunkResults));
371
+ return [
372
+ 2
373
+ ];
374
+ }
375
+ });
376
+ };
377
+ gmail = _googleapis.google.gmail({
378
+ version: 'v1',
379
+ auth: extra.authContext.auth
380
+ });
381
+ return [
382
+ 4,
383
+ gmail.users.labels.list({
384
+ userId: 'me'
385
+ })
386
+ ];
387
+ case 2:
388
+ labelsResponse = _state.sent();
389
+ allLabels = labelsResponse.data.labels || [];
390
+ labelMap = new Map(allLabels.map(function(label) {
391
+ return [
392
+ label.id || '',
393
+ label
394
+ ];
395
+ }));
396
+ // Process deletions in chunks to prevent memory exhaustion
397
+ allResults = [];
398
+ i = 0;
399
+ _state.label = 3;
400
+ case 3:
401
+ if (!(i < validatedIds.length)) return [
402
+ 3,
403
+ 6
404
+ ];
405
+ return [
406
+ 5,
407
+ _ts_values(_loop(i))
408
+ ];
409
+ case 4:
410
+ _state.sent();
411
+ _state.label = 5;
412
+ case 5:
413
+ i += _constantsts.CHUNK_SIZE;
414
+ return [
415
+ 3,
416
+ 3
417
+ ];
418
+ case 6:
419
+ successCount = allResults.filter(function(r) {
420
+ return r.success;
421
+ }).length;
422
+ failureCount = allResults.filter(function(r) {
423
+ return !r.success;
424
+ }).length;
425
+ logger.info('gmail-label-delete completed', {
426
+ totalRequested: validatedIds.length,
427
+ successCount: successCount,
428
+ failureCount: failureCount,
429
+ chunksProcessed: Math.ceil(validatedIds.length / _constantsts.CHUNK_SIZE)
430
+ });
431
+ result = {
432
+ type: 'success',
433
+ totalRequested: validatedIds.length,
434
+ successCount: successCount,
435
+ failureCount: failureCount,
436
+ results: allResults
437
+ };
438
+ return [
439
+ 2,
440
+ {
441
+ content: [
442
+ {
443
+ type: 'text',
444
+ text: JSON.stringify(result)
445
+ }
446
+ ],
447
+ structuredContent: {
448
+ result: result
449
+ }
450
+ }
451
+ ];
452
+ case 7:
453
+ error = _state.sent();
454
+ message = _instanceof(error, Error) ? error.message : String(error);
455
+ logger.error('gmail-label-delete error', {
456
+ error: message
457
+ });
458
+ throw new _types.McpError(_types.ErrorCode.InternalError, "Error deleting labels: ".concat(message), {
459
+ stack: _instanceof(error, Error) ? error.stack : undefined
460
+ });
461
+ case 8:
462
+ return [
463
+ 2
464
+ ];
465
+ }
466
+ });
467
+ }).apply(this, arguments);
468
+ }
469
+ function createTool() {
470
+ return {
471
+ name: 'label-delete',
472
+ config: config,
473
+ handler: handler
474
+ };
475
+ }
476
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-gmail/src/mcp/tools/label-delete.ts"],"sourcesContent":["import type { EnrichedExtra } from '@mcp-z/oauth-google';\nimport { schemas } from '@mcp-z/oauth-google';\n\nconst { AuthRequiredBranchSchema } = schemas;\n\nimport type { ToolModule } from '@mcp-z/server';\nimport { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';\nimport { google } from 'googleapis';\nimport { z } from 'zod';\nimport { CHUNK_SIZE, MAX_BATCH_SIZE } from '../../constants.ts';\n\nconst inputSchema = z.object({\n ids: z.array(z.coerce.string().trim().min(1)).min(1).describe('Gmail label IDs to delete'),\n});\n\nconst successBranchSchema = z.object({\n type: z.literal('success'),\n totalRequested: z.number().describe('Total number of labels requested to delete'),\n successCount: z.number().describe('Number of labels successfully deleted'),\n failureCount: z.number().describe('Number of labels that failed to delete'),\n results: z\n .array(\n z.object({\n id: z.string().describe('Label ID'),\n success: z.boolean().describe('Whether the operation succeeded'),\n error: z.string().optional().describe('Error message if operation failed'),\n })\n )\n .describe('Individual results for each label'),\n});\n\nconst outputSchema = z.discriminatedUnion('type', [successBranchSchema, AuthRequiredBranchSchema]);\n\nconst config = {\n description: 'Delete Gmail labels permanently (irreversible). System labels (INBOX, SENT, etc.) cannot be deleted.',\n inputSchema: inputSchema,\n outputSchema: z.object({\n result: outputSchema,\n }),\n} as const;\n\nexport type Input = z.infer<typeof inputSchema>;\nexport type Output = z.infer<typeof outputSchema>;\n\nasync function handler({ ids }: Input, extra: EnrichedExtra) {\n const logger = extra.logger;\n logger.info('gmail-label-delete called', { count: ids.length });\n\n if (!ids || ids.length === 0) {\n throw new McpError(ErrorCode.InvalidParams, 'Missing ids');\n }\n\n // Validate batch size to prevent memory exhaustion\n if (ids.length > MAX_BATCH_SIZE) {\n throw new McpError(ErrorCode.InvalidParams, `Batch size ${ids.length} exceeds maximum allowed size of ${MAX_BATCH_SIZE}`);\n }\n\n // Validate and sanitize IDs\n const validatedIds: string[] = [];\n const invalidIds: string[] = [];\n\n for (const id of ids) {\n const trimmedId = id.trim();\n if (!trimmedId) {\n invalidIds.push(id);\n continue;\n }\n // Basic Gmail label ID validation - should not contain certain characters\n if (trimmedId.includes('/') || trimmedId.includes('\\\\') || trimmedId.includes('<') || trimmedId.includes('>')) {\n invalidIds.push(id);\n continue;\n }\n validatedIds.push(trimmedId);\n }\n\n if (invalidIds.length > 0) {\n throw new McpError(ErrorCode.InvalidParams, `Found ${invalidIds.length} invalid IDs: ${invalidIds.join(', ')}`);\n }\n\n if (validatedIds.length === 0) {\n throw new McpError(ErrorCode.InvalidParams, 'No valid IDs found after validation');\n }\n\n try {\n const gmail = google.gmail({ version: 'v1', auth: extra.authContext.auth });\n // Get all labels first to check for system labels\n const labelsResponse = await gmail.users.labels.list({ userId: 'me' });\n const allLabels = labelsResponse.data.labels || [];\n const labelMap = new Map(allLabels.map((label) => [label.id || '', label]));\n\n // Process deletions in chunks to prevent memory exhaustion\n const allResults: Array<{ id: string; success: boolean; error?: string }> = [];\n\n for (let i = 0; i < validatedIds.length; i += CHUNK_SIZE) {\n const chunk = validatedIds.slice(i, i + CHUNK_SIZE);\n logger.info('Processing chunk', { chunkIndex: i / CHUNK_SIZE + 1, chunkSize: chunk.length, totalChunks: Math.ceil(validatedIds.length / CHUNK_SIZE) });\n\n const chunkResults = await Promise.allSettled(\n chunk.map(async (id) => {\n const label = labelMap.get(id);\n\n // Check if label exists\n if (!label) {\n throw new Error(`Label not found: ${id}`);\n }\n\n // Check if it's a system label\n if (label.type === 'system') {\n throw new Error(`Cannot delete system label: ${label.name} (${id})`);\n }\n\n // Delete the label\n await gmail.users.labels.delete({\n userId: 'me',\n id: id,\n });\n return { id, success: true };\n })\n );\n\n // Process chunk results\n const processedChunkResults = chunkResults.map((result, chunkIndex) => {\n const id = chunk[chunkIndex];\n if (!id) {\n throw new Error(`Chunk index ${chunkIndex} is out of bounds for chunk of size ${chunk.length}`);\n }\n if (result.status === 'fulfilled') {\n return { id, success: true };\n }\n\n // Extract error message more robustly\n let errorMessage = 'Unknown error';\n if (result.reason) {\n if (typeof result.reason === 'string') {\n errorMessage = result.reason;\n } else if (result.reason instanceof Error) {\n errorMessage = result.reason.message;\n } else if (result.reason && typeof result.reason === 'object' && 'message' in result.reason) {\n errorMessage = String(result.reason.message);\n } else if (result.reason && typeof result.reason === 'object' && 'error' in result.reason) {\n errorMessage = String(result.reason.error);\n } else {\n errorMessage = String(result.reason);\n }\n }\n\n return { id, success: false, error: errorMessage };\n });\n\n allResults.push(...processedChunkResults);\n }\n\n const successCount = allResults.filter((r) => r.success).length;\n const failureCount = allResults.filter((r) => !r.success).length;\n\n logger.info('gmail-label-delete completed', {\n totalRequested: validatedIds.length,\n successCount,\n failureCount,\n chunksProcessed: Math.ceil(validatedIds.length / CHUNK_SIZE),\n });\n\n const result: Output = {\n type: 'success' as const,\n totalRequested: validatedIds.length,\n successCount,\n failureCount,\n results: allResults,\n };\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result),\n },\n ],\n structuredContent: { result },\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error('gmail-label-delete error', { error: message });\n\n throw new McpError(ErrorCode.InternalError, `Error deleting labels: ${message}`, {\n stack: error instanceof Error ? error.stack : undefined,\n });\n }\n}\n\nexport default function createTool() {\n return {\n name: 'label-delete',\n config,\n handler,\n } satisfies ToolModule;\n}\n"],"names":["createTool","AuthRequiredBranchSchema","schemas","inputSchema","z","object","ids","array","coerce","string","trim","min","describe","successBranchSchema","type","literal","totalRequested","number","successCount","failureCount","results","id","success","boolean","error","optional","outputSchema","discriminatedUnion","config","description","result","handler","extra","logger","validatedIds","invalidIds","trimmedId","gmail","labelsResponse","allLabels","labelMap","allResults","i","message","info","count","length","McpError","ErrorCode","InvalidParams","MAX_BATCH_SIZE","push","includes","join","chunk","chunkResults","processedChunkResults","slice","CHUNK_SIZE","chunkIndex","chunkSize","totalChunks","Math","ceil","Promise","allSettled","map","label","get","Error","name","users","labels","delete","userId","status","errorMessage","reason","String","google","version","auth","authContext","list","data","Map","filter","r","chunksProcessed","content","text","JSON","stringify","structuredContent","InternalError","stack","undefined"],"mappings":";;;;+BA6LA;;;eAAwBA;;;2BA5LA;qBAKY;0BACb;mBACL;2BACyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAN3C,IAAM,AAAEC,2BAA6BC,oBAAO,CAApCD;AAQR,IAAME,cAAcC,MAAC,CAACC,MAAM,CAAC;IAC3BC,KAAKF,MAAC,CAACG,KAAK,CAACH,MAAC,CAACI,MAAM,CAACC,MAAM,GAAGC,IAAI,GAAGC,GAAG,CAAC,IAAIA,GAAG,CAAC,GAAGC,QAAQ,CAAC;AAChE;AAEA,IAAMC,sBAAsBT,MAAC,CAACC,MAAM,CAAC;IACnCS,MAAMV,MAAC,CAACW,OAAO,CAAC;IAChBC,gBAAgBZ,MAAC,CAACa,MAAM,GAAGL,QAAQ,CAAC;IACpCM,cAAcd,MAAC,CAACa,MAAM,GAAGL,QAAQ,CAAC;IAClCO,cAAcf,MAAC,CAACa,MAAM,GAAGL,QAAQ,CAAC;IAClCQ,SAAShB,MAAC,CACPG,KAAK,CACJH,MAAC,CAACC,MAAM,CAAC;QACPgB,IAAIjB,MAAC,CAACK,MAAM,GAAGG,QAAQ,CAAC;QACxBU,SAASlB,MAAC,CAACmB,OAAO,GAAGX,QAAQ,CAAC;QAC9BY,OAAOpB,MAAC,CAACK,MAAM,GAAGgB,QAAQ,GAAGb,QAAQ,CAAC;IACxC,IAEDA,QAAQ,CAAC;AACd;AAEA,IAAMc,eAAetB,MAAC,CAACuB,kBAAkB,CAAC,QAAQ;IAACd;IAAqBZ;CAAyB;AAEjG,IAAM2B,SAAS;IACbC,aAAa;IACb1B,aAAaA;IACbuB,cAActB,MAAC,CAACC,MAAM,CAAC;QACrByB,QAAQJ;IACV;AACF;AAKA,SAAeK;wCAAQ,KAAc,EAAEC,KAAoB;YAAlC1B,KACjB2B,QAaAC,cACAC,YAED,2BAAA,mBAAA,gBAAA,WAAA,OAAMd,IACHe,kBAsBAC,OAEAC,gBACAC,WACAC,UAGAC,YAEGC,GA2DHxB,cACAC,cASAW,QAiBCN,OACDmB;;;;oBAxIerC,MAAF,MAAEA;oBACjB2B,SAASD,MAAMC,MAAM;oBAC3BA,OAAOW,IAAI,CAAC,6BAA6B;wBAAEC,OAAOvC,IAAIwC,MAAM;oBAAC;oBAE7D,IAAI,CAACxC,OAAOA,IAAIwC,MAAM,KAAK,GAAG;wBAC5B,MAAM,IAAIC,eAAQ,CAACC,gBAAS,CAACC,aAAa,EAAE;oBAC9C;oBAEA,mDAAmD;oBACnD,IAAI3C,IAAIwC,MAAM,GAAGI,2BAAc,EAAE;wBAC/B,MAAM,IAAIH,eAAQ,CAACC,gBAAS,CAACC,aAAa,EAAE,AAAC,cAA2DC,OAA9C5C,IAAIwC,MAAM,EAAC,qCAAkD,OAAfI,2BAAc;oBACxH;oBAEA,4BAA4B;oBACtBhB;oBACAC;oBAED,kCAAA,2BAAA;;wBAAL,IAAK,YAAY7B,0BAAZ,6BAAA,QAAA,yBAAA,iCAAiB;4BAAXe,KAAN;4BACGe,YAAYf,GAAGX,IAAI;4BACzB,IAAI,CAAC0B,WAAW;gCACdD,WAAWgB,IAAI,CAAC9B;gCAChB;4BACF;4BACA,0EAA0E;4BAC1E,IAAIe,UAAUgB,QAAQ,CAAC,QAAQhB,UAAUgB,QAAQ,CAAC,SAAShB,UAAUgB,QAAQ,CAAC,QAAQhB,UAAUgB,QAAQ,CAAC,MAAM;gCAC7GjB,WAAWgB,IAAI,CAAC9B;gCAChB;4BACF;4BACAa,aAAaiB,IAAI,CAACf;wBACpB;;wBAZK;wBAAA;;;iCAAA,6BAAA;gCAAA;;;gCAAA;sCAAA;;;;oBAcL,IAAID,WAAWW,MAAM,GAAG,GAAG;wBACzB,MAAM,IAAIC,eAAQ,CAACC,gBAAS,CAACC,aAAa,EAAE,AAAC,SAA0Cd,OAAlCA,WAAWW,MAAM,EAAC,kBAAsC,OAAtBX,WAAWkB,IAAI,CAAC;oBACzG;oBAEA,IAAInB,aAAaY,MAAM,KAAK,GAAG;wBAC7B,MAAM,IAAIC,eAAQ,CAACC,gBAAS,CAACC,aAAa,EAAE;oBAC9C;;;;;;;;;;4BAoEIR,aAvDMa,OAGAC,cAwBAC;;;;oCA3BAF,QAAQpB,aAAauB,KAAK,CAACf,GAAGA,IAAIgB,uBAAU;oCAClDzB,OAAOW,IAAI,CAAC,oBAAoB;wCAAEe,YAAYjB,IAAIgB,uBAAU,GAAG;wCAAGE,WAAWN,MAAMR,MAAM;wCAAEe,aAAaC,KAAKC,IAAI,CAAC7B,aAAaY,MAAM,GAAGY,uBAAU;oCAAE;oCAE/H;;wCAAMM,QAAQC,UAAU,CAC3CX,MAAMY,GAAG,CAAC,SAAO7C;;oDACT8C;;;;4DAAAA,QAAQ3B,SAAS4B,GAAG,CAAC/C;4DAE3B,wBAAwB;4DACxB,IAAI,CAAC8C,OAAO;gEACV,MAAM,IAAIE,MAAM,AAAC,oBAAsB,OAAHhD;4DACtC;4DAEA,+BAA+B;4DAC/B,IAAI8C,MAAMrD,IAAI,KAAK,UAAU;gEAC3B,MAAM,IAAIuD,MAAM,AAAC,+BAA6ChD,OAAf8C,MAAMG,IAAI,EAAC,MAAO,OAAHjD,IAAG;4DACnE;4DAEA,mBAAmB;4DACnB;;gEAAMgB,MAAMkC,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC;oEAC9BC,QAAQ;oEACRrD,IAAIA;gEACN;;;4DAHA;4DAIA;;gEAAO;oEAAEA,IAAAA;oEAAIC,SAAS;gEAAK;;;;4CAC7B;;;;oCApBIiC,eAAe;oCAuBrB,wBAAwB;oCAClBC,wBAAwBD,aAAaW,GAAG,CAAC,SAACpC,QAAQ6B;wCACtD,IAAMtC,KAAKiC,KAAK,CAACK,WAAW;wCAC5B,IAAI,CAACtC,IAAI;4CACP,MAAM,IAAIgD,MAAM,AAAC,eAA+Df,OAAjDK,YAAW,wCAAmD,OAAbL,MAAMR,MAAM;wCAC9F;wCACA,IAAIhB,OAAO6C,MAAM,KAAK,aAAa;4CACjC,OAAO;gDAAEtD,IAAAA;gDAAIC,SAAS;4CAAK;wCAC7B;wCAEA,sCAAsC;wCACtC,IAAIsD,eAAe;wCACnB,IAAI9C,OAAO+C,MAAM,EAAE;4CACjB,IAAI,OAAO/C,OAAO+C,MAAM,KAAK,UAAU;gDACrCD,eAAe9C,OAAO+C,MAAM;4CAC9B,OAAO,IAAI/C,AAAa,YAAbA,OAAO+C,MAAM,EAAYR,QAAO;gDACzCO,eAAe9C,OAAO+C,MAAM,CAAClC,OAAO;4CACtC,OAAO,IAAIb,OAAO+C,MAAM,IAAI,SAAO/C,OAAO+C,MAAM,MAAK,YAAY,aAAa/C,OAAO+C,MAAM,EAAE;gDAC3FD,eAAeE,OAAOhD,OAAO+C,MAAM,CAAClC,OAAO;4CAC7C,OAAO,IAAIb,OAAO+C,MAAM,IAAI,SAAO/C,OAAO+C,MAAM,MAAK,YAAY,WAAW/C,OAAO+C,MAAM,EAAE;gDACzFD,eAAeE,OAAOhD,OAAO+C,MAAM,CAACrD,KAAK;4CAC3C,OAAO;gDACLoD,eAAeE,OAAOhD,OAAO+C,MAAM;4CACrC;wCACF;wCAEA,OAAO;4CAAExD,IAAAA;4CAAIC,SAAS;4CAAOE,OAAOoD;wCAAa;oCACnD;oCAEAnC,CAAAA,cAAAA,YAAWU,IAAI,OAAfV,aAAgB,qBAAGe;;;;;;oBACrB;oBAlEMnB,QAAQ0C,kBAAM,CAAC1C,KAAK,CAAC;wBAAE2C,SAAS;wBAAMC,MAAMjD,MAAMkD,WAAW,CAACD,IAAI;oBAAC;oBAElD;;wBAAM5C,MAAMkC,KAAK,CAACC,MAAM,CAACW,IAAI,CAAC;4BAAET,QAAQ;wBAAK;;;oBAA9DpC,iBAAiB;oBACjBC,YAAYD,eAAe8C,IAAI,CAACZ,MAAM;oBACtChC,WAAW,IAAI6C,IAAI9C,UAAU2B,GAAG,CAAC,SAACC;+BAAU;4BAACA,MAAM9C,EAAE,IAAI;4BAAI8C;yBAAM;;oBAEzE,2DAA2D;oBACrD1B;oBAEGC,IAAI;;;yBAAGA,CAAAA,IAAIR,aAAaY,MAAM,AAAD;;;;;;;;;;;;oBAAGJ,KAAKgB,uBAAU;;;;;;oBA2DlDxC,eAAeuB,WAAW6C,MAAM,CAAC,SAACC;+BAAMA,EAAEjE,OAAO;uBAAEwB,MAAM;oBACzD3B,eAAesB,WAAW6C,MAAM,CAAC,SAACC;+BAAM,CAACA,EAAEjE,OAAO;uBAAEwB,MAAM;oBAEhEb,OAAOW,IAAI,CAAC,gCAAgC;wBAC1C5B,gBAAgBkB,aAAaY,MAAM;wBACnC5B,cAAAA;wBACAC,cAAAA;wBACAqE,iBAAiB1B,KAAKC,IAAI,CAAC7B,aAAaY,MAAM,GAAGY,uBAAU;oBAC7D;oBAEM5B,SAAiB;wBACrBhB,MAAM;wBACNE,gBAAgBkB,aAAaY,MAAM;wBACnC5B,cAAAA;wBACAC,cAAAA;wBACAC,SAASqB;oBACX;oBAEA;;wBAAO;4BACLgD,OAAO;gCACL;oCACE3E,MAAM;oCACN4E,MAAMC,KAAKC,SAAS,CAAC9D;gCACvB;;4BAEF+D,mBAAmB;gCAAE/D,QAAAA;4BAAO;wBAC9B;;;oBACON;oBACDmB,UAAUnB,AAAK,YAALA,OAAiB6C,SAAQ7C,MAAMmB,OAAO,GAAGmC,OAAOtD;oBAChES,OAAOT,KAAK,CAAC,4BAA4B;wBAAEA,OAAOmB;oBAAQ;oBAE1D,MAAM,IAAII,eAAQ,CAACC,gBAAS,CAAC8C,aAAa,EAAE,AAAC,0BAAiC,OAARnD,UAAW;wBAC/EoD,OAAOvE,AAAK,YAALA,OAAiB6C,SAAQ7C,MAAMuE,KAAK,GAAGC;oBAChD;;;;;;;IAEJ;;AAEe,SAAShG;IACtB,OAAO;QACLsE,MAAM;QACN1C,QAAAA;QACAG,SAAAA;IACF;AACF"}
@@ -0,0 +1,75 @@
1
+ import type { EnrichedExtra } from '@mcp-z/oauth-google';
2
+ import { z } from 'zod';
3
+ declare const inputSchema: z.ZodObject<{}, z.core.$strip>;
4
+ declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5
+ type: z.ZodLiteral<"success">;
6
+ items: z.ZodArray<z.ZodObject<{
7
+ id: z.ZodString;
8
+ name: z.ZodString;
9
+ type: z.ZodEnum<{
10
+ user: "user";
11
+ system: "system";
12
+ }>;
13
+ visibility: z.ZodEnum<{
14
+ labelShow: "labelShow";
15
+ labelHide: "labelHide";
16
+ labelShowIfUnread: "labelShowIfUnread";
17
+ }>;
18
+ }, z.core.$strip>>;
19
+ }, z.core.$strip>, z.ZodObject<{
20
+ type: z.ZodLiteral<"auth_required">;
21
+ provider: z.ZodString;
22
+ message: z.ZodString;
23
+ url: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strip>], "type">;
25
+ export type Input = z.infer<typeof inputSchema>;
26
+ export type Output = z.infer<typeof outputSchema>;
27
+ declare function handler(_args: Input, extra: EnrichedExtra): Promise<{
28
+ content: {
29
+ type: "text";
30
+ text: string;
31
+ }[];
32
+ structuredContent: {
33
+ result: {
34
+ type: "success";
35
+ items: {
36
+ id: string;
37
+ name: string;
38
+ type: "user" | "system";
39
+ visibility: "labelShow" | "labelHide" | "labelShowIfUnread";
40
+ }[];
41
+ };
42
+ };
43
+ }>;
44
+ export default function createTool(): {
45
+ name: string;
46
+ config: {
47
+ readonly description: "List Gmail labels for label: query syntax. Case-sensitive.";
48
+ readonly inputSchema: z.ZodObject<{}, z.core.$strip>;
49
+ readonly outputSchema: z.ZodObject<{
50
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
51
+ type: z.ZodLiteral<"success">;
52
+ items: z.ZodArray<z.ZodObject<{
53
+ id: z.ZodString;
54
+ name: z.ZodString;
55
+ type: z.ZodEnum<{
56
+ user: "user";
57
+ system: "system";
58
+ }>;
59
+ visibility: z.ZodEnum<{
60
+ labelShow: "labelShow";
61
+ labelHide: "labelHide";
62
+ labelShowIfUnread: "labelShowIfUnread";
63
+ }>;
64
+ }, z.core.$strip>>;
65
+ }, z.core.$strip>, z.ZodObject<{
66
+ type: z.ZodLiteral<"auth_required">;
67
+ provider: z.ZodString;
68
+ message: z.ZodString;
69
+ url: z.ZodOptional<z.ZodString>;
70
+ }, z.core.$strip>], "type">;
71
+ }, z.core.$strip>;
72
+ };
73
+ handler: typeof handler;
74
+ };
75
+ export {};
@@ -0,0 +1,75 @@
1
+ import type { EnrichedExtra } from '@mcp-z/oauth-google';
2
+ import { z } from 'zod';
3
+ declare const inputSchema: z.ZodObject<{}, z.core.$strip>;
4
+ declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5
+ type: z.ZodLiteral<"success">;
6
+ items: z.ZodArray<z.ZodObject<{
7
+ id: z.ZodString;
8
+ name: z.ZodString;
9
+ type: z.ZodEnum<{
10
+ user: "user";
11
+ system: "system";
12
+ }>;
13
+ visibility: z.ZodEnum<{
14
+ labelShow: "labelShow";
15
+ labelHide: "labelHide";
16
+ labelShowIfUnread: "labelShowIfUnread";
17
+ }>;
18
+ }, z.core.$strip>>;
19
+ }, z.core.$strip>, z.ZodObject<{
20
+ type: z.ZodLiteral<"auth_required">;
21
+ provider: z.ZodString;
22
+ message: z.ZodString;
23
+ url: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strip>], "type">;
25
+ export type Input = z.infer<typeof inputSchema>;
26
+ export type Output = z.infer<typeof outputSchema>;
27
+ declare function handler(_args: Input, extra: EnrichedExtra): Promise<{
28
+ content: {
29
+ type: "text";
30
+ text: string;
31
+ }[];
32
+ structuredContent: {
33
+ result: {
34
+ type: "success";
35
+ items: {
36
+ id: string;
37
+ name: string;
38
+ type: "user" | "system";
39
+ visibility: "labelShow" | "labelHide" | "labelShowIfUnread";
40
+ }[];
41
+ };
42
+ };
43
+ }>;
44
+ export default function createTool(): {
45
+ name: string;
46
+ config: {
47
+ readonly description: "List Gmail labels for label: query syntax. Case-sensitive.";
48
+ readonly inputSchema: z.ZodObject<{}, z.core.$strip>;
49
+ readonly outputSchema: z.ZodObject<{
50
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
51
+ type: z.ZodLiteral<"success">;
52
+ items: z.ZodArray<z.ZodObject<{
53
+ id: z.ZodString;
54
+ name: z.ZodString;
55
+ type: z.ZodEnum<{
56
+ user: "user";
57
+ system: "system";
58
+ }>;
59
+ visibility: z.ZodEnum<{
60
+ labelShow: "labelShow";
61
+ labelHide: "labelHide";
62
+ labelShowIfUnread: "labelShowIfUnread";
63
+ }>;
64
+ }, z.core.$strip>>;
65
+ }, z.core.$strip>, z.ZodObject<{
66
+ type: z.ZodLiteral<"auth_required">;
67
+ provider: z.ZodString;
68
+ message: z.ZodString;
69
+ url: z.ZodOptional<z.ZodString>;
70
+ }, z.core.$strip>], "type">;
71
+ }, z.core.$strip>;
72
+ };
73
+ handler: typeof handler;
74
+ };
75
+ export {};