From f871314d06b24556be0d19660c1e2ceb0ef934b1 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 21 Oct 2026 23:56:36 +0000 Subject: [PATCH] lark: add plugin for Lark's official remote MCP server Co-authored-by: Danny Jiang --- .cursor-plugin/marketplace.json | 5 ++ third_party/lark/.cursor-plugin/plugin.json | 33 +++++++++++ third_party/lark/CHANGELOG.md | 7 +++ third_party/lark/LICENSE | 21 +++++++ third_party/lark/README.md | 62 ++++++++++++++++++++ third_party/lark/assets/logo.png | Bin 0 -> 8441 bytes third_party/lark/mcp.json | 8 +++ 7 files changed, 136 insertions(+) create mode 100644 third_party/lark/.cursor-plugin/plugin.json create mode 100644 third_party/lark/CHANGELOG.md create mode 100644 third_party/lark/LICENSE create mode 100644 third_party/lark/README.md create mode 100644 third_party/lark/assets/logo.png create mode 100644 third_party/lark/mcp.json diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 7e4aa377f..2da2ba500 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -507,6 +507,11 @@ "name": "posthog-mcp", "source": "third_party/posthog-mcp", "description": "Work with PostHog from chat: query product analytics and run SQL, manage feature flags and experiments, triage error tracking issues, and review session replays, surveys, and dashboards (URL-only connector to PostHog's hosted MCP server)." + }, + { + "name": "lark", + "source": "third_party/lark", + "description": "Work with Lark from chat: search, create, and update Lark Docs, read and write doc comments, fetch files, and search groups, messages, and threads." } ] } diff --git a/third_party/lark/.cursor-plugin/plugin.json b/third_party/lark/.cursor-plugin/plugin.json new file mode 100644 index 000000000..e1b4d8f67 --- /dev/null +++ b/third_party/lark/.cursor-plugin/plugin.json @@ -0,0 +1,33 @@ +{ + "name": "lark", + "displayName": "Lark", + "version": "1.0.0", + "minClientVersions": { + "cursor": "3.13.0" + }, + "description": "Search, create, and update Lark Docs, and read Lark messages, groups, and files.", + "author": { + "name": "Cursor", + "email": "plugins@cursor.com" + }, + "homepage": "https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/mcp_integration/mcp_introduction", + "repository": "https://github.com/cursor/plugins", + "license": "MIT", + "logo": "assets/logo.png", + "keywords": [ + "lark", + "lark suite", + "docs", + "im", + "messages", + "mcp" + ], + "category": "integrations", + "tags": [ + "lark", + "docs", + "messaging", + "mcp" + ], + "mcpServers": "./mcp.json" +} diff --git a/third_party/lark/CHANGELOG.md b/third_party/lark/CHANGELOG.md new file mode 100644 index 000000000..847ebb103 --- /dev/null +++ b/third_party/lark/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changelog + +## 1.0.0 — initial release + +- Connects to Lark's official remote MCP server at `https://mcp.larksuite.com/mcp` over MCP OAuth, with the authorization server discovered from the server URL at connect time. +- Covers Lark Suite, the international product. China-region Feishu runs a separate server at `https://mcp.feishu.cn/mcp` and is not included. +- Logo: Lark's official bird mark as published by Lark Technologies Pte. Ltd. on the `larksuite` GitHub organization, 256×256 PNG. diff --git a/third_party/lark/LICENSE b/third_party/lark/LICENSE new file mode 100644 index 000000000..ca2bba771 --- /dev/null +++ b/third_party/lark/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Cursor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third_party/lark/README.md b/third_party/lark/README.md new file mode 100644 index 000000000..e61e0d107 --- /dev/null +++ b/third_party/lark/README.md @@ -0,0 +1,62 @@ +# Lark + +Cursor plugin that connects agents to [Lark](https://www.larksuite.com) through Lark's official remote [Model Context Protocol](https://modelcontextprotocol.io/) server. + +Search, create, fetch, and update Lark Docs, work with doc comments and files, and read groups and messages in the signed-in Lark account. + +## Install + +1. Open **Cursor Settings → Plugins**. +2. Search for **Lark**. +3. Click **Install**, then complete the Lark sign-in prompt. + +Or run `/add-plugin lark` in chat. + +## MCP + +```json +{ + "mcpServers": { + "lark": { + "type": "http", + "url": "https://mcp.larksuite.com/mcp" + } + } +} +``` + +Auth is MCP OAuth. Cursor discovers Lark's authorization server from the server URL when the plugin connects and prompts for Lark sign-in — there is no app ID, app secret, access token, or custom header to configure. + +## Before you connect + +You need a Lark Suite account. Requests are rejected until sign-in completes. + +This plugin talks only to `https://mcp.larksuite.com/mcp`, the endpoint for Lark Suite, the international product. Accounts on China-region Feishu use a different server (`https://mcp.feishu.cn/mcp`) and are not covered by this plugin. + +## What agents can do + +| Category | Capabilities | +| --- | --- | +| Docs | Search, create, fetch, and update docs, list docs, and read and write doc comments | +| Messages | Search groups, list group members, read messages and threads, and check read status | +| People and files | Look up the signed-in user, search users, and fetch files | + +The hosted runtime is the source of truth for the tool names and schemas it advertises; see Lark's MCP documentation for the current list. + +## Notes + +- Tool calls run as the Lark user who authorizes the connection and cannot exceed that user's own permissions. +- This is a URL-only connector to Lark's hosted server. It does not wrap the local `@larksuiteoapi/lark-mcp` stdio server, which is configured separately with an app ID and secret. +- Revoke access at any time from your Lark account. + +## Docs + +- Lark MCP introduction: https://open.larksuite.com/document/uAjLw4CM/ukTMukTMukTM/mcp_integration/mcp_introduction +- Lark Open Platform: https://open.larksuite.com +- Server URL: https://mcp.larksuite.com/mcp + +Logo is Lark's official bird mark, as published by Lark Technologies Pte. Ltd. on the `larksuite` GitHub organization. + +## License + +MIT diff --git a/third_party/lark/assets/logo.png b/third_party/lark/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9c83d51064196de76a04d94c68c0268e160f9151 GIT binary patch literal 8441 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 cHv