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.
- package/CHANGELOG.md +73 -0
- package/LICENSE +9 -0
- package/README.md +217 -0
- package/README_ZH.md +214 -0
- package/dist/auth/config.d.ts +12 -0
- package/dist/auth/config.js +17 -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 +32 -0
- package/dist/auth/handler/handler.js +117 -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 +135 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +5 -0
- package/dist/cli/login-handler.d.ts +16 -0
- package/dist/cli/login-handler.js +142 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.js +122 -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 +40 -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 +49 -0
- package/dist/mcp-tool/constants.js +118 -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/read-full-content/extract-text.d.ts +53 -0
- package/dist/mcp-tool/document-tool/read-full-content/extract-text.js +109 -0
- package/dist/mcp-tool/document-tool/read-full-content/index.d.ts +3 -0
- package/dist/mcp-tool/document-tool/read-full-content/index.js +9 -0
- package/dist/mcp-tool/document-tool/read-full-content/reader.d.ts +12 -0
- package/dist/mcp-tool/document-tool/read-full-content/reader.js +283 -0
- package/dist/mcp-tool/document-tool/read-full-content/types.d.ts +78 -0
- package/dist/mcp-tool/document-tool/read-full-content/types.js +2 -0
- package/dist/mcp-tool/document-tool/read-full-content/whiteboard.d.ts +53 -0
- package/dist/mcp-tool/document-tool/read-full-content/whiteboard.js +174 -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/builtin.d.ts +6 -0
- package/dist/mcp-tool/tools/en/builtin-tools/docx/builtin.js +303 -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/builtin.d.ts +6 -0
- package/dist/mcp-tool/tools/zh/builtin-tools/docx/builtin.js +282 -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 +35 -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/development/mcp-develop-and-publish.md +273 -0
- package/docs/examples/read-wiki-with-board.md +114 -0
- package/docs/examples/wiki-board-architecture-summary.md +88 -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 +122 -0
- package/docs/reference/tool-presets/presets.md +122 -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/bitfire-lark-mcp-setup.md +119 -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 +64 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
# 如何开发自己的 MCP 并让别人引用
|
|
2
|
+
|
|
3
|
+
本文说明如何从零开发一个 MCP(Model Context Protocol)服务,并发布到 npm、让 Cursor/Claude 等客户端引用。
|
|
4
|
+
|
|
5
|
+
## 一、MCP 是什么
|
|
6
|
+
|
|
7
|
+
MCP 让 AI 助手能调用你提供的**工具(Tools)**、**资源(Resources)**、**提示词(Prompts)**。开发一个 MCP 即开发一个「MCP 服务端」,通过 stdio 或 HTTP 与客户端通信。
|
|
8
|
+
|
|
9
|
+
## 二、开发自己的 MCP
|
|
10
|
+
|
|
11
|
+
### 2.1 两种起步方式
|
|
12
|
+
|
|
13
|
+
**方式 A:用官方脚手架(推荐入门)**
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx @modelcontextprotocol/create-server my-mcp-server
|
|
17
|
+
cd my-mcp-server
|
|
18
|
+
npm install
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
会生成一个带示例 Tool 的 TypeScript 项目。
|
|
22
|
+
|
|
23
|
+
**方式 B:在现有项目里接 SDK(本仓库做法)**
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install @modelcontextprotocol/sdk
|
|
27
|
+
# 若用 zod 做参数校验
|
|
28
|
+
npm install zod
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 2.2 核心依赖与入口
|
|
32
|
+
|
|
33
|
+
在 `package.json` 中需要:
|
|
34
|
+
|
|
35
|
+
- **依赖**:`@modelcontextprotocol/sdk`
|
|
36
|
+
- **入口**:编译后的 JS(如 `dist/index.js`)
|
|
37
|
+
- **CLI 入口**:若通过 npx 启动,需要 `bin` 指向 CLI(如 `dist/cli.js`)
|
|
38
|
+
|
|
39
|
+
本仓库示例:
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"main": "dist/index.js",
|
|
44
|
+
"bin": "dist/cli.js",
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@modelcontextprotocol/sdk": "^1.12.1"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 2.3 创建 MCP 服务并注册工具
|
|
52
|
+
|
|
53
|
+
1. **创建 Server 实例**
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
57
|
+
|
|
58
|
+
const server = new McpServer({
|
|
59
|
+
id: 'my-mcp-server',
|
|
60
|
+
name: 'My MCP Server',
|
|
61
|
+
version: '1.0.0',
|
|
62
|
+
});
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
2. **注册工具(Tool)**
|
|
66
|
+
|
|
67
|
+
工具由「名称、描述、参数 schema、处理函数」组成。参数一般用 Zod 定义,便于校验与类型推导:
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
import { z } from 'zod';
|
|
71
|
+
|
|
72
|
+
server.tool(
|
|
73
|
+
'get_weather', // 工具名
|
|
74
|
+
'Get current weather by city', // 描述(给 AI 看)
|
|
75
|
+
{
|
|
76
|
+
city: z.string().describe('City name'),
|
|
77
|
+
unit: z.enum(['c', 'f']).optional().describe('Temperature unit'),
|
|
78
|
+
},
|
|
79
|
+
async ({ city, unit }) => {
|
|
80
|
+
// 实现逻辑,返回 MCP 约定的格式
|
|
81
|
+
return {
|
|
82
|
+
content: [{ type: 'text', text: JSON.stringify({ city, temp: 22, unit: unit ?? 'c' }) }],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
本仓库中工具定义在 `src/mcp-tool/`,通过 `LarkMcpTool.registerMcpServer(server)` 批量注册,可参考 `src/mcp-tool/tools/en/builtin-tools/docx/builtin.ts` 的 `McpTool` 结构(name、description、schema、customHandler)。
|
|
89
|
+
|
|
90
|
+
3. **(可选)资源与提示词**
|
|
91
|
+
|
|
92
|
+
- **Resources**:只读数据源,AI 可按 URI 读取。
|
|
93
|
+
- **Prompts**:可复用提示模板。
|
|
94
|
+
|
|
95
|
+
按需在 Server 上调用 SDK 提供的 `resource` / `prompt` 等 API 即可。
|
|
96
|
+
|
|
97
|
+
### 2.4 选择传输方式(如何跑起来)
|
|
98
|
+
|
|
99
|
+
MCP 常见两种用法:
|
|
100
|
+
|
|
101
|
+
| 传输方式 | 典型用法 | 适用场景 |
|
|
102
|
+
|----------|----------------|--------------------|
|
|
103
|
+
| **stdio** | `npx your-pkg mcp` | Cursor / Claude 本地进程 |
|
|
104
|
+
| **HTTP (SSE/Streamable)** | 部署到服务器,客户端连 URL | 远程、多用户、需鉴权 |
|
|
105
|
+
|
|
106
|
+
**stdio(本仓库做法)**
|
|
107
|
+
|
|
108
|
+
- 使用 `StdioServerTransport`,与客户端通过标准输入/输出通信。
|
|
109
|
+
- 在 CLI 里启动 Server 并 `server.connect(transport)`。可参考本仓库 `src/mcp-server/transport/stdio.ts` 和 `src/mcp-server/shared/init.ts`。
|
|
110
|
+
|
|
111
|
+
**HTTP**
|
|
112
|
+
|
|
113
|
+
- 使用 SDK 的 `StreamableHTTPServerTransport` 或 SSE 相关 Transport,在 Express(或其它框架)里挂一条 POST 路由处理 MCP 请求。本仓库 `src/mcp-server/transport/streamable.ts` 即为一例。
|
|
114
|
+
|
|
115
|
+
### 2.5 CLI 入口(便于别人用 npx 跑)
|
|
116
|
+
|
|
117
|
+
别人用 `npx your-package mcp` 时,实际执行的是 `package.json` 里 `bin` 指向的文件(如 `dist/cli.js`)。CLI 需要:
|
|
118
|
+
|
|
119
|
+
1. 解析参数(如 `--app-id`、`--port`)。
|
|
120
|
+
2. 根据参数创建 MCP Server、注册工具、选择 Transport。
|
|
121
|
+
3. 调用 `server.connect(transport)` 启动。
|
|
122
|
+
|
|
123
|
+
本仓库入口为 `src/cli.ts`,`mcp` 子命令里会调用 `initMcpServerWithTransport('stdio', options)`,可对照阅读。
|
|
124
|
+
|
|
125
|
+
### 2.6 项目结构建议
|
|
126
|
+
|
|
127
|
+
可参考本仓库:
|
|
128
|
+
|
|
129
|
+
- `src/mcp-server/`:Server 初始化、各类 Transport(stdio/sse/streamable)。
|
|
130
|
+
- `src/mcp-tool/`:工具定义(name、description、schema、handler)及注册逻辑。
|
|
131
|
+
- `src/cli.ts`:命令行入口,解析参数并启动对应 Transport。
|
|
132
|
+
- `package.json`:`main`、`bin`、`files`(发布时只带 dist、README 等)。
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 三、让别人引用你的 MCP
|
|
137
|
+
|
|
138
|
+
别人要「引用」你的 MCP,本质是:在他的环境里**能启动你的 MCP 进程**,并把该进程配置到 Cursor/Claude 的 MCP 列表中。常见两种方式:**发布到 npm**、**(可选)登记到 MCP Registry**。
|
|
139
|
+
|
|
140
|
+
### 3.1 发布到 npm(必须)
|
|
141
|
+
|
|
142
|
+
MCP Registry 只存元数据,不存包;可执行代码需要发到 npm,别人才能 `npx your-package mcp`。
|
|
143
|
+
|
|
144
|
+
1. **完善 package.json**
|
|
145
|
+
|
|
146
|
+
- `name`:建议 scoped,如 `@your-org/your-mcp`,避免重名。
|
|
147
|
+
- `description`、`repository`、`keywords`(如 `mcp`、`ai`)。
|
|
148
|
+
- `files`:只发布必要内容,例如 `["dist", "README.md", "LICENSE"]`。
|
|
149
|
+
- `engines.node`:如 `>=18.0.0`,避免用户 Node 版本过旧。
|
|
150
|
+
|
|
151
|
+
2. **构建并发布**
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
npm install
|
|
155
|
+
npm run build
|
|
156
|
+
npm publish --access public
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
若首次发布 scoped 包,需 `--access public`。发布后别人即可:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
npx -y @your-org/your-mcp mcp --some-arg value
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 3.2 在 Cursor 中引用
|
|
166
|
+
|
|
167
|
+
用户在 Cursor 的 MCP 配置里增加一项,指向你的包和启动命令。例如本仓库的写法:
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"mcpServers": {
|
|
172
|
+
"your-mcp-name": {
|
|
173
|
+
"command": "npx",
|
|
174
|
+
"args": [
|
|
175
|
+
"-y",
|
|
176
|
+
"@your-org/your-mcp",
|
|
177
|
+
"mcp",
|
|
178
|
+
"-a", "<app_id>",
|
|
179
|
+
"-s", "<app_secret>"
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
- `command`:一般为 `npx`。
|
|
187
|
+
- `args`:`-y` 避免交互,接着是包名、子命令(如 `mcp`)、你的 CLI 所需参数。
|
|
188
|
+
- 若需要环境变量,可在 Cursor 的 MCP 配置里为该 server 配置 `env`。
|
|
189
|
+
|
|
190
|
+
这样 Cursor 会启动你的 MCP 进程并与之通信,用户即可使用你注册的 Tools/Resources/Prompts。
|
|
191
|
+
|
|
192
|
+
### 3.3 发布到 MCP Registry(可选,便于被发现)
|
|
193
|
+
|
|
194
|
+
MCP Registry 是官方元数据登记处,便于用户在 [registry.modelcontextprotocol.io](https://modelcontextprotocol.io/registry/quickstart) 搜索并安装你的 MCP。
|
|
195
|
+
|
|
196
|
+
1. **在 package.json 里加验证字段**
|
|
197
|
+
|
|
198
|
+
```json
|
|
199
|
+
{
|
|
200
|
+
"name": "@your-org/your-mcp",
|
|
201
|
+
"mcpName": "io.github.your-username/your-mcp"
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
- 用 GitHub 认证时,`mcpName` 需为 `io.github.<你的 GitHub 用户名>/<服务名>`。
|
|
206
|
+
- 若用域名认证,可使用 `com.yourcompany/your-mcp` 等形式。
|
|
207
|
+
|
|
208
|
+
2. **安装 mcp-publisher 并初始化**
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# 安装(示例:macOS)
|
|
212
|
+
brew install mcp-publisher
|
|
213
|
+
# 或从 GitHub Releases 下载二进制
|
|
214
|
+
|
|
215
|
+
# 在项目根目录
|
|
216
|
+
mcp-publisher init
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
会生成 `server.json`,需补全/修改:
|
|
220
|
+
|
|
221
|
+
- `name`:与 `package.json` 的 `mcpName` 一致。
|
|
222
|
+
- `version`:与 npm 包版本一致。
|
|
223
|
+
- `packages[].identifier`:npm 包名。
|
|
224
|
+
- `packages[].transport`:如 `{ "type": "stdio" }`。
|
|
225
|
+
- 若有环境变量或启动参数,可在 `environmentVariables` 等字段中声明。
|
|
226
|
+
|
|
227
|
+
3. **登录并发布到 Registry**
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
mcp-publisher login github # 按提示在浏览器完成 GitHub 授权
|
|
231
|
+
mcp-publisher publish
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
发布后,别人可以在支持 MCP Registry 的客户端里通过「从 Registry 安装」找到你的 MCP。
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## 四、与本仓库的对应关系
|
|
239
|
+
|
|
240
|
+
| 主题 | 本仓库位置 |
|
|
241
|
+
|--------------|------------|
|
|
242
|
+
| Server 创建与工具注册 | `src/mcp-server/shared/init.ts`、`src/mcp-tool/mcp-tool.ts` |
|
|
243
|
+
| 工具定义示例 | `src/mcp-tool/tools/en/builtin-tools/docx/builtin.ts` |
|
|
244
|
+
| stdio 传输 | `src/mcp-server/transport/stdio.ts` |
|
|
245
|
+
| HTTP 传输 | `src/mcp-server/transport/streamable.ts` |
|
|
246
|
+
| CLI 入口 | `src/cli.ts`(`mcp` 子命令) |
|
|
247
|
+
| 发布配置 | `package.json`(bin、files、keywords) |
|
|
248
|
+
| 用户配置示例 | `README.md` 中的 `mcpServers` 配置 |
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 五、检查清单
|
|
253
|
+
|
|
254
|
+
**开发阶段**
|
|
255
|
+
|
|
256
|
+
- [ ] 使用 `@modelcontextprotocol/sdk` 创建 `McpServer`。
|
|
257
|
+
- [ ] 至少注册一个 Tool(name、description、schema、handler)。
|
|
258
|
+
- [ ] 选择 stdio 或 HTTP,并实现对应 Transport 与 `server.connect()`。
|
|
259
|
+
- [ ] 提供 CLI 入口(如 `mcp` 子命令),便于 `npx your-pkg mcp`。
|
|
260
|
+
|
|
261
|
+
**发布阶段**
|
|
262
|
+
|
|
263
|
+
- [ ] `package.json` 含 `main`、`bin`、`files`、`repository`、`keywords`。
|
|
264
|
+
- [ ] `npm run build` 通过,且 `files` 中包含构建产物。
|
|
265
|
+
- [ ] `npm publish --access public` 成功。
|
|
266
|
+
- [ ] 在 README 中写明:如何用 npx 启动、如何在 Cursor 的 `mcpServers` 中配置。
|
|
267
|
+
|
|
268
|
+
**(可选)MCP Registry**
|
|
269
|
+
|
|
270
|
+
- [ ] `package.json` 中设置 `mcpName`。
|
|
271
|
+
- [ ] 生成并填写 `server.json`,运行 `mcp-publisher publish`。
|
|
272
|
+
|
|
273
|
+
按上述步骤即可开发自己的 MCP,并让其他人通过 npm 与 Cursor 配置引用你的 MCP。
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# 读取 Wiki 全文并检查画板输出 - 调用示例
|
|
2
|
+
|
|
3
|
+
本文档说明如何读取指定 Wiki 页面的全文(含画板节点内容),以及如何检查输出是否包含画板。
|
|
4
|
+
|
|
5
|
+
## 目标文档
|
|
6
|
+
|
|
7
|
+
- **Wiki 链接**:https://newhuotech.sg.larksuite.com/wiki/MxtFwpJpWiCzuFkhXIElsMwDg0b
|
|
8
|
+
- **Wiki 节点 token**:`MxtFwpJpWiCzuFkhXIElsMwDg0b`
|
|
9
|
+
- **关联云文档 ID**(docx):`XBsQdga2Fo2chyxQokMlpQG5gae`(由 `wiki_v2_space_getNode` 返回的 `obj_token`)
|
|
10
|
+
|
|
11
|
+
## 调用步骤
|
|
12
|
+
|
|
13
|
+
### 方式一:通过 MCP 工具链(推荐)
|
|
14
|
+
|
|
15
|
+
在 Cursor 等支持 MCP 的客户端中,按顺序调用:
|
|
16
|
+
|
|
17
|
+
**1. 获取 Wiki 节点信息(可选,若已知 docx ID 可跳过)**
|
|
18
|
+
|
|
19
|
+
- **Tool**:`wiki_v2_space_getNode`
|
|
20
|
+
- **参数**:
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"params": {
|
|
24
|
+
"token": "MxtFwpJpWiCzuFkhXIElsMwDg0b",
|
|
25
|
+
"obj_type": "wiki"
|
|
26
|
+
},
|
|
27
|
+
"useUAT": true
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
- **从响应中取**:`node.obj_token` 作为文档 ID(本例为 `XBsQdga2Fo2chyxQokMlpQG5gae`)。
|
|
31
|
+
|
|
32
|
+
**2. 读取文档全文(含画板节点)**
|
|
33
|
+
|
|
34
|
+
- **Tool**:`docx_builtin_readFullContent`
|
|
35
|
+
- **参数**:
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"path": {
|
|
39
|
+
"document_id": "XBsQdga2Fo2chyxQokMlpQG5gae"
|
|
40
|
+
},
|
|
41
|
+
"useUAT": true
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 方式二:仅读取全文(已知 document_id)
|
|
46
|
+
|
|
47
|
+
若已知该 Wiki 对应的 docx 为 `XBsQdga2Fo2chyxQokMlpQG5gae`,可直接调用:
|
|
48
|
+
|
|
49
|
+
- **Tool**:`docx_builtin_readFullContent`
|
|
50
|
+
- **参数**:
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"path": {
|
|
54
|
+
"document_id": "XBsQdga2Fo2chyxQokMlpQG5gae"
|
|
55
|
+
},
|
|
56
|
+
"useUAT": true
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 预期输出示例
|
|
61
|
+
|
|
62
|
+
### 无画板 token 或未拉取到画板节点时
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
# test
|
|
66
|
+
[画板]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 有画板 token 且拉取成功时
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
# test
|
|
73
|
+
[画板]
|
|
74
|
+
- [sticker] 便签内容示例
|
|
75
|
+
- [text] 文本框内容
|
|
76
|
+
(画板无文本节点)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
最后一行仅在「有节点但都无文本」时出现;若有文本节点,会列出 `- [类型] 文本` 行。
|
|
80
|
+
|
|
81
|
+
## 画板内容说明(含状态流转图)
|
|
82
|
+
|
|
83
|
+
- **读取逻辑**:若画板块带有 `token`(画板 ID),会自动请求「画板节点列表」接口,并尝试从节点中提取文本。
|
|
84
|
+
- **支持的节点内容**:文本框、便签、形状上的文字、`label`/`title`/`name`、以及流程图/状态图中可能存在的 `nodes[]`、`edges[]` 中的标签。
|
|
85
|
+
- **若仍显示「画板无节点」或「无文本」**:
|
|
86
|
+
1. 飞书目前对画板内**图形、连线、状态图**的节点/文本**未必全部通过 API 暴露**,部分内容可能无法以文本形式读出。
|
|
87
|
+
2. 建议在画板中为**每个状态/步骤**尽量加上**文字说明**(便签或形状内文字),便于接口能解析到。
|
|
88
|
+
3. 确认应用已开通并勾选**画板相关权限**(如「查看画板」等),否则节点接口可能返回空。
|
|
89
|
+
- **重建**:修改 `whiteboard.ts` 或 `reader.ts` 后需执行 `yarn build` 并重启 MCP 后再试。
|
|
90
|
+
|
|
91
|
+
## 检查要点
|
|
92
|
+
|
|
93
|
+
1. **是否包含标题**:输出应以 `# test`(或当前文档标题)开头。
|
|
94
|
+
2. **是否出现画板标注**:应包含 `[画板]`。
|
|
95
|
+
3. **是否包含画板节点**:若文档内画板块带有 token 且应用有画板权限,`[画板]` 下方会出现节点列表或「(画板无文本节点)」。
|
|
96
|
+
4. **权限或 token 缺失时**:仍会看到 `[画板]`,但不会有多行节点内容。
|
|
97
|
+
|
|
98
|
+
## 前置条件
|
|
99
|
+
|
|
100
|
+
- MCP 使用 `preset.doc.default`(或包含 `docx.builtin.readFullContent` 的 preset)。
|
|
101
|
+
- 已配置 OAuth 且使用 **user_access_token**(`useUAT: true`)。
|
|
102
|
+
- 若需画板节点内容:应用需具备画板相关权限;且文档块接口返回的画板块带有 `token`。
|
|
103
|
+
- 修改过 `read-full-content` / `whiteboard` 代码后,需重新 **build** 并**重启 MCP** 再测试。
|
|
104
|
+
|
|
105
|
+
## 重建与重启
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# 在项目根目录
|
|
109
|
+
yarn build
|
|
110
|
+
# 或
|
|
111
|
+
npm run build
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
然后在 Cursor 中重新加载 MCP 配置或重启 Cursor,再按上述参数调用一次,对比输出是否符合预期。
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# 架构图总结文档
|
|
2
|
+
|
|
3
|
+
> 根据 Wiki 画板内容整理(来源:test)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 一、整体架构概览
|
|
8
|
+
|
|
9
|
+
文档中的画板描述了一个**分层架构**,自下而上分为四层:基建层、领域层、应用层、接入层。
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
┌─────────────────────────────────────────────────────────┐
|
|
13
|
+
│ 接入层 (Access) │
|
|
14
|
+
├─────────────────────────────────────────────────────────┤
|
|
15
|
+
│ 应用层 (Application) │
|
|
16
|
+
├─────────────────────────────────────────────────────────┤
|
|
17
|
+
│ 领域层 (Domain) │
|
|
18
|
+
├─────────────────────────────────────────────────────────┤
|
|
19
|
+
│ 基建层 (Infrastructure) │
|
|
20
|
+
└─────────────────────────────────────────────────────────┘
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 二、各层组成说明
|
|
26
|
+
|
|
27
|
+
### 1. 接入层
|
|
28
|
+
|
|
29
|
+
- **定位**:对外访问入口与流量治理
|
|
30
|
+
- **主要组件**:
|
|
31
|
+
- 通用网关
|
|
32
|
+
- 反向代理
|
|
33
|
+
- 鉴权插件
|
|
34
|
+
- 网关插件 2、3、4
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### 2. 应用层
|
|
39
|
+
|
|
40
|
+
- **定位**:业务应用与功能模块
|
|
41
|
+
- **主要组件**:
|
|
42
|
+
- **应用**:Application 1、Application 2、Application 3
|
|
43
|
+
- **功能模块**:Func 1 ~ Func 6(多个功能单元,分布在不同层级/分组中)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### 3. 领域层
|
|
48
|
+
|
|
49
|
+
- **定位**:领域模型与领域服务
|
|
50
|
+
- **主要组件**:
|
|
51
|
+
- **领域模型**:Model 1、Model 2、Model 3、Model 4
|
|
52
|
+
- **领域服务**:Service 1、Service 2、Service 3
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### 4. 基建层
|
|
57
|
+
|
|
58
|
+
- **定位**:中台能力与基础设施
|
|
59
|
+
- **主要组件**:
|
|
60
|
+
- **中台服务**:中台服务 1 ~ 中台服务 6
|
|
61
|
+
- **公共存储**:Common Storage
|
|
62
|
+
- **领域服务**:Service 1(与领域层衔接)
|
|
63
|
+
- **数据与中间件**:
|
|
64
|
+
- Redis
|
|
65
|
+
- MySQL
|
|
66
|
+
- MQ(消息队列)
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 三、组件分类汇总
|
|
71
|
+
|
|
72
|
+
| 类别 | 组件列表 |
|
|
73
|
+
|--------------|----------|
|
|
74
|
+
| 网关与代理 | 通用网关、反向代理、鉴权插件、网关插件 2/3/4 |
|
|
75
|
+
| 应用 | Application 1、Application 2、Application 3 |
|
|
76
|
+
| 功能模块 | Func 1 ~ Func 6 |
|
|
77
|
+
| 领域模型 | Model 1 ~ Model 4 |
|
|
78
|
+
| 领域服务 | Service 1、Service 2、Service 3 |
|
|
79
|
+
| 中台服务 | 中台服务 1 ~ 中台服务 6 |
|
|
80
|
+
| 存储与中间件 | Common Storage、Redis、MySQL、MQ |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 四、说明
|
|
85
|
+
|
|
86
|
+
- 画板中的节点包含多处**分组(group)**(如 o1:1~o1:7、o1:8~o1:12 等),表示逻辑上的组合关系,上述文档已按「层级 + 组件类型」做了归纳。
|
|
87
|
+
- 同一名称(如 Func 1、Model 1)在图中可能多次出现,表示在不同上下文或分组中的引用。
|
|
88
|
+
- 本文档由画板原始节点数据整理而成,用于阅读与评审;具体架构决策以实际设计与代码为准。
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Feishu/Lark Open Platform Developer Documentation Retrieval MCP
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@larksuiteoapi/lark-mcp)
|
|
4
|
+
[](https://www.npmjs.com/package/@larksuiteoapi/lark-mcp)
|
|
5
|
+
[](https://nodejs.org/)
|
|
6
|
+
|
|
7
|
+
English | [中文](./README_ZH.md)
|
|
8
|
+
|
|
9
|
+
> **⚠️ Beta Version Notice**: This tool is currently in Beta. Features and APIs may change, so please pay close attention to version updates.
|
|
10
|
+
|
|
11
|
+
This is the Feishu/Lark official Open Platform Developer Documentation Retrieval MCP (Model Context Protocol) tool, designed to help users quickly find the documentation they need after entering their requirements. It can also be used with [Feishu/Lark OpenAPI MCP](../../README.md) to enable AI assistants to run automated scenarios.
|
|
12
|
+
|
|
13
|
+
> The scope of documentation retrieval covers all developer guides, tutorials, server-side APIs, and client-side APIs under the [Developer Documentation](https://open.feishu.cn/document/home/index) or [Lark Developer Documentation](https://open.larksuite.com/document/home/index), helping users quickly find the corresponding OpenAPI or other developer documentation. It does not search "Lark Docs" documents.
|
|
14
|
+
|
|
15
|
+
## Getting Started
|
|
16
|
+
|
|
17
|
+
### Install Node.js
|
|
18
|
+
|
|
19
|
+
Before using the lark-mcp tool, you need to install the Node.js environment. If you have already installed Node.js, you can skip this step.
|
|
20
|
+
1. **Install with Homebrew (Recommended):**
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
brew install node
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
2. **Use the official installer:**
|
|
27
|
+
- Visit the [Node.js official website](https://nodejs.org/)
|
|
28
|
+
- Download and install the LTS version
|
|
29
|
+
- After installation, open the terminal to verify:
|
|
30
|
+
```bash
|
|
31
|
+
node -v
|
|
32
|
+
npm -v
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
#### Install Node.js on Windows
|
|
36
|
+
|
|
37
|
+
1. **Use the official installer:**
|
|
38
|
+
|
|
39
|
+
- Visit the [Node.js official website](https://nodejs.org/)
|
|
40
|
+
- Download and run the Windows installer (.msi file)
|
|
41
|
+
- Follow the installation wizard to complete the installation
|
|
42
|
+
- After installation, open the command prompt to verify:
|
|
43
|
+
```bash
|
|
44
|
+
node -v
|
|
45
|
+
npm -v
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
2. **Use nvm-windows:**
|
|
49
|
+
- Download [nvm-windows](https://github.com/coreybutler/nvm-windows/releases)
|
|
50
|
+
- Install nvm-windows
|
|
51
|
+
- Use nvm to install Node.js:
|
|
52
|
+
```bash
|
|
53
|
+
nvm install latest
|
|
54
|
+
nvm use <version>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Installation
|
|
58
|
+
|
|
59
|
+
Install the lark-mcp tool globally:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npm install -g @larksuiteoapi/lark-mcp
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## User Guide
|
|
66
|
+
|
|
67
|
+
### Use in Trae/Cursor/Claude
|
|
68
|
+
To integrate Lark features in AI tools such as Trae, Cursor or Claude, you can install using the button below.
|
|
69
|
+
|
|
70
|
+
[](https://cursor.com/install-mcp?name=lark_open_doc_search&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBsYXJrc3VpdGVvYXBpL2xhcmstbWNwIiwicmVjYWxsLWRldmVsb3Blci1kb2N1bWVudHMiXX0=)
|
|
71
|
+
|
|
72
|
+
[](trae-cn://trae.ai-ide/mcp-import?source=lark&type=stdio&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBsYXJrc3VpdGVvYXBpL2xhcmstbWNwIiwicmVjYWxsLWRldmVsb3Blci1kb2N1bWVudHMiXX0=) [](trae://trae.ai-ide/mcp-import?source=lark&type=stdio&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBsYXJrc3VpdGVvYXBpL2xhcmstbWNwIiwicmVjYWxsLWRldmVsb3Blci1kb2N1bWVudHMiXX0=)
|
|
73
|
+
|
|
74
|
+
or you can add the following to your configuration file:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"lark-mcp": {
|
|
80
|
+
"command": "npx",
|
|
81
|
+
"args": [
|
|
82
|
+
"-y",
|
|
83
|
+
"@larksuiteoapi/lark-mcp",
|
|
84
|
+
"recall-developer-documents",
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Advanced Configuration
|
|
92
|
+
|
|
93
|
+
#### Command Line Arguments
|
|
94
|
+
|
|
95
|
+
The `lark-mcp recall-developer-documents` tool provides a variety of command line arguments for flexible MCP service configuration:
|
|
96
|
+
|
|
97
|
+
| Parameter | Short | Description | Example |
|
|
98
|
+
|------|------|------|------|
|
|
99
|
+
| `--mode` | `-m` | Transfer mode, options are stdio or streamable or sse, default is stdio | `-m sse` |
|
|
100
|
+
| `--host` | | Listening host in SSE\Streamable mode, default is localhost | `--host 0.0.0.0` |
|
|
101
|
+
| `--port` | `-p` | Listening port in SSE\Streamable mode, default is 3000 | `-p 3000` |
|
|
102
|
+
| `--version` | `-V` | Show version number | `-V` |
|
|
103
|
+
| `--help` | `-h` | Show help information | `-h` |
|
|
104
|
+
|
|
105
|
+
#### Example Usage of Arguments
|
|
106
|
+
|
|
107
|
+
1. **Transfer Modes**:
|
|
108
|
+
|
|
109
|
+
recall-developer-documents supports two transfer modes:
|
|
110
|
+
|
|
111
|
+
1. **stdio mode (default/recommended):** Suitable for integration with AI tools such as Cursor or Claude, communicating via standard input and output streams.
|
|
112
|
+
```bash
|
|
113
|
+
lark-mcp recall-developer-documents -m stdio
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
2. **SSE mode:** Provides an HTTP interface based on Server-Sent Events, suitable for web applications or scenarios requiring a network interface.
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# By default, only listens on localhost
|
|
120
|
+
lark-mcp recall-developer-documents -m sse -p 3000
|
|
121
|
+
|
|
122
|
+
# Listen on all network interfaces (allow remote access)
|
|
123
|
+
lark-mcp recall-developer-documents -m sse --host 0.0.0.0 -p 3000
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
After starting, the SSE endpoint can be accessed at `http://<host>:<port>/sse`.
|
|
127
|
+
|
|
128
|
+
## Related Links
|
|
129
|
+
|
|
130
|
+
- [Feishu Open Platform](https://open.feishu.cn/)
|
|
131
|
+
- [Lark International Open Platform](https://open.larksuite.com/)
|
|
132
|
+
- [Node.js Official Website](https://nodejs.org/)
|
|
133
|
+
- [npm Documentation](https://docs.npmjs.com/)
|
|
134
|
+
|
|
135
|
+
## Feedback
|
|
136
|
+
|
|
137
|
+
You are welcome to submit Issues to help improve this tool. If you have any questions or suggestions, please raise them in the GitHub repository.
|