@danyow/lark-mcp 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/LICENSE +9 -0
  3. package/README.md +215 -0
  4. package/README_ZH.md +212 -0
  5. package/dist/auth/config.d.ts +12 -0
  6. package/dist/auth/config.js +15 -0
  7. package/dist/auth/handler/handler-local.d.ts +21 -0
  8. package/dist/auth/handler/handler-local.js +123 -0
  9. package/dist/auth/handler/handler.d.ts +32 -0
  10. package/dist/auth/handler/handler.js +117 -0
  11. package/dist/auth/handler/index.d.ts +2 -0
  12. package/dist/auth/handler/index.js +18 -0
  13. package/dist/auth/index.d.ts +4 -0
  14. package/dist/auth/index.js +20 -0
  15. package/dist/auth/provider/index.d.ts +3 -0
  16. package/dist/auth/provider/index.js +19 -0
  17. package/dist/auth/provider/oauth.d.ts +18 -0
  18. package/dist/auth/provider/oauth.js +147 -0
  19. package/dist/auth/provider/oidc.d.ts +18 -0
  20. package/dist/auth/provider/oidc.js +172 -0
  21. package/dist/auth/provider/types.d.ts +8 -0
  22. package/dist/auth/provider/types.js +2 -0
  23. package/dist/auth/store.d.ts +39 -0
  24. package/dist/auth/store.js +213 -0
  25. package/dist/auth/types.d.ts +13 -0
  26. package/dist/auth/types.js +2 -0
  27. package/dist/auth/utils/encryption.d.ts +7 -0
  28. package/dist/auth/utils/encryption.js +40 -0
  29. package/dist/auth/utils/index.d.ts +3 -0
  30. package/dist/auth/utils/index.js +19 -0
  31. package/dist/auth/utils/is-token-valid.d.ts +7 -0
  32. package/dist/auth/utils/is-token-valid.js +28 -0
  33. package/dist/auth/utils/pkce.d.ts +6 -0
  34. package/dist/auth/utils/pkce.js +20 -0
  35. package/dist/auth/utils/storage-manager.d.ts +17 -0
  36. package/dist/auth/utils/storage-manager.js +135 -0
  37. package/dist/cli/index.d.ts +1 -0
  38. package/dist/cli/index.js +5 -0
  39. package/dist/cli/login-handler.d.ts +16 -0
  40. package/dist/cli/login-handler.js +142 -0
  41. package/dist/cli.d.ts +4 -0
  42. package/dist/cli.js +122 -0
  43. package/dist/index.d.ts +3 -0
  44. package/dist/index.js +19 -0
  45. package/dist/mcp-server/index.d.ts +2 -0
  46. package/dist/mcp-server/index.js +18 -0
  47. package/dist/mcp-server/shared/index.d.ts +2 -0
  48. package/dist/mcp-server/shared/index.js +18 -0
  49. package/dist/mcp-server/shared/init.d.ts +10 -0
  50. package/dist/mcp-server/shared/init.js +121 -0
  51. package/dist/mcp-server/shared/types.d.ts +40 -0
  52. package/dist/mcp-server/shared/types.js +10 -0
  53. package/dist/mcp-server/transport/index.d.ts +3 -0
  54. package/dist/mcp-server/transport/index.js +19 -0
  55. package/dist/mcp-server/transport/sse.d.ts +2 -0
  56. package/dist/mcp-server/transport/sse.js +75 -0
  57. package/dist/mcp-server/transport/stdio.d.ts +2 -0
  58. package/dist/mcp-server/transport/stdio.js +36 -0
  59. package/dist/mcp-server/transport/streamable.d.ts +2 -0
  60. package/dist/mcp-server/transport/streamable.js +86 -0
  61. package/dist/mcp-server/transport/utils.d.ts +16 -0
  62. package/dist/mcp-server/transport/utils.js +34 -0
  63. package/dist/mcp-tool/constants.d.ts +49 -0
  64. package/dist/mcp-tool/constants.js +115 -0
  65. package/dist/mcp-tool/document-tool/index.d.ts +1 -0
  66. package/dist/mcp-tool/document-tool/index.js +17 -0
  67. package/dist/mcp-tool/document-tool/recall/index.d.ts +2 -0
  68. package/dist/mcp-tool/document-tool/recall/index.js +39 -0
  69. package/dist/mcp-tool/document-tool/recall/request.d.ts +2 -0
  70. package/dist/mcp-tool/document-tool/recall/request.js +25 -0
  71. package/dist/mcp-tool/document-tool/recall/type.d.ts +19 -0
  72. package/dist/mcp-tool/document-tool/recall/type.js +2 -0
  73. package/dist/mcp-tool/index.d.ts +5 -0
  74. package/dist/mcp-tool/index.js +21 -0
  75. package/dist/mcp-tool/mcp-tool.d.ts +52 -0
  76. package/dist/mcp-tool/mcp-tool.js +198 -0
  77. package/dist/mcp-tool/tools/en/builtin-tools/docx/builtin.d.ts +5 -0
  78. package/dist/mcp-tool/tools/en/builtin-tools/docx/builtin.js +219 -0
  79. package/dist/mcp-tool/tools/en/builtin-tools/drive/builtin.d.ts +4 -0
  80. package/dist/mcp-tool/tools/en/builtin-tools/drive/builtin.js +159 -0
  81. package/dist/mcp-tool/tools/en/builtin-tools/im/buildin.d.ts +4 -0
  82. package/dist/mcp-tool/tools/en/builtin-tools/im/buildin.js +63 -0
  83. package/dist/mcp-tool/tools/en/builtin-tools/index.d.ts +5 -0
  84. package/dist/mcp-tool/tools/en/builtin-tools/index.js +7 -0
  85. package/dist/mcp-tool/tools/en/gen-tools/index.d.ts +114 -0
  86. package/dist/mcp-tool/tools/en/gen-tools/index.js +129 -0
  87. package/dist/mcp-tool/tools/en/gen-tools/zod/acs_v1.d.ts +562 -0
  88. package/dist/mcp-tool/tools/en/gen-tools/zod/acs_v1.js +264 -0
  89. package/dist/mcp-tool/tools/en/gen-tools/zod/admin_v1.d.ts +912 -0
  90. package/dist/mcp-tool/tools/en/gen-tools/zod/admin_v1.js +449 -0
  91. package/dist/mcp-tool/tools/en/gen-tools/zod/aily_v1.d.ts +1213 -0
  92. package/dist/mcp-tool/tools/en/gen-tools/zod/aily_v1.js +560 -0
  93. package/dist/mcp-tool/tools/en/gen-tools/zod/apaas_v1.d.ts +2530 -0
  94. package/dist/mcp-tool/tools/en/gen-tools/zod/apaas_v1.js +949 -0
  95. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v5.d.ts +80 -0
  96. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v5.js +53 -0
  97. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v6.d.ts +1008 -0
  98. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v6.js +775 -0
  99. package/dist/mcp-tool/tools/en/gen-tools/zod/approval_v4.d.ts +3928 -0
  100. package/dist/mcp-tool/tools/en/gen-tools/zod/approval_v4.js +1602 -0
  101. package/dist/mcp-tool/tools/en/gen-tools/zod/attendance_v1.d.ts +6043 -0
  102. package/dist/mcp-tool/tools/en/gen-tools/zod/attendance_v1.js +1857 -0
  103. package/dist/mcp-tool/tools/en/gen-tools/zod/auth_v3.d.ts +151 -0
  104. package/dist/mcp-tool/tools/en/gen-tools/zod/auth_v3.js +71 -0
  105. package/dist/mcp-tool/tools/en/gen-tools/zod/authen_v1.d.ts +26 -0
  106. package/dist/mcp-tool/tools/en/gen-tools/zod/authen_v1.js +17 -0
  107. package/dist/mcp-tool/tools/en/gen-tools/zod/baike_v1.d.ts +2174 -0
  108. package/dist/mcp-tool/tools/en/gen-tools/zod/baike_v1.js +594 -0
  109. package/dist/mcp-tool/tools/en/gen-tools/zod/base_v2.d.ts +755 -0
  110. package/dist/mcp-tool/tools/en/gen-tools/zod/base_v2.js +234 -0
  111. package/dist/mcp-tool/tools/en/gen-tools/zod/bitable_v1.d.ts +3541 -0
  112. package/dist/mcp-tool/tools/en/gen-tools/zod/bitable_v1.js +1786 -0
  113. package/dist/mcp-tool/tools/en/gen-tools/zod/board_v1.d.ts +40 -0
  114. package/dist/mcp-tool/tools/en/gen-tools/zod/board_v1.js +18 -0
  115. package/dist/mcp-tool/tools/en/gen-tools/zod/calendar_v4.d.ts +2075 -0
  116. package/dist/mcp-tool/tools/en/gen-tools/zod/calendar_v4.js +1594 -0
  117. package/dist/mcp-tool/tools/en/gen-tools/zod/cardkit_v1.d.ts +528 -0
  118. package/dist/mcp-tool/tools/en/gen-tools/zod/cardkit_v1.js +260 -0
  119. package/dist/mcp-tool/tools/en/gen-tools/zod/compensation_v1.d.ts +189 -0
  120. package/dist/mcp-tool/tools/en/gen-tools/zod/compensation_v1.js +132 -0
  121. package/dist/mcp-tool/tools/en/gen-tools/zod/contact_v3.d.ts +4274 -0
  122. package/dist/mcp-tool/tools/en/gen-tools/zod/contact_v3.js +2583 -0
  123. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v1.d.ts +16873 -0
  124. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v1.js +5045 -0
  125. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v2.d.ts +29387 -0
  126. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v2.js +7787 -0
  127. package/dist/mcp-tool/tools/en/gen-tools/zod/directory_v1.d.ts +4274 -0
  128. package/dist/mcp-tool/tools/en/gen-tools/zod/directory_v1.js +1367 -0
  129. package/dist/mcp-tool/tools/en/gen-tools/zod/docs_v1.d.ts +58 -0
  130. package/dist/mcp-tool/tools/en/gen-tools/zod/docs_v1.js +28 -0
  131. package/dist/mcp-tool/tools/en/gen-tools/zod/docx_v1.d.ts +93466 -0
  132. package/dist/mcp-tool/tools/en/gen-tools/zod/docx_v1.js +14350 -0
  133. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v1.d.ts +3251 -0
  134. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v1.js +1422 -0
  135. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v2.d.ts +174 -0
  136. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v2.js +117 -0
  137. package/dist/mcp-tool/tools/en/gen-tools/zod/ehr_v1.d.ts +86 -0
  138. package/dist/mcp-tool/tools/en/gen-tools/zod/ehr_v1.js +48 -0
  139. package/dist/mcp-tool/tools/en/gen-tools/zod/event_v1.d.ts +44 -0
  140. package/dist/mcp-tool/tools/en/gen-tools/zod/event_v1.js +17 -0
  141. package/dist/mcp-tool/tools/en/gen-tools/zod/helpdesk_v1.d.ts +733 -0
  142. package/dist/mcp-tool/tools/en/gen-tools/zod/helpdesk_v1.js +285 -0
  143. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v1.d.ts +10076 -0
  144. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v1.js +6065 -0
  145. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v2.d.ts +158 -0
  146. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v2.js +61 -0
  147. package/dist/mcp-tool/tools/en/gen-tools/zod/human_authentication_v1.d.ts +70 -0
  148. package/dist/mcp-tool/tools/en/gen-tools/zod/human_authentication_v1.js +27 -0
  149. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v1.d.ts +3043 -0
  150. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v1.js +1869 -0
  151. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v2.d.ts +2176 -0
  152. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v2.js +460 -0
  153. package/dist/mcp-tool/tools/en/gen-tools/zod/lingo_v1.d.ts +2301 -0
  154. package/dist/mcp-tool/tools/en/gen-tools/zod/lingo_v1.js +669 -0
  155. package/dist/mcp-tool/tools/en/gen-tools/zod/mail_v1.d.ts +2462 -0
  156. package/dist/mcp-tool/tools/en/gen-tools/zod/mail_v1.js +1655 -0
  157. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v1.d.ts +104 -0
  158. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v1.js +45 -0
  159. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v3.d.ts +329 -0
  160. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v3.js +78 -0
  161. package/dist/mcp-tool/tools/en/gen-tools/zod/minutes_v1.d.ts +92 -0
  162. package/dist/mcp-tool/tools/en/gen-tools/zod/minutes_v1.js +62 -0
  163. package/dist/mcp-tool/tools/en/gen-tools/zod/moments_v1.d.ts +52 -0
  164. package/dist/mcp-tool/tools/en/gen-tools/zod/moments_v1.js +24 -0
  165. package/dist/mcp-tool/tools/en/gen-tools/zod/okr_v1.d.ts +1628 -0
  166. package/dist/mcp-tool/tools/en/gen-tools/zod/okr_v1.js +434 -0
  167. package/dist/mcp-tool/tools/en/gen-tools/zod/optical_char_recognition_v1.d.ts +38 -0
  168. package/dist/mcp-tool/tools/en/gen-tools/zod/optical_char_recognition_v1.js +17 -0
  169. package/dist/mcp-tool/tools/en/gen-tools/zod/passport_v1.d.ts +131 -0
  170. package/dist/mcp-tool/tools/en/gen-tools/zod/passport_v1.js +59 -0
  171. package/dist/mcp-tool/tools/en/gen-tools/zod/payroll_v1.d.ts +333 -0
  172. package/dist/mcp-tool/tools/en/gen-tools/zod/payroll_v1.js +176 -0
  173. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v1.d.ts +309 -0
  174. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v1.js +178 -0
  175. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v2.d.ts +1177 -0
  176. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v2.js +559 -0
  177. package/dist/mcp-tool/tools/en/gen-tools/zod/personal_settings_v1.d.ts +640 -0
  178. package/dist/mcp-tool/tools/en/gen-tools/zod/personal_settings_v1.js +303 -0
  179. package/dist/mcp-tool/tools/en/gen-tools/zod/report_v1.d.ts +192 -0
  180. package/dist/mcp-tool/tools/en/gen-tools/zod/report_v1.js +71 -0
  181. package/dist/mcp-tool/tools/en/gen-tools/zod/search_v2.d.ts +1695 -0
  182. package/dist/mcp-tool/tools/en/gen-tools/zod/search_v2.js +446 -0
  183. package/dist/mcp-tool/tools/en/gen-tools/zod/security_and_compliance_v1.d.ts +68 -0
  184. package/dist/mcp-tool/tools/en/gen-tools/zod/security_and_compliance_v1.js +32 -0
  185. package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v2.d.ts +523 -0
  186. package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v2.js +231 -0
  187. package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v3.d.ts +979 -0
  188. package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v3.js +721 -0
  189. package/dist/mcp-tool/tools/en/gen-tools/zod/speech_to_text_v1.d.ts +225 -0
  190. package/dist/mcp-tool/tools/en/gen-tools/zod/speech_to_text_v1.js +65 -0
  191. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v1.d.ts +1161 -0
  192. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v1.js +672 -0
  193. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v2.d.ts +6051 -0
  194. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v2.js +1970 -0
  195. package/dist/mcp-tool/tools/en/gen-tools/zod/tenant_v2.d.ts +31 -0
  196. package/dist/mcp-tool/tools/en/gen-tools/zod/tenant_v2.js +24 -0
  197. package/dist/mcp-tool/tools/en/gen-tools/zod/translation_v1.d.ts +80 -0
  198. package/dist/mcp-tool/tools/en/gen-tools/zod/translation_v1.js +37 -0
  199. package/dist/mcp-tool/tools/en/gen-tools/zod/trust_party_v1.d.ts +182 -0
  200. package/dist/mcp-tool/tools/en/gen-tools/zod/trust_party_v1.js +141 -0
  201. package/dist/mcp-tool/tools/en/gen-tools/zod/vc_v1.d.ts +5725 -0
  202. package/dist/mcp-tool/tools/en/gen-tools/zod/vc_v1.js +1751 -0
  203. package/dist/mcp-tool/tools/en/gen-tools/zod/verification_v1.d.ts +21 -0
  204. package/dist/mcp-tool/tools/en/gen-tools/zod/verification_v1.js +14 -0
  205. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v1.d.ts +72 -0
  206. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v1.js +19 -0
  207. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v2.d.ts +843 -0
  208. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v2.js +381 -0
  209. package/dist/mcp-tool/tools/en/gen-tools/zod/workplace_v1.d.ts +116 -0
  210. package/dist/mcp-tool/tools/en/gen-tools/zod/workplace_v1.js +77 -0
  211. package/dist/mcp-tool/tools/index.d.ts +104 -0
  212. package/dist/mcp-tool/tools/index.js +9 -0
  213. package/dist/mcp-tool/tools/zh/builtin-tools/docx/builtin.d.ts +5 -0
  214. package/dist/mcp-tool/tools/zh/builtin-tools/docx/builtin.js +198 -0
  215. package/dist/mcp-tool/tools/zh/builtin-tools/drive/builtin.d.ts +4 -0
  216. package/dist/mcp-tool/tools/zh/builtin-tools/drive/builtin.js +159 -0
  217. package/dist/mcp-tool/tools/zh/builtin-tools/im/buildin.d.ts +4 -0
  218. package/dist/mcp-tool/tools/zh/builtin-tools/im/buildin.js +63 -0
  219. package/dist/mcp-tool/tools/zh/builtin-tools/index.d.ts +5 -0
  220. package/dist/mcp-tool/tools/zh/builtin-tools/index.js +7 -0
  221. package/dist/mcp-tool/tools/zh/gen-tools/index.d.ts +114 -0
  222. package/dist/mcp-tool/tools/zh/gen-tools/index.js +129 -0
  223. package/dist/mcp-tool/tools/zh/gen-tools/zod/acs_v1.d.ts +562 -0
  224. package/dist/mcp-tool/tools/zh/gen-tools/zod/acs_v1.js +277 -0
  225. package/dist/mcp-tool/tools/zh/gen-tools/zod/admin_v1.d.ts +912 -0
  226. package/dist/mcp-tool/tools/zh/gen-tools/zod/admin_v1.js +430 -0
  227. package/dist/mcp-tool/tools/zh/gen-tools/zod/aily_v1.d.ts +1213 -0
  228. package/dist/mcp-tool/tools/zh/gen-tools/zod/aily_v1.js +541 -0
  229. package/dist/mcp-tool/tools/zh/gen-tools/zod/apaas_v1.d.ts +2530 -0
  230. package/dist/mcp-tool/tools/zh/gen-tools/zod/apaas_v1.js +885 -0
  231. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v5.d.ts +80 -0
  232. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v5.js +59 -0
  233. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v6.d.ts +1007 -0
  234. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v6.js +721 -0
  235. package/dist/mcp-tool/tools/zh/gen-tools/zod/approval_v4.d.ts +3928 -0
  236. package/dist/mcp-tool/tools/zh/gen-tools/zod/approval_v4.js +1532 -0
  237. package/dist/mcp-tool/tools/zh/gen-tools/zod/attendance_v1.d.ts +6043 -0
  238. package/dist/mcp-tool/tools/zh/gen-tools/zod/attendance_v1.js +1620 -0
  239. package/dist/mcp-tool/tools/zh/gen-tools/zod/auth_v3.d.ts +151 -0
  240. package/dist/mcp-tool/tools/zh/gen-tools/zod/auth_v3.js +87 -0
  241. package/dist/mcp-tool/tools/zh/gen-tools/zod/authen_v1.d.ts +26 -0
  242. package/dist/mcp-tool/tools/zh/gen-tools/zod/authen_v1.js +17 -0
  243. package/dist/mcp-tool/tools/zh/gen-tools/zod/baike_v1.d.ts +2174 -0
  244. package/dist/mcp-tool/tools/zh/gen-tools/zod/baike_v1.js +574 -0
  245. package/dist/mcp-tool/tools/zh/gen-tools/zod/base_v2.d.ts +755 -0
  246. package/dist/mcp-tool/tools/zh/gen-tools/zod/base_v2.js +270 -0
  247. package/dist/mcp-tool/tools/zh/gen-tools/zod/bitable_v1.d.ts +3541 -0
  248. package/dist/mcp-tool/tools/zh/gen-tools/zod/bitable_v1.js +1864 -0
  249. package/dist/mcp-tool/tools/zh/gen-tools/zod/board_v1.d.ts +40 -0
  250. package/dist/mcp-tool/tools/zh/gen-tools/zod/board_v1.js +18 -0
  251. package/dist/mcp-tool/tools/zh/gen-tools/zod/calendar_v4.d.ts +2075 -0
  252. package/dist/mcp-tool/tools/zh/gen-tools/zod/calendar_v4.js +1533 -0
  253. package/dist/mcp-tool/tools/zh/gen-tools/zod/cardkit_v1.d.ts +528 -0
  254. package/dist/mcp-tool/tools/zh/gen-tools/zod/cardkit_v1.js +248 -0
  255. package/dist/mcp-tool/tools/zh/gen-tools/zod/compensation_v1.d.ts +189 -0
  256. package/dist/mcp-tool/tools/zh/gen-tools/zod/compensation_v1.js +130 -0
  257. package/dist/mcp-tool/tools/zh/gen-tools/zod/contact_v3.d.ts +4274 -0
  258. package/dist/mcp-tool/tools/zh/gen-tools/zod/contact_v3.js +2394 -0
  259. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v1.d.ts +16957 -0
  260. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v1.js +4753 -0
  261. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v2.d.ts +29869 -0
  262. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v2.js +7902 -0
  263. package/dist/mcp-tool/tools/zh/gen-tools/zod/directory_v1.d.ts +4324 -0
  264. package/dist/mcp-tool/tools/zh/gen-tools/zod/directory_v1.js +1340 -0
  265. package/dist/mcp-tool/tools/zh/gen-tools/zod/docs_v1.d.ts +58 -0
  266. package/dist/mcp-tool/tools/zh/gen-tools/zod/docs_v1.js +26 -0
  267. package/dist/mcp-tool/tools/zh/gen-tools/zod/docx_v1.d.ts +116719 -0
  268. package/dist/mcp-tool/tools/zh/gen-tools/zod/docx_v1.js +14949 -0
  269. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v1.d.ts +3251 -0
  270. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v1.js +1395 -0
  271. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v2.d.ts +174 -0
  272. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v2.js +115 -0
  273. package/dist/mcp-tool/tools/zh/gen-tools/zod/ehr_v1.d.ts +86 -0
  274. package/dist/mcp-tool/tools/zh/gen-tools/zod/ehr_v1.js +48 -0
  275. package/dist/mcp-tool/tools/zh/gen-tools/zod/event_v1.d.ts +44 -0
  276. package/dist/mcp-tool/tools/zh/gen-tools/zod/event_v1.js +25 -0
  277. package/dist/mcp-tool/tools/zh/gen-tools/zod/helpdesk_v1.d.ts +733 -0
  278. package/dist/mcp-tool/tools/zh/gen-tools/zod/helpdesk_v1.js +279 -0
  279. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v1.d.ts +10085 -0
  280. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v1.js +5787 -0
  281. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v2.d.ts +158 -0
  282. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v2.js +64 -0
  283. package/dist/mcp-tool/tools/zh/gen-tools/zod/human_authentication_v1.d.ts +70 -0
  284. package/dist/mcp-tool/tools/zh/gen-tools/zod/human_authentication_v1.js +27 -0
  285. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v1.d.ts +3043 -0
  286. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v1.js +1812 -0
  287. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v2.d.ts +2176 -0
  288. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v2.js +454 -0
  289. package/dist/mcp-tool/tools/zh/gen-tools/zod/lingo_v1.d.ts +2301 -0
  290. package/dist/mcp-tool/tools/zh/gen-tools/zod/lingo_v1.js +650 -0
  291. package/dist/mcp-tool/tools/zh/gen-tools/zod/mail_v1.d.ts +2465 -0
  292. package/dist/mcp-tool/tools/zh/gen-tools/zod/mail_v1.js +1467 -0
  293. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v1.d.ts +104 -0
  294. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v1.js +45 -0
  295. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v3.d.ts +329 -0
  296. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v3.js +76 -0
  297. package/dist/mcp-tool/tools/zh/gen-tools/zod/minutes_v1.d.ts +92 -0
  298. package/dist/mcp-tool/tools/zh/gen-tools/zod/minutes_v1.js +62 -0
  299. package/dist/mcp-tool/tools/zh/gen-tools/zod/moments_v1.d.ts +52 -0
  300. package/dist/mcp-tool/tools/zh/gen-tools/zod/moments_v1.js +20 -0
  301. package/dist/mcp-tool/tools/zh/gen-tools/zod/okr_v1.d.ts +1664 -0
  302. package/dist/mcp-tool/tools/zh/gen-tools/zod/okr_v1.js +455 -0
  303. package/dist/mcp-tool/tools/zh/gen-tools/zod/optical_char_recognition_v1.d.ts +38 -0
  304. package/dist/mcp-tool/tools/zh/gen-tools/zod/optical_char_recognition_v1.js +17 -0
  305. package/dist/mcp-tool/tools/zh/gen-tools/zod/passport_v1.d.ts +131 -0
  306. package/dist/mcp-tool/tools/zh/gen-tools/zod/passport_v1.js +53 -0
  307. package/dist/mcp-tool/tools/zh/gen-tools/zod/payroll_v1.d.ts +609 -0
  308. package/dist/mcp-tool/tools/zh/gen-tools/zod/payroll_v1.js +321 -0
  309. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v1.d.ts +309 -0
  310. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v1.js +165 -0
  311. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v2.d.ts +1177 -0
  312. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v2.js +525 -0
  313. package/dist/mcp-tool/tools/zh/gen-tools/zod/personal_settings_v1.d.ts +640 -0
  314. package/dist/mcp-tool/tools/zh/gen-tools/zod/personal_settings_v1.js +295 -0
  315. package/dist/mcp-tool/tools/zh/gen-tools/zod/report_v1.d.ts +194 -0
  316. package/dist/mcp-tool/tools/zh/gen-tools/zod/report_v1.js +72 -0
  317. package/dist/mcp-tool/tools/zh/gen-tools/zod/search_v2.d.ts +1695 -0
  318. package/dist/mcp-tool/tools/zh/gen-tools/zod/search_v2.js +556 -0
  319. package/dist/mcp-tool/tools/zh/gen-tools/zod/security_and_compliance_v1.d.ts +68 -0
  320. package/dist/mcp-tool/tools/zh/gen-tools/zod/security_and_compliance_v1.js +32 -0
  321. package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v2.d.ts +523 -0
  322. package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v2.js +231 -0
  323. package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v3.d.ts +979 -0
  324. package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v3.js +821 -0
  325. package/dist/mcp-tool/tools/zh/gen-tools/zod/speech_to_text_v1.d.ts +225 -0
  326. package/dist/mcp-tool/tools/zh/gen-tools/zod/speech_to_text_v1.js +65 -0
  327. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v1.d.ts +1161 -0
  328. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v1.js +647 -0
  329. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v2.d.ts +6077 -0
  330. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v2.js +1894 -0
  331. package/dist/mcp-tool/tools/zh/gen-tools/zod/tenant_v2.d.ts +31 -0
  332. package/dist/mcp-tool/tools/zh/gen-tools/zod/tenant_v2.js +24 -0
  333. package/dist/mcp-tool/tools/zh/gen-tools/zod/translation_v1.d.ts +80 -0
  334. package/dist/mcp-tool/tools/zh/gen-tools/zod/translation_v1.js +37 -0
  335. package/dist/mcp-tool/tools/zh/gen-tools/zod/trust_party_v1.d.ts +182 -0
  336. package/dist/mcp-tool/tools/zh/gen-tools/zod/trust_party_v1.js +137 -0
  337. package/dist/mcp-tool/tools/zh/gen-tools/zod/vc_v1.d.ts +5725 -0
  338. package/dist/mcp-tool/tools/zh/gen-tools/zod/vc_v1.js +1640 -0
  339. package/dist/mcp-tool/tools/zh/gen-tools/zod/verification_v1.d.ts +21 -0
  340. package/dist/mcp-tool/tools/zh/gen-tools/zod/verification_v1.js +14 -0
  341. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v1.d.ts +72 -0
  342. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v1.js +34 -0
  343. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v2.d.ts +843 -0
  344. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v2.js +376 -0
  345. package/dist/mcp-tool/tools/zh/gen-tools/zod/workplace_v1.d.ts +116 -0
  346. package/dist/mcp-tool/tools/zh/gen-tools/zod/workplace_v1.js +77 -0
  347. package/dist/mcp-tool/types/index.d.ts +53 -0
  348. package/dist/mcp-tool/types/index.js +9 -0
  349. package/dist/mcp-tool/utils/case-transf.d.ts +2 -0
  350. package/dist/mcp-tool/utils/case-transf.js +15 -0
  351. package/dist/mcp-tool/utils/filter-tools.d.ts +2 -0
  352. package/dist/mcp-tool/utils/filter-tools.js +27 -0
  353. package/dist/mcp-tool/utils/get-should-use-uat.d.ts +2 -0
  354. package/dist/mcp-tool/utils/get-should-use-uat.js +18 -0
  355. package/dist/mcp-tool/utils/handler.d.ts +2 -0
  356. package/dist/mcp-tool/utils/handler.js +119 -0
  357. package/dist/mcp-tool/utils/index.d.ts +4 -0
  358. package/dist/mcp-tool/utils/index.js +20 -0
  359. package/dist/utils/clean-env-args.d.ts +1 -0
  360. package/dist/utils/clean-env-args.js +12 -0
  361. package/dist/utils/constants.d.ts +18 -0
  362. package/dist/utils/constants.js +35 -0
  363. package/dist/utils/http-instance.d.ts +2 -0
  364. package/dist/utils/http-instance.js +21 -0
  365. package/dist/utils/logger.d.ts +22 -0
  366. package/dist/utils/logger.js +97 -0
  367. package/dist/utils/noop.d.ts +1 -0
  368. package/dist/utils/noop.js +6 -0
  369. package/dist/utils/parser-string-array.d.ts +1 -0
  370. package/dist/utils/parser-string-array.js +13 -0
  371. package/dist/utils/safe-json-parse.d.ts +1 -0
  372. package/dist/utils/safe-json-parse.js +14 -0
  373. package/dist/utils/version.d.ts +1 -0
  374. package/dist/utils/version.js +52 -0
  375. package/docs/recall-mcp/README.md +137 -0
  376. package/docs/recall-mcp/README_ZH.md +137 -0
  377. package/docs/reference/cli/cli-zh.md +92 -0
  378. package/docs/reference/cli/cli.md +92 -0
  379. package/docs/reference/tool-presets/presets-zh.md +120 -0
  380. package/docs/reference/tool-presets/presets.md +120 -0
  381. package/docs/reference/tool-presets/tools-en.md +1527 -0
  382. package/docs/reference/tool-presets/tools-zh.md +1544 -0
  383. package/docs/troubleshooting/faq-zh.md +67 -0
  384. package/docs/troubleshooting/faq.md +67 -0
  385. package/docs/usage/configuration/configuration-zh.md +344 -0
  386. package/docs/usage/configuration/configuration.md +344 -0
  387. package/docs/usage/docker/docker-zh.md +101 -0
  388. package/docs/usage/docker/docker.md +106 -0
  389. package/package.json +65 -0
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LarkMcpTool = void 0;
4
+ const node_sdk_1 = require("@larksuiteoapi/node-sdk");
5
+ const types_1 = require("./types");
6
+ const tools_1 = require("./tools");
7
+ const constants_1 = require("./constants");
8
+ const utils_1 = require("./utils");
9
+ const auth_1 = require("../auth");
10
+ const safe_json_parse_1 = require("../utils/safe-json-parse");
11
+ const constants_2 = require("../utils/constants");
12
+ const logger_1 = require("../utils/logger");
13
+ /**
14
+ * Feishu/Lark MCP
15
+ */
16
+ class LarkMcpTool {
17
+ /**
18
+ * Feishu/Lark MCP
19
+ * @param options Feishu/Lark Client Options
20
+ */
21
+ constructor(options, auth) {
22
+ var _a;
23
+ // Lark Client
24
+ this.client = null;
25
+ // User Access Token
26
+ this.userAccessToken = {};
27
+ // All Tools
28
+ this.allTools = [];
29
+ this.options = options;
30
+ this.auth = auth;
31
+ if (options.client) {
32
+ this.client = options.client;
33
+ }
34
+ else if (options.appId && options.appSecret) {
35
+ this.client = new node_sdk_1.Client({ appId: options.appId, appSecret: options.appSecret, ...options });
36
+ }
37
+ const isZH = ((_a = options.toolsOptions) === null || _a === void 0 ? void 0 : _a.language) === 'zh';
38
+ const filterOptions = {
39
+ allowTools: constants_1.defaultToolNames,
40
+ tokenMode: this.options.tokenMode || types_1.TokenMode.AUTO,
41
+ ...options.toolsOptions,
42
+ };
43
+ this.allTools = (0, utils_1.filterTools)(isZH ? tools_1.AllToolsZh : tools_1.AllTools, filterOptions);
44
+ logger_1.logger.info(`[LarkMcpTool] Initialized with ${this.allTools.length} tools, tokenMode: ${this.options.tokenMode}`);
45
+ }
46
+ /**
47
+ * Get MCP Tools
48
+ * @returns MCP Tool Definition Array
49
+ */
50
+ getTools() {
51
+ return this.allTools;
52
+ }
53
+ /**
54
+ * Update User Access Token
55
+ * @param userAccessToken User Access Token
56
+ */
57
+ updateUserAccessToken(userAccessToken) {
58
+ if (typeof userAccessToken === 'string') {
59
+ this.userAccessToken.value = userAccessToken;
60
+ }
61
+ else {
62
+ this.userAccessToken = userAccessToken;
63
+ }
64
+ }
65
+ async getUserAccessToken() {
66
+ if (this.userAccessToken.getter) {
67
+ return await this.userAccessToken.getter();
68
+ }
69
+ return this.userAccessToken.value;
70
+ }
71
+ async setUserAccessToken(userAccessToken) {
72
+ this.userAccessToken.value = userAccessToken;
73
+ if (this.userAccessToken.setter) {
74
+ await this.userAccessToken.setter(userAccessToken);
75
+ }
76
+ }
77
+ async reAuthorize() {
78
+ const userAccessToken = await this.getUserAccessToken();
79
+ // if not enable oauth mode, return empty object
80
+ if (!this.auth || !this.options.oauth) {
81
+ return {};
82
+ }
83
+ logger_1.logger.info(`[LarkMcpTool] Re-authorizing user access token`);
84
+ const { authorizeUrl, accessToken } = await this.auth.reAuthorize(userAccessToken);
85
+ if (accessToken) {
86
+ logger_1.logger.info(`[LarkMcpTool] Successfully re-authorized user access token`);
87
+ this.setUserAccessToken(accessToken);
88
+ return { userAccessToken: accessToken };
89
+ }
90
+ return { authorizeUrl };
91
+ }
92
+ async ensureGetUserAccessToken() {
93
+ var _a;
94
+ const userAccessToken = await this.getUserAccessToken();
95
+ if (!this.auth) {
96
+ return { userAccessToken };
97
+ }
98
+ const { valid, isExpired, token } = await (0, auth_1.isTokenValid)(userAccessToken);
99
+ if (valid) {
100
+ return { userAccessToken };
101
+ }
102
+ logger_1.logger.info(`[LarkMcpTool] UserAccessToken is invalid or expired, trying to get new token...`);
103
+ try {
104
+ if (isExpired && ((_a = token === null || token === void 0 ? void 0 : token.extra) === null || _a === void 0 ? void 0 : _a.refreshToken)) {
105
+ logger_1.logger.info(`[LarkMcpTool] UserAccessToken is expired, trying to use refreshToken to refresh...`);
106
+ const newToken = await this.auth.refreshToken(token.token);
107
+ if (newToken === null || newToken === void 0 ? void 0 : newToken.access_token) {
108
+ this.setUserAccessToken(newToken.access_token);
109
+ return { userAccessToken: newToken.access_token };
110
+ }
111
+ }
112
+ }
113
+ catch (error) {
114
+ logger_1.logger.error(`[LarkMcpTool] Failed to refreshToken: ${error}`);
115
+ }
116
+ // reAuthorize
117
+ return await this.reAuthorize();
118
+ }
119
+ getReAuthorizeMessage(authorizeUrl, errorCode, errorText) {
120
+ var _a;
121
+ const errorMessage = errorCode === constants_2.OAPI_MCP_ERROR_CODE.USER_ACCESS_TOKEN_UNAUTHORIZED
122
+ ? 'Current user_access_token lacks required permissions. Please ensure the corresponding permissions are enabled in the developer console, then re-authorize using the following Authorization URL or login command.'
123
+ : 'Current user_access_token is invalid or expired';
124
+ const instruction = authorizeUrl
125
+ ? [
126
+ 'Please open the following URL in your browser to complete the authorization:',
127
+ `Note: Ensure the redirect URL (${(_a = this.auth) === null || _a === void 0 ? void 0 : _a.callbackUrl}) is configured in your app's security settings.`,
128
+ ` If not configured, go to: ${this.options.domain}/app/${this.options.appId}/safe`,
129
+ 'Authorization URL:',
130
+ authorizeUrl,
131
+ 'This authorization link expires in 60 seconds. Generating a new link will immediately invalidate this one.',
132
+ ]
133
+ .join('\n')
134
+ .trim()
135
+ : '';
136
+ const reAuthorizeMessage = {
137
+ errorCode,
138
+ errorMessage,
139
+ instruction,
140
+ rawErrorText: errorText,
141
+ };
142
+ return {
143
+ isError: true,
144
+ content: [{ type: 'text', text: JSON.stringify(reAuthorizeMessage) }],
145
+ };
146
+ }
147
+ /**
148
+ * Register Tools to MCP Server
149
+ * @param server MCP Server Instance
150
+ */
151
+ registerMcpServer(server, options) {
152
+ for (const tool of this.allTools) {
153
+ server.tool((0, utils_1.caseTransf)(tool.name, options === null || options === void 0 ? void 0 : options.toolNameCase), tool.description, tool.schema, async (params) => {
154
+ var _a, _b, _c, _d, _e;
155
+ try {
156
+ if (!this.client) {
157
+ return {
158
+ isError: true,
159
+ content: [{ type: 'text', text: JSON.stringify({ msg: 'Client not initialized' }) }],
160
+ };
161
+ }
162
+ const handler = tool.customHandler || utils_1.larkOapiHandler;
163
+ const shouldUseUAT = (0, utils_1.getShouldUseUAT)(this.options.tokenMode, (_a = params === null || params === void 0 ? void 0 : params.useUAT) !== null && _a !== void 0 ? _a : false);
164
+ if (shouldUseUAT) {
165
+ const { userAccessToken, authorizeUrl } = await this.ensureGetUserAccessToken();
166
+ if (!userAccessToken) {
167
+ return this.getReAuthorizeMessage(authorizeUrl);
168
+ }
169
+ logger_1.logger.info(`[LarkMcpTool] Calling tool: ${tool.name}`);
170
+ const result = await handler(this.client, { ...params, useUAT: shouldUseUAT }, { userAccessToken, tool });
171
+ const errorCode = (0, safe_json_parse_1.safeJsonParse)((_c = (_b = result.content) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.text, { code: 0 }).code;
172
+ if (result.isError &&
173
+ [
174
+ constants_2.OAPI_MCP_ERROR_CODE.USER_ACCESS_TOKEN_UNAUTHORIZED,
175
+ constants_2.OAPI_MCP_ERROR_CODE.USER_ACCESS_TOKEN_INVALID,
176
+ ].includes(errorCode)) {
177
+ logger_1.logger.info(`[LarkMcpTool] User access token unauthorized the scope or invalid, reAuthorize, errorCode: ${errorCode}`);
178
+ // user access token unauthorized the scope or invalid, reAuthorize
179
+ const { authorizeUrl } = await this.reAuthorize();
180
+ return this.getReAuthorizeMessage(authorizeUrl, errorCode, (_e = (_d = result.content) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.text);
181
+ }
182
+ return result;
183
+ }
184
+ logger_1.logger.info(`[LarkMcpTool] Calling tool: ${tool.name}`);
185
+ return handler(this.client, { ...params, useUAT: shouldUseUAT }, { tool });
186
+ }
187
+ catch (error) {
188
+ logger_1.logger.error(`[LarkMcpTool] Failed to call tool: ${tool.name}, error: ${error}`);
189
+ return {
190
+ isError: true,
191
+ content: [{ type: 'text', text: JSON.stringify(error === null || error === void 0 ? void 0 : error.message) }],
192
+ };
193
+ }
194
+ });
195
+ }
196
+ }
197
+ }
198
+ exports.LarkMcpTool = LarkMcpTool;
@@ -0,0 +1,5 @@
1
+ import { McpTool } from '../../../../types';
2
+ export type docxBuiltinToolName = 'docx.builtin.search' | 'docx.builtin.import';
3
+ export declare const larkDocxBuiltinSearchTool: McpTool;
4
+ export declare const larkDocxBuiltinImportTool: McpTool;
5
+ export declare const docxBuiltinTools: McpTool[];
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.docxBuiltinTools = exports.larkDocxBuiltinImportTool = exports.larkDocxBuiltinSearchTool = void 0;
37
+ const lark = __importStar(require("@larksuiteoapi/node-sdk"));
38
+ const stream_1 = require("stream");
39
+ const zod_1 = require("zod");
40
+ exports.larkDocxBuiltinSearchTool = {
41
+ project: 'docx',
42
+ name: 'docx.builtin.search',
43
+ accessTokens: ['user'],
44
+ description: '[Feishu/Lark]-Docs-Document-Search Document-Search cloud documents, only supports user_access_token',
45
+ schema: {
46
+ data: zod_1.z.object({
47
+ search_key: zod_1.z.string().describe('Search keyword'),
48
+ count: zod_1.z
49
+ .number()
50
+ .describe('Specify the number of files returned in the search. Value range is [0,50].')
51
+ .optional(),
52
+ offset: zod_1.z
53
+ .number()
54
+ .describe('Specifies the search offset. The minimum value is 0, which means no offset. The sum of this parameter and the number of returned files must not be greater than or equal to 200 (i.e., offset + count < 200).')
55
+ .optional(),
56
+ owner_ids: zod_1.z.array(zod_1.z.string()).describe('Open ID of the file owner').optional(),
57
+ chat_ids: zod_1.z.array(zod_1.z.string()).describe('ID of the group where the file is located').optional(),
58
+ docs_types: zod_1.z
59
+ .array(zod_1.z.enum(['doc', 'sheet', 'slides', 'bitable', 'mindnote', 'file']))
60
+ .describe('File types, supports the following enumerations: doc: old version document; sheet: spreadsheet; slides: slides; bitable: multi-dimensional table; mindnote: mind map; file: file')
61
+ .optional(),
62
+ }),
63
+ useUAT: zod_1.z
64
+ .boolean()
65
+ .describe('Whether to use user identity for the request, false means using application identity')
66
+ .optional(),
67
+ },
68
+ customHandler: async (client, params, options) => {
69
+ var _a;
70
+ try {
71
+ const { userAccessToken } = options || {};
72
+ if (!userAccessToken) {
73
+ return {
74
+ isError: true,
75
+ content: [{ type: 'text', text: JSON.stringify({ msg: 'User access token is not configured' }) }],
76
+ };
77
+ }
78
+ const response = await client.request({
79
+ method: 'POST',
80
+ url: '/open-apis/suite/docs-api/search/object',
81
+ data: params.data,
82
+ }, lark.withUserAccessToken(userAccessToken));
83
+ return {
84
+ content: [
85
+ {
86
+ type: 'text',
87
+ text: JSON.stringify((_a = response.data) !== null && _a !== void 0 ? _a : response),
88
+ },
89
+ ],
90
+ };
91
+ }
92
+ catch (error) {
93
+ return {
94
+ isError: true,
95
+ content: [
96
+ {
97
+ type: 'text',
98
+ text: JSON.stringify(error.response.data),
99
+ },
100
+ ],
101
+ };
102
+ }
103
+ },
104
+ };
105
+ exports.larkDocxBuiltinImportTool = {
106
+ project: 'docx',
107
+ name: 'docx.builtin.import',
108
+ accessTokens: ['user', 'tenant'],
109
+ description: '[Feishu/Lark]-Docs-Document-Import Document-Import cloud document, maximum 20MB',
110
+ schema: {
111
+ data: zod_1.z
112
+ .object({
113
+ markdown: zod_1.z.string().describe('Markdown file content'),
114
+ file_name: zod_1.z.string().describe('File name').max(27).optional(),
115
+ })
116
+ .describe('Request body'),
117
+ useUAT: zod_1.z.boolean().describe('Use user identity for the request, otherwise use application identity').optional(),
118
+ },
119
+ customHandler: async (client, params, options) => {
120
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
121
+ try {
122
+ const { userAccessToken } = options || {};
123
+ const file = stream_1.Readable.from(params.data.markdown);
124
+ const data = {
125
+ file_name: 'docx.md',
126
+ parent_type: 'ccm_import_open',
127
+ parent_node: '/',
128
+ size: Buffer.byteLength(params.data.markdown),
129
+ file,
130
+ extra: JSON.stringify({ obj_type: 'docx', file_extension: 'md' }),
131
+ };
132
+ const response = userAccessToken && params.useUAT
133
+ ? await client.drive.media.uploadAll({ data }, lark.withUserAccessToken(userAccessToken))
134
+ : await client.drive.media.uploadAll({ data });
135
+ if (!(response === null || response === void 0 ? void 0 : response.file_token)) {
136
+ return {
137
+ isError: true,
138
+ content: [
139
+ {
140
+ type: 'text',
141
+ text: JSON.stringify({ msg: 'Document import failed, please check the markdown file content' }),
142
+ },
143
+ ],
144
+ };
145
+ }
146
+ const importData = {
147
+ file_extension: 'md',
148
+ file_name: params.data.file_name,
149
+ file_token: response === null || response === void 0 ? void 0 : response.file_token,
150
+ type: 'docx',
151
+ point: {
152
+ mount_type: 1,
153
+ mount_key: '',
154
+ },
155
+ };
156
+ const importResponse = userAccessToken && params.useUAT
157
+ ? await client.drive.importTask.create({ data: importData }, lark.withUserAccessToken(userAccessToken))
158
+ : await client.drive.importTask.create({ data: importData });
159
+ const taskId = (_a = importResponse.data) === null || _a === void 0 ? void 0 : _a.ticket;
160
+ if (!taskId) {
161
+ return {
162
+ isError: true,
163
+ content: [
164
+ {
165
+ type: 'text',
166
+ text: JSON.stringify({ msg: 'Document import failed, please check the markdown file content' }),
167
+ },
168
+ ],
169
+ };
170
+ }
171
+ for (let i = 0; i < 5; i++) {
172
+ const taskResponse = userAccessToken && params.useUAT
173
+ ? await client.drive.importTask.get({ path: { ticket: taskId } }, lark.withUserAccessToken(userAccessToken))
174
+ : await client.drive.importTask.get({ path: { ticket: taskId } });
175
+ if (((_c = (_b = taskResponse.data) === null || _b === void 0 ? void 0 : _b.result) === null || _c === void 0 ? void 0 : _c.job_status) === 0) {
176
+ return {
177
+ content: [
178
+ {
179
+ type: 'text',
180
+ text: JSON.stringify((_d = taskResponse.data) !== null && _d !== void 0 ? _d : taskResponse),
181
+ },
182
+ ],
183
+ };
184
+ }
185
+ else if (((_f = (_e = taskResponse.data) === null || _e === void 0 ? void 0 : _e.result) === null || _f === void 0 ? void 0 : _f.job_status) !== 1 && ((_h = (_g = taskResponse.data) === null || _g === void 0 ? void 0 : _g.result) === null || _h === void 0 ? void 0 : _h.job_status) !== 2) {
186
+ return {
187
+ content: [
188
+ {
189
+ type: 'text',
190
+ text: JSON.stringify(taskResponse.data),
191
+ },
192
+ ],
193
+ };
194
+ }
195
+ await new Promise((resolve) => setTimeout(resolve, 1000));
196
+ }
197
+ return {
198
+ content: [
199
+ {
200
+ type: 'text',
201
+ text: JSON.stringify({ msg: 'Document import failed, please try again later' }),
202
+ },
203
+ ],
204
+ };
205
+ }
206
+ catch (error) {
207
+ return {
208
+ isError: true,
209
+ content: [
210
+ {
211
+ type: 'text',
212
+ text: JSON.stringify(((_j = error === null || error === void 0 ? void 0 : error.response) === null || _j === void 0 ? void 0 : _j.data) || error),
213
+ },
214
+ ],
215
+ };
216
+ }
217
+ },
218
+ };
219
+ exports.docxBuiltinTools = [exports.larkDocxBuiltinSearchTool, exports.larkDocxBuiltinImportTool];
@@ -0,0 +1,4 @@
1
+ import { McpTool } from '../../../../types';
2
+ export type driveBuiltinToolName = 'drive.v1.exportTask.download';
3
+ export declare const larkDriveExportTaskDownloadTool: McpTool;
4
+ export declare const driveBuiltinTools: McpTool[];
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.driveBuiltinTools = exports.larkDriveExportTaskDownloadTool = void 0;
37
+ const lark = __importStar(require("@larksuiteoapi/node-sdk"));
38
+ const zod_1 = require("zod");
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const os = __importStar(require("os"));
42
+ exports.larkDriveExportTaskDownloadTool = {
43
+ project: 'drive',
44
+ name: 'drive.v1.exportTask.download',
45
+ sdkName: 'drive.v1.exportTask.download',
46
+ path: '/open-apis/drive/v1/export_tasks/file/:file_token/download',
47
+ httpMethod: 'GET',
48
+ accessTokens: ['user', 'tenant'],
49
+ supportFileDownload: true,
50
+ description: '[Feishu/Lark]-Docs-Space-File-Export docs-Download export file-Download the exported file using the file_token returned from the export task. The file will be saved to the specified output directory and the local file path will be returned. Note: The exported file will be deleted 10 minutes after the export task completes.',
51
+ schema: {
52
+ path: zod_1.z.object({
53
+ file_token: zod_1.z
54
+ .string()
55
+ .describe('The file token returned from the export task (drive.v1.exportTask.get). This token is used to download the exported file.'),
56
+ }),
57
+ params: zod_1.z.object({
58
+ output_dir: zod_1.z
59
+ .string()
60
+ .describe('The directory where the downloaded file will be saved. If not specified, defaults to system temp directory.')
61
+ .optional(),
62
+ file_name: zod_1.z
63
+ .string()
64
+ .describe('The name for the downloaded file (including extension, e.g., "document.xlsx"). If not specified, uses the original file name from the export task.')
65
+ .optional(),
66
+ }).optional(),
67
+ useUAT: zod_1.z.boolean().describe('Use user access token, otherwise use tenant access token').optional(),
68
+ },
69
+ customHandler: async (client, params, options) => {
70
+ var _a, _b, _c, _d;
71
+ try {
72
+ const { userAccessToken } = options || {};
73
+ const fileToken = (_a = params === null || params === void 0 ? void 0 : params.path) === null || _a === void 0 ? void 0 : _a.file_token;
74
+ if (!fileToken) {
75
+ return {
76
+ isError: true,
77
+ content: [{ type: 'text', text: JSON.stringify({ msg: 'file_token is required' }) }],
78
+ };
79
+ }
80
+ // Determine output directory and filename
81
+ const outputDir = ((_b = params === null || params === void 0 ? void 0 : params.params) === null || _b === void 0 ? void 0 : _b.output_dir) || os.tmpdir();
82
+ const fileName = ((_c = params === null || params === void 0 ? void 0 : params.params) === null || _c === void 0 ? void 0 : _c.file_name) || `export_${fileToken}`;
83
+ // Ensure output directory exists
84
+ if (!fs.existsSync(outputDir)) {
85
+ fs.mkdirSync(outputDir, { recursive: true });
86
+ }
87
+ const filePath = path.join(outputDir, fileName);
88
+ // Use SDK's built-in download method which returns writeFile/getReadableStream
89
+ let response;
90
+ if (userAccessToken && (params === null || params === void 0 ? void 0 : params.useUAT)) {
91
+ response = await client.drive.exportTask.download({ path: { file_token: fileToken } }, lark.withUserAccessToken(userAccessToken));
92
+ }
93
+ else {
94
+ response = await client.drive.exportTask.download({ path: { file_token: fileToken } });
95
+ }
96
+ // Use the SDK's writeFile method to save the file
97
+ if (response === null || response === void 0 ? void 0 : response.writeFile) {
98
+ await response.writeFile(filePath);
99
+ }
100
+ else if (response === null || response === void 0 ? void 0 : response.getReadableStream) {
101
+ // Fallback to stream if writeFile is not available
102
+ const readableStream = response.getReadableStream();
103
+ const writableStream = fs.createWriteStream(filePath);
104
+ await new Promise((resolve, reject) => {
105
+ readableStream.pipe(writableStream);
106
+ writableStream.on('finish', resolve);
107
+ writableStream.on('error', reject);
108
+ readableStream.on('error', reject);
109
+ });
110
+ }
111
+ else {
112
+ return {
113
+ isError: true,
114
+ content: [{ type: 'text', text: JSON.stringify({
115
+ msg: 'Failed to download file: SDK response does not contain writeFile or getReadableStream',
116
+ debug: { responseKeys: response ? Object.keys(response) : [] }
117
+ }) }],
118
+ };
119
+ }
120
+ // Check if file was created and get stats
121
+ if (!fs.existsSync(filePath)) {
122
+ return {
123
+ isError: true,
124
+ content: [{ type: 'text', text: JSON.stringify({ msg: 'Failed to download file: file was not created' }) }],
125
+ };
126
+ }
127
+ const stats = fs.statSync(filePath);
128
+ return {
129
+ content: [
130
+ {
131
+ type: 'text',
132
+ text: JSON.stringify({
133
+ success: true,
134
+ file_path: filePath,
135
+ file_name: fileName,
136
+ file_size: stats.size,
137
+ message: `File downloaded successfully to ${filePath}`,
138
+ }),
139
+ },
140
+ ],
141
+ };
142
+ }
143
+ catch (error) {
144
+ return {
145
+ isError: true,
146
+ content: [
147
+ {
148
+ type: 'text',
149
+ text: JSON.stringify({
150
+ msg: 'Failed to download export file',
151
+ error: ((_d = error === null || error === void 0 ? void 0 : error.response) === null || _d === void 0 ? void 0 : _d.data) || (error === null || error === void 0 ? void 0 : error.message) || String(error),
152
+ }),
153
+ },
154
+ ],
155
+ };
156
+ }
157
+ },
158
+ };
159
+ exports.driveBuiltinTools = [exports.larkDriveExportTaskDownloadTool];
@@ -0,0 +1,4 @@
1
+ import { McpTool } from '../../../../types';
2
+ export type imBuiltinToolName = 'im.builtin.batchSend';
3
+ export declare const larkImBuiltinBatchSendTool: McpTool;
4
+ export declare const imBuiltinTools: McpTool[];
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.imBuiltinTools = exports.larkImBuiltinBatchSendTool = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.larkImBuiltinBatchSendTool = {
6
+ project: 'im',
7
+ name: 'im.builtin.batchSend',
8
+ accessTokens: ['tenant'],
9
+ description: '[Feishu/Lark] - Batch send messages - Supports batch sending messages to multiple users and departments, supports text and card',
10
+ schema: {
11
+ data: zod_1.z.object({
12
+ msg_type: zod_1.z
13
+ .enum(['text', 'post', 'image', 'interactive', 'share_chat'])
14
+ .describe('Message type. If msg_type is text, image, post, or share_chat, the message content should be passed in the content parameter. If msg_type is interactive, the message content should be passed in the card parameter. Rich text type (post) messages do not support md tags.'),
15
+ content: zod_1.z
16
+ .any()
17
+ .describe('Message content, JSON structure. The value of this parameter corresponds to msg_type. For example, if msg_type is text, this parameter should be the text content.')
18
+ .optional(),
19
+ card: zod_1.z
20
+ .any()
21
+ .describe('Card content, JSON structure. The value of this parameter corresponds to msg_type. Only when msg_type is interactive, the card content should be passed in this parameter. When msg_type is not interactive, the message content should be passed in the content parameter.')
22
+ .optional(),
23
+ open_ids: zod_1.z.array(zod_1.z.string()).describe('List of recipient open_ids').optional(),
24
+ user_ids: zod_1.z.array(zod_1.z.string()).describe('List of recipient user_ids').optional(),
25
+ union_ids: zod_1.z.array(zod_1.z.string()).describe('List of recipient union_ids').optional(),
26
+ department_ids: zod_1.z
27
+ .array(zod_1.z.string())
28
+ .describe('List of department IDs. The list supports both department_id and open_department_id')
29
+ .optional(),
30
+ }),
31
+ },
32
+ customHandler: async (client, params) => {
33
+ var _a, _b;
34
+ try {
35
+ const { data } = params;
36
+ const response = await client.request({
37
+ method: 'POST',
38
+ url: '/open-apis/message/v4/batch_send',
39
+ data,
40
+ });
41
+ return {
42
+ content: [
43
+ {
44
+ type: 'text',
45
+ text: JSON.stringify((_a = response.data) !== null && _a !== void 0 ? _a : response),
46
+ },
47
+ ],
48
+ };
49
+ }
50
+ catch (error) {
51
+ return {
52
+ isError: true,
53
+ content: [
54
+ {
55
+ type: 'text',
56
+ text: JSON.stringify(((_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.data) || error),
57
+ },
58
+ ],
59
+ };
60
+ }
61
+ },
62
+ };
63
+ exports.imBuiltinTools = [exports.larkImBuiltinBatchSendTool];
@@ -0,0 +1,5 @@
1
+ import { docxBuiltinToolName } from './docx/builtin';
2
+ import { driveBuiltinToolName } from './drive/builtin';
3
+ import { imBuiltinToolName } from './im/buildin';
4
+ export declare const BuiltinTools: import("../../..").McpTool[];
5
+ export type BuiltinToolName = docxBuiltinToolName | driveBuiltinToolName | imBuiltinToolName;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BuiltinTools = void 0;
4
+ const builtin_1 = require("./docx/builtin");
5
+ const builtin_2 = require("./drive/builtin");
6
+ const buildin_1 = require("./im/buildin");
7
+ exports.BuiltinTools = [...builtin_1.docxBuiltinTools, ...builtin_2.driveBuiltinTools, ...buildin_1.imBuiltinTools];