airtable-mcp-server
一个提供对Airtable数据库读写访问的模型上下文协议服务器。该服务器使LLM能够检查数据库架构,然后读取和写入记录。
https://github.com/user-attachments/assets/c8285e76-d0ed-4018-94c7-20535db6c944
使用方法
要在Claude桌面应用中使用此服务器,请将以下配置添加到您的claude_desktop_config.json文件的mcpServers部分:
{
"mcpServers": {
"airtable": {
"command": "npx",
"args": [
"-y",
"airtable-mcp-server"
],
"env": {
"AIRTABLE_API_KEY": "pat123.abc123"
}
}
}
}
将pat123.abc123替换为您的Airtable个人访问令牌。您的令牌应至少具有schema.bases:read和data.records:read权限,并且可以选择具有相应的写入权限。
组件
工具
-
list_records
- 列出指定Airtable表中的记录
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 要查询的表的IDmaxRecords(数字, 可选): 返回的最大记录数。默认为100。filterByFormula(字符串, 可选): 用于过滤记录的Airtable公式
-
search_records
- 搜索包含特定文本的记录
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 要查询的表的IDsearchTerm(字符串, 必填): 在记录中搜索的文本fieldIds(数组, 可选): 要搜索的特定字段ID。如果未提供,则搜索所有文本字段。maxRecords(数字, 可选): 返回的最大记录数。默认为100。
-
list_bases
- 列出所有可访问的Airtable数据库
- 无需输入参数
- 返回数据库ID、名称和权限级别
-
list_tables
- 列出特定数据库中的所有表
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDdetailLevel(字符串, 可选): 获取关于表的详细程度(tableIdentifiersOnly、identifiersOnly或full)
- 返回表ID、名称、描述、字段和视图(根据给定的
detailLevel)
-
describe_table
- 获取特定表的详细信息
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 要描述的表的IDdetailLevel(字符串, 可选): 获取关于表的详细程度(tableIdentifiersOnly、identifiersOnly或full)
- 返回与
list_tables相同的格式,但针对单个表 - 用于获取特定表的详细信息,而无需获取数据库中所有表的信息
-
get_record
- 通过ID获取特定记录
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 表的IDrecordId(字符串, 必填): 要检索的记录的ID
-
create_record
- 在表中创建新记录
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 表的IDfields(对象, 必填): 新记录的字段和值
-
update_records
- 更新表中的一个或多个记录
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 表的IDrecords(数组, 必填): 包含记录ID和要更新字段的对象数组
-
delete_records
- 从表中删除一个或多个记录
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 表的IDrecordIds(数组, 必填): 要删除的记录ID数组
-
create_table
- 在数据库中创建新表
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDname(字符串, 必填): 新表的名称description(字符串, 可选): 表的描述fields(数组, 必填): 字段定义数组(名称、类型、描述、选项)
-
update_table
- 更新表的名称或描述
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 表的IDname(字符串, 可选): 表的新名称description(字符串, 可选): 表的新描述
-
create_field
- 在表中创建新字段
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 表的IDname(字符串, 必填): 新字段的名称type(字符串, 必填): 字段的类型description(字符串, 可选): 字段的描述options(对象, 可选): 字段特定选项
-
update_field
- 更新字段的名称或描述
- 输入参数:
baseId(字符串, 必填): Airtable数据库的IDtableId(字符串, 必填): 表的IDfieldId(字符串, 必填): 字段的IDname(字符串, 可选): 字段的新名称description(字符串, 可选): 字段的新描述
资源
服务器提供Airtable数据库和表的架构信息:
- 表架构 (
airtable://<baseId>/<tableId>/schema)- 每个表的JSON架构信息
- 包括:
- 数据库ID和表ID
- 表名称和描述
- 主字段ID
- 字段定义(ID、名称、类型、描述、选项)
- 视图定义(ID、名称、类型)
- 自动从Airtable的元数据API发现
贡献
欢迎在GitHub上提交拉取请求!开始步骤:
- 安装Git和Node.js
- 克隆仓库
- 使用
npm install安装依赖 - 运行
npm run test运行测试 - 使用
npm run build构建
- 您可以使用
npm run build:watch在编辑[src/index.ts](https://github.com/domdomegg/airtable-mcp-server/blob/main/src/index.ts)后自动构建。这意味着您可以保存、重新加载Claude桌面(使用Ctrl/Cmd+R),并且更改会生效。
发布
版本遵循语义版本规范。
发布步骤:
- 使用
npm version <major | minor | patch>提升版本 - 运行
git push --follow-tags带标签推送 - 等待GitHub Actions发布到NPM注册中心。