bitfire-lark-mcp 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 (395) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/LICENSE +9 -0
  3. package/README.md +217 -0
  4. package/README_ZH.md +214 -0
  5. package/dist/auth/config.d.ts +12 -0
  6. package/dist/auth/config.js +17 -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 +118 -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/read-full-content/extract-text.d.ts +53 -0
  68. package/dist/mcp-tool/document-tool/read-full-content/extract-text.js +109 -0
  69. package/dist/mcp-tool/document-tool/read-full-content/index.d.ts +3 -0
  70. package/dist/mcp-tool/document-tool/read-full-content/index.js +9 -0
  71. package/dist/mcp-tool/document-tool/read-full-content/reader.d.ts +12 -0
  72. package/dist/mcp-tool/document-tool/read-full-content/reader.js +283 -0
  73. package/dist/mcp-tool/document-tool/read-full-content/types.d.ts +78 -0
  74. package/dist/mcp-tool/document-tool/read-full-content/types.js +2 -0
  75. package/dist/mcp-tool/document-tool/read-full-content/whiteboard.d.ts +53 -0
  76. package/dist/mcp-tool/document-tool/read-full-content/whiteboard.js +174 -0
  77. package/dist/mcp-tool/document-tool/recall/index.d.ts +2 -0
  78. package/dist/mcp-tool/document-tool/recall/index.js +39 -0
  79. package/dist/mcp-tool/document-tool/recall/request.d.ts +2 -0
  80. package/dist/mcp-tool/document-tool/recall/request.js +25 -0
  81. package/dist/mcp-tool/document-tool/recall/type.d.ts +19 -0
  82. package/dist/mcp-tool/document-tool/recall/type.js +2 -0
  83. package/dist/mcp-tool/index.d.ts +5 -0
  84. package/dist/mcp-tool/index.js +21 -0
  85. package/dist/mcp-tool/mcp-tool.d.ts +52 -0
  86. package/dist/mcp-tool/mcp-tool.js +198 -0
  87. package/dist/mcp-tool/tools/en/builtin-tools/docx/builtin.d.ts +6 -0
  88. package/dist/mcp-tool/tools/en/builtin-tools/docx/builtin.js +303 -0
  89. package/dist/mcp-tool/tools/en/builtin-tools/im/buildin.d.ts +4 -0
  90. package/dist/mcp-tool/tools/en/builtin-tools/im/buildin.js +63 -0
  91. package/dist/mcp-tool/tools/en/builtin-tools/index.d.ts +4 -0
  92. package/dist/mcp-tool/tools/en/builtin-tools/index.js +6 -0
  93. package/dist/mcp-tool/tools/en/gen-tools/index.d.ts +113 -0
  94. package/dist/mcp-tool/tools/en/gen-tools/index.js +127 -0
  95. package/dist/mcp-tool/tools/en/gen-tools/zod/acs_v1.d.ts +562 -0
  96. package/dist/mcp-tool/tools/en/gen-tools/zod/acs_v1.js +264 -0
  97. package/dist/mcp-tool/tools/en/gen-tools/zod/admin_v1.d.ts +912 -0
  98. package/dist/mcp-tool/tools/en/gen-tools/zod/admin_v1.js +449 -0
  99. package/dist/mcp-tool/tools/en/gen-tools/zod/aily_v1.d.ts +1213 -0
  100. package/dist/mcp-tool/tools/en/gen-tools/zod/aily_v1.js +560 -0
  101. package/dist/mcp-tool/tools/en/gen-tools/zod/apaas_v1.d.ts +2530 -0
  102. package/dist/mcp-tool/tools/en/gen-tools/zod/apaas_v1.js +949 -0
  103. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v5.d.ts +80 -0
  104. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v5.js +53 -0
  105. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v6.d.ts +1008 -0
  106. package/dist/mcp-tool/tools/en/gen-tools/zod/application_v6.js +775 -0
  107. package/dist/mcp-tool/tools/en/gen-tools/zod/approval_v4.d.ts +3928 -0
  108. package/dist/mcp-tool/tools/en/gen-tools/zod/approval_v4.js +1602 -0
  109. package/dist/mcp-tool/tools/en/gen-tools/zod/attendance_v1.d.ts +6043 -0
  110. package/dist/mcp-tool/tools/en/gen-tools/zod/attendance_v1.js +1857 -0
  111. package/dist/mcp-tool/tools/en/gen-tools/zod/auth_v3.d.ts +151 -0
  112. package/dist/mcp-tool/tools/en/gen-tools/zod/auth_v3.js +71 -0
  113. package/dist/mcp-tool/tools/en/gen-tools/zod/authen_v1.d.ts +26 -0
  114. package/dist/mcp-tool/tools/en/gen-tools/zod/authen_v1.js +17 -0
  115. package/dist/mcp-tool/tools/en/gen-tools/zod/baike_v1.d.ts +2174 -0
  116. package/dist/mcp-tool/tools/en/gen-tools/zod/baike_v1.js +594 -0
  117. package/dist/mcp-tool/tools/en/gen-tools/zod/base_v2.d.ts +755 -0
  118. package/dist/mcp-tool/tools/en/gen-tools/zod/base_v2.js +234 -0
  119. package/dist/mcp-tool/tools/en/gen-tools/zod/bitable_v1.d.ts +3541 -0
  120. package/dist/mcp-tool/tools/en/gen-tools/zod/bitable_v1.js +1786 -0
  121. package/dist/mcp-tool/tools/en/gen-tools/zod/board_v1.d.ts +40 -0
  122. package/dist/mcp-tool/tools/en/gen-tools/zod/board_v1.js +18 -0
  123. package/dist/mcp-tool/tools/en/gen-tools/zod/calendar_v4.d.ts +2075 -0
  124. package/dist/mcp-tool/tools/en/gen-tools/zod/calendar_v4.js +1594 -0
  125. package/dist/mcp-tool/tools/en/gen-tools/zod/cardkit_v1.d.ts +528 -0
  126. package/dist/mcp-tool/tools/en/gen-tools/zod/cardkit_v1.js +260 -0
  127. package/dist/mcp-tool/tools/en/gen-tools/zod/compensation_v1.d.ts +189 -0
  128. package/dist/mcp-tool/tools/en/gen-tools/zod/compensation_v1.js +132 -0
  129. package/dist/mcp-tool/tools/en/gen-tools/zod/contact_v3.d.ts +4274 -0
  130. package/dist/mcp-tool/tools/en/gen-tools/zod/contact_v3.js +2583 -0
  131. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v1.d.ts +16873 -0
  132. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v1.js +5045 -0
  133. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v2.d.ts +29387 -0
  134. package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v2.js +7787 -0
  135. package/dist/mcp-tool/tools/en/gen-tools/zod/directory_v1.d.ts +4274 -0
  136. package/dist/mcp-tool/tools/en/gen-tools/zod/directory_v1.js +1367 -0
  137. package/dist/mcp-tool/tools/en/gen-tools/zod/docs_v1.d.ts +58 -0
  138. package/dist/mcp-tool/tools/en/gen-tools/zod/docs_v1.js +28 -0
  139. package/dist/mcp-tool/tools/en/gen-tools/zod/docx_v1.d.ts +93466 -0
  140. package/dist/mcp-tool/tools/en/gen-tools/zod/docx_v1.js +14350 -0
  141. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v1.d.ts +3251 -0
  142. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v1.js +1422 -0
  143. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v2.d.ts +174 -0
  144. package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v2.js +117 -0
  145. package/dist/mcp-tool/tools/en/gen-tools/zod/ehr_v1.d.ts +86 -0
  146. package/dist/mcp-tool/tools/en/gen-tools/zod/ehr_v1.js +48 -0
  147. package/dist/mcp-tool/tools/en/gen-tools/zod/event_v1.d.ts +44 -0
  148. package/dist/mcp-tool/tools/en/gen-tools/zod/event_v1.js +17 -0
  149. package/dist/mcp-tool/tools/en/gen-tools/zod/helpdesk_v1.d.ts +733 -0
  150. package/dist/mcp-tool/tools/en/gen-tools/zod/helpdesk_v1.js +285 -0
  151. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v1.d.ts +10076 -0
  152. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v1.js +6065 -0
  153. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v2.d.ts +158 -0
  154. package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v2.js +61 -0
  155. package/dist/mcp-tool/tools/en/gen-tools/zod/human_authentication_v1.d.ts +70 -0
  156. package/dist/mcp-tool/tools/en/gen-tools/zod/human_authentication_v1.js +27 -0
  157. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v1.d.ts +3043 -0
  158. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v1.js +1869 -0
  159. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v2.d.ts +2176 -0
  160. package/dist/mcp-tool/tools/en/gen-tools/zod/im_v2.js +460 -0
  161. package/dist/mcp-tool/tools/en/gen-tools/zod/lingo_v1.d.ts +2301 -0
  162. package/dist/mcp-tool/tools/en/gen-tools/zod/lingo_v1.js +669 -0
  163. package/dist/mcp-tool/tools/en/gen-tools/zod/mail_v1.d.ts +2462 -0
  164. package/dist/mcp-tool/tools/en/gen-tools/zod/mail_v1.js +1655 -0
  165. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v1.d.ts +104 -0
  166. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v1.js +45 -0
  167. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v3.d.ts +329 -0
  168. package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v3.js +78 -0
  169. package/dist/mcp-tool/tools/en/gen-tools/zod/minutes_v1.d.ts +92 -0
  170. package/dist/mcp-tool/tools/en/gen-tools/zod/minutes_v1.js +62 -0
  171. package/dist/mcp-tool/tools/en/gen-tools/zod/moments_v1.d.ts +52 -0
  172. package/dist/mcp-tool/tools/en/gen-tools/zod/moments_v1.js +24 -0
  173. package/dist/mcp-tool/tools/en/gen-tools/zod/okr_v1.d.ts +1628 -0
  174. package/dist/mcp-tool/tools/en/gen-tools/zod/okr_v1.js +434 -0
  175. package/dist/mcp-tool/tools/en/gen-tools/zod/optical_char_recognition_v1.d.ts +38 -0
  176. package/dist/mcp-tool/tools/en/gen-tools/zod/optical_char_recognition_v1.js +17 -0
  177. package/dist/mcp-tool/tools/en/gen-tools/zod/passport_v1.d.ts +131 -0
  178. package/dist/mcp-tool/tools/en/gen-tools/zod/passport_v1.js +59 -0
  179. package/dist/mcp-tool/tools/en/gen-tools/zod/payroll_v1.d.ts +333 -0
  180. package/dist/mcp-tool/tools/en/gen-tools/zod/payroll_v1.js +176 -0
  181. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v1.d.ts +309 -0
  182. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v1.js +178 -0
  183. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v2.d.ts +1177 -0
  184. package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v2.js +559 -0
  185. package/dist/mcp-tool/tools/en/gen-tools/zod/personal_settings_v1.d.ts +640 -0
  186. package/dist/mcp-tool/tools/en/gen-tools/zod/personal_settings_v1.js +303 -0
  187. package/dist/mcp-tool/tools/en/gen-tools/zod/report_v1.d.ts +192 -0
  188. package/dist/mcp-tool/tools/en/gen-tools/zod/report_v1.js +71 -0
  189. package/dist/mcp-tool/tools/en/gen-tools/zod/search_v2.d.ts +1695 -0
  190. package/dist/mcp-tool/tools/en/gen-tools/zod/search_v2.js +446 -0
  191. package/dist/mcp-tool/tools/en/gen-tools/zod/security_and_compliance_v1.d.ts +68 -0
  192. package/dist/mcp-tool/tools/en/gen-tools/zod/security_and_compliance_v1.js +32 -0
  193. package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v3.d.ts +979 -0
  194. package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v3.js +721 -0
  195. package/dist/mcp-tool/tools/en/gen-tools/zod/speech_to_text_v1.d.ts +225 -0
  196. package/dist/mcp-tool/tools/en/gen-tools/zod/speech_to_text_v1.js +65 -0
  197. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v1.d.ts +1161 -0
  198. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v1.js +672 -0
  199. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v2.d.ts +6051 -0
  200. package/dist/mcp-tool/tools/en/gen-tools/zod/task_v2.js +1970 -0
  201. package/dist/mcp-tool/tools/en/gen-tools/zod/tenant_v2.d.ts +31 -0
  202. package/dist/mcp-tool/tools/en/gen-tools/zod/tenant_v2.js +24 -0
  203. package/dist/mcp-tool/tools/en/gen-tools/zod/translation_v1.d.ts +80 -0
  204. package/dist/mcp-tool/tools/en/gen-tools/zod/translation_v1.js +37 -0
  205. package/dist/mcp-tool/tools/en/gen-tools/zod/trust_party_v1.d.ts +182 -0
  206. package/dist/mcp-tool/tools/en/gen-tools/zod/trust_party_v1.js +141 -0
  207. package/dist/mcp-tool/tools/en/gen-tools/zod/vc_v1.d.ts +5725 -0
  208. package/dist/mcp-tool/tools/en/gen-tools/zod/vc_v1.js +1751 -0
  209. package/dist/mcp-tool/tools/en/gen-tools/zod/verification_v1.d.ts +21 -0
  210. package/dist/mcp-tool/tools/en/gen-tools/zod/verification_v1.js +14 -0
  211. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v1.d.ts +72 -0
  212. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v1.js +19 -0
  213. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v2.d.ts +843 -0
  214. package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v2.js +381 -0
  215. package/dist/mcp-tool/tools/en/gen-tools/zod/workplace_v1.d.ts +116 -0
  216. package/dist/mcp-tool/tools/en/gen-tools/zod/workplace_v1.js +77 -0
  217. package/dist/mcp-tool/tools/index.d.ts +104 -0
  218. package/dist/mcp-tool/tools/index.js +9 -0
  219. package/dist/mcp-tool/tools/zh/builtin-tools/docx/builtin.d.ts +6 -0
  220. package/dist/mcp-tool/tools/zh/builtin-tools/docx/builtin.js +282 -0
  221. package/dist/mcp-tool/tools/zh/builtin-tools/im/buildin.d.ts +4 -0
  222. package/dist/mcp-tool/tools/zh/builtin-tools/im/buildin.js +63 -0
  223. package/dist/mcp-tool/tools/zh/builtin-tools/index.d.ts +4 -0
  224. package/dist/mcp-tool/tools/zh/builtin-tools/index.js +6 -0
  225. package/dist/mcp-tool/tools/zh/gen-tools/index.d.ts +113 -0
  226. package/dist/mcp-tool/tools/zh/gen-tools/index.js +127 -0
  227. package/dist/mcp-tool/tools/zh/gen-tools/zod/acs_v1.d.ts +562 -0
  228. package/dist/mcp-tool/tools/zh/gen-tools/zod/acs_v1.js +277 -0
  229. package/dist/mcp-tool/tools/zh/gen-tools/zod/admin_v1.d.ts +912 -0
  230. package/dist/mcp-tool/tools/zh/gen-tools/zod/admin_v1.js +430 -0
  231. package/dist/mcp-tool/tools/zh/gen-tools/zod/aily_v1.d.ts +1213 -0
  232. package/dist/mcp-tool/tools/zh/gen-tools/zod/aily_v1.js +541 -0
  233. package/dist/mcp-tool/tools/zh/gen-tools/zod/apaas_v1.d.ts +2530 -0
  234. package/dist/mcp-tool/tools/zh/gen-tools/zod/apaas_v1.js +885 -0
  235. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v5.d.ts +80 -0
  236. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v5.js +59 -0
  237. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v6.d.ts +1007 -0
  238. package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v6.js +721 -0
  239. package/dist/mcp-tool/tools/zh/gen-tools/zod/approval_v4.d.ts +3928 -0
  240. package/dist/mcp-tool/tools/zh/gen-tools/zod/approval_v4.js +1532 -0
  241. package/dist/mcp-tool/tools/zh/gen-tools/zod/attendance_v1.d.ts +6043 -0
  242. package/dist/mcp-tool/tools/zh/gen-tools/zod/attendance_v1.js +1620 -0
  243. package/dist/mcp-tool/tools/zh/gen-tools/zod/auth_v3.d.ts +151 -0
  244. package/dist/mcp-tool/tools/zh/gen-tools/zod/auth_v3.js +87 -0
  245. package/dist/mcp-tool/tools/zh/gen-tools/zod/authen_v1.d.ts +26 -0
  246. package/dist/mcp-tool/tools/zh/gen-tools/zod/authen_v1.js +17 -0
  247. package/dist/mcp-tool/tools/zh/gen-tools/zod/baike_v1.d.ts +2174 -0
  248. package/dist/mcp-tool/tools/zh/gen-tools/zod/baike_v1.js +574 -0
  249. package/dist/mcp-tool/tools/zh/gen-tools/zod/base_v2.d.ts +755 -0
  250. package/dist/mcp-tool/tools/zh/gen-tools/zod/base_v2.js +270 -0
  251. package/dist/mcp-tool/tools/zh/gen-tools/zod/bitable_v1.d.ts +3541 -0
  252. package/dist/mcp-tool/tools/zh/gen-tools/zod/bitable_v1.js +1864 -0
  253. package/dist/mcp-tool/tools/zh/gen-tools/zod/board_v1.d.ts +40 -0
  254. package/dist/mcp-tool/tools/zh/gen-tools/zod/board_v1.js +18 -0
  255. package/dist/mcp-tool/tools/zh/gen-tools/zod/calendar_v4.d.ts +2075 -0
  256. package/dist/mcp-tool/tools/zh/gen-tools/zod/calendar_v4.js +1533 -0
  257. package/dist/mcp-tool/tools/zh/gen-tools/zod/cardkit_v1.d.ts +528 -0
  258. package/dist/mcp-tool/tools/zh/gen-tools/zod/cardkit_v1.js +248 -0
  259. package/dist/mcp-tool/tools/zh/gen-tools/zod/compensation_v1.d.ts +189 -0
  260. package/dist/mcp-tool/tools/zh/gen-tools/zod/compensation_v1.js +130 -0
  261. package/dist/mcp-tool/tools/zh/gen-tools/zod/contact_v3.d.ts +4274 -0
  262. package/dist/mcp-tool/tools/zh/gen-tools/zod/contact_v3.js +2394 -0
  263. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v1.d.ts +16957 -0
  264. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v1.js +4753 -0
  265. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v2.d.ts +29869 -0
  266. package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v2.js +7902 -0
  267. package/dist/mcp-tool/tools/zh/gen-tools/zod/directory_v1.d.ts +4324 -0
  268. package/dist/mcp-tool/tools/zh/gen-tools/zod/directory_v1.js +1340 -0
  269. package/dist/mcp-tool/tools/zh/gen-tools/zod/docs_v1.d.ts +58 -0
  270. package/dist/mcp-tool/tools/zh/gen-tools/zod/docs_v1.js +26 -0
  271. package/dist/mcp-tool/tools/zh/gen-tools/zod/docx_v1.d.ts +116719 -0
  272. package/dist/mcp-tool/tools/zh/gen-tools/zod/docx_v1.js +14949 -0
  273. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v1.d.ts +3251 -0
  274. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v1.js +1395 -0
  275. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v2.d.ts +174 -0
  276. package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v2.js +115 -0
  277. package/dist/mcp-tool/tools/zh/gen-tools/zod/ehr_v1.d.ts +86 -0
  278. package/dist/mcp-tool/tools/zh/gen-tools/zod/ehr_v1.js +48 -0
  279. package/dist/mcp-tool/tools/zh/gen-tools/zod/event_v1.d.ts +44 -0
  280. package/dist/mcp-tool/tools/zh/gen-tools/zod/event_v1.js +25 -0
  281. package/dist/mcp-tool/tools/zh/gen-tools/zod/helpdesk_v1.d.ts +733 -0
  282. package/dist/mcp-tool/tools/zh/gen-tools/zod/helpdesk_v1.js +279 -0
  283. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v1.d.ts +10085 -0
  284. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v1.js +5787 -0
  285. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v2.d.ts +158 -0
  286. package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v2.js +64 -0
  287. package/dist/mcp-tool/tools/zh/gen-tools/zod/human_authentication_v1.d.ts +70 -0
  288. package/dist/mcp-tool/tools/zh/gen-tools/zod/human_authentication_v1.js +27 -0
  289. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v1.d.ts +3043 -0
  290. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v1.js +1812 -0
  291. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v2.d.ts +2176 -0
  292. package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v2.js +454 -0
  293. package/dist/mcp-tool/tools/zh/gen-tools/zod/lingo_v1.d.ts +2301 -0
  294. package/dist/mcp-tool/tools/zh/gen-tools/zod/lingo_v1.js +650 -0
  295. package/dist/mcp-tool/tools/zh/gen-tools/zod/mail_v1.d.ts +2465 -0
  296. package/dist/mcp-tool/tools/zh/gen-tools/zod/mail_v1.js +1467 -0
  297. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v1.d.ts +104 -0
  298. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v1.js +45 -0
  299. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v3.d.ts +329 -0
  300. package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v3.js +76 -0
  301. package/dist/mcp-tool/tools/zh/gen-tools/zod/minutes_v1.d.ts +92 -0
  302. package/dist/mcp-tool/tools/zh/gen-tools/zod/minutes_v1.js +62 -0
  303. package/dist/mcp-tool/tools/zh/gen-tools/zod/moments_v1.d.ts +52 -0
  304. package/dist/mcp-tool/tools/zh/gen-tools/zod/moments_v1.js +20 -0
  305. package/dist/mcp-tool/tools/zh/gen-tools/zod/okr_v1.d.ts +1664 -0
  306. package/dist/mcp-tool/tools/zh/gen-tools/zod/okr_v1.js +455 -0
  307. package/dist/mcp-tool/tools/zh/gen-tools/zod/optical_char_recognition_v1.d.ts +38 -0
  308. package/dist/mcp-tool/tools/zh/gen-tools/zod/optical_char_recognition_v1.js +17 -0
  309. package/dist/mcp-tool/tools/zh/gen-tools/zod/passport_v1.d.ts +131 -0
  310. package/dist/mcp-tool/tools/zh/gen-tools/zod/passport_v1.js +53 -0
  311. package/dist/mcp-tool/tools/zh/gen-tools/zod/payroll_v1.d.ts +609 -0
  312. package/dist/mcp-tool/tools/zh/gen-tools/zod/payroll_v1.js +321 -0
  313. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v1.d.ts +309 -0
  314. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v1.js +165 -0
  315. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v2.d.ts +1177 -0
  316. package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v2.js +525 -0
  317. package/dist/mcp-tool/tools/zh/gen-tools/zod/personal_settings_v1.d.ts +640 -0
  318. package/dist/mcp-tool/tools/zh/gen-tools/zod/personal_settings_v1.js +295 -0
  319. package/dist/mcp-tool/tools/zh/gen-tools/zod/report_v1.d.ts +194 -0
  320. package/dist/mcp-tool/tools/zh/gen-tools/zod/report_v1.js +72 -0
  321. package/dist/mcp-tool/tools/zh/gen-tools/zod/search_v2.d.ts +1695 -0
  322. package/dist/mcp-tool/tools/zh/gen-tools/zod/search_v2.js +556 -0
  323. package/dist/mcp-tool/tools/zh/gen-tools/zod/security_and_compliance_v1.d.ts +68 -0
  324. package/dist/mcp-tool/tools/zh/gen-tools/zod/security_and_compliance_v1.js +32 -0
  325. package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v3.d.ts +979 -0
  326. package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v3.js +821 -0
  327. package/dist/mcp-tool/tools/zh/gen-tools/zod/speech_to_text_v1.d.ts +225 -0
  328. package/dist/mcp-tool/tools/zh/gen-tools/zod/speech_to_text_v1.js +65 -0
  329. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v1.d.ts +1161 -0
  330. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v1.js +647 -0
  331. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v2.d.ts +6077 -0
  332. package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v2.js +1894 -0
  333. package/dist/mcp-tool/tools/zh/gen-tools/zod/tenant_v2.d.ts +31 -0
  334. package/dist/mcp-tool/tools/zh/gen-tools/zod/tenant_v2.js +24 -0
  335. package/dist/mcp-tool/tools/zh/gen-tools/zod/translation_v1.d.ts +80 -0
  336. package/dist/mcp-tool/tools/zh/gen-tools/zod/translation_v1.js +37 -0
  337. package/dist/mcp-tool/tools/zh/gen-tools/zod/trust_party_v1.d.ts +182 -0
  338. package/dist/mcp-tool/tools/zh/gen-tools/zod/trust_party_v1.js +137 -0
  339. package/dist/mcp-tool/tools/zh/gen-tools/zod/vc_v1.d.ts +5725 -0
  340. package/dist/mcp-tool/tools/zh/gen-tools/zod/vc_v1.js +1640 -0
  341. package/dist/mcp-tool/tools/zh/gen-tools/zod/verification_v1.d.ts +21 -0
  342. package/dist/mcp-tool/tools/zh/gen-tools/zod/verification_v1.js +14 -0
  343. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v1.d.ts +72 -0
  344. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v1.js +34 -0
  345. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v2.d.ts +843 -0
  346. package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v2.js +376 -0
  347. package/dist/mcp-tool/tools/zh/gen-tools/zod/workplace_v1.d.ts +116 -0
  348. package/dist/mcp-tool/tools/zh/gen-tools/zod/workplace_v1.js +77 -0
  349. package/dist/mcp-tool/types/index.d.ts +53 -0
  350. package/dist/mcp-tool/types/index.js +9 -0
  351. package/dist/mcp-tool/utils/case-transf.d.ts +2 -0
  352. package/dist/mcp-tool/utils/case-transf.js +15 -0
  353. package/dist/mcp-tool/utils/filter-tools.d.ts +2 -0
  354. package/dist/mcp-tool/utils/filter-tools.js +27 -0
  355. package/dist/mcp-tool/utils/get-should-use-uat.d.ts +2 -0
  356. package/dist/mcp-tool/utils/get-should-use-uat.js +18 -0
  357. package/dist/mcp-tool/utils/handler.d.ts +2 -0
  358. package/dist/mcp-tool/utils/handler.js +92 -0
  359. package/dist/mcp-tool/utils/index.d.ts +4 -0
  360. package/dist/mcp-tool/utils/index.js +20 -0
  361. package/dist/utils/clean-env-args.d.ts +1 -0
  362. package/dist/utils/clean-env-args.js +12 -0
  363. package/dist/utils/constants.d.ts +18 -0
  364. package/dist/utils/constants.js +35 -0
  365. package/dist/utils/http-instance.d.ts +2 -0
  366. package/dist/utils/http-instance.js +21 -0
  367. package/dist/utils/logger.d.ts +22 -0
  368. package/dist/utils/logger.js +97 -0
  369. package/dist/utils/noop.d.ts +1 -0
  370. package/dist/utils/noop.js +6 -0
  371. package/dist/utils/parser-string-array.d.ts +1 -0
  372. package/dist/utils/parser-string-array.js +13 -0
  373. package/dist/utils/safe-json-parse.d.ts +1 -0
  374. package/dist/utils/safe-json-parse.js +14 -0
  375. package/dist/utils/version.d.ts +1 -0
  376. package/dist/utils/version.js +52 -0
  377. package/docs/development/mcp-develop-and-publish.md +273 -0
  378. package/docs/examples/read-wiki-with-board.md +114 -0
  379. package/docs/examples/wiki-board-architecture-summary.md +88 -0
  380. package/docs/recall-mcp/README.md +137 -0
  381. package/docs/recall-mcp/README_ZH.md +137 -0
  382. package/docs/reference/cli/cli-zh.md +92 -0
  383. package/docs/reference/cli/cli.md +92 -0
  384. package/docs/reference/tool-presets/presets-zh.md +122 -0
  385. package/docs/reference/tool-presets/presets.md +122 -0
  386. package/docs/reference/tool-presets/tools-en.md +1516 -0
  387. package/docs/reference/tool-presets/tools-zh.md +1533 -0
  388. package/docs/troubleshooting/faq-zh.md +67 -0
  389. package/docs/troubleshooting/faq.md +67 -0
  390. package/docs/usage/bitfire-lark-mcp-setup.md +119 -0
  391. package/docs/usage/configuration/configuration-zh.md +344 -0
  392. package/docs/usage/configuration/configuration.md +344 -0
  393. package/docs/usage/docker/docker-zh.md +101 -0
  394. package/docs/usage/docker/docker.md +106 -0
  395. package/package.json +64 -0
