Airtable数据库服务

一个提供对Airtable数据库读写访问的模型上下文协议服务器,使LLM能够检查数据库模式并读写记录。

  • by domdomegg
  • TypeScript
  • 本地部署
  • 456 星标
  • 更新于
在 GitHub 查看 domdomegg/airtable-mcp-server

使用说明

无线mcp服务器

一个模型上下文协议服务器,提供对Airtable数据库的读写访问。此服务器使LLM能够检查数据库模式,然后读取和写入记录。

https://github.com/user-attachments/assets/c8285e76-d0ed-4018-94c7-20535db6c944

安装

按照以下说明操作 安装mcp,它为您的MCP客户端生成正确的配置(Claude Code、Claude Desktop、Cursor、Cline、VS Code等)。

您需要一个Airtable个人访问令牌-- 在此处创建一个 带示波器 schema.bases:read 和 data.records:read (以及可选 schema.bases:write, data.records:write, data.recordComments:read, data.recordComments:write),并访问您要使用的基地。它看起来有点像 pat123.abc123 (但时间更长)。设置为 AIRTABLE_API_KEY (替换生成的配置中的占位符)。

组件

工具

  • list_records

    • 列出指定Airtable表中的记录
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):要查询的表的ID
      • maxRecords (number,可选):要返回的最大记录数。默认值为100。
      • filterByFormula (字符串,可选):用于过滤记录的Airtable公式
  • 搜索记录

    • 搜索包含特定文本的记录
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):要查询的表的ID
      • searchTerm (字符串,必填):要在记录中搜索的文本
      • fieldIds (数组,可选):要搜索的特定字段ID。如果没有提供,则搜索所有基于文本的字段。
      • maxRecords (number,可选):要返回的最大记录数。默认值为100。
  • 列表基

    • 列出所有可访问的Airtable基地
    • 无需输入参数
    • 返回基本ID、名称和权限级别
  • list_tables

    • 列出特定库中的所有表
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • detailLevel (string,可选):要获取的有关表格的详细信息量(tableIdentifiersOnly, identifiersOnly,或 full)
    • 返回表ID、名称、描述、字段和视图(到给定的 detailLevel)
  • describe_table

    • 获取特定表的详细信息
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):要描述的表的ID
      • detailLevel (string,可选):要获取的关于表格的详细信息量(tableIdentifiersOnly, identifiersOnly,或 full)
    • 返回与list_tables相同的格式,但针对单个表
    • 有助于获取特定表的详细信息,而无需获取基中所有表的信息
  • 获取记录

    • 按ID获取特定记录
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):表的ID
      • recordId (string,必填):要检索的记录的ID
  • create_record

    • 在表中创建新记录
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):表的ID
      • fields (object,必填):新记录的字段和值
  • update_records

    • 更新表中的一个或多个记录
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):表的ID
      • records (array,必填):包含记录ID和要更新的字段的对象数组
  • 删除记录

    • 从表中删除一条或多条记录
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):表的ID
      • recordIds (array,必填):要删除的记录ID数组
  • create_table

    • 在基中创建新表
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • name (string,必填):新表的名称
      • description (字符串,可选):表的描述
      • fields (array,必填):字段定义数组(名称、类型、描述、选项)
  • update_table

    • 更新表的名称或描述
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):表的ID
      • name (字符串,可选):表的新名称
      • description (字符串,可选):表的新描述
  • create_field

    • 在表中创建新字段
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):表的ID
      • name (string,必填):新字段的名称
      • type (string,必填):字段类型
      • description (字符串,可选):字段描述
      • options (对象,可选):特定于字段的选项
  • update_field

    • 更新字段的名称或描述
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):表的ID
      • fieldId (string,必填):字段的ID
      • name (字符串,可选):字段的新名称
      • description (字符串,可选):字段的新描述
  • 创建注释

    • 在记录上创建注释
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):表的ID
      • recordId (string,必填):记录的ID
      • text (string,必填):评论文本
      • parentCommentId (字符串,可选):线程回复的父注释ID
    • 返回创建的注释,包括ID、作者、创建时间和文本
  • list_注释

    • 列出对记录的评论
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • tableId (string,必填):表的ID
      • recordId (string,必填):记录的ID
      • pageSize (number,可选):要返回的评论数(最大100,默认100)
      • offset (字符串,可选):用于检索其他注释的分页偏移量
    • 返回包含作者、文本、时间戳、反应和提及的注释数组
    • 评论从最新到最旧返回

HTTP传输

服务器还可以在HTTP模式下运行,以便与远程MCP客户端一起使用:

MCP_TRANSPORT=http PORT=3000 npx airtable-mcp-server

这将在以下位置启动无状态HTTP服务器 http://localhost:3000/mcp.

[!警告] HTTP传输没有内置身份验证,并且绑定到 本地主机或专用网络 不 安全边界 浏览器:恶意网站可以使用 DNS重新绑定 使访问者的浏览器向发送请求 http://localhost:3000/mcp 并调用工具,包括读取、写入和删除记录-- 使用此服务器的Airtable令牌。

仅在不受信任的调用者(包括 同一台机器或网络)无法连接 /mcp 无需认证。 在实践中,这意味着将其置于反向代理或网关之后 这需要一个浏览器不会跨源附加的凭据,例如 作为一个 Authorization 头球

如果您只想在同一台服务器上使用MCP客户端 机器,改用默认的stdio传输——它不会打开 港口。

贡献

GitHub上欢迎拉取请求!开始:

  1. 安装Git和Node.js
  2. 克隆存储库
  3. 安装依赖项 npm install
  4. 跑 npm run test 运行测试
  5. 建立 npm run build
  • 你可以使用 npm run build:watch 编辑后自动构建 src/index.ts。这意味着您可以点击保存,重新加载Claude Desktop(使用Ctrl/Cmd+R),然后应用更改。

发布

版本遵循 语义版本规范.

要发布:

  1. 使用 npm version <major | minor | patch> 升级版本
  2. 跑 git push --follow-tags 使用标签推送
  3. 等待GitHub Actions发布到NPM注册表。