关于 Tently
Tently 是为编码 Agent 提供团队决策查询的 MCP 服务,这些决策来自已合并的拉取请求、评审讨论和文档。它还可在本地计算代码变更的影响范围,源代码不会离开本机。
主要功能
- 01搜索适用的团队决策
- 02将决策搜索限定到仓库
- 03在本地计算符号影响范围
- 04标记决策为阻断或建议
- 05初始化 Agent 配置和技能
适用场景
- 01编码前检查团队约定
- 02根据已记录决策审查更改
- 03查找符号的调用方和依赖项
- 04为编码 Agent 配置 Tently
MCP 相关
该 MCP 服务向编码 Agent 提供决策搜索和本地影响范围分析。决策搜索使用 Tently 工作区 API;影响分析通过 CodeGraph 在本地检出目录中运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | number | 否 | 最多返回的决策数(1-50,默认值由服务器端设置)。 |
| paths | array | 否 | 要编辑的仓库相对路径或 glob,用于限定搜索范围。 |
| query | string | 是 | 用自然语言描述你准备执行的操作(例如“添加一个查询决策的仓库方法”)。 |
详细介绍
Tently MCP:在你的编码 Agent 中进行 AI 拉取请求审查
Tently 是一款用于 GitHub 拉取请求的 AI 代码审查工具。它能发现仅审查差异的工具容易漏掉的两类问题:依赖变更代码的代码出现回归,以及变更违背团队有意做出的设计决策。它会从已合并的拉取请求、审查讨论串和文档中学习这些决策,并据此检查每个拉取请求。
本仓库是 Tently 的 MCP 服务:在 Agent 编写代码时,于 Claude Code、Cursor 或 Codex 中使用相同的决策,早于拉取请求的创建。
各部分如何协同工作
Tently 将所有决策存放在一个地方,并通过两道关卡进行检查:
| 关卡 | 时机 | 作用 |
|---|---|---|
| 拉取请求审查(GitHub App) | 每个 PR | 发布检查运行结果和行内评论,指出回归和决策偏离,并附上证据 |
| 此 MCP 服务 | Agent 编写代码时 | 让 Agent 查询适用的决策,以及变更的影响范围 |
MCP 服务需要 Tently 工作区。请在 tently.dev 申请提前体验。
设置
在 app.tently.dev 的 Connect 页面创建 API 密钥,然后在仓库根目录运行:
npx @tently/mcp init --agent claude --api-key <your key>
也可以通过环境变量传入密钥:
TENTLY_API_KEY=<your key> npx @tently/mcp init
init 会将 tently 服务添加到 .mcp.json(Claude Code)或 .cursor/mcp.json(Cursor),并安装一个小型技能,告知 Agent 何时使用它。编辑文件前,它会先创建备份、保留其他 MCP 服务,并打印每项变更。完成后请重启 Agent。
--agent 可设为 claude、cursor、both 或 auto(默认值,会自动检测仓库中的配置)。
手动配置
{
"mcpServers": {
"tently": {
"command": "npx",
"args": ["-y", "@tently/mcp", "mcp"],
"env": { "TENTLY_API_KEY": "<your key>" }
}
}
}
Agent 可获取的内容
search_decisions:从你的 Tently 工作区中查找适用于即将修改代码的决策。每项决策都会说明违反它是阻断性问题还是建议性问题。搜索范围限定为当前仓库(通过检出目录的 git 远程地址读取),因此工作区中其他仓库的决策不会影响当前仓库的搜索结果。query_impact_zone:查询某个符号的影响范围(谁调用它、它依赖什么),由 CodeGraph 在本地检出目录中计算。你的源代码不会离开本机。索引存储在.codegraph/中,init会将其添加到.gitignore。
影响分析结果是证据,而非证明:工具可能无法发现通过接口、动态分派或重新导出找到的调用方,并会在输出中说明这一点。
配置
| 变量 | 含义 |
|---|---|
TENTLY_API_KEY | 工作区 API 密钥(search_decisions 必需) |
TENTLY_API_URL | API 源站,默认值为 https://api.tently.dev |
TENTLY_WORKING_DIR | query_impact_zone 建立索引的目录,默认为当前目录 |
TENTLY_REPO | 用于限定 search_decisions 搜索范围的 GitHub 仓库,可写为 owner/name 或 GitHub URL。默认使用 TENTLY_WORKING_DIR 的 origin 和 upstream 远程地址中与工作区关联的那个(优先 origin),因此也支持 Fork。如果值不是 GitHub 仓库,则会忽略该值。如果没有关联的仓库(或仓库已重命名),搜索范围将覆盖整个工作区 |
隐私
search_decisions 会将你的查询文本、你传入的文件路径,以及检出仓库的 origin 和 upstream 远程仓库的 owner/name 发送到
Tently API。除此之外,
没有任何内容会离开你的设备:query_impact_zone 完全在本地运行。请参阅
tently.dev,了解 Tently 如何处理数据。
开发
npm install
npm test
npm run build
node dist/cli.js mcp # start the server on stdio
需要 Node.js 20 或更高版本。
贡献
欢迎提交问题和拉取请求。对于超出小型修复范围的更改,请先提交问题, 以便我们就处理方案达成一致。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。