@mcp-z/mcp-sheets 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 (363) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +181 -0
  3. package/bin/server.js +5 -0
  4. package/dist/cjs/constants.d.cts +7 -0
  5. package/dist/cjs/constants.d.ts +7 -0
  6. package/dist/cjs/constants.js +18 -0
  7. package/dist/cjs/constants.js.map +1 -0
  8. package/dist/cjs/index.d.cts +8 -0
  9. package/dist/cjs/index.d.ts +8 -0
  10. package/dist/cjs/index.js +314 -0
  11. package/dist/cjs/index.js.map +1 -0
  12. package/dist/cjs/lib/create-store.d.cts +2 -0
  13. package/dist/cjs/lib/create-store.d.ts +2 -0
  14. package/dist/cjs/lib/create-store.js +166 -0
  15. package/dist/cjs/lib/create-store.js.map +1 -0
  16. package/dist/cjs/mcp/index.d.cts +3 -0
  17. package/dist/cjs/mcp/index.d.ts +3 -0
  18. package/dist/cjs/mcp/index.js +66 -0
  19. package/dist/cjs/mcp/index.js.map +1 -0
  20. package/dist/cjs/mcp/prompts/a1-notation.d.cts +19 -0
  21. package/dist/cjs/mcp/prompts/a1-notation.d.ts +19 -0
  22. package/dist/cjs/mcp/prompts/a1-notation.js +169 -0
  23. package/dist/cjs/mcp/prompts/a1-notation.js.map +1 -0
  24. package/dist/cjs/mcp/prompts/index.d.cts +1 -0
  25. package/dist/cjs/mcp/prompts/index.d.ts +1 -0
  26. package/dist/cjs/mcp/prompts/index.js +17 -0
  27. package/dist/cjs/mcp/prompts/index.js.map +1 -0
  28. package/dist/cjs/mcp/resources/index.d.cts +1 -0
  29. package/dist/cjs/mcp/resources/index.d.ts +1 -0
  30. package/dist/cjs/mcp/resources/index.js +17 -0
  31. package/dist/cjs/mcp/resources/index.js.map +1 -0
  32. package/dist/cjs/mcp/resources/spreadsheet.d.cts +2 -0
  33. package/dist/cjs/mcp/resources/spreadsheet.d.ts +2 -0
  34. package/dist/cjs/mcp/resources/spreadsheet.js +258 -0
  35. package/dist/cjs/mcp/resources/spreadsheet.js.map +1 -0
  36. package/dist/cjs/mcp/tools/cells-format.d.cts +144 -0
  37. package/dist/cjs/mcp/tools/cells-format.d.ts +144 -0
  38. package/dist/cjs/mcp/tools/cells-format.js +484 -0
  39. package/dist/cjs/mcp/tools/cells-format.js.map +1 -0
  40. package/dist/cjs/mcp/tools/chart-create.d.cts +94 -0
  41. package/dist/cjs/mcp/tools/chart-create.d.ts +94 -0
  42. package/dist/cjs/mcp/tools/chart-create.js +575 -0
  43. package/dist/cjs/mcp/tools/chart-create.js.map +1 -0
  44. package/dist/cjs/mcp/tools/columns-get.d.cts +55 -0
  45. package/dist/cjs/mcp/tools/columns-get.d.ts +55 -0
  46. package/dist/cjs/mcp/tools/columns-get.js +289 -0
  47. package/dist/cjs/mcp/tools/columns-get.js.map +1 -0
  48. package/dist/cjs/mcp/tools/columns-update.d.cts +86 -0
  49. package/dist/cjs/mcp/tools/columns-update.d.ts +86 -0
  50. package/dist/cjs/mcp/tools/columns-update.js +482 -0
  51. package/dist/cjs/mcp/tools/columns-update.js.map +1 -0
  52. package/dist/cjs/mcp/tools/csv-get-columns.d.cts +43 -0
  53. package/dist/cjs/mcp/tools/csv-get-columns.d.ts +43 -0
  54. package/dist/cjs/mcp/tools/csv-get-columns.js +386 -0
  55. package/dist/cjs/mcp/tools/csv-get-columns.js.map +1 -0
  56. package/dist/cjs/mcp/tools/dimensions-batch-update.d.cts +118 -0
  57. package/dist/cjs/mcp/tools/dimensions-batch-update.d.ts +118 -0
  58. package/dist/cjs/mcp/tools/dimensions-batch-update.js +504 -0
  59. package/dist/cjs/mcp/tools/dimensions-batch-update.js.map +1 -0
  60. package/dist/cjs/mcp/tools/dimensions-move.d.cts +86 -0
  61. package/dist/cjs/mcp/tools/dimensions-move.d.ts +86 -0
  62. package/dist/cjs/mcp/tools/dimensions-move.js +359 -0
  63. package/dist/cjs/mcp/tools/dimensions-move.js.map +1 -0
  64. package/dist/cjs/mcp/tools/index.d.cts +26 -0
  65. package/dist/cjs/mcp/tools/index.d.ts +26 -0
  66. package/dist/cjs/mcp/tools/index.js +122 -0
  67. package/dist/cjs/mcp/tools/index.js.map +1 -0
  68. package/dist/cjs/mcp/tools/lib/dimension-operations.d.cts +48 -0
  69. package/dist/cjs/mcp/tools/lib/dimension-operations.d.ts +48 -0
  70. package/dist/cjs/mcp/tools/lib/dimension-operations.js +177 -0
  71. package/dist/cjs/mcp/tools/lib/dimension-operations.js.map +1 -0
  72. package/dist/cjs/mcp/tools/rows-append.d.cts +58 -0
  73. package/dist/cjs/mcp/tools/rows-append.d.ts +58 -0
  74. package/dist/cjs/mcp/tools/rows-append.js +335 -0
  75. package/dist/cjs/mcp/tools/rows-append.js.map +1 -0
  76. package/dist/cjs/mcp/tools/rows-csv-append.d.cts +67 -0
  77. package/dist/cjs/mcp/tools/rows-csv-append.d.ts +67 -0
  78. package/dist/cjs/mcp/tools/rows-csv-append.js +859 -0
  79. package/dist/cjs/mcp/tools/rows-csv-append.js.map +1 -0
  80. package/dist/cjs/mcp/tools/rows-get.d.cts +56 -0
  81. package/dist/cjs/mcp/tools/rows-get.d.ts +56 -0
  82. package/dist/cjs/mcp/tools/rows-get.js +292 -0
  83. package/dist/cjs/mcp/tools/rows-get.js.map +1 -0
  84. package/dist/cjs/mcp/tools/sheet-copy-to.d.cts +68 -0
  85. package/dist/cjs/mcp/tools/sheet-copy-to.d.ts +68 -0
  86. package/dist/cjs/mcp/tools/sheet-copy-to.js +341 -0
  87. package/dist/cjs/mcp/tools/sheet-copy-to.js.map +1 -0
  88. package/dist/cjs/mcp/tools/sheet-copy.d.cts +80 -0
  89. package/dist/cjs/mcp/tools/sheet-copy.d.ts +80 -0
  90. package/dist/cjs/mcp/tools/sheet-copy.js +394 -0
  91. package/dist/cjs/mcp/tools/sheet-copy.js.map +1 -0
  92. package/dist/cjs/mcp/tools/sheet-create.d.cts +56 -0
  93. package/dist/cjs/mcp/tools/sheet-create.d.ts +56 -0
  94. package/dist/cjs/mcp/tools/sheet-create.js +283 -0
  95. package/dist/cjs/mcp/tools/sheet-create.js.map +1 -0
  96. package/dist/cjs/mcp/tools/sheet-delete.d.cts +62 -0
  97. package/dist/cjs/mcp/tools/sheet-delete.d.ts +62 -0
  98. package/dist/cjs/mcp/tools/sheet-delete.js +341 -0
  99. package/dist/cjs/mcp/tools/sheet-delete.js.map +1 -0
  100. package/dist/cjs/mcp/tools/sheet-find.d.cts +48 -0
  101. package/dist/cjs/mcp/tools/sheet-find.d.ts +48 -0
  102. package/dist/cjs/mcp/tools/sheet-find.js +261 -0
  103. package/dist/cjs/mcp/tools/sheet-find.js.map +1 -0
  104. package/dist/cjs/mcp/tools/sheet-rename.d.cts +60 -0
  105. package/dist/cjs/mcp/tools/sheet-rename.d.ts +60 -0
  106. package/dist/cjs/mcp/tools/sheet-rename.js +305 -0
  107. package/dist/cjs/mcp/tools/sheet-rename.js.map +1 -0
  108. package/dist/cjs/mcp/tools/spreadsheet-copy.d.cts +58 -0
  109. package/dist/cjs/mcp/tools/spreadsheet-copy.d.ts +58 -0
  110. package/dist/cjs/mcp/tools/spreadsheet-copy.js +319 -0
  111. package/dist/cjs/mcp/tools/spreadsheet-copy.js.map +1 -0
  112. package/dist/cjs/mcp/tools/spreadsheet-create.d.cts +52 -0
  113. package/dist/cjs/mcp/tools/spreadsheet-create.d.ts +52 -0
  114. package/dist/cjs/mcp/tools/spreadsheet-create.js +270 -0
  115. package/dist/cjs/mcp/tools/spreadsheet-create.js.map +1 -0
  116. package/dist/cjs/mcp/tools/spreadsheet-find.d.cts +58 -0
  117. package/dist/cjs/mcp/tools/spreadsheet-find.d.ts +58 -0
  118. package/dist/cjs/mcp/tools/spreadsheet-find.js +334 -0
  119. package/dist/cjs/mcp/tools/spreadsheet-find.js.map +1 -0
  120. package/dist/cjs/mcp/tools/spreadsheet-rename.d.cts +56 -0
  121. package/dist/cjs/mcp/tools/spreadsheet-rename.d.ts +56 -0
  122. package/dist/cjs/mcp/tools/spreadsheet-rename.js +289 -0
  123. package/dist/cjs/mcp/tools/spreadsheet-rename.js.map +1 -0
  124. package/dist/cjs/mcp/tools/validation-set.d.cts +144 -0
  125. package/dist/cjs/mcp/tools/validation-set.d.ts +144 -0
  126. package/dist/cjs/mcp/tools/validation-set.js +564 -0
  127. package/dist/cjs/mcp/tools/validation-set.js.map +1 -0
  128. package/dist/cjs/mcp/tools/values-batch-update.d.cts +102 -0
  129. package/dist/cjs/mcp/tools/values-batch-update.d.ts +102 -0
  130. package/dist/cjs/mcp/tools/values-batch-update.js +409 -0
  131. package/dist/cjs/mcp/tools/values-batch-update.js.map +1 -0
  132. package/dist/cjs/mcp/tools/values-clear.d.cts +56 -0
  133. package/dist/cjs/mcp/tools/values-clear.d.ts +56 -0
  134. package/dist/cjs/mcp/tools/values-clear.js +308 -0
  135. package/dist/cjs/mcp/tools/values-clear.js.map +1 -0
  136. package/dist/cjs/mcp/tools/values-csv-update.d.cts +75 -0
  137. package/dist/cjs/mcp/tools/values-csv-update.d.ts +75 -0
  138. package/dist/cjs/mcp/tools/values-csv-update.js +500 -0
  139. package/dist/cjs/mcp/tools/values-csv-update.js.map +1 -0
  140. package/dist/cjs/mcp/tools/values-replace.d.cts +68 -0
  141. package/dist/cjs/mcp/tools/values-replace.d.ts +68 -0
  142. package/dist/cjs/mcp/tools/values-replace.js +378 -0
  143. package/dist/cjs/mcp/tools/values-replace.js.map +1 -0
  144. package/dist/cjs/mcp/tools/values-search.d.cts +74 -0
  145. package/dist/cjs/mcp/tools/values-search.d.ts +74 -0
  146. package/dist/cjs/mcp/tools/values-search.js +470 -0
  147. package/dist/cjs/mcp/tools/values-search.js.map +1 -0
  148. package/dist/cjs/package.json +1 -0
  149. package/dist/cjs/schemas/index.d.cts +14 -0
  150. package/dist/cjs/schemas/index.d.ts +14 -0
  151. package/dist/cjs/schemas/index.js +64 -0
  152. package/dist/cjs/schemas/index.js.map +1 -0
  153. package/dist/cjs/setup/config.d.cts +44 -0
  154. package/dist/cjs/setup/config.d.ts +44 -0
  155. package/dist/cjs/setup/config.js +201 -0
  156. package/dist/cjs/setup/config.js.map +1 -0
  157. package/dist/cjs/setup/http.d.cts +8 -0
  158. package/dist/cjs/setup/http.d.ts +8 -0
  159. package/dist/cjs/setup/http.js +260 -0
  160. package/dist/cjs/setup/http.js.map +1 -0
  161. package/dist/cjs/setup/index.d.cts +5 -0
  162. package/dist/cjs/setup/index.d.ts +5 -0
  163. package/dist/cjs/setup/index.js +46 -0
  164. package/dist/cjs/setup/index.js.map +1 -0
  165. package/dist/cjs/setup/oauth-google.d.cts +54 -0
  166. package/dist/cjs/setup/oauth-google.d.ts +54 -0
  167. package/dist/cjs/setup/oauth-google.js +332 -0
  168. package/dist/cjs/setup/oauth-google.js.map +1 -0
  169. package/dist/cjs/setup/runtime.d.cts +10 -0
  170. package/dist/cjs/setup/runtime.d.ts +10 -0
  171. package/dist/cjs/setup/runtime.js +353 -0
  172. package/dist/cjs/setup/runtime.js.map +1 -0
  173. package/dist/cjs/setup/stdio.d.cts +7 -0
  174. package/dist/cjs/setup/stdio.d.ts +7 -0
  175. package/dist/cjs/setup/stdio.js +239 -0
  176. package/dist/cjs/setup/stdio.js.map +1 -0
  177. package/dist/cjs/spreadsheet/column-utilities.d.cts +1 -0
  178. package/dist/cjs/spreadsheet/column-utilities.d.ts +1 -0
  179. package/dist/cjs/spreadsheet/column-utilities.js +21 -0
  180. package/dist/cjs/spreadsheet/column-utilities.js.map +1 -0
  181. package/dist/cjs/spreadsheet/csv-streaming.d.cts +19 -0
  182. package/dist/cjs/spreadsheet/csv-streaming.d.ts +19 -0
  183. package/dist/cjs/spreadsheet/csv-streaming.js +188 -0
  184. package/dist/cjs/spreadsheet/csv-streaming.js.map +1 -0
  185. package/dist/cjs/spreadsheet/data-operations.d.cts +115 -0
  186. package/dist/cjs/spreadsheet/data-operations.d.ts +115 -0
  187. package/dist/cjs/spreadsheet/data-operations.js +1515 -0
  188. package/dist/cjs/spreadsheet/data-operations.js.map +1 -0
  189. package/dist/cjs/spreadsheet/deduplication-utils.d.cts +31 -0
  190. package/dist/cjs/spreadsheet/deduplication-utils.d.ts +31 -0
  191. package/dist/cjs/spreadsheet/deduplication-utils.js +65 -0
  192. package/dist/cjs/spreadsheet/deduplication-utils.js.map +1 -0
  193. package/dist/cjs/spreadsheet/range-operations.d.cts +184 -0
  194. package/dist/cjs/spreadsheet/range-operations.d.ts +184 -0
  195. package/dist/cjs/spreadsheet/range-operations.js +672 -0
  196. package/dist/cjs/spreadsheet/range-operations.js.map +1 -0
  197. package/dist/cjs/spreadsheet/sheet-operations.d.cts +30 -0
  198. package/dist/cjs/spreadsheet/sheet-operations.d.ts +30 -0
  199. package/dist/cjs/spreadsheet/sheet-operations.js +811 -0
  200. package/dist/cjs/spreadsheet/sheet-operations.js.map +1 -0
  201. package/dist/cjs/spreadsheet/spreadsheet-management.d.cts +21 -0
  202. package/dist/cjs/spreadsheet/spreadsheet-management.d.ts +21 -0
  203. package/dist/cjs/spreadsheet/spreadsheet-management.js +310 -0
  204. package/dist/cjs/spreadsheet/spreadsheet-management.js.map +1 -0
  205. package/dist/cjs/types.d.cts +53 -0
  206. package/dist/cjs/types.d.ts +53 -0
  207. package/dist/cjs/types.js +5 -0
  208. package/dist/cjs/types.js.map +1 -0
  209. package/dist/esm/constants.d.ts +7 -0
  210. package/dist/esm/constants.js +7 -0
  211. package/dist/esm/constants.js.map +1 -0
  212. package/dist/esm/index.d.ts +8 -0
  213. package/dist/esm/index.js +34 -0
  214. package/dist/esm/index.js.map +1 -0
  215. package/dist/esm/lib/create-store.d.ts +2 -0
  216. package/dist/esm/lib/create-store.js +6 -0
  217. package/dist/esm/lib/create-store.js.map +1 -0
  218. package/dist/esm/mcp/index.d.ts +3 -0
  219. package/dist/esm/mcp/index.js +6 -0
  220. package/dist/esm/mcp/index.js.map +1 -0
  221. package/dist/esm/mcp/prompts/a1-notation.d.ts +19 -0
  222. package/dist/esm/mcp/prompts/a1-notation.js +49 -0
  223. package/dist/esm/mcp/prompts/a1-notation.js.map +1 -0
  224. package/dist/esm/mcp/prompts/index.d.ts +1 -0
  225. package/dist/esm/mcp/prompts/index.js +1 -0
  226. package/dist/esm/mcp/prompts/index.js.map +1 -0
  227. package/dist/esm/mcp/resources/index.d.ts +1 -0
  228. package/dist/esm/mcp/resources/index.js +1 -0
  229. package/dist/esm/mcp/resources/index.js.map +1 -0
  230. package/dist/esm/mcp/resources/spreadsheet.d.ts +2 -0
  231. package/dist/esm/mcp/resources/spreadsheet.js +88 -0
  232. package/dist/esm/mcp/resources/spreadsheet.js.map +1 -0
  233. package/dist/esm/mcp/tools/cells-format.d.ts +144 -0
  234. package/dist/esm/mcp/tools/cells-format.js +288 -0
  235. package/dist/esm/mcp/tools/cells-format.js.map +1 -0
  236. package/dist/esm/mcp/tools/chart-create.d.ts +94 -0
  237. package/dist/esm/mcp/tools/chart-create.js +408 -0
  238. package/dist/esm/mcp/tools/chart-create.js.map +1 -0
  239. package/dist/esm/mcp/tools/columns-get.d.ts +55 -0
  240. package/dist/esm/mcp/tools/columns-get.js +113 -0
  241. package/dist/esm/mcp/tools/columns-get.js.map +1 -0
  242. package/dist/esm/mcp/tools/columns-update.d.ts +86 -0
  243. package/dist/esm/mcp/tools/columns-update.js +296 -0
  244. package/dist/esm/mcp/tools/columns-update.js.map +1 -0
  245. package/dist/esm/mcp/tools/csv-get-columns.d.ts +43 -0
  246. package/dist/esm/mcp/tools/csv-get-columns.js +95 -0
  247. package/dist/esm/mcp/tools/csv-get-columns.js.map +1 -0
  248. package/dist/esm/mcp/tools/dimensions-batch-update.d.ts +118 -0
  249. package/dist/esm/mcp/tools/dimensions-batch-update.js +321 -0
  250. package/dist/esm/mcp/tools/dimensions-batch-update.js.map +1 -0
  251. package/dist/esm/mcp/tools/dimensions-move.d.ts +86 -0
  252. package/dist/esm/mcp/tools/dimensions-move.js +183 -0
  253. package/dist/esm/mcp/tools/dimensions-move.js.map +1 -0
  254. package/dist/esm/mcp/tools/index.d.ts +26 -0
  255. package/dist/esm/mcp/tools/index.js +26 -0
  256. package/dist/esm/mcp/tools/index.js.map +1 -0
  257. package/dist/esm/mcp/tools/lib/dimension-operations.d.ts +48 -0
  258. package/dist/esm/mcp/tools/lib/dimension-operations.js +93 -0
  259. package/dist/esm/mcp/tools/lib/dimension-operations.js.map +1 -0
  260. package/dist/esm/mcp/tools/rows-append.d.ts +58 -0
  261. package/dist/esm/mcp/tools/rows-append.js +151 -0
  262. package/dist/esm/mcp/tools/rows-append.js.map +1 -0
  263. package/dist/esm/mcp/tools/rows-csv-append.d.ts +67 -0
  264. package/dist/esm/mcp/tools/rows-csv-append.js +342 -0
  265. package/dist/esm/mcp/tools/rows-csv-append.js.map +1 -0
  266. package/dist/esm/mcp/tools/rows-get.d.ts +56 -0
  267. package/dist/esm/mcp/tools/rows-get.js +116 -0
  268. package/dist/esm/mcp/tools/rows-get.js.map +1 -0
  269. package/dist/esm/mcp/tools/sheet-copy-to.d.ts +68 -0
  270. package/dist/esm/mcp/tools/sheet-copy-to.js +156 -0
  271. package/dist/esm/mcp/tools/sheet-copy-to.js.map +1 -0
  272. package/dist/esm/mcp/tools/sheet-copy.d.ts +80 -0
  273. package/dist/esm/mcp/tools/sheet-copy.js +177 -0
  274. package/dist/esm/mcp/tools/sheet-copy.js.map +1 -0
  275. package/dist/esm/mcp/tools/sheet-create.d.ts +56 -0
  276. package/dist/esm/mcp/tools/sheet-create.js +110 -0
  277. package/dist/esm/mcp/tools/sheet-create.js.map +1 -0
  278. package/dist/esm/mcp/tools/sheet-delete.d.ts +62 -0
  279. package/dist/esm/mcp/tools/sheet-delete.js +125 -0
  280. package/dist/esm/mcp/tools/sheet-delete.js.map +1 -0
  281. package/dist/esm/mcp/tools/sheet-find.d.ts +48 -0
  282. package/dist/esm/mcp/tools/sheet-find.js +90 -0
  283. package/dist/esm/mcp/tools/sheet-find.js.map +1 -0
  284. package/dist/esm/mcp/tools/sheet-rename.d.ts +60 -0
  285. package/dist/esm/mcp/tools/sheet-rename.js +128 -0
  286. package/dist/esm/mcp/tools/sheet-rename.js.map +1 -0
  287. package/dist/esm/mcp/tools/spreadsheet-copy.d.ts +58 -0
  288. package/dist/esm/mcp/tools/spreadsheet-copy.js +117 -0
  289. package/dist/esm/mcp/tools/spreadsheet-copy.js.map +1 -0
  290. package/dist/esm/mcp/tools/spreadsheet-create.d.ts +52 -0
  291. package/dist/esm/mcp/tools/spreadsheet-create.js +97 -0
  292. package/dist/esm/mcp/tools/spreadsheet-create.js.map +1 -0
  293. package/dist/esm/mcp/tools/spreadsheet-find.d.ts +58 -0
  294. package/dist/esm/mcp/tools/spreadsheet-find.js +113 -0
  295. package/dist/esm/mcp/tools/spreadsheet-find.js.map +1 -0
  296. package/dist/esm/mcp/tools/spreadsheet-rename.d.ts +56 -0
  297. package/dist/esm/mcp/tools/spreadsheet-rename.js +112 -0
  298. package/dist/esm/mcp/tools/spreadsheet-rename.js.map +1 -0
  299. package/dist/esm/mcp/tools/validation-set.d.ts +144 -0
  300. package/dist/esm/mcp/tools/validation-set.js +366 -0
  301. package/dist/esm/mcp/tools/validation-set.js.map +1 -0
  302. package/dist/esm/mcp/tools/values-batch-update.d.ts +102 -0
  303. package/dist/esm/mcp/tools/values-batch-update.js +224 -0
  304. package/dist/esm/mcp/tools/values-batch-update.js.map +1 -0
  305. package/dist/esm/mcp/tools/values-clear.d.ts +56 -0
  306. package/dist/esm/mcp/tools/values-clear.js +131 -0
  307. package/dist/esm/mcp/tools/values-clear.js.map +1 -0
  308. package/dist/esm/mcp/tools/values-csv-update.d.ts +75 -0
  309. package/dist/esm/mcp/tools/values-csv-update.js +202 -0
  310. package/dist/esm/mcp/tools/values-csv-update.js.map +1 -0
  311. package/dist/esm/mcp/tools/values-replace.d.ts +68 -0
  312. package/dist/esm/mcp/tools/values-replace.js +171 -0
  313. package/dist/esm/mcp/tools/values-replace.js.map +1 -0
  314. package/dist/esm/mcp/tools/values-search.d.ts +74 -0
  315. package/dist/esm/mcp/tools/values-search.js +229 -0
  316. package/dist/esm/mcp/tools/values-search.js.map +1 -0
  317. package/dist/esm/package.json +1 -0
  318. package/dist/esm/schemas/index.d.ts +14 -0
  319. package/dist/esm/schemas/index.js +35 -0
  320. package/dist/esm/schemas/index.js.map +1 -0
  321. package/dist/esm/setup/config.d.ts +44 -0
  322. package/dist/esm/setup/config.js +151 -0
  323. package/dist/esm/setup/config.js.map +1 -0
  324. package/dist/esm/setup/http.d.ts +8 -0
  325. package/dist/esm/setup/http.js +54 -0
  326. package/dist/esm/setup/http.js.map +1 -0
  327. package/dist/esm/setup/index.d.ts +5 -0
  328. package/dist/esm/setup/index.js +5 -0
  329. package/dist/esm/setup/index.js.map +1 -0
  330. package/dist/esm/setup/oauth-google.d.ts +54 -0
  331. package/dist/esm/setup/oauth-google.js +142 -0
  332. package/dist/esm/setup/oauth-google.js.map +1 -0
  333. package/dist/esm/setup/runtime.d.ts +10 -0
  334. package/dist/esm/setup/runtime.js +84 -0
  335. package/dist/esm/setup/runtime.js.map +1 -0
  336. package/dist/esm/setup/stdio.d.ts +7 -0
  337. package/dist/esm/setup/stdio.js +38 -0
  338. package/dist/esm/setup/stdio.js.map +1 -0
  339. package/dist/esm/spreadsheet/column-utilities.d.ts +1 -0
  340. package/dist/esm/spreadsheet/column-utilities.js +10 -0
  341. package/dist/esm/spreadsheet/column-utilities.js.map +1 -0
  342. package/dist/esm/spreadsheet/csv-streaming.d.ts +19 -0
  343. package/dist/esm/spreadsheet/csv-streaming.js +43 -0
  344. package/dist/esm/spreadsheet/csv-streaming.js.map +1 -0
  345. package/dist/esm/spreadsheet/data-operations.d.ts +115 -0
  346. package/dist/esm/spreadsheet/data-operations.js +712 -0
  347. package/dist/esm/spreadsheet/data-operations.js.map +1 -0
  348. package/dist/esm/spreadsheet/deduplication-utils.d.ts +31 -0
  349. package/dist/esm/spreadsheet/deduplication-utils.js +54 -0
  350. package/dist/esm/spreadsheet/deduplication-utils.js.map +1 -0
  351. package/dist/esm/spreadsheet/range-operations.d.ts +184 -0
  352. package/dist/esm/spreadsheet/range-operations.js +591 -0
  353. package/dist/esm/spreadsheet/range-operations.js.map +1 -0
  354. package/dist/esm/spreadsheet/sheet-operations.d.ts +30 -0
  355. package/dist/esm/spreadsheet/sheet-operations.js +359 -0
  356. package/dist/esm/spreadsheet/sheet-operations.js.map +1 -0
  357. package/dist/esm/spreadsheet/spreadsheet-management.d.ts +21 -0
  358. package/dist/esm/spreadsheet/spreadsheet-management.js +73 -0
  359. package/dist/esm/spreadsheet/spreadsheet-management.js.map +1 -0
  360. package/dist/esm/types.d.ts +53 -0
  361. package/dist/esm/types.js +1 -0
  362. package/dist/esm/types.js.map +1 -0
  363. package/package.json +108 -0
