mcpField
K
kibi-mcp

kibi-mcp

本地服务
github.com/Looted开发工具11今天更新

关于 kibi-mcp

Kibi 是面向编码 Agent 的需求编译器与约束层,可将产品意图转为结构化需求、场景、测试和代码关联。它通过检查与证据追踪,帮助团队发现意图和实现之间的偏差。

主要功能

  1. 01将意图编译为结构化需求
  2. 02关联需求、场景、测试与代码
  3. 03用 Prolog 规则验证语义
  4. 04追踪需求的验证证据
  5. 05按 Git 分支保存知识快照
  6. 06生成覆盖率与证据报告

适用场景

  1. 01根据产品资料初始化项目知识库
  2. 02依据关联需求检查变更代码
  3. 03审查测试证据与尚未覆盖的需求

MCP 相关

项目本地的 kibi-mcp 服务向编码 Agent 提供 Kibi 工具,包括需求搜索和检查。没有 MCP 的 Agent 可使用 CLI 的 JSON 路由。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"looted-kibi": {
"command": "npx",
"args": [
"-y",
"kibi-mcp"
]
}
}
}
启动命令npx -y kibi-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmkibi-mcp3.21.0

工具

16

收录的工具列表 · 更新于 1 天前

参数类型必填说明
idstring否可选的精确实体 ID。示例:'REQ-cli-gc'。如果省略,则按其他筛选条件返回匹配的实体。
argsarray否当谓词没有架构时使用的位置参数值;null 匹配任意值。示例:['admin', null, null, 'allow']。建议使用 where。
tagsarray否可选的标签筛选条件。匹配包含任一所提供标签的实体。示例:['security','billing']。
typeany否可选的实体类型筛选条件。允许值:req、scenario、test、adr、flag、event、symbol、fact。示例:'req'。
limitnumber否筛选后返回的最大行数(可选)。省略时默认为:100。示例:25。
scopeany否可选:'current_requirements' 仅保留当前(未被取代或废弃)要求所要求的事实。
whereobject否谓词的命名参数值,不限顺序,使用谓词架构中的参数名称。示例:{actor: 'admin', decision: 'allow'}。名称未知时会返回包含已声明名称的警告;无匹配时会返回实际存在的值。
offsetnumber否可选的从零开始的分页偏移量。默认值:0。示例:50 表示跳过前 50 行。
distinctstring否可选参数名称,用于统计匹配的谓词事实中该参数的不同值数量。例如,谓词为 'has_role' 且 where 为 {user: 'alice'} 时,设置 distinct: 'role' 可回答 alice 拥有多少种角色。
factKindany否类型化事实筛选条件:列出一种事实及其类型化字段。'predicate_schema' 返回可查询谓词的目录(参数名称、常量、事实数量)。示例:'predicate_schema'。
polarityany否谓词事实的可选极性筛选条件。默认值:both。
namespacestring否同名谓词存在于多个命名空间时,可选的谓词命名空间。默认值:任意命名空间。
predicatestring否类型化事实筛选条件:要查询的谓词名称,例如 'has_role' 或 'permission_rule'。与 where 配合使用可指定命名参数。返回该谓词的所有已存储事实及其参数、极性和允许/拒绝效果。
sourceFilestring否可选的源文件子字符串筛选条件。示例:'src/auth/login.ts'。使用 KB 源关联信息,不扫描文件系统。
subjectKeystring否类型化事实筛选器:点分隔的主题键,用于列出其属性事实,例如 'user.role_assignment'。与 propertyKey 结合可指定单个属性。
includeBodyboolean否仅提供 id 时:还返回实体编写的 Markdown 正文(其 front matter 之后的文本),格式为 body {id, path, text},以便修正其中过时的陈述;kb_upsert document.body 会替换该正文。默认值:false。
propertyKeystring否subjectKey 下的可选属性键,例如 'max_roles'。返回每条事实的运算符、值和单位。
workspaceRootstring否当此调用所针对的工作区与服务器启动时所在的工作区不同时,填写其绝对路径,例如你正在使用的 git worktree。如果该工作区是同一仓库的 worktree,或位于客户端的 MCP 根目录下,服务器会从该工作区的知识库响应;否则会从自身工作区响应,并添加 workspace_mismatch 诊断信息。适用时,主机钩子会自动填写此项。

