mcpField
K
Kin

Kin

已认证精选本地服务
kinlab.ai版本控制681 周前更新

关于 Kin

Kin 是面向编码 Agent 及其协作者的图谱原生代码仓库,将源代码、代码关系和版本历史纳入仓库状态。它提供 CLI 与 MCP 服务查询同一代码图谱,帮助在修改前查看引用和潜在影响。

主要功能

  1. 01以图谱记录实体、关系和历史
  2. 02查询符号引用及邻近上下文
  3. 03沿关系探索代码变更影响
  4. 04提供代码审查影响报告
  5. 05支持 Kin 版本控制与 Git 互操作

适用场景

  1. 01修改共享函数前检查调用方
  2. 02让编码 Agent 查询代码关系
  3. 03审查分支变更的潜在影响
  4. 04导入 Git 项目并探索代码结构

MCP 相关

Kin 提供 MCP 服务,供 Claude Code、Codex、Cursor 等 MCP 客户端查询与 CLI 共用的代码图谱。

配置

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

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

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

安装包
npm@kinlab/kin-mcp

工具

1

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

Kin,面向 AI Agent 及与其协作开发者的代码仓库

代码的新基石。

Apache-2.0 最新版本

Kin 是面向 AI Agent 及与其协作开发者的图原生代码仓库。 它将源代码、记录的代码关系和版本化历史作为仓库状态存储。图就是仓库模型,而不是维护在另一个仓库旁边的搜索索引。

函数、类型及它们之间的关系都是可以提交、分支和合并的数据。源代码会逐字节完整保留,文件系统投影则让受支持的工具继续使用普通文件。

公开测试版。 欢迎在熟悉的真实项目中试用 Kin。请预期仍有不完善之处。

快速入门 · 文档 · 浏览器演示

kin impact human_bytes --file crates/kin-cli/src/commands/cache.rs --kind function --depth 1,展示了 Kin 自身代码库中该函数的直接调用者,以及针对同一名称的 git grep 搜索

点个星标有助于其他人发现 Kin;有问题可以到 讨论区 提出。

查看关联关系

修改一个共享函数之前,还应该检查哪些内容?Kin 可以查找记录的调用者并探索相关代码。CLI 和 MCP 服务查询同一张图,因此你和 Agent 可以基于同一份记录开展工作。

在 ripgrep 上运行的 kin impact 查询记录,展示了签名变更涉及的相关实体

在预先准备好的 ripgrep 图上记录,提交为 e89fff89ac9af12e8d4ce9d5fd07beb408ca730f。原始运行产物不公开。这展示的是一种工作流,而非性能基准测试。

在 Claude Code、Codex 或 Cursor 中使用

在 Claude Code 中:

/plugin marketplace add kinlab-ai/kin
/plugin install kin@kin

对于 Codex,添加插件市场并安装插件,或者运行 kin setup --intent agent,让它为你将 MCP 服务写入 ~/.codex/config.toml。

对于 Cursor,请手动添加 MCP 服务;具体代码片段请参阅 plugins/kin-cursor。

安装后,在一个熟悉项目的新克隆中运行 kin init .;kin-setup 技能会引导你完成其余步骤。

Kin 未发布到 crates.io。该网站上的 kin crate 是一个无关项目。

快速入门

从一个熟悉项目的全新完整克隆开始。kin init 会读取 Git 历史记录,不会修改历史记录或已跟踪文件。它会将存储放在检出目录之外的 ~/.kin/stores 中,不会向仓库写入任何内容;kin store path 会显示某个检出目录的存储位置。默认情况下,它会先纳入当前检出的提交,因此读取该树后即可开始回答问题;随后以低优先级在后台导入分支和标签可到达的所有提交。kin init --history full 会预先导入完整历史,而 --history none 则不会导入历史。导入历史需要时间、内存和磁盘空间;这些开销随历史长度增长,而非随检出目录大小增长。开始前,kin init 会检查内存和可用磁盘空间;如果已能确定机器资源不足,就会显示具体数值并停止。浅克隆只会纳入当前检出的提交,且不支持子模块和 Git LFS;此外,Git hooks、稀疏检出以及尚未完成的合并或变基也会导致导入停止。kin init 会为每种情况说明修复方法,而全新克隆可以避免其中大多数问题。

