原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。使用 Google 登录即可撰写评价。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Basepilot

作者:Peterwong666版本 0.1.1i★ 1i在你的电脑上运行
注册名称io.github.Peterwong666/basepilot

安装方法

概览

作者提供的说明(英文原文)

面向企业交付的飞书多维表格 MCP Server —— 让 Claude Code / Cursor 安全读写业务台账

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 开发者工具
  • 你需要填写:BASEPILOT_APP_ID, BASEPILOT_APP_SECRET

安装

选择你使用的 AI 应用,然后复制设置。

通过 2/2 项检查 · 在你的电脑上运行

第一步:你用哪个 AI?

选择你用的应用,步骤会显示在下方。

可连接 Claude,但需要先准备

需要 Basepilot 的密钥(在开发者网站注册,可能收费) · 需要先在电脑上安装 Python (uv)(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用

  1. 安装 Python (uv)

    只需一次,所有需要 Python (uv) 的服务器都能用

    打开 Python (uv) 下载页 ↗

  2. 注册并创建 Basepilot 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。可能收费。

    获取密钥的方法见下方开发者的 README

  3. 打开电脑版 Claude 应用的设置文件

    SettingsDeveloperEdit Config

  4. 粘贴这些设置并保存文件

    {
      "mcpServers": {
        "basepilot": {
          "command": "uvx",
          "args": [
            "basepilot"
          ],
          "env": {
            "BASEPILOT_APP_ID": "your-value",
            "BASEPILOT_APP_SECRET": "your-value"
          }
        }
      }
    }

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  5. 退出 Claude 再重新打开

  6. 试一试

    用 Basepilot 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude 说正在使用 Basepilot,或回答中出现 Basepilot 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

ChatGPT 暂时无法连接 Basepilot

Basepilot 需要安装在你的电脑上,而 ChatGPT 只能连接在网上运行的服务器

你可以改用这些方式

A · 使用能连接 Basepilot 的应用

  • 需要 Basepilot 的密钥(在开发者网站注册,可能收费) · 需要先在电脑上安装 Python (uv)(只需一次) · 仅限电脑上的 Claude 应用(Windows 或 Mac),网页和手机不可用
  • 需要 Basepilot 的密钥(在开发者网站注册,可能收费) · 需要先在电脑上安装 Python (uv)(只需一次)
  • 需要 Basepilot 的密钥(在开发者网站注册,可能收费) · 需要先在电脑上安装 Python (uv)(只需一次)
  • 需要 Basepilot 的密钥(在开发者网站注册,可能收费) · 需要先在电脑上安装 Python (uv)(只需一次)

B · 开发者工具 类中能连接 ChatGPT 的其他服务器

从同类中使用较多的里挑选,仅限用地址即可连接、无需密钥的

可连接 Claude Code,但需要先准备

需要 Basepilot 的密钥(在开发者网站注册,可能收费) · 需要先在电脑上安装 Python (uv)(只需一次)

  1. 安装 Python (uv)

    只需一次,所有需要 Python (uv) 的服务器都能用

    打开 Python (uv) 下载页 ↗

  2. 注册并创建 Basepilot 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。可能收费。

    获取密钥的方法见下方开发者的 README

  3. 打开终端

    Mac:按 Command+空格,输入 Terminal · Windows:打开 PowerShell

  4. 粘贴这条命令并按 Enter

    claude mcp add basepilot --env BASEPILOT_APP_ID=your-value --env BASEPILOT_APP_SECRET=your-value -- uvx basepilot

    按 Enter 前,把“your-value”改成你的密钥

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  5. 在 Claude Code 中输入 /mcp

    应能看到 Basepilot 在列表中并显示已连接

  6. 试一试

    用 Basepilot 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Claude Code 说正在使用 Basepilot,或回答中出现 Basepilot 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Anthropic 帮助页面核实 · 你的界面可能因版本略有不同

可连接 Cursor,但需要先准备

需要 Basepilot 的密钥(在开发者网站注册,可能收费) · 需要先在电脑上安装 Python (uv)(只需一次)

  1. 安装 Python (uv)

    只需一次,所有需要 Python (uv) 的服务器都能用

    打开 Python (uv) 下载页 ↗

  2. 注册并创建 Basepilot 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。可能收费。

    获取密钥的方法见下方开发者的 README

  3. 点击这个按钮打开 Cursor

    在 Cursor 中打开

    Cursor 会请你确认安装,点击 Install

  4. 填写你的密钥

    在 Basepilot 的设置中,BASEPILOT_APP_ID, BASEPILOT_APP_SECRET 还是空的,填入你的密钥并保存

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  5. 在 Cursor 中以 Agent 模式打开 AI 聊天

  6. 试一试

    用 Basepilot 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 Cursor 说正在使用 Basepilot,或回答中出现 Basepilot 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 Cursor 帮助页面核实 · 你的界面可能因版本略有不同

可连接 VS Code,但需要先准备

需要 Basepilot 的密钥(在开发者网站注册,可能收费) · 需要先在电脑上安装 Python (uv)(只需一次)

  1. 安装 Python (uv)

    只需一次,所有需要 Python (uv) 的服务器都能用

    打开 Python (uv) 下载页 ↗

  2. 注册并创建 Basepilot 的密钥

    打开开发者网站,注册账户并创建 API 密钥,下一步要用。可能收费。

    获取密钥的方法见下方开发者的 README

  3. 点击这个按钮打开 VS Code

    在 VS Code 中打开

    VS Code 会请你确认安装,点击 Install

  4. 填写你的密钥

    在 Basepilot 的设置中,BASEPILOT_APP_ID, BASEPILOT_APP_SECRET 还是空的,填入你的密钥并保存

    只把密钥粘贴到应用的输入框里,不要粘贴到聊天中或发给任何人

  5. 在 VS Code 中以 Agent 模式打开 AI 聊天

  6. 试一试

    用 Basepilot 告诉我你能帮我做什么,然后做一件给我看

    ✓ 如果 VS Code 说正在使用 Basepilot,或回答中出现 Basepilot 的工具名称,就表示连接成功

菜单名称已于 2026年11月11日 对照 VS Code 帮助页面核实 · 你的界面可能因版本略有不同

其他支持 MCP 的应用(如 Windsurf、Zed、Gemini CLI)添加方式各不相同,请在应用列表中查看

查看所有支持 MCP 的应用 →

JSON 设置在下方“开发者专用”中

卡住了?问问正在用 Basepilot 的人💬 讨论 →
开发者专用:终端命令和 JSON 设置

安装在电脑上

Claude Code

claude mcp add basepilot --env BASEPILOT_APP_ID=your-value --env BASEPILOT_APP_SECRET=your-value -- uvx basepilot

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "basepilot": {
      "command": "uvx",
      "args": [
        "basepilot"
      ],
      "env": {
        "BASEPILOT_APP_ID": "your-value",
        "BASEPILOT_APP_SECRET": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "basepilot": {
      "command": "uvx",
      "args": [
        "basepilot"
      ],
      "env": {
        "BASEPILOT_APP_ID": "your-value",
        "BASEPILOT_APP_SECRET": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "basepilot": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "basepilot"
      ],
      "env": {
        "BASEPILOT_APP_ID": "your-value",
        "BASEPILOT_APP_SECRET": "your-value"
      }
    }
  }
}

需要你填写的值

  • BASEPILOT_APP_ID 必填 env
    飞书开放平台企业自建应用的 App ID(cli_ 开头)
  • BASEPILOT_APP_SECRET 机密 必填 env
    飞书开放平台企业自建应用的 App Secret

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

一览

每周下载量i
26/周
许可证i
未注明许可证
连接方式
在你的电脑上运行
最新版本i
0.1.1
发布到注册中心i
2026年10月20日
代码最后更新i
2026年10月20日
作者
Peterwong666
软件包
pypi: basepilot
注册状态
活跃

哪些应用可以使用它

依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。

在你的电脑上运行,适用于

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

全部应用及其优缺点 →

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月11日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 Peterwong666 验证,该账户拥有此仓库

  • ✓ 通过

    仍在维护

    代码最后更新于22天前

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

讨论

提问、分享技巧或报告无法使用。按“有帮助”数量排序。

还没有帖子,欢迎第一个提问或分享。

此处内容由用户撰写,不代表 PopNx 团队。

使用 Google 登录后发帖

用户评价

还没有评价

用 Google 登录后写评价

与“开发者工具”中的其他服务器比较i

  • 星标数多于此分类中其他 5747 个服务器的 69%
  • 发布到注册中心的时间比此分类中其他 5747 个服务器的 57% 更新
  • 基础检查结果等于或优于此分类中其他 5747 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Basepilot 安全吗?

它在 2 项适用的基础检查中通过了 2 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:BASEPILOT_APP_ID, BASEPILOT_APP_SECRET

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于22天前,最新版本(0.1.1)于22天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。

有什么可以替代它?

同一分类中有:REA, Netdata, Front-End Checklist

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

REA

Reverse engineer anything from your terminal or agent with one CLI and MCP server.

作者:morluto广泛使用↓ 38.9万/周★ 44.8万17天前更新

在你的电脑上运行

Netdata

Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.

作者:netdata广泛使用★ 8.1万6天前更新

在云端运行

Front-End Checklist

Review frontend code and live pages against 386 quality-gated web development rules.

作者:thedaviddias广泛使用★ 7.5万37天前更新

在云端运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

BasePilot

面向企业交付的飞书多维表格 MCP Server —— 用 MCP 工具把多维表格变成

Claude Code / Cursor 可安全读写的业务台账。

[English](#english-readme) · 简体中文


这是什么

中小企业已经在用飞书多维表格承载业务台账(库存、广告、差评跟进), 数据靠人工从 Seller Central / 广告后台导 CSV 再粘贴进去,每天 1-2 小时。 公司想上 AI,但第一件事就卡住了:

卡点飞书返回根因
AI 给人员字段传了字符串1254066 UserFieldConvFail必须是 [{"id": "ou_xxx"}] 数组对象
AI 给日期字段传了秒级时间戳1254064 DatetimeFieldConvFail必须是 13 位毫秒,差 1000 倍
AI 给单选字段传了数组1254062 SingleSelectFieldConvFail必须是字符串,不是数组
AI 写得稍快一点1254291 Write conflict同一数据表不支持并发写,官方建议加 0.5-1秒延迟

这不是技术选型问题,是没有人把多维表格的真实约束包一层。 业务等不了,AI 落地就停在这里 —— 这是很多「客户买过 AI 工具但没用起来」的真实原因。

BasePilot 就是那一层。


看图说话(全部为真实运行输出,非手绘)

1. 入口宽容,出口严格—— 适配层把 LLM 的错误输入吃掉

scripts/demo_coerce.py 把LLM 最常犯的四种错误喂给适配层,看它们被自动纠正:

2. 业务诊断:15 个环节逐条打分,明确劝退 2 个

四象限分布(7 个不需要 AI,4 个 AI 主导,2 个明确劝退):

3. 评测:9 项指标全部实算,无一手写
4. 离线全量门禁:lint + 类型 + 测试 + 评测 + 文档校验
5. cassette 重放:真实租户交互在 CI 可复现(已脱敏)
6. 交付文档链:五份「报告即代码」自动生成

排障 SOP由 errors.py 自动生成,与代码零漂移:

全部截图由 scripts/make_screenshots.py 执行真实命令后渲染,不存在手绘图。

脚本内置「解释器污染」防护 —— 用错Python 环境会导致场景包静默降级,

生成数字错误的图,已加断言阻止出图。


架构

┌─ MCP 工具层 ──────────────────────────────────────────────┐

│ describe_table · create/update/delete · search │ │ batch_upsert · dry_run_create · diagnose_scenarios │ └────────────────────────┬───────────────────────────────────┘ │ ┌─ 引擎五层 ────────────────────────────────────────────────┐ │ serialization.py per-table 锁 + 0.5s 节流 │ │ client.py 串联调用链 · upsert_records │ │ coerce.py 13 类编码器 + normalize_key 解码 │ │ ratelimit.py 分桶限流(write/search/list 独立)│ │ auth.py token 缓存 + asyncio 单飞 │ └────────────────────────┬───────────────────────────────────┘ │ ┌─ 横切三线 ────────────────────────────────────────────────┐ │ config.py飞书约束常量(每个数值标注官方出处) │ │ errors.py 34 条错误码 → 客户现场动作 │ │ cassette.py 录制/重放 + 凭证与租户标识符脱敏 │ └────────────────────────┬───────────────────────────────────┘ │ https://open.feishu.cn/open-apis

分层原则:不是把 API 包装成工具,而是把飞书的真实约束收敛到三层里。 工具层只表达业务意图(batch_upsert),约束由引擎层统一兜住 —— 否则同一条记录走不同入口会得到不同结果(见 ADR-004)。


三个适配层(核心)

不是把 API 包装成工具,而是治理飞书的真实约束。

1. 鉴权层 —— token 缓存 ✅

tenant_access_token 有效期 7200 秒。官方明确:剩余有效期小于 30 分钟时返回新 token, 大于等于 30 分钟时返回原 token。所以刷新窗口必须落在 [0, 30min] 区间内, 否则会拿到同一个 token,白白消耗配额。

实现:进程内缓存 + asyncio.Lock 单飞(并发下只换一次,其余复用)。

实测指标:100 次业务请求 → 向飞书换 token 1 次。 (tests/test_auth.py::test_100_requests_fetch_token_once,可复现)

2. 并发层 —— 单表写串行 ✅

官方错误码 1254291 的排查建议原文:「在接口与接口之间增加 0.5 或 1 秒的延迟」; 1254607 补充说明底层「基于版本维度的串行方式,不支持并发」。

实现:per-`table_id` 的锁(不是全局锁 —— 不同数据表之间仍可并行)+ 0.5s 请求节流, 主动规避 1254291 而不是撞上再重试。

实测指标:200 次压测下,单表最大并发写 = 1,`1254291` 计数 = 0。 (tests/test_client.py::test_same_table_writes_are_serialized,可复现)

3. 类型层 —— 字段编码适配 ✅

按 13 类字段自动编码为官方要求格式,并对不可写字段 fail-fast。 另有 normalize_key() 解码:API 读回的文本字段是富文本数组、URL 是对象, upsert 唯一键提取必须归一化,否则「已存在」判为「不存在」导致重复创建 (详见 docs/adr/006-read-write-schema-asymmetry.md)。

type字段正确格式常见错误
3SingleSelectstr❌ 传数组
4MultiSelectlist[str]
5DateTime13 位毫秒❌ 传秒级
7Checkboxbool❌ 传 "true"
11User[{"id": "ou_xxx"}]❌ 传字符串
15Url{"link": "...", "text": "..."}❌ 只传字符串
17Attachment[{"file_token": "..."}]❌ 传本地路径
18/21关联字段list[str](record_id)
19/20/1001-1005/3001公式/查找引用/创建时间等拒绝写入❌ 尝试写系统字段

设计原则:入口宽容,出口严格 —— 允许 LLM 传 ISO 日期、秒级时间戳、单元素数组, 适配层内部统一转成官方格式。LLM 出错的空间由适配层吃掉,而不是把 1254064 抛给客户。

实测指标:19 条黄金用例,字段编码正确率 100%,不可写拦截率 100%。 (eval/runner.py 实算,make eval 可复现)


MCP 工具(8 个)

工具作用
describe_table读表结构与字段类型
create_records / update_records / delete_records增 / 改 / 删(删除默认 dry-run)
search_records按条件检索
batch_upsert按唯一键幂等 upsert(自动拆 create/update)
dry_run_create预演:跑完整编码链路但零真实写请求
diagnose_scenarios业务诊断:判断哪些环节值得上 AI

接入 Claude Code(免克隆,经 uvx 直接从 PyPI 运行):

{

"mcpServers": { "basepilot": { "command": "uvx", "args": ["basepilot", "serve"], "env": { "BASEPILOT_APP_ID": "cli_xxx", "BASEPILOT_APP_SECRET": "xxx", "BASEPILOT_APP_TOKEN": "bascnxxx", "BASEPILOT_TABLE_INVENTORY": "tblxxx" } } } }


远程模式(HTTP / SSE)

默认 serve 走 stdio,供 Claude Code / Cursor 本地接入 —— 凭证留在本机环境变量, 这是推荐用法。需要把 Server 部署到服务器、供多人或多客户端远程接入时, 用 HTTP 传输(FastMCP 4.x,streamable-http):

basepilot-mcp serve --transport http --host 127.0.0.1 --port 8000

客户端接入 http://127.0.0.1:8000/mcp/

basepilot-mcp serve --transport sse --port 8000 # 旧版 SSE 协议,挂载 /sse/ basepilot-mcp serve --transport http --path /custom # 自定义挂载路径

  • --host 默认 127.0.0.1(仅本机);--port 默认 8000;--path 默认用 FastMCP 内置路径。
  • 鉴权注意:MCP 层没有内置鉴权 —— 能连上端口就能调用全部写工具, 等同于你的飞书 app 权限。不要把端口直接绑 `0.0.0.0` 暴露公网: 请放内网,或在前面加带鉴权的反向代理(nginx / Caddy + Bearer Token / mTLS)。
  • 飞书凭证只存在服务端环境变量(BASEPILOT_APP_ID / BASEPILOT_APP_SECRET), 不经过客户端与网络传输。

当前进度

全部模块已完成,已在真实飞书租户跑通全链路。 每个指标都由代码实算 (make eval),未实测的不会写成已达成 —— 这是本项目的铁律。 make verify 离线全绿(309 tests,含门禁脚本自身 3 个测试);make live-smoke 连真实飞书跑通 鉴权→建表→写入→读回→清理;跨境三表 batch_upsert 幂等(第一次全新增, 第二次全更新无重复)。

模块状态
飞书约束常量(config.py)✅ 已完成,每个数值标注官方出处
token 缓存(auth.py)✅ 已完成,100 请求换 1 次 token 已实测断言
错误码处置(errors.py)✅ 已完成,34 条规则,含客户现场指引
接口分桶限流(ratelimit.py)✅ 已完成
字段编码适配(coerce.py)✅ 已完成,13 类编码器 + normalize_key 解码
客户端与并发控制(client.py / serialization.py)✅ 已完成,200 压测单表并发=1
MCP 工具层(8 个工具)✅ 已完成(FastMCP,stdio / HTTP / SSE 可跑)
业务诊断打分器(diagnosis.py)✅ 已完成,15 场景四象限
cassette 录制/重放(cassette.py)✅ 已完成,真实交互 CI 可重放
跨境三表场景包(src/basepilot/scenarios/cross_border/__init__.py)✅ 已完成,真实租户幂等验证
交付文档(playbook/training/troubleshooting/weekly_ops)✅ 已完成,排障 SOP 由代码生成

判断进度的方式:uvx basepilot doctor(如实列出已实现项)。


快速开始

第 1 步:凭证从哪来
  1. 登录 飞书开放平台 →「创建企业自建应用」, 拿到 App ID(cli_ 开头)与 App Secret (官方指引)。
  2. 在应用后台「权限管理」开通多维表格权限(bitable:app),然后创建版本并发布。
  3. 把凭证配进环境变量,跑凭证引导向导 —— 它会真实调飞书 OpenAPI 验证凭证连通性、验证你的 app_token / table_id 可达, 最后输出可直接粘贴的 mcpServers 配置(uvx 与本地开发两份):
export BASEPILOT_APP_ID=cli_xxx

export BASEPILOT_APP_SECRET=xxx basepilot-mcp init # 三步引导:验证凭证 → 验证数据表 → 输出 mcpServers JSON

非交互环境(CI / 管道)里向导不会干等输入:检测到非 TTY 会打印 完整的环境变量配置指引后以退出码 2 退出。

第 2 步:跑起来
git clone https://github.com/Peterwong666/basepilot.git

cd basepilot uv sync # 或 make setup

cp .env.example .env # 填入你的飞书应用凭证(或直接沿用上面的 export)

make verify # 离线全量校验:lint + 类型 + 测试 + 评测 + 文档校验 make eval # 实算评测指标(并发峰值/重试成功率/dry-run 一致率) make live-smoke APP= TBL= # 连真实飞书跑全链路 python scripts/seed_cross_border.py # 跨境三表灌数(幂等,可重复) make adoption APP= TBL=<表ID> KEY=<唯一键> # 上线后促活三指标,出周报

所有脚本都用项目自己的 venv 解释器。**用系统 Python 可能缺少 PyYAML 导致

场景包静默降级为fallback(4 条内置场景),跑出的数字是错的** ——

scripts/diagnose.py 等已通过 make verify 的门禁检查,但请优先用 make / uv run。


安全设计

  • 删除护栏:delete_records 默认 dry_run=true,须显式 confirm=true 才真删 —— 防 LLM 幻觉批量删库。
  • 不可写字段拦截:公式 / 查找引用 / 创建时间 / 自动编号等 13 类系统字段 fail-fast 拒绝写入, 不允许静默写坏数据。
  • 凭证隔离:.env 已 gitignore;cassette 里app_id / app_token / table_id / record_id 全部替换为占位符(cassette.redact_identifiers)—— 这些不是密钥,但会暴露租户身份。
  • 发布前门禁:tests/test_no_secrets_in_repo.py 在 CI 里扫描仓库, 检出真实租户标识符 / 泄露的 .env / 本机绝对路径即失败;失败信息只报位置不回显值。

非目标(Non-goals)

主动划边界比假装覆盖更可信。 本项目不做:

  • ❌ 删除整个多维表格(Base)—— 不可逆,风险远高于收益
  • ❌ 授予/变更权限 —— 应由表owner 在界面完成
  • ❌ OAuth 授权流程 —— 定位是企业内部工具 + 开源交付包
  • ❌ 直接发送飞书消息 —— 外部可见副作用应由上层决策
  • ❌ 事件订阅(长连接)—— 需公网与连接数管理,且不解决当前核心痛点

与官方 lark-mcp 的关系

官方 @larksuiteoapi/lark-mcp 把飞书 API 直出为 MCP 工具,覆盖度更广(40+ 工具)。 本项目不做覆盖度竞争,做交付可靠性:

能力官方 lark-mcpBasePilot
单表写串行 + 节流✗✓
字段类型预检(dry-run)✗✓
不可写字段拦截✗✓
错误码分类处置 + 现场指引✗✓
幂等键重生成部分✓
离线录制回放测试✗✓
业务语义工具(CSV 同步 / 风险标注 / 差评闭环)✗✓
客户交付手册 + 排障 SOP✗✓

详见 docs/adr/005-why-not-wrap-official-lark-mcp.md。


FDE 交付方法论五连(报告即代码)

报告即代码:数字从 diagnosis.py/cassette/eval 实算,改源数据重跑自动更新,测试锁结构。 入口从`docs/delivery/delivery_handbook.md` 进 —— 它串起五份并标注每份的数字口径。

文档回答生成脚本
docs/delivery/discovery_report.md先做哪个(五维诊断 + 四象限 + 劝退)scripts/gen_discovery_report.py
docs/delivery/solution_blueprint.md怎么做(top3 环节展开成可签字方案)scripts/gen_solution_blueprint.py
docs/delivery/case_backtest.md凭什么信你(真实证据回测当初预测)scripts/gen_case_backtest.py
docs/delivery/expansion_matrix.md能复制到哪(15 场景归纳 4 种能力模式)scripts/gen_expansion_matrix.py
docs/delivery/rollout_calendar.md按什么节奏铺(4 波次先稳后难推广日历)scripts/gen_rollout_calendar.py

文档

文档内容
`docs/PROJECT_RETROSPECTIVE.md`项目复盘:主要节点(问题→分析→解决)+ 结构分析,全面了解项目从这里入手
docs/delivery/delivery_playbook.md客户现场 5 步交付手册
docs/delivery/delivery_handbook.md交付手册合集页(五份方法论的入口与数字口径表)
docs/delivery/troubleshooting.md错误码 → 现场动作排障 SOP(由 `errors.py` 自动生成)
docs/delivery/client_training.md客户培训手册(给业务方的一页纸)
docs/delivery/weekly_ops.md上线后 8 周运营手册(make adoption 出促活周报)
docs/limitations.md已知限制与 badcase(含真实失败模式)
docs/adr/架构决策记录(含 006「读结构≠写结构」—— cassette 实证)
tests/cassettes/真实租户交互录制(脱敏),CI 可重放

开发

make verify    # 一条命令跑全部门禁(lint + mypy strict + pytest + eval + docs-check)

make docs # 重新生成全部交付文档

技术栈:Python 3.11+ · httpx(裸客户端,不依赖官方 SDK)· FastMCP(工具层)· PyYAML(场景包)· pytest + respx(离线回放)· ruff + mypy strict。


License

MIT


English

BasePilot is a Feishu (Lark) Base MCP Server for enterprise delivery — it turns multi-dimensional tables (Base) into business ledgers that Claude Code / Cursor can safely read and write.

Why

Companies already keep inventory / ads / review tracking in Feishu Base. The moment they want AI involved, they hit these wallss:

BlockerFeishu errorRoot cause
AI passes a string to a user field1254066must be [{"id": "ou_xxx"}]
AI passes a second-level timestamp1254064must be 13-digit ms

| AI passes an array to a single-select | `125

只显示了开头部分;其余内容请在仓库中阅读