Airtable数据库访问服务

一个提供Airtable数据库读写访问的Model Context Protocol服务器,支持LLM检查数据库模式并读写记录。

  • by AM1010101
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 am1010101/airtable-mcp-sse

使用说明

无线mcp服务器

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

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

用法

  1. 启动服务器:

    npm start
    

    服务器将在端口8080上启动。

  2. 配置您的客户端: 要将此服务器与Claude Desktop应用程序等客户端一起使用,请将以下配置添加到客户端配置文件的“mcpServers”部分。API密钥应在 Authorization 标头作为Bearer令牌。

    {
      "mcpServers": {
        "airtable": {
          "url": "http://localhost:8080/sse",
          "headers": {
            "Authorization": "Bearer pat123.abc123"
          }
        }
      }
    }
    

    替换 pat123.abc123 与你的 Airtable 个人访问令牌。您的令牌至少应该有 schema.bases:read 和 data.records:read,以及可选的相应写入权限。

组件

工具

  • 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、名称和权限级别
  • describe_base

    • 获取特定基的完整架构,包括其所有表
    • 输入参数:
      • baseId (string,必填):Airtable基座的ID
      • detailLevel (string,可选):要获取的有关表格的详细信息量(tableIdentifiersOnly, identifiersOnly,或 full)
    • 将基础信息及其所有表及其模式的列表返回到指定的详细级别。
  • describe_all_bases

    • 获取所有可访问基及其表的完整架构
    • 输入参数:
      • detailLevel (string,可选):要获取的有关表格的详细信息量(tableIdentifiersOnly, identifiersOnly,或 full)
    • 返回所有基的列表,每个基都有其指定详细级别的所有表及其模式的列表。
  • 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 (字符串,可选):字段的新描述

资源

服务器为Airtable库和表提供架构信息:

  • 持微软签名的表模式 (airtable://<baseId>/<tableId>/schema)
    • 每个表的JSON模式信息
    • 包括:
      • 基id和表id
      • 表名称和说明
      • 主字段ID
      • 字段定义(ID、名称、类型、描述、选项)
      • 视图定义(ID、名称、类型)
    • 从Airtable的元数据API中自动发现

使用Docker托管

要使用Docker托管此服务器,请执行以下步骤:

  1. 构建Docker镜像:

    docker build -t airtable-mcp-server .
    
  2. 运行Docker容器:

    docker run -p 8080:8080 airtable-mcp-server
    

    这将启动服务器,并将端口8080从容器映射到主机上的端口8080。然后,您可以访问服务器 http://localhost:8080.

    对于生产使用,您应该在提供HTTPS的反向代理后面运行此程序。

贡献

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注册表。