How larksuite/lark-openapi-mcp works
Feishu/Lark OpenAPI MCP exposes platform APIs as MCP tools for AI clients. The principal workflow is an MCP client request reaching the server, selecting an enabled tool, invoking the Lark SDK/API, and returning a tool result. The repository also provides CLI-based user OAuth login and token management, generated API tools in English and Chinese, built-in document/IM tools, and a developer-document recall tool. README capabilities guide the map; unsampled server and registry wiring is shown only at the documented level.
Main entry points: mcp-server/index.ts MCP Server · tools/index.ts Tool Registry · store.ts Token Store · handler.ts API Tool Handler
Components 19
Client Access
- CLI Commands
src/cli/index.ts - Login Handler
src/cli/login-handler.ts
MCP Runtime
- MCP Server
src/mcp-server/index.ts - MCP Transports
src/mcp-server/transport/index.ts - Server Initialization
src/mcp-server/shared/init.ts - API Tool Handler
src/mcp-tool/utils/handler.ts
Tool Catalog
- Tool Registry
src/mcp-tool/tools/index.ts - Generated API Tools
src/mcp-tool/tools/en/gen-tools/index.ts - Built-in Tools
src/mcp-tool/tools/en/builtin-tools/index.ts - Document Tools
src/mcp-tool/document-tool/index.ts - Document Recall
src/mcp-tool/document-tool/recall/index.ts
Authentication
- OAuth Login Handler
src/auth/handler/handler-local.ts - OAuth Provider Handler
src/auth/handler/handler.ts - OAuth Providers
src/auth/provider/index.ts - Token Store
src/auth/store.ts - Encrypted Storage
src/auth/utils/storage-manager.ts
Lark Platform
- Lark SDK
- Feishu/Lark API
Other components
- AI MCP Client
Connections 22
- AI MCP Client → MCP Transports: MCP requests
- MCP Transports → MCP Server: delivers requests
- MCP Server → Server Initialization: initializes
- MCP Server → Tool Registry: dispatches tools
- Tool Registry → Generated API Tools: selects APIs
- Tool Registry → Built-in Tools: selects built-ins
- Tool Registry → Document Tools: selects documents
- Document Tools → Document Recall: offers recall
- MCP Server → API Tool Handler: invokes handler
- API Tool Handler → Lark SDK: calls SDK
- Lark SDK → Feishu/Lark API: sends API requests
- Feishu/Lark API → Lark SDK: returns API data
- CLI Commands → Login Handler: runs login
- Login Handler → OAuth Login Handler: starts OAuth
- OAuth Login Handler → OAuth Provider Handler: uses local flow
- OAuth Provider Handler → OAuth Providers: delegates OAuth
- OAuth Providers → Feishu/Lark API: exchanges tokens
- OAuth Login Handler → Token Store: stores access token
- OAuth Providers → Token Store: persists tokens
- Token Store → Encrypted Storage: loads and saves
- MCP Server → OAuth Provider Handler: enables OAuth
- API Tool Handler → Token Store: uses user token