airtable-mcp-server
一个基于 Model Context Protocol (MCP) 的服务器,提供对 Airtable 数据库的读写访问。该服务器使 LLMs(大语言模型)能够检查数据库模式,并读取和写入记录。
使用说明
要在 Claude Desktop 应用中使用此服务器,请将以下配置添加到
claude_desktop_config.json
文件的 "mcpServers" 部分:将
pat123.abc123
替换为你的 Airtable 个人访问令牌。你的令牌至少需要 schema.bases:read
和 data.records:read
权限,如果需要写入功能,还需相应的写权限。组件
工具
- list_records
- 列出指定 Airtable 表中的记录
- 输入参数:
baseId
(string, 必填):Airtable 数据库的 IDtableId
(string, 必填):要查询的表的 IDmaxRecords
(number, 可选):返回的最大记录数,默认为 100filterByFormula
(string, 可选):用于过滤记录的 Airtable 公式
- search_records
- 搜索包含特定文本的记录
- 输入参数:
baseId
(string, 必填):Airtable 数据库的 IDtableId
(string, 必填):要查询的表的 IDsearchTerm
(string, 必填):要在记录中搜索的文本fieldIds
(array, 可选):要搜索的特定字段 ID。如果未提供,则搜索所有文本字段。maxRecords
(number, 可选):返回的最大记录数,默认为 100
- list_bases
- 列出所有可访问的 Airtable 数据库
- 无需输入参数
- 返回数据库 ID、名称和权限级别
- list_tables
- 列出指定数据库中的所有表
- 输入参数:
baseId
(string, 必填):Airtable 数据库的 IDdetailLevel
(string, 可选):获取表的详细程度(tableIdentifiersOnly
、identifiersOnly
或full
)- 返回表 ID、名称、描述、字段和视图(根据指定的
detailLevel
)
- describe_table
- 获取指定表的详细信息
- 输入参数:
baseId
(string, 必填):Airtable 数据库的 IDtableId
(string, 必填):要描述的表的 IDdetailLevel
(string, 可选):获取表的详细程度(tableIdentifiersOnly
、identifiersOnly
或full
)- 返回与
list_tables
相同的格式,但仅针对单个表 - 适用于在不获取数据库中所有表信息的情况下获取特定表的详细信息
- get_record
- 通过 ID 获取特定记录
- 输入参数:
baseId
(string, 必填):Airtable 数据库的 IDtableId
(string, 必填):表的 IDrecordId
(string, 必填):要检索的记录 ID
- create_record
- 在表中创建新记录
- 输入参数:
baseId
(string, 必填):Airtable 数据库的 IDtableId
(string, 必填):表的 IDfields
(object, 必填):新记录的字段和值
- update_records
- 更新表中的一条或多条记录
- 输入参数:
baseId
(string, 必填):Airtable 数据库的 IDtableId
(string, 必填):表的 IDrecords
(array, 必填):包含记录 ID 和要更新字段的对象数组
- delete_records
- 从表中删除一条或多条记录
- 输入参数:
baseId
(string, 必填):Airtable 数据库的 IDtableId
(string, 必填):表的 IDrecordIds
(array, 必填):要删除的记录 ID 数组
- create_table
- 在数据库中创建新表
- 输入参数:
- `baseId» (string, 必填):Airtable 数据库的 ID
- `name» (string, 必填):新表的名称
- `description» (string, 可选):表的描述
- `fields» (array, 必填):字段定义数组(名称、类型、描述、选项)
- update_table
- 更新表的名称或描述
- 输入参数:
- `baseId» (string, 必填):Airtable 数据库的 ID
- `tableId» (string, 必填):表的 ID
- `name» (string, 可选):表的新名称
- `description» (string, 可选):表的新描述
- create_field
- 在表中创建新字段
- 输入参数:
- `baseId» (string, 必填):Airtable 数据库的 ID
- `tableId» (string, 必填):表的 ID
- `name» (string, 必填):新字段的名称
- `type» (string, 必填):字段的类型
- `description» (string, 可选):字段的描述
- `options» (object, 可选):字段特定的选项
- update_field
- 更新字段的名称或描述
- 输入参数:
- `baseId» (string, 必填):Airtable 数据库的 ID
- `tableId» (string, 必填):表的 ID
- `fieldId» (string, 必填):字段的 ID
- `name» (string, 可选):字段的新名称
- `description» (string, 可选):字段的新描述
资源
服务器提供 Airtable 数据库和表的模式信息:
- 表模式 (
airtable://<baseId>/<tableId>/schema
) - 每个表的 JSON 模式信息
- 包括:
- 数据库 ID 和表 ID
- 表名称和描述
- 主字段 ID
- 字段定义(ID、名称、类型、描述、选项)
- 视图定义(ID、名称、类型)
- 自动从 Airtable 的元数据 API 中获取
贡献指南
欢迎在 GitHub 上提交 Pull Request!开始贡献的步骤如下:
- 安装 Git 和 Node.js
- 克隆仓库
- 使用
npm install
安装依赖
- 运行
npm run test
执行测试
- 使用
npm run build
进行构建
- 你可以使用
npm run build:watch
在编辑src/index.ts
后自动构建。这意味着你可以保存更改,重新加载 Claude Desktop(使用 Ctrl/Cmd+R),更改将立即生效。
发布说明
发布步骤如下:
- 使用
npm version <major | minor | patch>
提升版本号
- 运行
git push --follow-tags
推送带标签的提交
- 等待 GitHub Actions 将包发布到 NPM 注册表。
- Author:waytomcp
- URL:https://www.waytomcp.com/article/domdomegg/airtable-mcp-server
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!