@@ -0,0 +1,394 @@
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 _index = require("../../schemas/index.js");
16
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
17
+ try {
18
+ var info = gen[key](arg);
19
+ var value = info.value;
20
+ } catch (error) {
21
+ reject(error);
22
+ return;
23
+ }
24
+ if (info.done) {
25
+ resolve(value);
26
+ } else {
27
+ Promise.resolve(value).then(_next, _throw);
28
+ }
29
+ }
30
+ function _async_to_generator(fn) {
31
+ return function() {
32
+ var self = this, args = arguments;
33
+ return new Promise(function(resolve, reject) {
34
+ var gen = fn.apply(self, args);
35
+ function _next(value) {
36
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
37
+ }
38
+ function _throw(err) {
39
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
40
+ }
41
+ _next(undefined);
42
+ });
43
+ };
44
+ }
45
+ function _define_property(obj, key, value) {
46
+ if (key in obj) {
47
+ Object.defineProperty(obj, key, {
48
+ value: value,
49
+ enumerable: true,
50
+ configurable: true,
51
+ writable: true
52
+ });
53
+ } else {
54
+ obj[key] = value;
55
+ }
56
+ return obj;
57
+ }
58
+ function _instanceof(left, right) {
59
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
60
+ return !!right[Symbol.hasInstance](left);
61
+ } else {
62
+ return left instanceof right;
63
+ }
64
+ }
65
+ function _object_spread(target) {
66
+ for(var i = 1; i < arguments.length; i++){
67
+ var source = arguments[i] != null ? arguments[i] : {};
68
+ var ownKeys = Object.keys(source);
69
+ if (typeof Object.getOwnPropertySymbols === "function") {
70
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
71
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
72
+ }));
73
+ }
74
+ ownKeys.forEach(function(key) {
75
+ _define_property(target, key, source[key]);
76
+ });
77
+ }
78
+ return target;
79
+ }
80
+ function _ts_generator(thisArg, body) {
81
+ var f, y, t, _ = {
82
+ label: 0,
83
+ sent: function() {
84
+ if (t[0] & 1) throw t[1];
85
+ return t[1];
86
+ },
87
+ trys: [],
88
+ ops: []
89
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
90
+ return d(g, "next", {
91
+ value: verb(0)
92
+ }), d(g, "throw", {
93
+ value: verb(1)
94
+ }), d(g, "return", {
95
+ value: verb(2)
96
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
97
+ value: function() {
98
+ return this;
99
+ }
100
+ }), g;
101
+ function verb(n) {
102
+ return function(v) {
103
+ return step([
104
+ n,
105
+ v
106
+ ]);
107
+ };
108
+ }
109
+ function step(op) {
110
+ if (f) throw new TypeError("Generator is already executing.");
111
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
112
+ 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;
113
+ if (y = 0, t) op = [
114
+ op[0] & 2,
115
+ t.value
116
+ ];
117
+ switch(op[0]){
118
+ case 0:
119
+ case 1:
120
+ t = op;
121
+ break;
122
+ case 4:
123
+ _.label++;
124
+ return {
125
+ value: op[1],
126
+ done: false
127
+ };
128
+ case 5:
129
+ _.label++;
130
+ y = op[1];
131
+ op = [
132
+ 0
133
+ ];
134
+ continue;
135
+ case 7:
136
+ op = _.ops.pop();
137
+ _.trys.pop();
138
+ continue;
139
+ default:
140
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
141
+ _ = 0;
142
+ continue;
143
+ }
144
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
145
+ _.label = op[1];
146
+ break;
147
+ }
148
+ if (op[0] === 6 && _.label < t[1]) {
149
+ _.label = t[1];
150
+ t = op;
151
+ break;
152
+ }
153
+ if (t && _.label < t[2]) {
154
+ _.label = t[2];
155
+ _.ops.push(op);
156
+ break;
157
+ }
158
+ if (t[2]) _.ops.pop();
159
+ _.trys.pop();
160
+ continue;
161
+ }
162
+ op = body.call(thisArg, _);
163
+ } catch (e) {
164
+ op = [
165
+ 6,
166
+ e
167
+ ];
168
+ y = 0;
169
+ } finally{
170
+ f = t = 0;
171
+ }
172
+ if (op[0] & 5) throw op[1];
173
+ return {
174
+ value: op[0] ? op[1] : void 0,
175
+ done: true
176
+ };
177
+ }
178
+ }
179
+ var AuthRequiredBranchSchema = _oauthgoogle.schemas.AuthRequiredBranchSchema;
180
+ var MAX_BATCH_SIZE = 100;
181
+ var copyItemSchema = _zod.z.object({
182
+ newTitle: _zod.z.coerce.string().trim().min(1).describe('Name for the copied sheet'),
183
+ insertIndex: _zod.z.number().int().min(0).optional().describe('Position to insert the new sheet (0-indexed)')
184
+ });
185
+ var inputSchema = _zod.z.object({
186
+ id: _index.SpreadsheetIdSchema,
187
+ gid: _index.SheetGidSchema,
188
+ copies: _zod.z.array(copyItemSchema).min(1).max(MAX_BATCH_SIZE).describe('Array of copies to create from the source sheet')
189
+ });
190
+ // Created sheet info
191
+ var createdSheetSchema = _zod.z.object({
192
+ gid: _index.SheetGidOutput,
193
+ title: _zod.z.string().describe('Title of the created sheet'),
194
+ sheetUrl: _zod.z.string().describe('URL of the created sheet')
195
+ });
196
+ // Success branch schema - uses items: for consistency with standard vocabulary
197
+ var successBranchSchema = _zod.z.object({
198
+ type: _zod.z.literal('success'),
199
+ operationSummary: _zod.z.string().describe('Summary of the copy operation'),
200
+ itemsProcessed: _zod.z.number().describe('Total copies attempted'),
201
+ itemsChanged: _zod.z.number().describe('Successfully created copies'),
202
+ completedAt: _zod.z.string().describe('ISO datetime when operation completed'),
203
+ id: _index.SpreadsheetIdOutput,
204
+ sourceGid: _zod.z.string().describe('Source sheet ID'),
205
+ sourceTitle: _zod.z.string().describe('Source sheet title'),
206
+ items: _zod.z.array(createdSheetSchema).describe('Information about created sheets'),
207
+ failures: _zod.z.array(_zod.z.object({
208
+ title: _zod.z.string(),
209
+ error: _zod.z.string()
210
+ })).optional().describe('Failed copies with error messages')
211
+ });
212
+ // Output schema with auth_required support
213
+ var outputSchema = _zod.z.discriminatedUnion('type', [
214
+ successBranchSchema,
215
+ AuthRequiredBranchSchema
216
+ ]);
217
+ var config = {
218
+ description: 'Copy a sheet/tab within the same spreadsheet. Supports batch copying: create multiple copies from a single source sheet (e.g., create 12 monthly sheets from a template). Copies all data, formatting, charts, and conditional formatting verbatim.',
219
+ inputSchema: inputSchema,
220
+ outputSchema: _zod.z.object({
221
+ result: outputSchema
222
+ })
223
+ };
224
+ function handler(_0, _1) {
225
+ return _async_to_generator(function(param, extra) {
226
+ var id, gid, copies, logger, _spreadsheetInfo_data_sheets, sheets, spreadsheetInfo, sourceSheet, sourceTitle, sourceSheetId, results, items, failures, successCount, failureCount, totalCount, summary, result, error, message;
227
+ return _ts_generator(this, function(_state) {
228
+ switch(_state.label){
229
+ case 0:
230
+ id = param.id, gid = param.gid, copies = param.copies;
231
+ logger = extra.logger;
232
+ logger.info('sheets.sheet.copy called', {
233
+ id: id,
234
+ gid: gid,
235
+ copyCount: copies.length
236
+ });
237
+ _state.label = 1;
238
+ case 1:
239
+ _state.trys.push([
240
+ 1,
241
+ 4,
242
+ ,
243
+ 5
244
+ ]);
245
+ sheets = _googleapis.google.sheets({
246
+ version: 'v4',
247
+ auth: extra.authContext.auth
248
+ });
249
+ return [
250
+ 4,
251
+ sheets.spreadsheets.get({
252
+ spreadsheetId: id,
253
+ fields: 'sheets.properties.sheetId,sheets.properties.title'
254
+ })
255
+ ];
256
+ case 2:
257
+ spreadsheetInfo = _state.sent();
258
+ sourceSheet = (_spreadsheetInfo_data_sheets = spreadsheetInfo.data.sheets) === null || _spreadsheetInfo_data_sheets === void 0 ? void 0 : _spreadsheetInfo_data_sheets.find(function(s) {
259
+ var _s_properties;
260
+ return String((_s_properties = s.properties) === null || _s_properties === void 0 ? void 0 : _s_properties.sheetId) === gid;
261
+ });
262
+ if (!(sourceSheet === null || sourceSheet === void 0 ? void 0 : sourceSheet.properties)) {
263
+ throw new _types.McpError(_types.ErrorCode.InvalidParams, 'Source sheet with gid "'.concat(gid, '" not found in spreadsheet'));
264
+ }
265
+ sourceTitle = sourceSheet.properties.title || '';
266
+ sourceSheetId = Number(gid);
267
+ return [
268
+ 4,
269
+ Promise.allSettled(copies.map(function(copy) {
270
+ return _async_to_generator(function() {
271
+ var _response_data_replies__duplicateSheet_properties, _response_data_replies__duplicateSheet, _response_data_replies_, _response_data_replies, _response_data_replies__duplicateSheet_properties1, _response_data_replies__duplicateSheet1, _response_data_replies_1, _response_data_replies1, response, newSheetId, newTitle;
272
+ return _ts_generator(this, function(_state) {
273
+ switch(_state.label){
274
+ case 0:
275
+ return [
276
+ 4,
277
+ sheets.spreadsheets.batchUpdate({
278
+ spreadsheetId: id,
279
+ requestBody: {
280
+ requests: [
281
+ {
282
+ duplicateSheet: _object_spread({
283
+ sourceSheetId: sourceSheetId,
284
+ newSheetName: copy.newTitle
285
+ }, copy.insertIndex !== undefined && {
286
+ insertSheetIndex: copy.insertIndex
287
+ })
288
+ }
289
+ ]
290
+ }
291
+ })
292
+ ];
293
+ case 1:
294
+ response = _state.sent();
295
+ newSheetId = (_response_data_replies = response.data.replies) === null || _response_data_replies === void 0 ? void 0 : (_response_data_replies_ = _response_data_replies[0]) === null || _response_data_replies_ === void 0 ? void 0 : (_response_data_replies__duplicateSheet = _response_data_replies_.duplicateSheet) === null || _response_data_replies__duplicateSheet === void 0 ? void 0 : (_response_data_replies__duplicateSheet_properties = _response_data_replies__duplicateSheet.properties) === null || _response_data_replies__duplicateSheet_properties === void 0 ? void 0 : _response_data_replies__duplicateSheet_properties.sheetId;
296
+ newTitle = (_response_data_replies1 = response.data.replies) === null || _response_data_replies1 === void 0 ? void 0 : (_response_data_replies_1 = _response_data_replies1[0]) === null || _response_data_replies_1 === void 0 ? void 0 : (_response_data_replies__duplicateSheet1 = _response_data_replies_1.duplicateSheet) === null || _response_data_replies__duplicateSheet1 === void 0 ? void 0 : (_response_data_replies__duplicateSheet_properties1 = _response_data_replies__duplicateSheet1.properties) === null || _response_data_replies__duplicateSheet_properties1 === void 0 ? void 0 : _response_data_replies__duplicateSheet_properties1.title;
297
+ if (!newSheetId || !newTitle) {
298
+ throw new Error('Failed to retrieve new sheet info from API response');
299
+ }
300
+ return [
301
+ 2,
302
+ {
303
+ gid: String(newSheetId),
304
+ title: newTitle,
305
+ sheetUrl: "https://docs.google.com/spreadsheets/d/".concat(id, "/edit#gid=").concat(newSheetId)
306
+ }
307
+ ];
308
+ }
309
+ });
310
+ })();
311
+ }))
312
+ ];
313
+ case 3:
314
+ results = _state.sent();
315
+ // Separate successes and failures
316
+ items = [];
317
+ failures = [];
318
+ results.forEach(function(result, index) {
319
+ var copy = copies[index];
320
+ if (!copy) return;
321
+ if (result.status === 'fulfilled') {
322
+ items.push(result.value);
323
+ } else {
324
+ var errorMessage = _instanceof(result.reason, Error) ? result.reason.message : String(result.reason);
325
+ failures.push({
326
+ title: copy.newTitle,
327
+ error: errorMessage
328
+ });
329
+ }
330
+ });
331
+ successCount = items.length;
332
+ failureCount = failures.length;
333
+ totalCount = copies.length;
334
+ summary = failureCount === 0 ? "Created ".concat(successCount, " cop").concat(successCount === 1 ? 'y' : 'ies', ' of "').concat(sourceTitle, '"') : "Created ".concat(successCount, " of ").concat(totalCount, " cop").concat(totalCount === 1 ? 'y' : 'ies', " (").concat(failureCount, " failed)");
335
+ logger.info('sheets.sheet.copy completed', {
336
+ totalCount: totalCount,
337
+ successCount: successCount,
338
+ failureCount: failureCount
339
+ });
340
+ result = _object_spread({
341
+ type: 'success',
342
+ operationSummary: summary,
343
+ itemsProcessed: totalCount,
344
+ itemsChanged: successCount,
345
+ completedAt: new Date().toISOString(),
346
+ id: id,
347
+ sourceGid: gid,
348
+ sourceTitle: sourceTitle,
349
+ items: items
350
+ }, failures.length > 0 && {
351
+ failures: failures
352
+ });
353
+ return [
354
+ 2,
355
+ {
356
+ content: [
357
+ {
358
+ type: 'text',
359
+ text: JSON.stringify(result)
360
+ }
361
+ ],
362
+ structuredContent: {
363
+ result: result
364
+ }
365
+ }
366
+ ];
367
+ case 4:
368
+ error = _state.sent();
369
+ if (_instanceof(error, _types.McpError)) {
370
+ throw error;
371
+ }
372
+ message = _instanceof(error, Error) ? error.message : String(error);
373
+ logger.error('sheets.sheet.copy error', {
374
+ error: message
375
+ });
376
+ throw new _types.McpError(_types.ErrorCode.InternalError, "Error copying sheet: ".concat(message), {
377
+ stack: _instanceof(error, Error) ? error.stack : undefined
378
+ });
379
+ case 5:
380
+ return [
381
+ 2
382
+ ];
383
+ }
384
+ });
385
+ }).apply(this, arguments);
386
+ }
387
+ function createTool() {
388
+ return {
389
+ name: 'sheet-copy',
390
+ config: config,
391
+ handler: handler
392
+ };
393
+ }
394
+ /* 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-sheets/src/mcp/tools/sheet-copy.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 type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';\nimport { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';\nimport { google } from 'googleapis';\nimport { z } from 'zod';\nimport { SheetGidOutput, SheetGidSchema, SpreadsheetIdOutput, SpreadsheetIdSchema } from '../../schemas/index.js';\n\nconst MAX_BATCH_SIZE = 100;\n\nconst copyItemSchema = z.object({\n newTitle: z.coerce.string().trim().min(1).describe('Name for the copied sheet'),\n insertIndex: z.number().int().min(0).optional().describe('Position to insert the new sheet (0-indexed)'),\n});\n\nconst inputSchema = z.object({\n id: SpreadsheetIdSchema,\n gid: SheetGidSchema,\n copies: z.array(copyItemSchema).min(1).max(MAX_BATCH_SIZE).describe('Array of copies to create from the source sheet'),\n});\n\n// Created sheet info\nconst createdSheetSchema = z.object({\n gid: SheetGidOutput,\n title: z.string().describe('Title of the created sheet'),\n sheetUrl: z.string().describe('URL of the created sheet'),\n});\n\n// Success branch schema - uses items: for consistency with standard vocabulary\nconst successBranchSchema = z.object({\n type: z.literal('success'),\n operationSummary: z.string().describe('Summary of the copy operation'),\n itemsProcessed: z.number().describe('Total copies attempted'),\n itemsChanged: z.number().describe('Successfully created copies'),\n completedAt: z.string().describe('ISO datetime when operation completed'),\n id: SpreadsheetIdOutput,\n sourceGid: z.string().describe('Source sheet ID'),\n sourceTitle: z.string().describe('Source sheet title'),\n items: z.array(createdSheetSchema).describe('Information about created sheets'),\n failures: z\n .array(\n z.object({\n title: z.string(),\n error: z.string(),\n })\n )\n .optional()\n .describe('Failed copies with error messages'),\n});\n\n// Output schema with auth_required support\nconst outputSchema = z.discriminatedUnion('type', [successBranchSchema, AuthRequiredBranchSchema]);\n\nconst config = {\n description: 'Copy a sheet/tab within the same spreadsheet. Supports batch copying: create multiple copies from a single source sheet (e.g., create 12 monthly sheets from a template). Copies all data, formatting, charts, and conditional formatting verbatim.',\n 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({ id, gid, copies }: Input, extra: EnrichedExtra): Promise<CallToolResult> {\n const logger = extra.logger;\n logger.info('sheets.sheet.copy called', { id, gid, copyCount: copies.length });\n\n try {\n const sheets = google.sheets({ version: 'v4', auth: extra.authContext.auth });\n\n // First, get the source sheet info\n const spreadsheetInfo = await sheets.spreadsheets.get({\n spreadsheetId: id,\n fields: 'sheets.properties.sheetId,sheets.properties.title',\n });\n\n const sourceSheet = spreadsheetInfo.data.sheets?.find((s) => String(s.properties?.sheetId) === gid);\n if (!sourceSheet?.properties) {\n throw new McpError(ErrorCode.InvalidParams, `Source sheet with gid \"${gid}\" not found in spreadsheet`);\n }\n\n const sourceTitle = sourceSheet.properties.title || '';\n const sourceSheetId = Number(gid);\n\n // Execute copies using Promise.allSettled for partial failure handling\n const results = await Promise.allSettled(\n copies.map(async (copy) => {\n const response = await sheets.spreadsheets.batchUpdate({\n spreadsheetId: id,\n requestBody: {\n requests: [\n {\n duplicateSheet: {\n sourceSheetId,\n newSheetName: copy.newTitle,\n ...(copy.insertIndex !== undefined && { insertSheetIndex: copy.insertIndex }),\n },\n },\n ],\n },\n });\n\n const newSheetId = response.data.replies?.[0]?.duplicateSheet?.properties?.sheetId;\n const newTitle = response.data.replies?.[0]?.duplicateSheet?.properties?.title;\n\n if (!newSheetId || !newTitle) {\n throw new Error('Failed to retrieve new sheet info from API response');\n }\n\n return {\n gid: String(newSheetId),\n title: newTitle,\n sheetUrl: `https://docs.google.com/spreadsheets/d/${id}/edit#gid=${newSheetId}`,\n };\n })\n );\n\n // Separate successes and failures\n const items: Array<{ gid: string; title: string; sheetUrl: string }> = [];\n const failures: Array<{ title: string; error: string }> = [];\n\n results.forEach((result, index) => {\n const copy = copies[index];\n if (!copy) return;\n\n if (result.status === 'fulfilled') {\n items.push(result.value);\n } else {\n const errorMessage = result.reason instanceof Error ? result.reason.message : String(result.reason);\n failures.push({ title: copy.newTitle, error: errorMessage });\n }\n });\n\n const successCount = items.length;\n const failureCount = failures.length;\n const totalCount = copies.length;\n\n const summary = failureCount === 0 ? `Created ${successCount} cop${successCount === 1 ? 'y' : 'ies'} of \"${sourceTitle}\"` : `Created ${successCount} of ${totalCount} cop${totalCount === 1 ? 'y' : 'ies'} (${failureCount} failed)`;\n\n logger.info('sheets.sheet.copy completed', { totalCount, successCount, failureCount });\n\n const result: Output = {\n type: 'success' as const,\n operationSummary: summary,\n itemsProcessed: totalCount,\n itemsChanged: successCount,\n completedAt: new Date().toISOString(),\n id,\n sourceGid: gid,\n sourceTitle,\n items,\n ...(failures.length > 0 && { failures }),\n };\n\n return {\n content: [{ type: 'text' as const, text: JSON.stringify(result) }],\n structuredContent: { result },\n };\n } catch (error) {\n if (error instanceof McpError) {\n throw error;\n }\n const message = error instanceof Error ? error.message : String(error);\n logger.error('sheets.sheet.copy error', { error: message });\n\n throw new McpError(ErrorCode.InternalError, `Error copying sheet: ${message}`, {\n stack: error instanceof Error ? error.stack : undefined,\n });\n }\n}\n\nexport default function createTool() {\n return {\n name: 'sheet-copy',\n config,\n handler,\n } satisfies ToolModule;\n}\n"],"names":["createTool","AuthRequiredBranchSchema","schemas","MAX_BATCH_SIZE","copyItemSchema","z","object","newTitle","coerce","string","trim","min","describe","insertIndex","number","int","optional","inputSchema","id","SpreadsheetIdSchema","gid","SheetGidSchema","copies","array","max","createdSheetSchema","SheetGidOutput","title","sheetUrl","successBranchSchema","type","literal","operationSummary","itemsProcessed","itemsChanged","completedAt","SpreadsheetIdOutput","sourceGid","sourceTitle","items","failures","error","outputSchema","discriminatedUnion","config","description","result","handler","extra","logger","spreadsheetInfo","sheets","sourceSheet","sourceSheetId","results","successCount","failureCount","totalCount","summary","message","info","copyCount","length","google","version","auth","authContext","spreadsheets","get","spreadsheetId","fields","data","find","s","String","properties","sheetId","McpError","ErrorCode","InvalidParams","Number","Promise","allSettled","map","copy","response","newSheetId","batchUpdate","requestBody","requests","duplicateSheet","newSheetName","undefined","insertSheetIndex","replies","Error","forEach","index","status","push","value","errorMessage","reason","Date","toISOString","content","text","JSON","stringify","structuredContent","InternalError","stack","name"],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { EnrichedExtra } from '@mcp-z/oauth-google';
2
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod';
4
+ declare const inputSchema: z.ZodObject<{
5
+ id: z.ZodString;
6
+ sheetTitle: z.ZodCoercedString<unknown>;
7
+ }, z.core.$strip>;
8
+ declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9
+ type: z.ZodLiteral<"success">;
10
+ operationSummary: z.ZodString;
11
+ itemsProcessed: z.ZodNumber;
12
+ itemsChanged: z.ZodNumber;
13
+ completedAt: z.ZodString;
14
+ id: z.ZodString;
15
+ gid: z.ZodString;
16
+ sheetUrl: z.ZodString;
17
+ sheetTitle: z.ZodString;
18
+ }, z.core.$strip>, z.ZodObject<{
19
+ type: z.ZodLiteral<"auth_required">;
20
+ provider: z.ZodString;
21
+ message: z.ZodString;
22
+ url: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strip>], "type">;
24
+ export type Input = z.infer<typeof inputSchema>;
25
+ export type Output = z.infer<typeof outputSchema>;
26
+ declare function handler({ id, sheetTitle }: Input, extra: EnrichedExtra): Promise<CallToolResult>;
27
+ export default function createTool(): {
28
+ name: string;
29
+ config: {
30
+ readonly description: "Create a new sheet/tab in the spreadsheet/workbook";
31
+ readonly inputSchema: z.ZodObject<{
32
+ id: z.ZodString;
33
+ sheetTitle: z.ZodCoercedString<unknown>;
34
+ }, z.core.$strip>;
35
+ readonly outputSchema: z.ZodObject<{
36
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
37
+ type: z.ZodLiteral<"success">;
38
+ operationSummary: z.ZodString;
39
+ itemsProcessed: z.ZodNumber;
40
+ itemsChanged: z.ZodNumber;
41
+ completedAt: z.ZodString;
42
+ id: z.ZodString;
43
+ gid: z.ZodString;
44
+ sheetUrl: z.ZodString;
45
+ sheetTitle: z.ZodString;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ type: z.ZodLiteral<"auth_required">;
48
+ provider: z.ZodString;
49
+ message: z.ZodString;
50
+ url: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip>], "type">;
52
+ }, z.core.$strip>;
53
+ };
54
+ handler: typeof handler;
55
+ };
56
+ export {};
@@ -0,0 +1,56 @@
1
+ import type { EnrichedExtra } from '@mcp-z/oauth-google';
2
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod';
4
+ declare const inputSchema: z.ZodObject<{
5
+ id: z.ZodString;
6
+ sheetTitle: z.ZodCoercedString<unknown>;
7
+ }, z.core.$strip>;
8
+ declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9
+ type: z.ZodLiteral<"success">;
10
+ operationSummary: z.ZodString;
11
+ itemsProcessed: z.ZodNumber;
12
+ itemsChanged: z.ZodNumber;
13
+ completedAt: z.ZodString;
14
+ id: z.ZodString;
15
+ gid: z.ZodString;
16
+ sheetUrl: z.ZodString;
17
+ sheetTitle: z.ZodString;
18
+ }, z.core.$strip>, z.ZodObject<{
19
+ type: z.ZodLiteral<"auth_required">;
20
+ provider: z.ZodString;
21
+ message: z.ZodString;
22
+ url: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strip>], "type">;
24
+ export type Input = z.infer<typeof inputSchema>;
25
+ export type Output = z.infer<typeof outputSchema>;
26
+ declare function handler({ id, sheetTitle }: Input, extra: EnrichedExtra): Promise<CallToolResult>;
27
+ export default function createTool(): {
28
+ name: string;
29
+ config: {
30
+ readonly description: "Create a new sheet/tab in the spreadsheet/workbook";
31
+ readonly inputSchema: z.ZodObject<{
32
+ id: z.ZodString;
33
+ sheetTitle: z.ZodCoercedString<unknown>;
34
+ }, z.core.$strip>;
35
+ readonly outputSchema: z.ZodObject<{
36
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
37
+ type: z.ZodLiteral<"success">;
38
+ operationSummary: z.ZodString;
39
+ itemsProcessed: z.ZodNumber;
40
+ itemsChanged: z.ZodNumber;
41
+ completedAt: z.ZodString;
42
+ id: z.ZodString;
43
+ gid: z.ZodString;
44
+ sheetUrl: z.ZodString;
45
+ sheetTitle: z.ZodString;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ type: z.ZodLiteral<"auth_required">;
48
+ provider: z.ZodString;
49
+ message: z.ZodString;
50
+ url: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip>], "type">;
52
+ }, z.core.$strip>;
53
+ };
54
+ handler: typeof handler;
55
+ };
56
+ export {};