1. 安装

在 macOS、Linux 和 WSL2 上,只需运行一条命令即可安装 Kin,并连接它找到的 AI 编码工具。需要 Node.js 20 或更高版本:

npx -y @kinlab/kin setup

如果机器上没有 Node,请改用安装程序。get.kinlab.ai 和 get.kinlab.dev 提供相同的脚本:

curl -fsSL https://get.kinlab.dev/install | sh

无论使用哪种方式,都需要单独运行命令重新加载 shell,因为安装程序会将 kin 放在 ~/.kin/bin 中,并将该目录添加到 shell 配置文件,以供新会话使用:

exec "$SHELL" -l

在原生 Windows x64 上,通过 PowerShell 使用 irm https://get.kinlab.dev/install.ps1 | iex 安装。 它会安装 kin CLI,但不会连接 AI 编码工具,因为在 Windows 上仍建议使用 WSL2。 Beta limits 中的 Windows 条目说明了哪些功能可用。目前没有发布原生 Windows ARM64 版本。在 ARM64 机器上,可在 x64 PowerShell 中运行该命令,通过仿真安装 x86_64 版本,或使用 WSL2。安装程序会将 kin 添加到用户 PATH,因此在进行下一步之前,请打开一个新的 PowerShell 窗口,而不要运行 exec "$SHELL" -l。

如需了解其他安装程序或故障排查方法,请参阅完整快速入门。

2. 初始化存储库

在新提示符下,使用 Kin 克隆存储库:

kin clone https://github.com/pallets/itsdangerous

或者初始化已有存储库,将下面的路径替换为实际路径:

cd /path/to/your/repository &&
kin init . &&
kin overview &&
kin status

两种方式都会以接下来要运行的命令结尾:询问有关该存储库中某个函数的 kin refs 问题。如果你在设置时允许,它们还会将 Codex CLI 和 Grok CLI 连接到该存储库,因为这些客户端会保留一个指向存储库的条目。

Windows PowerShell 5.1 不支持 &&,因此在原生 Windows 上,请逐条运行相同的命令;如果某条命令失败,就停止运行:

cd C:\path\to\your\repository
kin init .
kin overview
kin status

kin overview 会显示 Kin 导入的实体。kin status 会显示已纳入的内容,以及工作树相对于这些内容的状态。kin graph status 会报告守护进程实时查询图及其覆盖情况。未提交和未跟踪的更改不属于已导入的 Git 历史记录;kin init 会报告它排除了哪些内容。

3. 提出一个可以核实的问题

查找代码中一个你已知存在的内容:

kin locate "<something you already know is in this repository>"

将下方的 ExactEntityName 替换为结果中的一个符号:

kin refs ExactEntityName
kin trace ExactEntityName
kin impact ExactEntityName

refs 返回已记录的引用,trace 引入附近上下文,而 impact 则通过图探索可能产生的影响。请对照源代码核实结果。

4. AI 编码工具与语义搜索

kin setup 已在连接检测到的 AI 编码工具前征求你的同意,并在你同意后完成连接。无需单独执行链接步骤。安装其他工具后,再次运行 kin setup,然后通过 kin setup status 查看已连接的工具。在 Windows 上,请在 WSL2 中连接 AI 工具。

kin runtime status --json 会检查共享 CLI 和守护进程的安装情况,包括它们的确切来源标识。常规命令会拒绝不匹配的组合;开发构建使用隔离状态。请参阅运行时安装。

