
Feishu Base
STDIOMCP server for accessing and managing Feishu Base databases with LLMs
MCP server for accessing and managing Feishu Base databases with LLMs
A Model Context Protocol server that provides read and write access to Feishu Base (飞书多维表格) databases. This server enables LLMs to inspect database schemas, then read and write records.
Make sure Node.js is installed on your machine.
Get the appToken
and personalBaseToken
for your base account.
Install the MCP server package globally using npm:
npm install -g @lark-base-open/mcp-node-server
In your MCP server configuration file, add the following:
{ "mcpServers": { "base-mcp-server": { "command": "npx", "args": [ "@lark-base-open/mcp-node-server", "-a", "appToken of base", "-p", "personalBaseToken of base" ] } } }
Note: If you are using Claude, you will need to add the MCP configuration through the Developer option in the Claude client settings. You can access this in the Settings menu, and then add the MCP server details under the relevant section.
You need get two tokens before using this mcp server.
personalBaseToken: find Base Plugin UI in your base, and access Custom Plugin->Get Authorization Code
appToken: You can obtain the appToken
quickly through a Developement Tool plugin. Here’s a simplified step-by-step process on how to do it:
list_tables
list_records
tableId
(string, required): The ID of the table to queryget_record
tableId
(string, required): The ID of the tablerecordId
(string, required): The ID of the record to retrievecreate_record
tableId
(string, required): The ID of the tablefields
(object, required): The fields and values for the new recordupdate_record
tableId
(string, required): The ID of the tablerecordId
(string, required): The ID of the recordfields
(object, required): The fields to update and their new valuesdelete_record
tableId
(string, required): The ID of the tablerecordId
(string, required): The ID of the record to deletecreate_table
name
(string, required): Name of the new tablefields
(array, required): Array of field definitions (name, type, description, options)update_table
tableId
(string, required): The ID of the tablename
(string, required): New name for the tabledelete_table
tableId
(string, required): The ID of the table to deletelist_fields
tableId
(string, required): The ID of the tablecreate_field
tableId
(string, required): The ID of the tablenested
(object, required): Field configuration object containing:
field
(object, required): Field definition with name, type, and other propertiesupdate_field
tableId
(string, required): The ID of the tablefieldId
(string, required): The ID of the fieldnested
(object, required): Updated field configurationdelete_field
tableId
(string, required): The ID of the tablefieldId
(string, required): The ID of the field to deleteTo get started with development:
npm install
npm dev
to start the development servernpm test
to run testsnpm build
Available scripts:
npm dev
: Build and run the server in development modenpm start
: Run the servernpm test
: Run testsnpm test:watch
: Run tests in watch modenpm lint
: Run ESLintnpm build
: Build the projectnpm build:watch
: Watch for changes and rebuild automatically.
├── src/ # Source code
│ ├── index.ts # Main entry point(stdio)
│ ├── index.sse.ts # SSE entry point
│ ├── service/ # Service implementations
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions
│ └── test/ # Test files
├── dist/ # Compiled output
Main dependencies:
@lark-base-open/node-sdk
: Feishu Base Node.js SDK@modelcontextprotocol/sdk
: Model Context Protocol SDKexpress
: Web frameworkzod
: Schema validationMIT