@@ -0,0 +1,174 @@
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.fetchWhiteboardNodes = fetchWhiteboardNodes;
37
+ exports.formatWhiteboardNodes = formatWhiteboardNodes;
38
+ const lark = __importStar(require("@larksuiteoapi/node-sdk"));
39
+ const BOARD_NODES_PAGE_SIZE = 100;
40
+ /**
41
+ * 拉取画板内所有节点(分页)
42
+ */
43
+ async function fetchWhiteboardNodes(client, whiteboardId, options) {
44
+ var _a, _b, _c, _d;
45
+ const items = [];
46
+ let pageToken;
47
+ const baseUrl = `/open-apis/board/v1/whiteboards/${encodeURIComponent(whiteboardId)}/nodes`;
48
+ const doRequest = (token) => {
49
+ const query = new URLSearchParams({ page_size: String(BOARD_NODES_PAGE_SIZE) });
50
+ if (token)
51
+ query.set('page_token', token);
52
+ const url = `${baseUrl}?${query.toString()}`;
53
+ const params = { method: 'GET', url };
54
+ return options.useUAT && options.userAccessToken
55
+ ? client.request(params, lark.withUserAccessToken(options.userAccessToken))
56
+ : client.request(params);
57
+ };
58
+ try {
59
+ do {
60
+ const res = await doRequest(pageToken);
61
+ const data = (_a = res === null || res === void 0 ? void 0 : res.data) !== null && _a !== void 0 ? _a : res;
62
+ const batch = (_d = (_c = (_b = data.items) !== null && _b !== void 0 ? _b : data.nodes) !== null && _c !== void 0 ? _c : data.node_list) !== null && _d !== void 0 ? _d : [];
63
+ if (batch === null || batch === void 0 ? void 0 : batch.length)
64
+ items.push(...batch);
65
+ pageToken = data.has_more ? data.page_token : undefined;
66
+ } while (pageToken);
67
+ }
68
+ catch (_e) {
69
+ return items;
70
+ }
71
+ return items;
72
+ }
73
+ /** 从节点中提取可读文本(多字段 + 深度扫描,便于流程图/状态图) */
74
+ function nodeToText(node) {
75
+ var _a, _b, _c, _d;
76
+ const parts = [];
77
+ if ((_b = (_a = node.text) === null || _a === void 0 ? void 0 : _a.elements) === null || _b === void 0 ? void 0 : _b.length) {
78
+ parts.push(node.text.elements.map((el) => { var _a; return (_a = el.content) !== null && _a !== void 0 ? _a : ''; }).join(''));
79
+ }
80
+ if (typeof node.content === 'string' && node.content.trim())
81
+ parts.push(node.content.trim());
82
+ if (typeof node.label === 'string' && node.label.trim())
83
+ parts.push(node.label.trim());
84
+ if (typeof node.title === 'string' && node.title.trim())
85
+ parts.push(node.title.trim());
86
+ if (typeof node.name === 'string' && node.name.trim())
87
+ parts.push(node.name.trim());
88
+ if (typeof node.body === 'string' && node.body.trim())
89
+ parts.push(node.body.trim());
90
+ if (typeof node.description === 'string' && node.description.trim())
91
+ parts.push(node.description.trim());
92
+ if (node.shape) {
93
+ if (typeof node.shape.text === 'string' && node.shape.text.trim())
94
+ parts.push(node.shape.text.trim());
95
+ if (typeof node.shape.label === 'string' && node.shape.label.trim())
96
+ parts.push(node.shape.label.trim());
97
+ }
98
+ if (Array.isArray(node.nodes)) {
99
+ for (const n of node.nodes) {
100
+ const t = oneLineText((_d = (_c = n.label) !== null && _c !== void 0 ? _c : n.text) !== null && _d !== void 0 ? _d : n.content);
101
+ if (t)
102
+ parts.push(t);
103
+ }
104
+ }
105
+ if (Array.isArray(node.edges)) {
106
+ for (const e of node.edges) {
107
+ const t = typeof e.label === 'string' ? e.label.trim() : '';
108
+ if (t)
109
+ parts.push(t);
110
+ }
111
+ }
112
+ if (parts.length)
113
+ return parts.join(' ');
114
+ const deep = deepCollectStrings(node, 4);
115
+ if (deep.length)
116
+ return deep.join(' ').slice(0, 500);
117
+ return '';
118
+ }
119
+ function oneLineText(v) {
120
+ if (typeof v === 'string')
121
+ return v.trim();
122
+ if (v && typeof v === 'object' && 'content' in v && typeof v.content === 'string')
123
+ return v.content.trim();
124
+ return '';
125
+ }
126
+ /** 深度收集对象中的短文本(跳过 ID、token 等),用于未知结构 */
127
+ function deepCollectStrings(obj, maxDepth, depth = 0) {
128
+ if (depth > maxDepth || obj == null)
129
+ return [];
130
+ const out = [];
131
+ const skipKeys = new Set(['id', 'block_id', 'parent_id', 'token', 'node_id', 'whiteboard_id']);
132
+ if (typeof obj === 'string') {
133
+ const s = obj.trim();
134
+ if (s.length > 0 && s.length < 500 && !/^[\d\s\-_:.]+$/.test(s))
135
+ out.push(s);
136
+ return out;
137
+ }
138
+ if (Array.isArray(obj)) {
139
+ for (const v of obj)
140
+ out.push(...deepCollectStrings(v, maxDepth, depth + 1));
141
+ return out;
142
+ }
143
+ if (typeof obj === 'object') {
144
+ for (const [k, v] of Object.entries(obj)) {
145
+ if (skipKeys.has(k))
146
+ continue;
147
+ out.push(...deepCollectStrings(v, maxDepth, depth + 1));
148
+ }
149
+ }
150
+ return out;
151
+ }
152
+ /** 将画板节点列表格式化为可读文本(含类型标注,便于状态流转图) */
153
+ function formatWhiteboardNodes(nodes) {
154
+ var _a, _b;
155
+ if (!nodes.length)
156
+ return '(画板无节点)';
157
+ const lines = [];
158
+ let hasAny = false;
159
+ for (const node of nodes) {
160
+ const text = nodeToText(node).trim();
161
+ const type = String((_b = (_a = node.resource_type) !== null && _a !== void 0 ? _a : node.node_type) !== null && _b !== void 0 ? _b : '').trim();
162
+ const tag = type ? `[${type}]` : '节点';
163
+ if (text) {
164
+ lines.push(`- ${tag} ${text}`);
165
+ hasAny = true;
166
+ }
167
+ else {
168
+ lines.push(`- ${tag} (无文本)`);
169
+ }
170
+ }
171
+ if (!hasAny)
172
+ lines.push('(以上节点未解析出文本,可能为图形/连线;若为流程图可尝试在画板中为形状添加文字说明)');
173
+ return lines.join('\n');
174
+ }
@@ -0,0 +1,2 @@
1
+ import { DocumentRecallTool } from "./type";
2
+ export declare const RecallTool: DocumentRecallTool;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecallTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const request_1 = require("./request");
6
+ const searchParamsSchema = {
7
+ query: zod_1.z.string().describe("user input"),
8
+ };
9
+ exports.RecallTool = {
10
+ name: "openplatform_developer_document_recall",
11
+ description: "Recall for relevant documents in all of the Feishu/Lark Open Platform Developer Documents based on user input.",
12
+ schema: searchParamsSchema,
13
+ handler: async (params, options) => {
14
+ const { query } = params;
15
+ try {
16
+ const results = await (0, request_1.recallDeveloperDocument)(query, options);
17
+ // Return results
18
+ return {
19
+ content: [
20
+ {
21
+ type: "text",
22
+ text: results.length ? `Find ${results.length} results:\n${results.join("\n\n")}` : "No results found",
23
+ }
24
+ ],
25
+ };
26
+ }
27
+ catch (error) {
28
+ return {
29
+ isError: true,
30
+ content: [
31
+ {
32
+ type: "text",
33
+ text: `Search failed:${error instanceof Error ? error.message : 'Unknown error'}`,
34
+ },
35
+ ],
36
+ };
37
+ }
38
+ }
39
+ };
@@ -0,0 +1,2 @@
1
+ import { DocumentRecallToolOptions } from './type';
2
+ export declare const recallDeveloperDocument: (query: string, options: DocumentRecallToolOptions) => Promise<any>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.recallDeveloperDocument = void 0;
4
+ const http_instance_1 = require("../../../utils/http-instance");
5
+ const recallDeveloperDocument = async (query, options) => {
6
+ try {
7
+ const { domain, count = 3 } = options;
8
+ // Get Feishu search API endpoint
9
+ const searchEndpoint = `${domain}/document_portal/v1/recall`;
10
+ const payload = {
11
+ question: query,
12
+ };
13
+ // Send network request to Feishu search API
14
+ const response = await http_instance_1.commonHttpInstance.post(searchEndpoint, payload, {
15
+ timeout: 10000,
16
+ });
17
+ // Process search results
18
+ let results = response.data.chunks || [];
19
+ return results.slice(0, count);
20
+ }
21
+ catch (error) {
22
+ throw error;
23
+ }
24
+ };
25
+ exports.recallDeveloperDocument = recallDeveloperDocument;
@@ -0,0 +1,19 @@
1
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types";
2
+ import type { z } from "zod";
3
+ export interface DocumentRecallToolOptions {
4
+ domain?: string;
5
+ smallToBig?: boolean;
6
+ count?: number;
7
+ multiQuery?: boolean;
8
+ timeout?: number;
9
+ }
10
+ export interface DocumentRecallTool {
11
+ name: string;
12
+ description: string;
13
+ schema: {
14
+ query: z.ZodType<string>;
15
+ };
16
+ handler: (params: {
17
+ query: string;
18
+ }, options: DocumentRecallToolOptions) => Promise<CallToolResult>;
19
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ export * from './mcp-tool';
2
+ export * from './tools';
3
+ export * from './types';
4
+ export * from './constants';
5
+ export * from './document-tool';
@@ -0,0 +1,21 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./mcp-tool"), exports);
18
+ __exportStar(require("./tools"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ __exportStar(require("./constants"), exports);
21
+ __exportStar(require("./document-tool"), exports);
@@ -0,0 +1,52 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { LarkMcpToolOptions, McpTool, SettableValue, ToolNameCase } from './types';
3
+ import { LarkAuthHandler } from '../auth';
4
+ /**
5
+ * Feishu/Lark MCP
6
+ */
7
+ export declare class LarkMcpTool {
8
+ private client;
9
+ private userAccessToken;
10
+ private auth;
11
+ private options;
12
+ private allTools;
13
+ /**
14
+ * Feishu/Lark MCP
15
+ * @param options Feishu/Lark Client Options
16
+ */
17
+ constructor(options: LarkMcpToolOptions, auth?: LarkAuthHandler);
18
+ /**
19
+ * Get MCP Tools
20
+ * @returns MCP Tool Definition Array
21
+ */
22
+ getTools(): McpTool[];
23
+ /**
24
+ * Update User Access Token
25
+ * @param userAccessToken User Access Token
26
+ */
27
+ updateUserAccessToken(userAccessToken: string | SettableValue): void;
28
+ private getUserAccessToken;
29
+ private setUserAccessToken;
30
+ reAuthorize(): Promise<{
31
+ userAccessToken?: string;
32
+ authorizeUrl?: string;
33
+ }>;
34
+ ensureGetUserAccessToken(): Promise<{
35
+ userAccessToken?: string;
36
+ authorizeUrl?: string;
37
+ }>;
38
+ getReAuthorizeMessage(authorizeUrl?: string, errorCode?: number, errorText?: string): {
39
+ isError: boolean;
40
+ content: {
41
+ type: "text";
42
+ text: string;
43
+ }[];
44
+ };
45
+ /**
46
+ * Register Tools to MCP Server
47
+ * @param server MCP Server Instance
48
+ */
49
+ registerMcpServer(server: McpServer, options?: {
50
+ toolNameCase?: ToolNameCase;
51
+ }): void;
52
+ }
@@ -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,6 @@
1
+ import { McpTool } from '../../../../types';
2
+ export type docxBuiltinToolName = 'docx.builtin.search' | 'docx.builtin.import' | 'docx.builtin.readFullContent';
3
+ export declare const larkDocxBuiltinSearchTool: McpTool;
4
+ export declare const larkDocxBuiltinImportTool: McpTool;
5
+ export declare const larkDocxBuiltinReadFullContentTool: McpTool;
6
+ export declare const docxBuiltinTools: McpTool[];