@liselvins/lark-mcp 0.1.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.
- package/CHANGELOG.md +62 -0
- package/LICENSE +9 -0
- package/README.md +215 -0
- package/README_ZH.md +212 -0
- package/dist/auth/config.d.ts +12 -0
- package/dist/auth/config.js +15 -0
- package/dist/auth/handler/handler-local.d.ts +21 -0
- package/dist/auth/handler/handler-local.js +123 -0
- package/dist/auth/handler/handler.d.ts +38 -0
- package/dist/auth/handler/handler.js +123 -0
- package/dist/auth/handler/index.d.ts +2 -0
- package/dist/auth/handler/index.js +18 -0
- package/dist/auth/index.d.ts +4 -0
- package/dist/auth/index.js +20 -0
- package/dist/auth/provider/index.d.ts +3 -0
- package/dist/auth/provider/index.js +19 -0
- package/dist/auth/provider/oauth.d.ts +18 -0
- package/dist/auth/provider/oauth.js +147 -0
- package/dist/auth/provider/oidc.d.ts +18 -0
- package/dist/auth/provider/oidc.js +172 -0
- package/dist/auth/provider/types.d.ts +8 -0
- package/dist/auth/provider/types.js +2 -0
- package/dist/auth/store.d.ts +39 -0
- package/dist/auth/store.js +213 -0
- package/dist/auth/types.d.ts +13 -0
- package/dist/auth/types.js +2 -0
- package/dist/auth/utils/encryption.d.ts +7 -0
- package/dist/auth/utils/encryption.js +40 -0
- package/dist/auth/utils/index.d.ts +3 -0
- package/dist/auth/utils/index.js +19 -0
- package/dist/auth/utils/is-token-valid.d.ts +7 -0
- package/dist/auth/utils/is-token-valid.js +28 -0
- package/dist/auth/utils/pkce.d.ts +6 -0
- package/dist/auth/utils/pkce.js +20 -0
- package/dist/auth/utils/storage-manager.d.ts +17 -0
- package/dist/auth/utils/storage-manager.js +159 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +5 -0
- package/dist/cli/login-handler.d.ts +19 -0
- package/dist/cli/login-handler.js +288 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.js +124 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +19 -0
- package/dist/mcp-server/index.d.ts +2 -0
- package/dist/mcp-server/index.js +18 -0
- package/dist/mcp-server/shared/index.d.ts +2 -0
- package/dist/mcp-server/shared/index.js +18 -0
- package/dist/mcp-server/shared/init.d.ts +10 -0
- package/dist/mcp-server/shared/init.js +121 -0
- package/dist/mcp-server/shared/types.d.ts +44 -0
- package/dist/mcp-server/shared/types.js +10 -0
- package/dist/mcp-server/transport/index.d.ts +3 -0
- package/dist/mcp-server/transport/index.js +19 -0
- package/dist/mcp-server/transport/sse.d.ts +2 -0
- package/dist/mcp-server/transport/sse.js +75 -0
- package/dist/mcp-server/transport/stdio.d.ts +2 -0
- package/dist/mcp-server/transport/stdio.js +36 -0
- package/dist/mcp-server/transport/streamable.d.ts +2 -0
- package/dist/mcp-server/transport/streamable.js +86 -0
- package/dist/mcp-server/transport/utils.d.ts +16 -0
- package/dist/mcp-server/transport/utils.js +34 -0
- package/dist/mcp-tool/constants.d.ts +54 -0
- package/dist/mcp-tool/constants.js +141 -0
- package/dist/mcp-tool/document-tool/index.d.ts +1 -0
- package/dist/mcp-tool/document-tool/index.js +17 -0
- package/dist/mcp-tool/document-tool/recall/index.d.ts +2 -0
- package/dist/mcp-tool/document-tool/recall/index.js +39 -0
- package/dist/mcp-tool/document-tool/recall/request.d.ts +2 -0
- package/dist/mcp-tool/document-tool/recall/request.js +25 -0
- package/dist/mcp-tool/document-tool/recall/type.d.ts +19 -0
- package/dist/mcp-tool/document-tool/recall/type.js +2 -0
- package/dist/mcp-tool/index.d.ts +5 -0
- package/dist/mcp-tool/index.js +21 -0
- package/dist/mcp-tool/mcp-tool.d.ts +52 -0
- package/dist/mcp-tool/mcp-tool.js +198 -0
- package/dist/mcp-tool/tools/en/builtin-tools/docx/block-factory.d.ts +99 -0
- package/dist/mcp-tool/tools/en/builtin-tools/docx/block-factory.js +266 -0
- package/dist/mcp-tool/tools/en/builtin-tools/docx/block-tools.d.ts +10 -0
- package/dist/mcp-tool/tools/en/builtin-tools/docx/block-tools.js +686 -0
- package/dist/mcp-tool/tools/en/builtin-tools/docx/builtin.d.ts +6 -0
- package/dist/mcp-tool/tools/en/builtin-tools/docx/builtin.js +220 -0
- package/dist/mcp-tool/tools/en/builtin-tools/im/buildin.d.ts +4 -0
- package/dist/mcp-tool/tools/en/builtin-tools/im/buildin.js +63 -0
- package/dist/mcp-tool/tools/en/builtin-tools/index.d.ts +4 -0
- package/dist/mcp-tool/tools/en/builtin-tools/index.js +6 -0
- package/dist/mcp-tool/tools/en/gen-tools/index.d.ts +113 -0
- package/dist/mcp-tool/tools/en/gen-tools/index.js +127 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/acs_v1.d.ts +562 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/acs_v1.js +264 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/admin_v1.d.ts +912 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/admin_v1.js +449 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/aily_v1.d.ts +1213 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/aily_v1.js +560 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/apaas_v1.d.ts +2530 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/apaas_v1.js +949 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/application_v5.d.ts +80 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/application_v5.js +53 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/application_v6.d.ts +1008 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/application_v6.js +775 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/approval_v4.d.ts +3928 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/approval_v4.js +1602 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/attendance_v1.d.ts +6043 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/attendance_v1.js +1857 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/auth_v3.d.ts +151 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/auth_v3.js +71 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/authen_v1.d.ts +26 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/authen_v1.js +17 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/baike_v1.d.ts +2174 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/baike_v1.js +594 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/base_v2.d.ts +755 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/base_v2.js +234 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/bitable_v1.d.ts +3541 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/bitable_v1.js +1786 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/board_v1.d.ts +40 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/board_v1.js +18 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/calendar_v4.d.ts +2075 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/calendar_v4.js +1594 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/cardkit_v1.d.ts +528 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/cardkit_v1.js +260 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/compensation_v1.d.ts +189 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/compensation_v1.js +132 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/contact_v3.d.ts +4274 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/contact_v3.js +2583 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v1.d.ts +16873 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v1.js +5045 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v2.d.ts +29387 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/corehr_v2.js +7787 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/directory_v1.d.ts +4274 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/directory_v1.js +1367 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/docs_v1.d.ts +58 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/docs_v1.js +28 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/docx_v1.d.ts +93466 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/docx_v1.js +14350 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v1.d.ts +3251 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v1.js +1422 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v2.d.ts +174 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/drive_v2.js +117 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/ehr_v1.d.ts +86 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/ehr_v1.js +48 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/event_v1.d.ts +44 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/event_v1.js +17 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/helpdesk_v1.d.ts +733 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/helpdesk_v1.js +285 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v1.d.ts +10076 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v1.js +6065 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v2.d.ts +158 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/hire_v2.js +61 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/human_authentication_v1.d.ts +70 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/human_authentication_v1.js +27 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/im_v1.d.ts +3043 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/im_v1.js +1869 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/im_v2.d.ts +2176 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/im_v2.js +460 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/lingo_v1.d.ts +2301 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/lingo_v1.js +669 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/mail_v1.d.ts +2462 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/mail_v1.js +1655 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v1.d.ts +104 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v1.js +45 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v3.d.ts +329 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/mdm_v3.js +78 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/minutes_v1.d.ts +92 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/minutes_v1.js +62 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/moments_v1.d.ts +52 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/moments_v1.js +24 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/okr_v1.d.ts +1628 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/okr_v1.js +434 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/optical_char_recognition_v1.d.ts +38 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/optical_char_recognition_v1.js +17 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/passport_v1.d.ts +131 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/passport_v1.js +59 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/payroll_v1.d.ts +333 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/payroll_v1.js +176 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v1.d.ts +309 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v1.js +178 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v2.d.ts +1177 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/performance_v2.js +559 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/personal_settings_v1.d.ts +640 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/personal_settings_v1.js +303 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/report_v1.d.ts +192 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/report_v1.js +71 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/search_v2.d.ts +1695 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/search_v2.js +446 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/security_and_compliance_v1.d.ts +68 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/security_and_compliance_v1.js +32 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v3.d.ts +979 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/sheets_v3.js +721 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/speech_to_text_v1.d.ts +225 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/speech_to_text_v1.js +65 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/task_v1.d.ts +1161 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/task_v1.js +672 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/task_v2.d.ts +6051 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/task_v2.js +1970 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/tenant_v2.d.ts +31 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/tenant_v2.js +24 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/translation_v1.d.ts +80 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/translation_v1.js +37 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/trust_party_v1.d.ts +182 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/trust_party_v1.js +141 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/vc_v1.d.ts +5725 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/vc_v1.js +1751 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/verification_v1.d.ts +21 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/verification_v1.js +14 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v1.d.ts +72 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v1.js +19 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v2.d.ts +843 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/wiki_v2.js +381 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/workplace_v1.d.ts +116 -0
- package/dist/mcp-tool/tools/en/gen-tools/zod/workplace_v1.js +77 -0
- package/dist/mcp-tool/tools/index.d.ts +104 -0
- package/dist/mcp-tool/tools/index.js +9 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/docx/block-factory.d.ts +1 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/docx/block-factory.js +18 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/docx/block-tools.d.ts +4 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/docx/block-tools.js +18 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/docx/builtin.d.ts +6 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/docx/builtin.js +199 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/im/buildin.d.ts +4 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/im/buildin.js +63 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/index.d.ts +4 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/index.js +6 -0
- package/dist/mcp-tool/tools/zh/gen-tools/index.d.ts +113 -0
- package/dist/mcp-tool/tools/zh/gen-tools/index.js +127 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/acs_v1.d.ts +562 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/acs_v1.js +277 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/admin_v1.d.ts +912 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/admin_v1.js +430 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/aily_v1.d.ts +1213 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/aily_v1.js +541 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/apaas_v1.d.ts +2530 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/apaas_v1.js +885 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v5.d.ts +80 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v5.js +59 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v6.d.ts +1007 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/application_v6.js +721 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/approval_v4.d.ts +3928 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/approval_v4.js +1532 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/attendance_v1.d.ts +6043 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/attendance_v1.js +1620 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/auth_v3.d.ts +151 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/auth_v3.js +87 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/authen_v1.d.ts +26 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/authen_v1.js +17 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/baike_v1.d.ts +2174 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/baike_v1.js +574 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/base_v2.d.ts +755 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/base_v2.js +270 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/bitable_v1.d.ts +3541 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/bitable_v1.js +1864 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/board_v1.d.ts +40 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/board_v1.js +18 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/calendar_v4.d.ts +2075 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/calendar_v4.js +1533 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/cardkit_v1.d.ts +528 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/cardkit_v1.js +248 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/compensation_v1.d.ts +189 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/compensation_v1.js +130 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/contact_v3.d.ts +4274 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/contact_v3.js +2394 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v1.d.ts +16957 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v1.js +4753 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v2.d.ts +29869 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/corehr_v2.js +7902 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/directory_v1.d.ts +4324 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/directory_v1.js +1340 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/docs_v1.d.ts +58 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/docs_v1.js +26 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/docx_v1.d.ts +116719 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/docx_v1.js +14949 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v1.d.ts +3251 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v1.js +1395 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v2.d.ts +174 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/drive_v2.js +115 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/ehr_v1.d.ts +86 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/ehr_v1.js +48 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/event_v1.d.ts +44 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/event_v1.js +25 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/helpdesk_v1.d.ts +733 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/helpdesk_v1.js +279 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v1.d.ts +10085 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v1.js +5787 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v2.d.ts +158 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/hire_v2.js +64 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/human_authentication_v1.d.ts +70 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/human_authentication_v1.js +27 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v1.d.ts +3043 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v1.js +1812 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v2.d.ts +2176 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/im_v2.js +454 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/lingo_v1.d.ts +2301 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/lingo_v1.js +650 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/mail_v1.d.ts +2465 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/mail_v1.js +1467 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v1.d.ts +104 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v1.js +45 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v3.d.ts +329 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/mdm_v3.js +76 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/minutes_v1.d.ts +92 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/minutes_v1.js +62 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/moments_v1.d.ts +52 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/moments_v1.js +20 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/okr_v1.d.ts +1664 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/okr_v1.js +455 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/optical_char_recognition_v1.d.ts +38 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/optical_char_recognition_v1.js +17 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/passport_v1.d.ts +131 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/passport_v1.js +53 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/payroll_v1.d.ts +609 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/payroll_v1.js +321 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v1.d.ts +309 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v1.js +165 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v2.d.ts +1177 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/performance_v2.js +525 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/personal_settings_v1.d.ts +640 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/personal_settings_v1.js +295 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/report_v1.d.ts +194 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/report_v1.js +72 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/search_v2.d.ts +1695 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/search_v2.js +556 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/security_and_compliance_v1.d.ts +68 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/security_and_compliance_v1.js +32 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v3.d.ts +979 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/sheets_v3.js +821 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/speech_to_text_v1.d.ts +225 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/speech_to_text_v1.js +65 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v1.d.ts +1161 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v1.js +647 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v2.d.ts +6077 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/task_v2.js +1894 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/tenant_v2.d.ts +31 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/tenant_v2.js +24 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/translation_v1.d.ts +80 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/translation_v1.js +37 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/trust_party_v1.d.ts +182 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/trust_party_v1.js +137 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/vc_v1.d.ts +5725 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/vc_v1.js +1640 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/verification_v1.d.ts +21 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/verification_v1.js +14 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v1.d.ts +72 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v1.js +34 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v2.d.ts +843 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/wiki_v2.js +376 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/workplace_v1.d.ts +116 -0
- package/dist/mcp-tool/tools/zh/gen-tools/zod/workplace_v1.js +77 -0
- package/dist/mcp-tool/types/index.d.ts +53 -0
- package/dist/mcp-tool/types/index.js +9 -0
- package/dist/mcp-tool/utils/case-transf.d.ts +2 -0
- package/dist/mcp-tool/utils/case-transf.js +15 -0
- package/dist/mcp-tool/utils/filter-tools.d.ts +2 -0
- package/dist/mcp-tool/utils/filter-tools.js +27 -0
- package/dist/mcp-tool/utils/get-should-use-uat.d.ts +2 -0
- package/dist/mcp-tool/utils/get-should-use-uat.js +18 -0
- package/dist/mcp-tool/utils/handler.d.ts +2 -0
- package/dist/mcp-tool/utils/handler.js +92 -0
- package/dist/mcp-tool/utils/index.d.ts +4 -0
- package/dist/mcp-tool/utils/index.js +20 -0
- package/dist/utils/clean-env-args.d.ts +1 -0
- package/dist/utils/clean-env-args.js +12 -0
- package/dist/utils/constants.d.ts +18 -0
- package/dist/utils/constants.js +36 -0
- package/dist/utils/http-instance.d.ts +2 -0
- package/dist/utils/http-instance.js +21 -0
- package/dist/utils/logger.d.ts +22 -0
- package/dist/utils/logger.js +97 -0
- package/dist/utils/noop.d.ts +1 -0
- package/dist/utils/noop.js +6 -0
- package/dist/utils/parser-string-array.d.ts +1 -0
- package/dist/utils/parser-string-array.js +13 -0
- package/dist/utils/safe-json-parse.d.ts +1 -0
- package/dist/utils/safe-json-parse.js +14 -0
- package/dist/utils/version.d.ts +1 -0
- package/dist/utils/version.js +52 -0
- package/docs/recall-mcp/README.md +137 -0
- package/docs/recall-mcp/README_ZH.md +137 -0
- package/docs/reference/cli/cli-zh.md +92 -0
- package/docs/reference/cli/cli.md +92 -0
- package/docs/reference/tool-presets/presets-zh.md +120 -0
- package/docs/reference/tool-presets/presets.md +120 -0
- package/docs/reference/tool-presets/tools-en.md +1516 -0
- package/docs/reference/tool-presets/tools-zh.md +1533 -0
- package/docs/troubleshooting/faq-zh.md +67 -0
- package/docs/troubleshooting/faq.md +67 -0
- package/docs/usage/configuration/configuration-zh.md +344 -0
- package/docs/usage/configuration/configuration.md +344 -0
- package/docs/usage/docker/docker-zh.md +101 -0
- package/docs/usage/docker/docker.md +106 -0
- package/package.json +65 -0
|
@@ -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,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block Factory for creating Feishu document block structures.
|
|
3
|
+
* Ported from Feishu-MCP's blockFactory.ts to work within Feishu-openapi-mcp's builtin tool architecture.
|
|
4
|
+
*/
|
|
5
|
+
export interface TextElementStyle {
|
|
6
|
+
bold?: boolean;
|
|
7
|
+
italic?: boolean;
|
|
8
|
+
underline?: boolean;
|
|
9
|
+
strikethrough?: boolean;
|
|
10
|
+
inline_code?: boolean;
|
|
11
|
+
text_color?: number;
|
|
12
|
+
background_color?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface TextContent {
|
|
15
|
+
text: string;
|
|
16
|
+
style?: TextElementStyle;
|
|
17
|
+
}
|
|
18
|
+
export interface EquationContent {
|
|
19
|
+
equation: string;
|
|
20
|
+
style?: TextElementStyle;
|
|
21
|
+
}
|
|
22
|
+
export type TextElement = TextContent | EquationContent;
|
|
23
|
+
export interface FeishuBlock {
|
|
24
|
+
block_type: number;
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
}
|
|
27
|
+
export declare enum BlockType {
|
|
28
|
+
TEXT = "text",
|
|
29
|
+
CODE = "code",
|
|
30
|
+
HEADING = "heading",
|
|
31
|
+
LIST = "list",
|
|
32
|
+
IMAGE = "image",
|
|
33
|
+
MERMAID = "mermaid",
|
|
34
|
+
WHITEBOARD = "whiteboard"
|
|
35
|
+
}
|
|
36
|
+
export declare enum AlignType {
|
|
37
|
+
LEFT = 1,
|
|
38
|
+
CENTER = 2,
|
|
39
|
+
RIGHT = 3
|
|
40
|
+
}
|
|
41
|
+
declare function getDefaultTextElementStyle(): TextElementStyle;
|
|
42
|
+
declare function applyDefaultTextStyle(style?: TextElementStyle): TextElementStyle;
|
|
43
|
+
declare function createTextBlock(options: {
|
|
44
|
+
textContents: TextElement[];
|
|
45
|
+
align?: AlignType;
|
|
46
|
+
}): FeishuBlock;
|
|
47
|
+
declare function createCodeBlock(options: {
|
|
48
|
+
code: string;
|
|
49
|
+
language?: number;
|
|
50
|
+
wrap?: boolean;
|
|
51
|
+
}): FeishuBlock;
|
|
52
|
+
declare function createHeadingBlock(options: {
|
|
53
|
+
text: string;
|
|
54
|
+
level?: number;
|
|
55
|
+
align?: AlignType;
|
|
56
|
+
}): FeishuBlock;
|
|
57
|
+
declare function createListBlock(options: {
|
|
58
|
+
text: string;
|
|
59
|
+
isOrdered?: boolean;
|
|
60
|
+
align?: AlignType;
|
|
61
|
+
}): FeishuBlock;
|
|
62
|
+
declare function createImageBlock(options?: {
|
|
63
|
+
width?: number;
|
|
64
|
+
height?: number;
|
|
65
|
+
}): FeishuBlock;
|
|
66
|
+
declare function createMermaidBlock(options?: {
|
|
67
|
+
code?: string;
|
|
68
|
+
}): FeishuBlock;
|
|
69
|
+
declare function createWhiteboardBlock(options?: {
|
|
70
|
+
align?: AlignType;
|
|
71
|
+
}): FeishuBlock;
|
|
72
|
+
export interface TableImageBlock {
|
|
73
|
+
coordinate: {
|
|
74
|
+
row: number;
|
|
75
|
+
column: number;
|
|
76
|
+
};
|
|
77
|
+
localBlockId: string;
|
|
78
|
+
}
|
|
79
|
+
declare function createTableBlock(options: {
|
|
80
|
+
columnSize: number;
|
|
81
|
+
rowSize: number;
|
|
82
|
+
cells?: Array<{
|
|
83
|
+
coordinate: {
|
|
84
|
+
row: number;
|
|
85
|
+
column: number;
|
|
86
|
+
};
|
|
87
|
+
content: any;
|
|
88
|
+
}>;
|
|
89
|
+
}): {
|
|
90
|
+
children_id: string[];
|
|
91
|
+
descendants: any[];
|
|
92
|
+
imageBlocks: TableImageBlock[];
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Convert a blockType + options pair into a concrete FeishuBlock structure.
|
|
96
|
+
* This mirrors Feishu-MCP's FeishuApiService.createBlockContent().
|
|
97
|
+
*/
|
|
98
|
+
export declare function createBlockContent(blockType: string, options: any): FeishuBlock;
|
|
99
|
+
export { applyDefaultTextStyle, getDefaultTextElementStyle, createTextBlock, createCodeBlock, createHeadingBlock, createListBlock, createImageBlock, createMermaidBlock, createWhiteboardBlock, createTableBlock, };
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Block Factory for creating Feishu document block structures.
|
|
4
|
+
* Ported from Feishu-MCP's blockFactory.ts to work within Feishu-openapi-mcp's builtin tool architecture.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AlignType = exports.BlockType = void 0;
|
|
8
|
+
exports.createBlockContent = createBlockContent;
|
|
9
|
+
exports.applyDefaultTextStyle = applyDefaultTextStyle;
|
|
10
|
+
exports.getDefaultTextElementStyle = getDefaultTextElementStyle;
|
|
11
|
+
exports.createTextBlock = createTextBlock;
|
|
12
|
+
exports.createCodeBlock = createCodeBlock;
|
|
13
|
+
exports.createHeadingBlock = createHeadingBlock;
|
|
14
|
+
exports.createListBlock = createListBlock;
|
|
15
|
+
exports.createImageBlock = createImageBlock;
|
|
16
|
+
exports.createMermaidBlock = createMermaidBlock;
|
|
17
|
+
exports.createWhiteboardBlock = createWhiteboardBlock;
|
|
18
|
+
exports.createTableBlock = createTableBlock;
|
|
19
|
+
var BlockType;
|
|
20
|
+
(function (BlockType) {
|
|
21
|
+
BlockType["TEXT"] = "text";
|
|
22
|
+
BlockType["CODE"] = "code";
|
|
23
|
+
BlockType["HEADING"] = "heading";
|
|
24
|
+
BlockType["LIST"] = "list";
|
|
25
|
+
BlockType["IMAGE"] = "image";
|
|
26
|
+
BlockType["MERMAID"] = "mermaid";
|
|
27
|
+
BlockType["WHITEBOARD"] = "whiteboard";
|
|
28
|
+
})(BlockType || (exports.BlockType = BlockType = {}));
|
|
29
|
+
var AlignType;
|
|
30
|
+
(function (AlignType) {
|
|
31
|
+
AlignType[AlignType["LEFT"] = 1] = "LEFT";
|
|
32
|
+
AlignType[AlignType["CENTER"] = 2] = "CENTER";
|
|
33
|
+
AlignType[AlignType["RIGHT"] = 3] = "RIGHT";
|
|
34
|
+
})(AlignType || (exports.AlignType = AlignType = {}));
|
|
35
|
+
function getDefaultTextElementStyle() {
|
|
36
|
+
return {
|
|
37
|
+
bold: false,
|
|
38
|
+
inline_code: false,
|
|
39
|
+
italic: false,
|
|
40
|
+
strikethrough: false,
|
|
41
|
+
underline: false,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function applyDefaultTextStyle(style) {
|
|
45
|
+
const defaultStyle = getDefaultTextElementStyle();
|
|
46
|
+
return style ? { ...defaultStyle, ...style } : defaultStyle;
|
|
47
|
+
}
|
|
48
|
+
function createTextBlock(options) {
|
|
49
|
+
const { textContents, align = AlignType.LEFT } = options;
|
|
50
|
+
return {
|
|
51
|
+
block_type: 2,
|
|
52
|
+
text: {
|
|
53
|
+
elements: textContents.map((content) => {
|
|
54
|
+
if ('equation' in content) {
|
|
55
|
+
return {
|
|
56
|
+
equation: {
|
|
57
|
+
content: content.equation,
|
|
58
|
+
text_element_style: applyDefaultTextStyle(content.style),
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
text_run: {
|
|
64
|
+
content: content.text,
|
|
65
|
+
text_element_style: applyDefaultTextStyle(content.style),
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}),
|
|
69
|
+
style: { align, folded: false },
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function createCodeBlock(options) {
|
|
74
|
+
const { code, language = 0, wrap = false } = options;
|
|
75
|
+
const safeLanguage = language >= 1 && language <= 75 ? language : 1;
|
|
76
|
+
return {
|
|
77
|
+
block_type: 14,
|
|
78
|
+
code: {
|
|
79
|
+
elements: [{ text_run: { content: code, text_element_style: getDefaultTextElementStyle() } }],
|
|
80
|
+
style: { language: safeLanguage, wrap },
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function createHeadingBlock(options) {
|
|
85
|
+
const { text, level = 1, align = AlignType.LEFT } = options;
|
|
86
|
+
const safeLevel = Math.max(1, Math.min(9, level));
|
|
87
|
+
const blockType = 2 + safeLevel;
|
|
88
|
+
const headingKey = `heading${safeLevel}`;
|
|
89
|
+
const block = { block_type: blockType };
|
|
90
|
+
block[headingKey] = {
|
|
91
|
+
elements: [{ text_run: { content: text, text_element_style: getDefaultTextElementStyle() } }],
|
|
92
|
+
style: { align, folded: false },
|
|
93
|
+
};
|
|
94
|
+
return block;
|
|
95
|
+
}
|
|
96
|
+
function createListBlock(options) {
|
|
97
|
+
const { text, isOrdered = false, align = AlignType.LEFT } = options;
|
|
98
|
+
const blockType = isOrdered ? 13 : 12;
|
|
99
|
+
const propertyKey = isOrdered ? 'ordered' : 'bullet';
|
|
100
|
+
const block = { block_type: blockType };
|
|
101
|
+
block[propertyKey] = {
|
|
102
|
+
elements: [{ text_run: { content: text, text_element_style: getDefaultTextElementStyle() } }],
|
|
103
|
+
style: { align, folded: false },
|
|
104
|
+
};
|
|
105
|
+
return block;
|
|
106
|
+
}
|
|
107
|
+
function createImageBlock(options = {}) {
|
|
108
|
+
const { width = 100, height = 100 } = options;
|
|
109
|
+
return { block_type: 27, image: { width, height, token: '' } };
|
|
110
|
+
}
|
|
111
|
+
function createMermaidBlock(options = {}) {
|
|
112
|
+
return {
|
|
113
|
+
block_type: 40,
|
|
114
|
+
add_ons: {
|
|
115
|
+
component_id: '',
|
|
116
|
+
component_type_id: 'blk_631fefbbae02400430b8f9f4',
|
|
117
|
+
record: JSON.stringify({ data: options.code }),
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function createWhiteboardBlock(options = {}) {
|
|
122
|
+
const { align = AlignType.CENTER } = options;
|
|
123
|
+
return { block_type: 43, board: { align } };
|
|
124
|
+
}
|
|
125
|
+
function createTableBlock(options) {
|
|
126
|
+
const { columnSize, rowSize, cells = [] } = options;
|
|
127
|
+
const tableId = `table_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
128
|
+
const imageBlocks = [];
|
|
129
|
+
const tableCells = [];
|
|
130
|
+
const descendants = [];
|
|
131
|
+
for (let row = 0; row < rowSize; row++) {
|
|
132
|
+
for (let col = 0; col < columnSize; col++) {
|
|
133
|
+
const cellId = `table_cell${row}_${col}`;
|
|
134
|
+
const cellConfigs = cells.filter((c) => c.coordinate.row === row && c.coordinate.column === col);
|
|
135
|
+
const cellContentBlocks = [];
|
|
136
|
+
const cellContentIds = [];
|
|
137
|
+
if (cellConfigs.length > 0) {
|
|
138
|
+
cellConfigs.forEach((cellConfig, index) => {
|
|
139
|
+
const cellContentId = `${cellId}_child_${index}`;
|
|
140
|
+
cellContentBlocks.push({ block_id: cellContentId, ...cellConfig.content, children: [] });
|
|
141
|
+
cellContentIds.push(cellContentId);
|
|
142
|
+
if (cellConfig.content.block_type === 27) {
|
|
143
|
+
imageBlocks.push({ coordinate: cellConfig.coordinate, localBlockId: cellContentId });
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
const cellContentId = `${cellId}_child`;
|
|
149
|
+
cellContentBlocks.push({
|
|
150
|
+
block_id: cellContentId,
|
|
151
|
+
...createTextBlock({ textContents: [{ text: '' }] }),
|
|
152
|
+
children: [],
|
|
153
|
+
});
|
|
154
|
+
cellContentIds.push(cellContentId);
|
|
155
|
+
}
|
|
156
|
+
tableCells.push(cellId);
|
|
157
|
+
descendants.push({ block_id: cellId, block_type: 32, table_cell: {}, children: cellContentIds });
|
|
158
|
+
descendants.push(...cellContentBlocks);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
descendants.unshift({
|
|
162
|
+
block_id: tableId,
|
|
163
|
+
block_type: 31,
|
|
164
|
+
table: { property: { row_size: rowSize, column_size: columnSize } },
|
|
165
|
+
children: tableCells,
|
|
166
|
+
});
|
|
167
|
+
return { children_id: [tableId], descendants, imageBlocks };
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Convert a blockType + options pair into a concrete FeishuBlock structure.
|
|
171
|
+
* This mirrors Feishu-MCP's FeishuApiService.createBlockContent().
|
|
172
|
+
*/
|
|
173
|
+
function createBlockContent(blockType, options) {
|
|
174
|
+
// Handle headingN shorthand (e.g. "heading1", "heading2")
|
|
175
|
+
let resolvedType = blockType;
|
|
176
|
+
if (typeof blockType === 'string' && blockType.startsWith('heading')) {
|
|
177
|
+
const match = blockType.match(/^heading([1-9])$/);
|
|
178
|
+
if (match) {
|
|
179
|
+
const level = parseInt(match[1], 10);
|
|
180
|
+
if (!options || Object.keys(options).length === 0) {
|
|
181
|
+
options = { heading: { level, content: '', align: 1 } };
|
|
182
|
+
}
|
|
183
|
+
else if (!('heading' in options)) {
|
|
184
|
+
options = { heading: { level, content: '', align: 1 } };
|
|
185
|
+
}
|
|
186
|
+
else if (options.heading && !('level' in options.heading)) {
|
|
187
|
+
options.heading.level = level;
|
|
188
|
+
}
|
|
189
|
+
resolvedType = BlockType.HEADING;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
switch (resolvedType) {
|
|
193
|
+
case BlockType.TEXT: {
|
|
194
|
+
if (options === null || options === void 0 ? void 0 : options.text) {
|
|
195
|
+
const t = options.text;
|
|
196
|
+
const textStyles = (t.textStyles || []).map((item) => {
|
|
197
|
+
if (item.equation !== undefined) {
|
|
198
|
+
return { equation: item.equation, style: applyDefaultTextStyle(item.style) };
|
|
199
|
+
}
|
|
200
|
+
return { text: item.text || '', style: applyDefaultTextStyle(item.style) };
|
|
201
|
+
});
|
|
202
|
+
return createTextBlock({ textContents: textStyles, align: t.align || 1 });
|
|
203
|
+
}
|
|
204
|
+
return createTextBlock({ textContents: [{ text: '' }] });
|
|
205
|
+
}
|
|
206
|
+
case BlockType.CODE: {
|
|
207
|
+
if (options === null || options === void 0 ? void 0 : options.code) {
|
|
208
|
+
const c = options.code;
|
|
209
|
+
return createCodeBlock({ code: c.code || '', language: c.language || 0, wrap: c.wrap || false });
|
|
210
|
+
}
|
|
211
|
+
return createCodeBlock({ code: '' });
|
|
212
|
+
}
|
|
213
|
+
case BlockType.HEADING: {
|
|
214
|
+
if (options === null || options === void 0 ? void 0 : options.heading) {
|
|
215
|
+
const h = options.heading;
|
|
216
|
+
const safeAlign = [1, 2, 3].includes(h.align) ? h.align : 1;
|
|
217
|
+
return createHeadingBlock({ text: h.content || '', level: h.level || 1, align: safeAlign });
|
|
218
|
+
}
|
|
219
|
+
return createHeadingBlock({ text: '' });
|
|
220
|
+
}
|
|
221
|
+
case BlockType.LIST: {
|
|
222
|
+
if (options === null || options === void 0 ? void 0 : options.list) {
|
|
223
|
+
const l = options.list;
|
|
224
|
+
const safeAlign = [1, 2, 3].includes(l.align) ? l.align : 1;
|
|
225
|
+
return createListBlock({ text: l.content || '', isOrdered: l.isOrdered || false, align: safeAlign });
|
|
226
|
+
}
|
|
227
|
+
return createListBlock({ text: '' });
|
|
228
|
+
}
|
|
229
|
+
case BlockType.IMAGE: {
|
|
230
|
+
if (options === null || options === void 0 ? void 0 : options.image) {
|
|
231
|
+
return createImageBlock({ width: options.image.width || 100, height: options.image.height || 100 });
|
|
232
|
+
}
|
|
233
|
+
return createImageBlock();
|
|
234
|
+
}
|
|
235
|
+
case BlockType.MERMAID: {
|
|
236
|
+
if (options === null || options === void 0 ? void 0 : options.mermaid) {
|
|
237
|
+
return createMermaidBlock({ code: options.mermaid.code });
|
|
238
|
+
}
|
|
239
|
+
return createMermaidBlock();
|
|
240
|
+
}
|
|
241
|
+
case BlockType.WHITEBOARD: {
|
|
242
|
+
if (options === null || options === void 0 ? void 0 : options.whiteboard) {
|
|
243
|
+
const safeAlign = [1, 2, 3].includes(options.whiteboard.align) ? options.whiteboard.align : 2;
|
|
244
|
+
return createWhiteboardBlock({ align: safeAlign });
|
|
245
|
+
}
|
|
246
|
+
return createWhiteboardBlock();
|
|
247
|
+
}
|
|
248
|
+
default:
|
|
249
|
+
// Fallback: try to detect block type from options keys
|
|
250
|
+
if (options === null || options === void 0 ? void 0 : options.text)
|
|
251
|
+
return createBlockContent(BlockType.TEXT, options);
|
|
252
|
+
if (options === null || options === void 0 ? void 0 : options.code)
|
|
253
|
+
return createBlockContent(BlockType.CODE, options);
|
|
254
|
+
if (options === null || options === void 0 ? void 0 : options.heading)
|
|
255
|
+
return createBlockContent(BlockType.HEADING, options);
|
|
256
|
+
if (options === null || options === void 0 ? void 0 : options.list)
|
|
257
|
+
return createBlockContent(BlockType.LIST, options);
|
|
258
|
+
if (options === null || options === void 0 ? void 0 : options.image)
|
|
259
|
+
return createBlockContent(BlockType.IMAGE, options);
|
|
260
|
+
if (options === null || options === void 0 ? void 0 : options.mermaid)
|
|
261
|
+
return createBlockContent(BlockType.MERMAID, options);
|
|
262
|
+
if (options === null || options === void 0 ? void 0 : options.whiteboard)
|
|
263
|
+
return createBlockContent(BlockType.WHITEBOARD, options);
|
|
264
|
+
throw new Error(`Unsupported block type: ${blockType}`);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { McpTool } from '../../../../types';
|
|
2
|
+
export type docxBlockToolName = 'docx.builtin.getDocumentBlocks' | 'docx.builtin.batchCreateBlocks' | 'docx.builtin.updateBlockText' | 'docx.builtin.deleteBlocks' | 'docx.builtin.createTable' | 'docx.builtin.uploadImage' | 'docx.builtin.fillWhiteboard';
|
|
3
|
+
export declare const larkDocxGetDocumentBlocksTool: McpTool;
|
|
4
|
+
export declare const larkDocxBatchCreateBlocksTool: McpTool;
|
|
5
|
+
export declare const larkDocxUpdateBlockTextTool: McpTool;
|
|
6
|
+
export declare const larkDocxDeleteBlocksTool: McpTool;
|
|
7
|
+
export declare const larkDocxCreateTableTool: McpTool;
|
|
8
|
+
export declare const larkDocxUploadImageTool: McpTool;
|
|
9
|
+
export declare const larkDocxFillWhiteboardTool: McpTool;
|
|
10
|
+
export declare const docxBlockTools: McpTool[];
|