图检索和词汇检索无需模型即可运行。嵌入和重排是可选功能,其模型提供商默认为 none。标准 CLI 和守护进程构建包含外部 HTTP 模型支持。内置模型需要启用可选本地推理的构建。

要使用你运行的 OpenAI 兼容端点构建嵌入索引:

KIN_MODEL_EMBEDDINGS_PROVIDER=external \
KIN_MODEL_EMBEDDINGS_BASE_URL=http://localhost:1234/v1 \
KIN_MODEL_EMBEDDINGS_MODEL=your-served-embedding-model kin embed

模型端点会接收其处理阶段所需的已选实体文本。 模型设置介绍了提供商、模型标识和凭据环境变量名称。

Kin 支持 Claude Code、Codex、Cursor、Gemini 和其他 MCP 客户端。使用 kin setup --intent editor 配置 VS Code。Kin 还包含 kin agent run,可用于本地或托管的 OpenAI 兼容模型端点。

客户端配置 · MCP 工具 · 内置 Agent

本地导入、存储和图查询都在你的机器上运行。安装 Kin 需要网络访问;默认的图检索路径无需下载模型。选择嵌入提供商后,查询会报告其向量覆盖率和任何缺口。

审查更改

在要审查的 Git 分支上运行 kin init 后,将明确指定的提交 SHA 与 main 进行比较:

kin review shadow "$(git rev-parse main)..$(git rev-parse HEAD)"

报告会返回 PASS、NEEDS ATTENTION 或 WOULD BLOCK,并提供基于图得出的影响和支持证据。**该报告仅供参考:**它不会阻止合并,也不会更改图状态。作者身份由用户声明,不会经过独立验证。

使用 Kin,搭配或不搭配 Git

Kin 有自己的提交、分支、合并、差异和历史记录,包括底层没有 Git 的仓库。现有 Git 仓库可以导入,受支持的工作流也可以导出新的 Git 仓库。

原生版本控制指南 · Git 互操作性和导出限制

Beta 限制

覆盖范围不完整。 支持的语言会被解析为实体和关系;其他文件仍可作为内容和历史记录使用。结果为空并不能证明不存在调用方或依赖项。请继续使用编译器、测试和代码审查。参见语言支持。

兼容性因平台而异。 发布归档不包含已弃用的 kin-vfs 文件系统投影,因此没有可依赖的透明投影。请查看平台说明,了解各平台支持的功能。

备份仅存储在 Kin 中的状态。 你通过 Kin 记录的提交、分支、评审和规格都存放在仓库的 Kin 存储中,而不是 Git 中。删除存储并从 Git 重新导入无法恢复这些内容,因此请先运行 kin backup create。出于同样的原因,只有在传入 --yes 时,kin store prune 才会删除存储。请阅读导入、恢复和升级说明。

Windows。 原生 Windows x86_64 支持尚处于早期阶段。仓库接入功能可用:kin init 会导入 Git 仓库并发布图谱权威数据,图谱、词法和由守护进程支持的查询也能在原生环境中响应。端到端安装验证也会在原生 Windows 上运行 Agent 配置,并从已安装的 MCP 服务获取基于图谱的回答。Windows 尚未提供透明文件系统投影,评审工作流也尚未在该平台上经过测试,因此对于完整的 Kin 体验,仍建议使用 WSL2。

我构建 Kin 的原因

我一直看到编码 Agent 拼凑代码库中我们已经梳理过的部分。接着,我还得亲自做一遍类似的工作来审查它们的更改。我开始思考,为什么没有将更多这类结构性理解纳入仓库本身。

这就是我用 Kin 构建的东西。

Troy

了解更多并参与贡献

CLI 参考 · 架构和详细限制 · 贡献指南 · 问题 · 安全

Kin 及其本地技术栈(包括 kin-db)采用 Apache-2.0 许可。KinLab 是独立的专有托管产品。公共仓库的引导流程仍在开发中。

评论

支持 Markdown

第一次接触 MCP?

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

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