详细介绍

Kibi 标志

状态:Beta CI 覆盖率 Kibi 需求健康度 许可证:AGPL-3.0-or-later Glama MCP 服务 X @kibi_dev

提示意图,Kibi 让 Agent 记住它,并证明实现符合要求。

动态终端演示:Kibi 拒绝与需求矛盾的内容,标记不可能的场景、未经证明的需求和未追踪的代码,回答知识库搜索,并在编辑前提醒 Agent 注意需求

根据 Kibi 在各个案例中的报告简化而来。

Kibi 是一个原生适用于 Agent 的需求编译器和强制执行层。你用自然语言描述产品意图;Agent 会创建并维护结构化需求、场景、测试、语义事实和代码链接。随后,Kibi 会检查实现是否始终与该意图保持一致。

与被动记忆或检索系统不同,Kibi 旨在融入 Agent 的工作流。Agent 无须记得去查阅工单、看板或需求文件夹:Kibi 的钩子、工具和验证关卡会持续将相关产品上下文带回工作中。

文档 · 快速入门 · Kibi 自身的健康报告

为什么选择 Kibi

大多数项目知识散落在提示词、工单、代码和对话中,而大多数 AI Agent 最终都会遗忘其中一部分。Kibi 将这些知识转化为可强制执行、与分支相关联的模型:

  • 人类维护意图,而非产物 — 提示词是主要的编写界面。Agent 负责创建和演进需求、场景、测试、事实和符号链接等常规工作;人类负责解决真正的歧义并做出产品决策。
  • 记忆可强制执行 — 符号需要归属需求,需求需要完整语义和场景,场景需要测试,而提供证明的测试需要最新的执行证据。
  • Prolog 可防止偏离 — 类型化属性、谓词和安全规则可通过确定性检查,在矛盾、无依据的臆造和语义不完整被采纳为项目知识之前将其揭示出来。
  • 端到端行为可追溯 — Kibi 记录端到端测试证明了什么,而不仅仅是它碰巧执行了哪些代码行。你可以从符号导航到其需求,也可以从测试导航到它验证的场景和意图。
  • 意图在分支切换后依然保留 — 每个 Git 分支都有自己的 KB 快照,因此功能上下文彼此隔离,并会在你返回时保留。
  • 支持多种语言 — 内置 TypeScript 和 JavaScript 符号支持。可选的 kibi-plugin-treesitter 使用固定版本的 WASM 语法,为 Python、Go、Rust、Java、C#、PHP、C、C++、Bash、Ruby 和 Terraform/HCL 添加离线符号提取功能。
  • 可选的 UI 设计守护工具(实验性) — kibi-plugin-ui 让 React 和 Angular 组件遵循约定的设计模式。像素、颜色和间距仍由你的代码检查工具负责。
  • 让知识留在本地 — KB 状态保存在仓库的 .kb/ 目录中;Kibi 软件包不会发送外部遥测数据或分析数据。只有文档网站会统计访问量,使用的是无 Cookie 的 Umami 分析服务。

快速开始

Kibi 旨在由你的编码 Agent 设置和驱动,因此推荐的安装方式是使用提示词,而不是一串命令。Kibi 需要 Node.js 22+。SWI-Prolog 已随附:在 Linux(x64 或 arm64,glibc 2.28+)和 macOS(Apple silicon 或 Intel)上,无需安装其他内容。在其他平台(例如 Alpine/musl 或原生 Windows;请使用 WSL)上,请安装 SWI-Prolog 9.0+,并将 swipl 加入 PATH(详情)。

推荐:让你的 Agent 代为设置。 将以下内容粘贴到 Claude Code、Cursor、Codex、OpenCode,或任何能在你的代码仓库中运行命令的编码 Agent 中:

