{"_id":"@byaidata/mcp-feishu","name":"@byaidata/mcp-feishu","dist-tags":{"latest":"0.4.2"},"versions":{"0.4.2":{"name":"@byaidata/mcp-feishu","version":"0.4.2","description":"MCP tools for querying and updating Feishu Base boards and querying Feishu docs via lark-cli","type":"module","main":"./src/index.js","bin":{"feishu-mcp":"src/index.js"},"scripts":{"start":"node src/index.js","check":"node --check src/index.js","pack:dry-run":"npm pack --dry-run"},"keywords":["mcp","feishu","lark","bitable"],"engines":{"node":">=18"},"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"^1.17.4","zod":"^3.25.76"},"_id":"@byaidata/mcp-feishu@0.4.2","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-j4kHSj93EXD/geYGvepUdEJnzaVsM1aBG1hYxZ0zCc1l0EOICV7xA+kKMRTrLX1+GneSI8E90pjRovRA9AfArw==","shasum":"afd05d59bf33cb98f6e956d643bab9c0f3c685be","tarball":"https://registry.npmjs.org/@byaidata/mcp-feishu/-/mcp-feishu-0.4.2.tgz","fileCount":3,"unpackedSize":26304,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICzmIZCjWbqZWeBvK2ioPhqZgTfadxLHopjleJFuBR20AiBv/rkOazgNoCnAi5NYWcki+IyGPHgsyqm07Gg6fWsgKw=="}]},"_npmUser":{"name":"zjt950408","email":"947140669@qq.com"},"directories":{},"maintainers":[{"name":"zjt950408","email":"947140669@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-feishu_0.4.2_1784858570636_0.37353309257147993"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-24T02:02:50.435Z","0.4.2":"2026-07-24T02:02:50.774Z","modified":"2026-07-24T02:02:50.979Z"},"maintainers":[{"name":"zjt950408","email":"947140669@qq.com"}],"description":"MCP tools for querying and updating Feishu Base boards and querying Feishu docs via lark-cli","keywords":["mcp","feishu","lark","bitable"],"license":"MIT","readme":"# Feishu MCP\n\nMCP server for querying and updating Feishu Base boards and querying Feishu docs through `lark-cli`.\n\nThis package exposes Feishu Base read/write tools and document search/fetch tools to MCP clients such as Codex, Claude Desktop, or other clients that support stdio MCP servers.\n\n## Requirements\n\n- Node.js 18 or later\n- `lark-cli` installed and available in `PATH`\n- A valid `lark-cli` login session with access to the target Feishu Base\n\nCheck your Feishu CLI login before using the MCP server:\n\n```bash\nlark-cli whoami\n```\n\n## Install\n\nUse it directly with `npx`:\n\n```bash\nnpx -y @byaidata/mcp-feishu\n```\n\nOr install it globally:\n\n```bash\nnpm install -g @byaidata/mcp-feishu\nfeishu-mcp\n```\n\n## MCP Client Config\n\nFor the fastest and most stable startup, install the package globally and point your MCP client at the installed `feishu-mcp` command:\n\n```json\n{\n  \"mcpServers\": {\n    \"feishu-mcp\": {\n      \"command\": \"feishu-mcp\"\n    }\n  }\n}\n```\n\nIf `lark-cli` is not in the default `PATH`, pass its absolute path through `FEISHU_CLI_BIN`:\n\n```json\n{\n  \"mcpServers\": {\n    \"feishu-mcp\": {\n      \"command\": \"feishu-mcp\",\n      \"env\": {\n        \"FEISHU_CLI_BIN\": \"/absolute/path/to/lark-cli\"\n      }\n    }\n  }\n}\n```\n\nYou can also tune or disable the in-process read cache:\n\n```json\n{\n  \"mcpServers\": {\n    \"feishu-mcp\": {\n      \"command\": \"feishu-mcp\",\n      \"env\": {\n        \"FEISHU_MCP_CACHE_TTL_MS\": \"300000\"\n      }\n    }\n  }\n}\n```\n\nSet `FEISHU_MCP_CACHE_TTL_MS` to `0` to disable caching. The default is `300000` milliseconds.\n\n## Available Tools\n\n- `whoami`: show the current Feishu CLI identity and token status\n- `resolve_board`: resolve a Feishu board title or URL to a Base token\n- `search_docs`: search Feishu docs, wiki pages, and spreadsheet files by keyword\n- `fetch_doc`: fetch a Feishu document or wiki page by URL or token\n- `update_doc`: safely update a Feishu document or wiki page with narrow edits only\n- `update_record`: update a single record in a Base table\n- `batch_update_records`: update multiple records in a Base table with the same patch\n- `list_blocks`: list dashboards, tables, workflows, and other Base blocks\n- `list_tables`: list tables in a Base\n- `list_fields`: list fields for a Base table\n- `query_default_work_items`: fast query for the default `需求管理看板` bugs, tasks, requirements, and iterations with built-in token, table IDs, and core fields\n- `search_records`: search records in a Base table by keyword\n- `list_records`: list records in a Base table with pagination\n- `get_record`: fetch one or more records by record ID\n- `expand_linked_records`: expand link fields and fetch linked records\n\n## Local Development\n\n```bash\nnpm install\nnpm start\n```\n\nRun a syntax check:\n\n```bash\nnpm run check\n```\n\nPreview the npm package contents:\n\n```bash\nnpm run pack:dry-run\n```\n\n## Publish\n\nUpdate the version before publishing:\n\n```bash\nnpm version patch\nnpm publish\n```\n\nFor an internal npm registry, configure `registry` through your `.npmrc` or publish command. If publishing this package publicly, keep `publishConfig.access` set to `public`.\n\n## Environment\n\n- `FEISHU_CLI_BIN`: optional path to the `lark-cli` executable. Defaults to `lark-cli`.\n- `FEISHU_MCP_CACHE_TTL_MS`: optional TTL for cached read calls in milliseconds. Defaults to `300000`; set to `0` to disable.\n\n## Notes\n\n- The server shells out to `lark-cli`, so it reuses the current machine's Feishu login state.\n- Read calls such as table/field listing, record search, record get, document search/fetch, and board resolve are cached in memory for the configured TTL. Update calls are never cached.\n- Users must have permission to the Feishu Base they want to query.\n- Write tools only update the fields you pass in `patch`; prefer narrow patches and confirm field names with `list_fields` first.\n- For tasks that can affect multiple records, prefer `batch_update_records` only when every target should receive the same patch.\n- Keep document work read-first: use `search_docs` to find the target, then `fetch_doc` to inspect it before any follow-up action.\n- `update_doc` only allows `str_replace`, `block_insert_after`, `block_replace`, and `block_delete`; it does not expose overwrite, append, or move/copy operations.\n- `block_delete` requires an explicit `confirm` flag in the tool input.\n- Tool responses are returned as formatted JSON text for easy inspection by MCP clients.\n","readmeFilename":"README.md","_rev":"1-0d79b8d7cbc741fa24bc33176ba71c3d"}