cursor配置飞书MCP(lark-mcp)
本文介绍在本机用cursor 接入飞书开放平台官方MCPlarksuiteoapi/lark-mcp的步骤。官方仓库与文档larksuite/lark-openapi-mcp飞书说明OpenAPI MCP 介绍。1. 前置条件1.1 安装 nvm若尚未安装nvm用来在同一台机器上安装、切换多版本Node。在终端执行以官方文档为准以下为常见写法curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash安装完成后把加载脚本写入shell 配置zsh用~/.zshrcbash用~/.bashrcexport NVM_DIR$HOME/.nvm [ -s $NVM_DIR/nvm.sh ] \. $NVM_DIR/nvm.sh执行source ~/.zshrc或重新打开终端确认command -v nvm有输出。1.2 安装 Node.js 20 并作为默认版本larksuiteoapi/lark-mcp要求Node ≥ 20。建议用 nvm 安装20 LTS并设为默认这样终端与GUI子进程里的node/npx都指向同一主版本。nvm install 20 nvm alias default 20 nvm use 20 node -v # 应显示 v20.x.x which node常用命令备忘nvm ls # 查看本机已安装的 Node 版本 nvm use 20 # 当前 shell 切换到 20 nvm alias default 20 # 新开终端默认使用 201.3 安装larksuiteoapi/lark-mcpnpm install -g larksuiteoapi/lark-mcp lark-mcp --help1.4 飞书开放平台应用在飞书开放平台创建自建应用拿到App ID、App Secret并按需开通、审批 API 权限。如果你不清楚如何创建飞书应用可以参考02.创建飞书应用飞书应用中我开通的权限列表如下{ scopes: { tenant: [ aily:file:read, aily:file:write, aily:message:read, aily:message:write, application:application.app_message_stats.overview:readonly, application:application:self_manage, application:bot.menu:write, base:field:read, base:field:update, base:record:read, base:record:update, base:table:read, base:table:update, bitable:app, bitable:app:readonly, cardkit:card:write, contact:contact.base:readonly, contact:user.base:readonly, contact:user.employee_id:readonly, corehr:file:download, docs:doc, docs:doc:readonly, docs:document.comment:create, docs:document.comment:read, docs:document.comment:update, docs:document.comment:write_only, docs:document.content:read, docs:document.media:download, docs:document.media:upload, docs:document.subscription, docs:document.subscription:read, docs:document:copy, docs:document:export, docs:document:import, docx:document, docx:document.block:convert, docx:document:readonly, drive:drive, event:ip_list, im:chat, im:chat.access_event.bot_p2p_chat:read, im:chat.announcement:read, im:chat.announcement:write_only, im:chat.managers:write_only, im:chat.members:bot_access, im:chat.members:read, im:chat.members:write_only, im:chat.menu_tree:read, im:chat.menu_tree:write_only, im:chat.moderation:read, im:chat.tabs:read, im:chat.tabs:write_only, im:chat.top_notice:write_only, im:chat.widgets:read, im:chat.widgets:write_only, im:chat:create, im:chat:delete, im:chat:moderation:write_only, im:chat:operate_as_owner, im:chat:read, im:chat:readonly, im:chat:update, im:message, im:message.group_at_msg:readonly, im:message.group_msg, im:message.p2p_msg:readonly, im:message.pins:read, im:message.pins:write_only, im:message.reactions:read, im:message.reactions:write_only, im:message.urgent, im:message.urgent.status:write, im:message.urgent:phone, im:message.urgent:sms, im:message:readonly, im:message:recall, im:message:send_as_bot, im:message:send_multi_depts, im:message:send_multi_users, im:message:send_sys_msg, im:message:update, im:resource, im:tag:read, im:url_preview.update, sheets:spreadsheet, wiki:wiki, wiki:wiki:readonly ], user: [ aily:file:read, aily:file:write, base:app:copy, base:app:create, base:app:read, base:app:update, base:collaborator:create, base:collaborator:delete, base:collaborator:read, base:dashboard:copy, base:dashboard:read, base:field:create, base:field:delete, base:field:read, base:field:update, base:form:read, base:form:update, base:record:create, base:record:delete, base:record:read, base:record:retrieve, base:record:update, base:role:create, base:role:delete, base:role:read, base:role:update, base:table:create, base:table:delete, base:table:read, base:table:update, base:view:read, base:view:write_only, base:workflow:read, base:workflow:write, bitable:app, bitable:app:readonly, board:whiteboard:node:create, board:whiteboard:node:delete, board:whiteboard:node:read, board:whiteboard:node:update, calendar:calendar, calendar:calendar:readonly, docs:document.comment:create, docs:document.comment:read, docs:document.comment:update, docs:document.comment:write_only, docs:document.content:read, docs:document.media:upload, docs:document.subscription, docs:document.subscription:read, docs:document:copy, docs:document:import, docs:event.document_deleted:read, docs:event.document_edited:read, docs:event.document_opened:read, docs:event:subscribe, docs:permission.member, docs:permission.member:auth, docs:permission.member:create, docs:permission.member:delete, docs:permission.member:readonly, docs:permission.member:retrieve, docs:permission.member:transfer, docs:permission.member:update, docs:permission.setting, docs:permission.setting:read, docs:permission.setting:readonly, docs:permission.setting:write_only, docx:document, docx:document.block:convert, docx:document:create, docx:document:readonly, docx:document:write_only, drive:drive.metadata:readonly, drive:drive:version, drive:drive:version:readonly, drive:file.like:readonly, drive:file.meta.sec_label.read_only, drive:file:upload, drive:file:view_record:readonly, im:chat, im:chat.access_event.bot_p2p_chat:read, im:chat.announcement:read, im:chat.announcement:write_only, im:chat.managers:write_only, im:chat.members:read, im:chat.members:write_only, im:chat.moderation:read, im:chat.tabs:read, im:chat.tabs:write_only, im:chat.top_notice:write_only, im:chat:delete, im:chat:moderation:write_only, im:chat:read, im:chat:readonly, im:chat:update, im:message, im:message.pins:read, im:message.pins:write_only, im:message.reactions:read, im:message.reactions:write_only, im:message.urgent.status:write, im:message:readonly, im:message:recall, im:message:update, sheets:spreadsheet, sheets:spreadsheet.meta:read, sheets:spreadsheet.meta:write_only, sheets:spreadsheet:create, sheets:spreadsheet:readonly, slides:presentation:create, slides:presentation:read, slides:presentation:update, slides:presentation:write_only, space:document.event:read, space:document:delete, space:document:move, space:document:shortcut, space:folder:create, wiki:member:create, wiki:member:retrieve, wiki:member:update, wiki:node:copy, wiki:node:create, wiki:node:move, wiki:node:read, wiki:node:retrieve, wiki:node:update, wiki:setting:read, wiki:setting:write_only, wiki:space:read, wiki:space:retrieve, wiki:space:write_only, wiki:wiki, wiki:wiki:readonly ] } }2. 在cursor中配置飞书MCP首先打开cursor配置接下来选择ToolsMCP并选择New MCP Server因为我已经增加了lark-mcp所以我这里已经有一个MCP在列表中。2.1 应用身份在上述New MPC Server打开的配置文件中增加以下配置。在已默认使用 Node 20的前提下推荐直接用npx{ mcpServers: { lark-mcp: { command: npx, args: [-y, larksuiteoapi/lark-mcp, mcp], env: { APP_ID: 你的 App ID, APP_SECRET: 你的 App Secret, LARK_DOMAIN: https://open.feishu.cn } } } }国际版Lark将LARK_DOMAIN改为https://open.larksuite.com。2.2 用户身份与OAuth你仍然需要在终端完成一次浏览器授权。默认Node 20后可直接用npx -y larksuiteoapi/lark-mcp login -a App ID -s App Secret3. 使用在完成了以上配置后你可以直接把飞书文档链接粘贴到cursor agent对话框让它帮你读文档或者写文档啦。4. 安全建议不要把 App Secret提交到 Git、贴到公开聊天。泄露后应在开放平台重置密钥。mcp.json若含密钥注意文件权限与备份范围。