@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,87 @@
1
+ import type { EnrichedExtra } from '@mcp-z/oauth-google';
2
+ import { z } from 'zod';
3
+ declare const inputSchema: z.ZodObject<{
4
+ to: z.ZodString | z.ZodOptional<z.ZodString>;
5
+ cc: z.ZodString | z.ZodOptional<z.ZodString>;
6
+ bcc: z.ZodString | z.ZodOptional<z.ZodString>;
7
+ subject: z.ZodDefault<z.ZodString>;
8
+ body: z.ZodString;
9
+ contentType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
10
+ text: "text";
11
+ html: "html";
12
+ }>>>;
13
+ }, z.core.$strip>;
14
+ declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
15
+ type: z.ZodLiteral<"success">;
16
+ item: z.ZodObject<{
17
+ id: z.ZodString;
18
+ threadId: z.ZodOptional<z.ZodString>;
19
+ sentAt: z.ZodString;
20
+ recipientCount: z.ZodNumber;
21
+ webLink: z.ZodOptional<z.ZodString>;
22
+ size: z.ZodOptional<z.ZodNumber>;
23
+ }, z.core.$strip>;
24
+ }, z.core.$strip>, z.ZodObject<{
25
+ type: z.ZodLiteral<"auth_required">;
26
+ provider: z.ZodString;
27
+ message: z.ZodString;
28
+ url: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>], "type">;
30
+ export type Input = z.infer<typeof inputSchema>;
31
+ export type Output = z.infer<typeof outputSchema>;
32
+ declare function handler(params: Input, extra: EnrichedExtra): Promise<{
33
+ content: {
34
+ type: "text";
35
+ text: string;
36
+ }[];
37
+ structuredContent: {
38
+ result: {
39
+ type: "success";
40
+ item: {
41
+ id: string;
42
+ sentAt: string;
43
+ recipientCount: number;
44
+ threadId?: string;
45
+ webLink?: string;
46
+ size?: number;
47
+ };
48
+ };
49
+ };
50
+ }>;
51
+ export default function createTool(): {
52
+ name: string;
53
+ config: {
54
+ readonly description: "Send an email message through Gmail";
55
+ readonly inputSchema: z.ZodObject<{
56
+ to: z.ZodString | z.ZodOptional<z.ZodString>;
57
+ cc: z.ZodString | z.ZodOptional<z.ZodString>;
58
+ bcc: z.ZodString | z.ZodOptional<z.ZodString>;
59
+ subject: z.ZodDefault<z.ZodString>;
60
+ body: z.ZodString;
61
+ contentType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
62
+ text: "text";
63
+ html: "html";
64
+ }>>>;
65
+ }, z.core.$strip>;
66
+ readonly outputSchema: z.ZodObject<{
67
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
68
+ type: z.ZodLiteral<"success">;
69
+ item: z.ZodObject<{
70
+ id: z.ZodString;
71
+ threadId: z.ZodOptional<z.ZodString>;
72
+ sentAt: z.ZodString;
73
+ recipientCount: z.ZodNumber;
74
+ webLink: z.ZodOptional<z.ZodString>;
75
+ size: z.ZodOptional<z.ZodNumber>;
76
+ }, z.core.$strip>;
77
+ }, z.core.$strip>, z.ZodObject<{
78
+ type: z.ZodLiteral<"auth_required">;
79
+ provider: z.ZodString;
80
+ message: z.ZodString;
81
+ url: z.ZodOptional<z.ZodString>;
82
+ }, z.core.$strip>], "type">;
83
+ }, z.core.$strip>;
84
+ };
85
+ handler: typeof handler;
86
+ };
87
+ export {};
@@ -0,0 +1,87 @@
1
+ import type { EnrichedExtra } from '@mcp-z/oauth-google';
2
+ import { z } from 'zod';
3
+ declare const inputSchema: z.ZodObject<{
4
+ to: z.ZodString | z.ZodOptional<z.ZodString>;
5
+ cc: z.ZodString | z.ZodOptional<z.ZodString>;
6
+ bcc: z.ZodString | z.ZodOptional<z.ZodString>;
7
+ subject: z.ZodDefault<z.ZodString>;
8
+ body: z.ZodString;
9
+ contentType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
10
+ text: "text";
11
+ html: "html";
12
+ }>>>;
13
+ }, z.core.$strip>;
14
+ declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
15
+ type: z.ZodLiteral<"success">;
16
+ item: z.ZodObject<{
17
+ id: z.ZodString;
18
+ threadId: z.ZodOptional<z.ZodString>;
19
+ sentAt: z.ZodString;
20
+ recipientCount: z.ZodNumber;
21
+ webLink: z.ZodOptional<z.ZodString>;
22
+ size: z.ZodOptional<z.ZodNumber>;
23
+ }, z.core.$strip>;
24
+ }, z.core.$strip>, z.ZodObject<{
25
+ type: z.ZodLiteral<"auth_required">;
26
+ provider: z.ZodString;
27
+ message: z.ZodString;
28
+ url: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>], "type">;
30
+ export type Input = z.infer<typeof inputSchema>;
31
+ export type Output = z.infer<typeof outputSchema>;
32
+ declare function handler(params: Input, extra: EnrichedExtra): Promise<{
33
+ content: {
34
+ type: "text";
35
+ text: string;
36
+ }[];
37
+ structuredContent: {
38
+ result: {
39
+ type: "success";
40
+ item: {
41
+ id: string;
42
+ sentAt: string;
43
+ recipientCount: number;
44
+ threadId?: string;
45
+ webLink?: string;
46
+ size?: number;
47
+ };
48
+ };
49
+ };
50
+ }>;
51
+ export default function createTool(): {
52
+ name: string;
53
+ config: {
54
+ readonly description: "Send an email message through Gmail";
55
+ readonly inputSchema: z.ZodObject<{
56
+ to: z.ZodString | z.ZodOptional<z.ZodString>;
57
+ cc: z.ZodString | z.ZodOptional<z.ZodString>;
58
+ bcc: z.ZodString | z.ZodOptional<z.ZodString>;
59
+ subject: z.ZodDefault<z.ZodString>;
60
+ body: z.ZodString;
61
+ contentType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
62
+ text: "text";
63
+ html: "html";
64
+ }>>>;
65
+ }, z.core.$strip>;
66
+ readonly outputSchema: z.ZodObject<{
67
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
68
+ type: z.ZodLiteral<"success">;
69
+ item: z.ZodObject<{
70
+ id: z.ZodString;
71
+ threadId: z.ZodOptional<z.ZodString>;
72
+ sentAt: z.ZodString;
73
+ recipientCount: z.ZodNumber;
74
+ webLink: z.ZodOptional<z.ZodString>;
75
+ size: z.ZodOptional<z.ZodNumber>;
76
+ }, z.core.$strip>;
77
+ }, z.core.$strip>, z.ZodObject<{
78
+ type: z.ZodLiteral<"auth_required">;
79
+ provider: z.ZodString;
80
+ message: z.ZodString;
81
+ url: z.ZodOptional<z.ZodString>;
82
+ }, z.core.$strip>], "type">;
83
+ }, z.core.$strip>;
84
+ };
85
+ handler: typeof handler;
86
+ };
87
+ export {};
@@ -0,0 +1,288 @@
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 _email = require("@mcp-z/email");
12
+ var _oauthgoogle = require("@mcp-z/oauth-google");
13
+ var _types = require("@modelcontextprotocol/sdk/types.js");
14
+ var _googleapis = require("googleapis");
15
+ var _zod = require("zod");
16
+ var _rfc822builder = require("../../email/composition/rfc822-builder.js");
17
+ var _base64encoding = require("../../lib/base64-encoding.js");
18
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
19
+ try {
20
+ var info = gen[key](arg);
21
+ var value = info.value;
22
+ } catch (error) {
23
+ reject(error);
24
+ return;
25
+ }
26
+ if (info.done) {
27
+ resolve(value);
28
+ } else {
29
+ Promise.resolve(value).then(_next, _throw);
30
+ }
31
+ }
32
+ function _async_to_generator(fn) {
33
+ return function() {
34
+ var self = this, args = arguments;
35
+ return new Promise(function(resolve, reject) {
36
+ var gen = fn.apply(self, args);
37
+ function _next(value) {
38
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
39
+ }
40
+ function _throw(err) {
41
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
42
+ }
43
+ _next(undefined);
44
+ });
45
+ };
46
+ }
47
+ function _instanceof(left, right) {
48
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
49
+ return !!right[Symbol.hasInstance](left);
50
+ } else {
51
+ return left instanceof right;
52
+ }
53
+ }
54
+ function _ts_generator(thisArg, body) {
55
+ var f, y, t, _ = {
56
+ label: 0,
57
+ sent: function() {
58
+ if (t[0] & 1) throw t[1];
59
+ return t[1];
60
+ },
61
+ trys: [],
62
+ ops: []
63
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
64
+ return d(g, "next", {
65
+ value: verb(0)
66
+ }), d(g, "throw", {
67
+ value: verb(1)
68
+ }), d(g, "return", {
69
+ value: verb(2)
70
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
71
+ value: function() {
72
+ return this;
73
+ }
74
+ }), g;
75
+ function verb(n) {
76
+ return function(v) {
77
+ return step([
78
+ n,
79
+ v
80
+ ]);
81
+ };
82
+ }
83
+ function step(op) {
84
+ if (f) throw new TypeError("Generator is already executing.");
85
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
86
+ 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;
87
+ if (y = 0, t) op = [
88
+ op[0] & 2,
89
+ t.value
90
+ ];
91
+ switch(op[0]){
92
+ case 0:
93
+ case 1:
94
+ t = op;
95
+ break;
96
+ case 4:
97
+ _.label++;
98
+ return {
99
+ value: op[1],
100
+ done: false
101
+ };
102
+ case 5:
103
+ _.label++;
104
+ y = op[1];
105
+ op = [
106
+ 0
107
+ ];
108
+ continue;
109
+ case 7:
110
+ op = _.ops.pop();
111
+ _.trys.pop();
112
+ continue;
113
+ default:
114
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
115
+ _ = 0;
116
+ continue;
117
+ }
118
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
119
+ _.label = op[1];
120
+ break;
121
+ }
122
+ if (op[0] === 6 && _.label < t[1]) {
123
+ _.label = t[1];
124
+ t = op;
125
+ break;
126
+ }
127
+ if (t && _.label < t[2]) {
128
+ _.label = t[2];
129
+ _.ops.push(op);
130
+ break;
131
+ }
132
+ if (t[2]) _.ops.pop();
133
+ _.trys.pop();
134
+ continue;
135
+ }
136
+ op = body.call(thisArg, _);
137
+ } catch (e) {
138
+ op = [
139
+ 6,
140
+ e
141
+ ];
142
+ y = 0;
143
+ } finally{
144
+ f = t = 0;
145
+ }
146
+ if (op[0] & 5) throw op[1];
147
+ return {
148
+ value: op[0] ? op[1] : void 0,
149
+ done: true
150
+ };
151
+ }
152
+ }
153
+ var AuthRequiredBranchSchema = _oauthgoogle.schemas.AuthRequiredBranchSchema;
154
+ var inputSchema = _zod.z.object({
155
+ to: (0, _email.createEmailRecipientsSchema)('to', true),
156
+ cc: (0, _email.createEmailRecipientsSchema)('cc', false),
157
+ bcc: (0, _email.createEmailRecipientsSchema)('bcc', false),
158
+ subject: _zod.z.string().describe('Message subject').default(''),
159
+ body: _zod.z.string().trim().min(1).describe('Email body content (plain text or HTML)'),
160
+ contentType: _email.ComposeContentTypeSchema
161
+ });
162
+ // Success branch schema
163
+ var successBranchSchema = _zod.z.object({
164
+ type: _zod.z.literal('success'),
165
+ item: (0, _email.createMessageResultSchema)('gmail')
166
+ });
167
+ // Output schema with auth_required support
168
+ var outputSchema = _zod.z.discriminatedUnion('type', [
169
+ successBranchSchema,
170
+ AuthRequiredBranchSchema
171
+ ]);
172
+ var config = {
173
+ description: 'Send an email message through Gmail',
174
+ inputSchema: inputSchema,
175
+ outputSchema: _zod.z.object({
176
+ result: outputSchema
177
+ })
178
+ };
179
+ function handler(params, extra) {
180
+ return _async_to_generator(function() {
181
+ var to, cc, bcc, subject, body, contentType, logger, msgArgs, raw, encodedMessage, gmail, sendRes, sendData, messageId, totalRecipients, result, error, message;
182
+ return _ts_generator(this, function(_state) {
183
+ switch(_state.label){
184
+ case 0:
185
+ to = params.to, cc = params.cc, bcc = params.bcc, subject = params.subject, body = params.body, contentType = params.contentType;
186
+ logger = extra.logger;
187
+ logger.info('gmail.message.send called', {
188
+ to: to,
189
+ subject: subject,
190
+ contentType: contentType
191
+ });
192
+ if (!to) {
193
+ throw new _types.McpError(_types.ErrorCode.InvalidParams, 'Missing required field: to');
194
+ }
195
+ _state.label = 1;
196
+ case 1:
197
+ _state.trys.push([
198
+ 1,
199
+ 3,
200
+ ,
201
+ 4
202
+ ]);
203
+ // Build RFC822 message - only include optional headers when defined to satisfy
204
+ // exactOptionalPropertyTypes (avoid passing `undefined` into optional props)
205
+ msgArgs = {
206
+ to: to,
207
+ body: body,
208
+ contentType: contentType
209
+ };
210
+ if (cc !== undefined) msgArgs.cc = cc;
211
+ if (bcc !== undefined) msgArgs.bcc = bcc;
212
+ if (subject !== undefined) msgArgs.subject = subject;
213
+ raw = (0, _rfc822builder.buildRfc822FromArgs)(msgArgs);
214
+ encodedMessage = (0, _base64encoding.b64url)(raw);
215
+ gmail = _googleapis.google.gmail({
216
+ version: 'v1',
217
+ auth: extra.authContext.auth
218
+ });
219
+ return [
220
+ 4,
221
+ gmail.users.messages.send({
222
+ userId: 'me',
223
+ requestBody: {
224
+ raw: encodedMessage
225
+ }
226
+ })
227
+ ];
228
+ case 2:
229
+ sendRes = _state.sent();
230
+ sendData = sendRes.data;
231
+ messageId = sendData.id || 'unknown';
232
+ logger.info('Gmail: sent message successfully', {
233
+ id: messageId
234
+ });
235
+ logger.info('gmail.message.send result (typed)', {
236
+ to: to,
237
+ subject: subject,
238
+ messageId: messageId
239
+ });
240
+ totalRecipients = (Array.isArray(to) ? to.length : 1) + (cc ? Array.isArray(cc) ? cc.length : 1 : 0) + (bcc ? Array.isArray(bcc) ? bcc.length : 1 : 0);
241
+ result = {
242
+ type: 'success',
243
+ item: {
244
+ id: messageId,
245
+ sentAt: new Date().toISOString(),
246
+ recipientCount: totalRecipients,
247
+ webLink: "https://mail.google.com/mail/u/0/#sent/".concat(messageId)
248
+ }
249
+ };
250
+ return [
251
+ 2,
252
+ {
253
+ content: [
254
+ {
255
+ type: 'text',
256
+ text: JSON.stringify(result)
257
+ }
258
+ ],
259
+ structuredContent: {
260
+ result: result
261
+ }
262
+ }
263
+ ];
264
+ case 3:
265
+ error = _state.sent();
266
+ message = _instanceof(error, Error) ? error.message : String(error);
267
+ logger.error('gmail.message.send error', {
268
+ error: message
269
+ });
270
+ throw new _types.McpError(_types.ErrorCode.InternalError, "Error sending message: ".concat(message), {
271
+ stack: _instanceof(error, Error) ? error.stack : undefined
272
+ });
273
+ case 4:
274
+ return [
275
+ 2
276
+ ];
277
+ }
278
+ });
279
+ })();
280
+ }
281
+ function createTool() {
282
+ return {
283
+ name: 'message-send',
284
+ config: config,
285
+ handler: handler
286
+ };
287
+ }
288
+ /* 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/message-send.ts"],"sourcesContent":["import { ComposeContentTypeSchema, createEmailRecipientsSchema, createMessageResultSchema } from '@mcp-z/email';\nimport 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 { buildRfc822FromArgs } from '../../email/composition/rfc822-builder.js';\nimport { b64url } from '../../lib/base64-encoding.js';\n\nconst inputSchema = z.object({\n to: createEmailRecipientsSchema('to', true),\n cc: createEmailRecipientsSchema('cc', false),\n bcc: createEmailRecipientsSchema('bcc', false),\n subject: z.string().describe('Message subject').default(''),\n body: z.string().trim().min(1).describe('Email body content (plain text or HTML)'),\n contentType: ComposeContentTypeSchema,\n});\n\n// Success branch schema\nconst successBranchSchema = z.object({\n type: z.literal('success'),\n item: createMessageResultSchema('gmail'),\n});\n\n// Output schema with auth_required support\nconst outputSchema = z.discriminatedUnion('type', [successBranchSchema, AuthRequiredBranchSchema]);\n\nconst config = {\n description: 'Send an email message through Gmail',\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(params: Input, extra: EnrichedExtra) {\n const { to, cc, bcc, subject, body, contentType } = params;\n const logger = extra.logger;\n logger.info('gmail.message.send called', { to, subject, contentType });\n\n if (!to) {\n throw new McpError(ErrorCode.InvalidParams, 'Missing required field: to');\n }\n\n try {\n // Build RFC822 message - only include optional headers when defined to satisfy\n // exactOptionalPropertyTypes (avoid passing `undefined` into optional props)\n const msgArgs: { to: string; cc?: string; bcc?: string; subject?: string; body: string; contentType: 'text' | 'html' } = { to, body, contentType };\n if (cc !== undefined) msgArgs.cc = cc;\n if (bcc !== undefined) msgArgs.bcc = bcc;\n if (subject !== undefined) msgArgs.subject = subject;\n\n const raw = buildRfc822FromArgs(msgArgs);\n const encodedMessage = b64url(raw);\n\n const gmail = google.gmail({ version: 'v1', auth: extra.authContext.auth });\n\n const sendRes = await gmail.users.messages.send({\n userId: 'me',\n requestBody: { raw: encodedMessage },\n });\n const sendData = sendRes.data;\n const messageId = sendData.id || 'unknown';\n logger.info('Gmail: sent message successfully', { id: messageId });\n logger.info('gmail.message.send result (typed)', { to, subject, messageId });\n\n const totalRecipients = (Array.isArray(to) ? to.length : 1) + (cc ? (Array.isArray(cc) ? cc.length : 1) : 0) + (bcc ? (Array.isArray(bcc) ? bcc.length : 1) : 0);\n const result: Output = {\n type: 'success' as const,\n item: {\n id: messageId,\n sentAt: new Date().toISOString(),\n recipientCount: totalRecipients,\n webLink: `https://mail.google.com/mail/u/0/#sent/${messageId}`,\n },\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.message.send error', { error: message });\n\n throw new McpError(ErrorCode.InternalError, `Error sending message: ${message}`, {\n stack: error instanceof Error ? error.stack : undefined,\n });\n }\n}\n\nexport default function createTool() {\n return {\n name: 'message-send',\n config,\n handler,\n } satisfies ToolModule;\n}\n"],"names":["createTool","AuthRequiredBranchSchema","schemas","inputSchema","z","object","to","createEmailRecipientsSchema","cc","bcc","subject","string","describe","default","body","trim","min","contentType","ComposeContentTypeSchema","successBranchSchema","type","literal","item","createMessageResultSchema","outputSchema","discriminatedUnion","config","description","result","handler","params","extra","logger","msgArgs","raw","encodedMessage","gmail","sendRes","sendData","messageId","totalRecipients","error","message","info","McpError","ErrorCode","InvalidParams","undefined","buildRfc822FromArgs","b64url","google","version","auth","authContext","users","messages","send","userId","requestBody","data","id","Array","isArray","length","sentAt","Date","toISOString","recipientCount","webLink","content","text","JSON","stringify","structuredContent","Error","String","InternalError","stack","name"],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import type { EnrichedExtra } from '@mcp-z/oauth-google';
2
+ import { z } from 'zod';
3
+ import type { StorageExtra } from '../../types.js';
4
+ declare const inputSchema: z.ZodObject<{
5
+ query: z.ZodOptional<z.ZodType<import("../../types.js").GmailQuery, unknown, z.core.$ZodTypeInternals<import("../../types.js").GmailQuery, unknown>>>;
6
+ maxItems: z.ZodDefault<z.ZodNumber>;
7
+ filename: z.ZodDefault<z.ZodString>;
8
+ contentType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
9
+ text: "text";
10
+ html: "html";
11
+ }>>>;
12
+ excludeThreadHistory: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
13
+ }, z.core.$strip>;
14
+ declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
15
+ type: z.ZodLiteral<"success">;
16
+ uri: z.ZodString;
17
+ filename: z.ZodString;
18
+ rowCount: z.ZodNumber;
19
+ truncated: z.ZodBoolean;
20
+ }, z.core.$strip>, z.ZodObject<{
21
+ type: z.ZodLiteral<"auth_required">;
22
+ provider: z.ZodString;
23
+ message: z.ZodString;
24
+ url: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strip>], "type">;
26
+ export type Input = z.infer<typeof inputSchema>;
27
+ export type Output = z.infer<typeof outputSchema>;
28
+ /**
29
+ * Handler for gmail-messages-export-csv tool
30
+ *
31
+ * CRITICAL: Streaming implementation per user requirements
32
+ * - Generate UUID upfront
33
+ * - Write CSV header immediately
34
+ * - Append rows as batches arrive
35
+ * - Delete partial file on error
36
+ * - NO RETRIES (fail fast on error)
37
+ */
38
+ declare function handler({ query, maxItems, filename, contentType, excludeThreadHistory }: Input, extra: EnrichedExtra & StorageExtra): Promise<{
39
+ content: {
40
+ type: "text";
41
+ text: string;
42
+ }[];
43
+ structuredContent: {
44
+ result: {
45
+ type: "success";
46
+ uri: string;
47
+ filename: string;
48
+ rowCount: number;
49
+ truncated: boolean;
50
+ };
51
+ };
52
+ }>;
53
+ export default function createTool(): {
54
+ name: string;
55
+ config: {
56
+ readonly description: "Export Gmail messages to CSV with streaming pagination. Returns file URI. Use query-syntax prompt for query reference.";
57
+ readonly inputSchema: z.ZodObject<{
58
+ query: z.ZodOptional<z.ZodType<import("../../types.js").GmailQuery, unknown, z.core.$ZodTypeInternals<import("../../types.js").GmailQuery, unknown>>>;
59
+ maxItems: z.ZodDefault<z.ZodNumber>;
60
+ filename: z.ZodDefault<z.ZodString>;
61
+ contentType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
62
+ text: "text";
63
+ html: "html";
64
+ }>>>;
65
+ excludeThreadHistory: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
66
+ }, z.core.$strip>;
67
+ readonly outputSchema: z.ZodObject<{
68
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
69
+ type: z.ZodLiteral<"success">;
70
+ uri: z.ZodString;
71
+ filename: z.ZodString;
72
+ rowCount: z.ZodNumber;
73
+ truncated: z.ZodBoolean;
74
+ }, z.core.$strip>, z.ZodObject<{
75
+ type: z.ZodLiteral<"auth_required">;
76
+ provider: z.ZodString;
77
+ message: z.ZodString;
78
+ url: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>], "type">;
80
+ }, z.core.$strip>;
81
+ };
82
+ handler: typeof handler;
83
+ };
84
+ export {};
@@ -0,0 +1,84 @@
1
+ import type { EnrichedExtra } from '@mcp-z/oauth-google';
2
+ import { z } from 'zod';
3
+ import type { StorageExtra } from '../../types.js';
4
+ declare const inputSchema: z.ZodObject<{
5
+ query: z.ZodOptional<z.ZodType<import("../../types.js").GmailQuery, unknown, z.core.$ZodTypeInternals<import("../../types.js").GmailQuery, unknown>>>;
6
+ maxItems: z.ZodDefault<z.ZodNumber>;
7
+ filename: z.ZodDefault<z.ZodString>;
8
+ contentType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
9
+ text: "text";
10
+ html: "html";
11
+ }>>>;
12
+ excludeThreadHistory: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
13
+ }, z.core.$strip>;
14
+ declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
15
+ type: z.ZodLiteral<"success">;
16
+ uri: z.ZodString;
17
+ filename: z.ZodString;
18
+ rowCount: z.ZodNumber;
19
+ truncated: z.ZodBoolean;
20
+ }, z.core.$strip>, z.ZodObject<{
21
+ type: z.ZodLiteral<"auth_required">;
22
+ provider: z.ZodString;
23
+ message: z.ZodString;
24
+ url: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strip>], "type">;
26
+ export type Input = z.infer<typeof inputSchema>;
27
+ export type Output = z.infer<typeof outputSchema>;
28
+ /**
29
+ * Handler for gmail-messages-export-csv tool
30
+ *
31
+ * CRITICAL: Streaming implementation per user requirements
32
+ * - Generate UUID upfront
33
+ * - Write CSV header immediately
34
+ * - Append rows as batches arrive
35
+ * - Delete partial file on error
36
+ * - NO RETRIES (fail fast on error)
37
+ */
38
+ declare function handler({ query, maxItems, filename, contentType, excludeThreadHistory }: Input, extra: EnrichedExtra & StorageExtra): Promise<{
39
+ content: {
40
+ type: "text";
41
+ text: string;
42
+ }[];
43
+ structuredContent: {
44
+ result: {
45
+ type: "success";
46
+ uri: string;
47
+ filename: string;
48
+ rowCount: number;
49
+ truncated: boolean;
50
+ };
51
+ };
52
+ }>;
53
+ export default function createTool(): {
54
+ name: string;
55
+ config: {
56
+ readonly description: "Export Gmail messages to CSV with streaming pagination. Returns file URI. Use query-syntax prompt for query reference.";
57
+ readonly inputSchema: z.ZodObject<{
58
+ query: z.ZodOptional<z.ZodType<import("../../types.js").GmailQuery, unknown, z.core.$ZodTypeInternals<import("../../types.js").GmailQuery, unknown>>>;
59
+ maxItems: z.ZodDefault<z.ZodNumber>;
60
+ filename: z.ZodDefault<z.ZodString>;
61
+ contentType: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
62
+ text: "text";
63
+ html: "html";
64
+ }>>>;
65
+ excludeThreadHistory: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
66
+ }, z.core.$strip>;
67
+ readonly outputSchema: z.ZodObject<{
68
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
69
+ type: z.ZodLiteral<"success">;
70
+ uri: z.ZodString;
71
+ filename: z.ZodString;
72
+ rowCount: z.ZodNumber;
73
+ truncated: z.ZodBoolean;
74
+ }, z.core.$strip>, z.ZodObject<{
75
+ type: z.ZodLiteral<"auth_required">;
76
+ provider: z.ZodString;
77
+ message: z.ZodString;
78
+ url: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>], "type">;
80
+ }, z.core.$strip>;
81
+ };
82
+ handler: typeof handler;
83
+ };
84
+ export {};