Set up Kibi (https://github.com/Looted/kibi) in this repository, then bootstrap its knowledge base.

1. Install: confirm Node.js 22+ is available. With the package manager this repository already uses, add kibi-core, kibi-cli and kibi-mcp as dev dependencies. Do not skip optional dependencies; the bundled SWI-Prolog runtime is one.
2. Initialize: run every `kibi` command through the package manager's local runner (npm: `npm exec -- kibi <command>`). Run `kibi init`; if it reports a problem, run `kibi doctor` and fix what it names. If this platform has no bundled SWI-Prolog, tell me what to install and stop.
3. Connect: register the project-local `kibi-mcp` server for the agent host you are running in, following https://looted.github.io/kibi/guide/connect-an-agent.html. Prefer project-scoped configuration, and ask me before installing a plugin or changing global settings. Until the kb_* tools are visible to you, use Kibi's CLI JSON routes instead.
4. Bootstrap: run `kibi skills load kibi-bootstrap --format markdown` and follow that skill exactly. It starts by asking me where product intent lives outside the code (issue trackers, wikis, specs) and which sources to trust; read them through the connectors you have and cite them. Show me the complete plan and its hash, and write nothing until I approve it.
5. Verify: run `kibi check` and `kibi status`, fix anything they report, and summarize what was added. Do not commit; I will review the changes.

接下来会发生:

  1. 设置。 Agent 安装软件包、运行 kibi init,并将自身连接到 Kibi。
  2. 访谈。 它会询问产品意图目前存放在哪里(例如 Jira 或 YouTrack 等问题跟踪系统、维基、规格文档),以及应信任哪些来源。
  3. 制定计划。 它通过现有连接器读取这些来源并起草初始化计划。计划中的每项需求都会注明其来源工单或页面。它发现的未决问题和来源间的冲突会标记出来供你处理,而不会将其转化为需求。
  4. 由你审批。 它会向你展示计划及其哈希值。你批准前,不会写入任何内容。
  5. 应用并检查。 它应用计划、验证结果,然后补充计划无法写入的内容,例如根据验收标准生成的场景,以及新需求对应的机器可检查事实。它会告知你新增了哪些内容。

之后就可以照常工作:提出功能、修复和重构需求,Agent 会让需求、场景、测试和代码链接与代码保持同步。

手动安装

在你的代码仓库中:

npm install --save-dev kibi-core kibi-cli kibi-mcp
npm exec -- kibi init

kibi init 会创建 .kb/ 目录结构,并安装用于保持同步的 Git 钩子。它绝不会覆盖自己未创建的钩子,也不会推断产品知识。连接你的编码 Agent,然后向它提出:

为此代码仓库初始化 Kibi。

pnpm、Yarn 和 Bun 通过各自的本地运行器也能以相同方式使用。安装指南介绍了这些工具对应的命令、Kibi 如何查找 SWI-Prolog,以及包管理器相关注意事项。运行 npm exec -- kibi doctor 可检查一切是否就绪。

升级。 更新 Kibi 软件包后,运行 kibi migrate(或让你的 Agent 代为运行)。它会显示将要发生的更改,并且只有在你批准后才会应用;CLI 参考介绍了每个架构版本。

连接你的编码 Agent

上方的设置提示词已为你完成此步骤。若要手动操作:每个客户端都会启动同一个项目本地的 kibi-mcp 服务(npx --no-install kibi-mcp,stdio,工作目录 = 你的代码库)。可选插件还会添加内置技能和钩子。

Claude Code

从此代码库的 marketplace 安装可选的 kibi-claude 插件。它包含 MCP 服务、内置技能,以及一些钩子,可在 Agent 读取或编辑代码之前(包括通过 shell 命令操作时)向其展示关联的需求、必须保持成立的条件,以及相关决策。Agent 连接指南中有详细说明:

claude plugin marketplace add Looted/kibi
claude plugin install kibi-claude@kibi

如果不使用插件,请为项目注册该服务:

claude mcp add --scope project kibi -- npx --no-install kibi-mcp
Cursor

将 Kibi 添加到 .cursor/mcp.json:

{
  "mcpServers": {
    "kibi": {
      "command": "npx",
      "args": ["--no-install", "kibi-mcp"]
    }
  }
}

可选的 kibi-cursor 插件会添加规则、内置技能、命令和建议性钩子,在读取或编辑关联代码之前,向 Agent 展示与 Claude Code 插件相同的需求背景信息。请参阅 Cursor 插件指南。

Codex
codex mcp add kibi -- npx --no-install kibi-mcp

可选的 kibi-codex 插件包含 Kibi 技能、MCP 配置和仅发出警告的钩子,可在 Agent 修改代码之前,将关联需求纳入其上下文。添加 Kibi 代码库 marketplace,打开 Codex,然后运行 /plugins,选择 Kibi Plugins 并安装 kibi-codex:

codex plugin marketplace add Looted/kibi

该代码库 marketplace 并非官方 OpenAI Plugin Directory;目前还不支持自行发布插件。仍完全支持手动配置 MCP。

OpenCode

将 Kibi 添加到 opencode.json。可选的 kibi-opencode 插件会添加提示词指导(包括编辑文件所关联的需求必须保持成立的条件)和后台维护:

{
  "mcp": {
    "kibi": {
      "type": "local",
      "enabled": true,
      "command": ["npx", "--no-install", "kibi-mcp"]
    }
  },
  "plugin": ["kibi-opencode"]
}
VS Code

将 Kibi 添加到 .vscode/mcp.json:

{
  "servers": {
    "kibi": {
      "type": "stdio",
      "command": "npx",
      "args": ["--no-install", "kibi-mcp"]
    }
  }
}
ZCode 和其他 MCP 客户端

任何 stdio MCP 客户端都可使用 command: npx、args: --no-install kibi-mcp。ZCode 也提供一个可选插件,可从本地检出版本安装;它的编辑钩子会向 Agent 展示与 Claude Code 插件相同的需求背景信息。请参阅 ZCode 插件指南。不支持 MCP 的 Agent 可通过 CLI 的 JSON 路由使用相同操作。

Agent 可获得的能力

Kibi 的技能子系统为 Agent 提供六项内置技能,教它如何使用 Kibi,因此你无需粘贴冗长的系统提示词;少量 MCP 工具即可完成其余工作:

  • 用通俗语言回答问题。 询问“什么规定了结账舍入?”,kb_search 会返回当前需求、相关测试和决策,以及 Kibi 检查结果。
  • 审查每项更改。 对 Agent 修改过的文件运行 kb_check,即可查看代码实现的需求,并标记没有需求覆盖的新代码。
  • 安全写入。 每次写入都可先预览;你批准的计划要么全部生效,要么完全不生效。

MCP 参考列出了所有工具。通用 Agent 可从 Agent 入门指南开始。

查看每项保证的力度

npm exec -- kibi report --open

kibi report 会根据一次覆盖率快照生成独立完整的 kibi-report/index.html 和 kibi-report/badge.svg。% tested 表示当前需求中,在当前代码上有最新端到端证据支持的比例;报告会列出已测试的内容、缺少证据的内容、相互矛盾的内容,以及已过时的内容。

每项需求还会标注证据等级,因此保证的表述不会强于其依据:proved(需求中的每项声明对所有情况都成立,并由来自 exhaustive、typecheck、arithmetic、smt、rule、state_machine、regex 或 source 证明契约的最新证书支持;契约会指明声明,另一个独立检查器会重新验证证书。声明不必是数字:权限规则、适用于每个成员的属性、状态转换、永远无法到达的状态、必填字段和字符串格式,都会依据代码精确判定;source 证明会检查 Kibi 从项目自身读取的路由、数据库架构、配置、验证器和代码引用)、tested(最新端到端回执覆盖所有关联场景)、asserted(有人为其背书,但目前没有任何检查机制验证)和 unverified(由 Agent 编写,且未经任何人批准)。kibi coverage 会为每项需求返回 evidenceLevel,并在 summary.evidenceLevels 中统计各等级数量;报告和 kibi signoff 会在确定程度旁显示证据等级。请参阅证明阶梯、证明需求(了解证书证明类型),以及阅读报告。

知识库本身也会以相同方式接受检查。kibi check(Agent 使用的命令为 kb_check)会证明需求中陈述的事实彼此一致(某个属性上的所有事实都能由同一个值满足,每项决策都有一个结果),并确认存储的规则是分层的;它还会为每个答案生成一份证书,由一个小型独立检查器重新验证。它也能发现只有合在一起才会产生矛盾的事实,这是两两检查无法发现的。出现矛盾时,会返回无法同时成立的最小事实集合;任何无法进行比较的内容都会报告为未解决,而绝不会报告为一致。

在批准变更之前,kibi signoff 会显示新增、重写或受影响的需求,并逐项注明其确定程度、证明状态和证据等级;kibi signoff --questions 会为待你处理的决策编号,并显示每项决策会改变的规则。Agent 会在回复中以纯 Markdown 呈现此视图,因此无论 Agent 在哪里撰写回复,都能正常渲染,包括通过消息工具传递回复的聊天应用和云端会话;同一视图也会作为独立完整的页面保存在 .kb/briefs/signoff/latest.html 中。Claude Code、Cursor、ZCode 和 OpenCode 会添加 /kibi-signoff 命令,OpenCode 会以卡片形式呈现此视图,VS Code 会在面板中打开它;Agent 钩子会在会话写入需求后请求生成此视图。

若要将报告和可点击徽章发布到 GitHub Pages,请运行 npm exec -- kibi init --github,然后启用 Settings → Pages → Source → GitHub Actions。GitHub 集成指南涵盖了报告工作流、仅发布徽章,以及在只有 Kibi 自身文件发生冲突时仍确保拉取请求可以合并的 CI 步骤。符号的行位置绝不会提交:每次 kibi sync 都会将其生成到 Git 忽略的缓存中,因此两个分支即使编辑同一个源文件,也不会因这些位置发生冲突。

日常检查可使用 CLI 参考中的 kibi status、kibi search、kibi gaps、kibi coverage 和 kibi check。

工作原理

Kibi 将概率式解读与确定性验证相结合:

Human prompt
    |
    v
Agent updates code and product knowledge
    |
    v
Requirements + semantic facts/rules + scenarios + tests + symbol links
    |
    v
Prolog coherence checks + traceability gates + fresh E2E evidence
    |
    v
Tested result or explicit, repairable gaps

Agent 绝不会将任意 Prolog 代码当作可信事实来编写。它会通过类型化事实、谓词模式和安全的逻辑表示来工作;Kibi 会在 Prolog 层使用这些编码进行推理之前先验证它们。

Kibi 强制执行的规则

Kibi 会维护规范的可追溯性与证明链:

Requirement -> Scenario -> Test
     ^                       ^
     |                       |
 Production symbol     Executable test symbol

要让一项需求经过端到端测试,而非仅记录在案:

  • 每个生产符号都必须追溯到其实现的需求。
  • 每条规范性需求条款都必须建模为类型化事实,或明确标记为尚未解决。
  • 需求必须通过场景进行说明,测试必须验证这些场景。若成功场景假设了当前需求所禁止的行为,则会阻止证明。
  • 可执行测试符号必须标明实际执行验证的代码。
  • 承载证明的生产符号必须由符合要求的测试覆盖,且提交前钩子采用与完整检查相同的规则。
  • 端到端证据必须是最新的,并与当前代码快照绑定,确保 CI 与同一提交的本地检出结果一致。

这样一来,就能双向回答以下问题:哪个需求对应此符号、此端到端测试实际验证了什么、哪些需求缺少场景或当前证据,以及当前有哪些需求彼此矛盾。仅靠代码覆盖率无法回答这些问题:它只能说明测试触及了某一行代码,而不能说明测试验证了哪种产品行为。

Prolog 作为安全层

假设产品明确规定只有三种用户角色。一旦将此约束编码为严格属性或谓词,Agent 就无法悄悄虚构第四种角色并将其当作已确认的意图:Kibi 可以确定性地指出矛盾或缺失的授权。

如果 Kibi 无法判断,它不会报告“无冲突”。数值约束会进行精确比较(“大于 0”与“等于 0”相冲突),针对同一操作的允许与拒绝规则互相矛盾,而任何 Kibi 无法建模的内容都会报告为待解决事项,交由 Agent 审查,绝不会被当作验证通过。

Prolog 不会判断最初的人类意图是否正确。它会验证已编码的知识,而 Kibi 会明确标示歧义、本体缺失、依据不完整和证据过时,而不是将它们称为证明。

为什么现在能够实现

传统知识库需要专家设计本体、编写形式逻辑,并手动维护每一项映射。大模型改变了这类编写工作的成本,而 Kibi 和 Prolog 则提供了严谨性:

参与者优势与职责
人类说明产品意图,并解决实际存在的歧义或策略选择
AI Agent将意图映射到代码库,并维护需求、场景、测试、事实和符号链接
Kibi + Prolog验证模式、检查一致性与矛盾、强制执行可追溯性,并评估证明证据

最终方案利用大模型的优势来应对大模型的弱点:记忆有限、幻觉、上下文漂移,以及产品与代码之间的映射丢失——过去,这种映射分散在产品负责人、工单系统和规划看板中。

Kibi 建模的内容

八种实体类型:req、scenario、test、fact、adr、flag、event 和 symbol。实体架构包含完整的模型。

每个实体都会记录其作者是某个人还是某个 Agent;建议性检查会列出尚未得到任何人批准的 Agent 编写的需求。

需求和 ADR 还会说明其决策的确定程度。firm 规则由人明确提出:它会指向其原话,Agent 在更改前会先询问,而且 Kibi 不会悄悄重写它。default 选择可以根据证据重新审视,exploratory 则表示猜测。每次取代旧决定时,都必须说明更改原因。Kibi 的工作方式介绍了详细信息。

软件包

在项目中安装 kibi-core、kibi-cli 和 kibi-mcp。其他所有软件包均为可选。

软件包作用
kibi-core由 Prolog 支持的知识图谱、推理和验证
kibi-cli面向人类、Agent、自动化和 Git 钩子的接口
kibi-mcp暴露 Kibi 公共操作契约的 MCP 接口
kibi-claudeClaude Code 技能、MCP、读取/编辑前的需求上下文,以及建议性钩子(插件市场)
kibi-cursorCursor 规则、技能、MCP、读取/编辑前的需求上下文,以及建议性钩子
kibi-codexCodex 技能、MCP、编辑前的需求上下文,以及生命周期钩子
kibi-opencodeOpenCode 指南(包括编辑所需的需求上下文)和后台维护
kibi-zcodeZCode 技能、命令、MCP、编辑前的需求上下文,以及建议性钩子(本地检出)
kibi-vscodeVS Code 知识浏览器和可追溯性视图
kibi-plugin-sdk能力插件的协议类型和验证器
kibi-plugin-builtin默认语义、知识本体和 TypeScript 符号功能
kibi-plugin-jev可选的 TypeSafe Jev 语义分类器
kibi-plugin-treesitter可选的离线多语言符号提取(tree-sitter WASM 语法)
kibi-plugin-ui实验性检查策略,确保 UI 组件遵循约定的设计模式
kibi-swipl随附的 SWI-Prolog 运行时;会自动安装对应平台的构建版本

文档

指南和参考文档发布于 https://looted.github.io/kibi/。语言模型可以从文档索引开始查阅。

Beta 状态

Kibi 目前处于 beta 阶段,已可用于真实项目。1.0 版本发布前,公共接口仍可能演进;如需确保可复现性,请固定确切的软件包版本。

Kibi 根据 AGPL-3.0-or-later 许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。