mcpField
W
What's Inherited

What's Inherited

本地服务
shifttheculture.media安全04 周前更新

关于 What's Inherited

What's Inherited 是供用户在将代码仓库交给 AI Agent 前检查其内容的 MCP 服务。它盘点面向 Agent 的指令和配置,不返回指令文件正文,也不判断内容是否恶意或客户端是否会执行。

主要功能

  1. 01列出指令文件及其导入
  2. 02报告绑定 Agent 事件的钩子命令
  3. 03检查仓库声明的 MCP 服务
  4. 04查找随仓库提供的技能和子 Agent
  5. 05估算指令的令牌开销

适用场景

  1. 01审查克隆仓库中的 Agent 指令
  2. 02定位绑定到 Agent 事件的钩子
  3. 03在启动前检查仓库声明的 MCP 服务
  4. 04盘点仓库附带的技能和子 Agent

MCP 相关

MCP 客户端可调用工具,检查代码仓库中的 Agent 指令文件、钩子、声明的 MCP 服务、技能和子 Agent。

配置

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

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

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

安装包
npmwhats-inherited-mcp0.1.6

工具

5

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

参数类型必填说明
dirstring否要检查的工作区绝对路径。若已设置 WI_DEFAULT_ROOT,则默认为该值;否则默认为服务器的工作目录。

详细介绍

whats-inherited-mcp

npm License: MIT Glama

你会审查克隆下来的代码,却几乎没人会审查其中与 Agent 交互的部分。 这是一个 MCP 服务,用于枚举代码库检出内容中面向 AI Agent 而非面向你的所有内容:指令文件、与 Agent 事件关联的钩子命令、代码库声明的 MCP 服务,以及随附的技能和子 Agent。

原因

git diff 会显示代码,而你会阅读代码。它还会显示 CLAUDE.md 中新增的三行,你会略读过去,因为它们看起来像文档。它们并不是文档——而是模型会遵循的指令。

这类内容比大多数人想象的更多。你克隆的目录可能包含:

  • CLAUDE.md / AGENTS.md / .cursorrules——会加载到上下文中并被视为指令,其中包括深藏在目录树中的嵌套副本,它们仅在 Agent 于对应子目录中工作时生效
  • .claude/settings.json 中的钩子命令——配置为在使用工具、会话开始或提交提示词时触发的 shell 命令
  • .mcp.json——代码库要求添加的 MCP 服务,通常通过 npx -y <package> 启动,这意味着运行的代码会在启动时下载,而不是你审查过的代码
  • .claude/skills、.claude/commands、.claude/agents——代码库交给 Agent 的能力

没有任何工具会把这些内容集中起来。这个工具可以。

针对 langfuse/langfuse 在 7d2afa4 的检出内容运行——这是一个普通且信誉良好的开源代码库,选它恰恰是因为它没有任何问题:

# Inherited agent surface

**12 item(s) in this checkout are addressed to an agent, not to you.**

| Surface                       | Count | Detail                                                       |
|-------------------------------|------:|--------------------------------------------------------------|
| Instruction files             |    12 | ~41,848 est. tokens, 5,593 lines your agent is told to follow |
| Hook commands                 |     0 | configured to run on agent events                             |
| MCP servers declared          |     0 | 0 fetch code from a registry at launch                        |
| Skills / commands / subagents | 33 extensions (196 files) | shipped under `.agents/`, available to the agent |

## Worth a look
- 11 instruction file(s) are **not at the repo root** — they apply when the agent
  works in those subdirectories and are easy to miss in review.

而 instruction_files 会显示:

> Counted once, reachable under more than one name (symlinks):
> - `AGENTS.md` ← also `.agents/AGENTS.md`, `CLAUDE.md`

五千五百多行常驻指令,其中大部分位于你永远不会打开的文件中,而且这个代码库也没有任何理由让人不信任。这正是重点:即使在无害的情况下,数量也很庞大,因此其中不寻常的条目很容易被忽略。

工具

工具功能
inherited_summary概览:此检出内容中所有面向 Agent 的内容。从这里开始
instruction_files所有 CLAUDE.md/AGENTS.md/.cursorrules 文件、大小和 token 开销,以及其 @import 行引入的内容——包括解析到代码库之外的导入
auto_run_commands此检出内容配置为在 Agent 事件时触发的钩子命令,以及每个命令引用的脚本位于代码库内、代码库外还是缺失
declared_mcp_servers代码库声明的 MCP 服务、其中哪些会在启动时获取代码,以及它们获准访问的检出目录之外的文件系统路径
agent_extensions代码库随附的技能、斜杠命令和子 Agent

每个工具都可选用 dir。如果省略该参数,服务会在设置了 WI_DEFAULT_ROOT 时使用它,否则使用当前工作目录。

安装

Claude Desktop(单击安装,无需终端): 从 Releases 下载最新的 whats-inherited-mcp-<version>.dxt,然后用 Claude Desktop 打开(双击,或选择“设置”→“扩展”→“安装扩展…”)。服务及其依赖项都包含在软件包中——无需 npm,也无需安装 Node。

注册到 Claude Code(在每个会话中均可使用):

claude mcp add --scope user whats-inherited -- npx -y whats-inherited-mcp

或添加到任意 MCP 客户端配置中:

{
  "mcpServers": {
    "whats-inherited": {
      "command": "npx",
      "args": ["-y", "whats-inherited-mcp"]
    }
  }
}
从源代码安装
git clone https://github.com/stcmain/whats-inherited-mcp.git
cd whats-inherited-mcp
npm install && npm run build
# then point your client at node /path/to/whats-inherited-mcp/dist/index.js

已在 npm 上发布为 whats-inherited-mcp,并在 MCP Registry 中注册为 io.github.stcmain/whats-inherited-mcp。

配置

有一个可选设置,且无需任何凭据。

变量默认值含义
WI_DEFAULT_ROOT服务的工作目录调用工具时未提供 dir 参数的情况下要检查的目录。

每个工具都接受显式的 dir,且它始终优先。WI_DEFAULT_ROOT 只会更改回退值;如果桌面客户端启动了服务,设置此项就很有用:此时进程会继承该客户端的工作目录,而这个目录通常不是你想检查的代码库。

{
  "mcpServers": {
    "whats-inherited": {
      "command": "npx",
      "args": ["-y", "whats-inherited-mcp"],
      "env": { "WI_DEFAULT_ROOT": "/path/to/the/checkout" }
    }
  }
}

它统计什么,以及它不会妄加猜测什么

把结果夸大得危言耸听很容易,但那会让工具变得毫无用处,因此统计方式刻意保持保守:

  • 它不会检测恶意内容。 没有启发式扫描器,没有“可疑短语”正则表达式,也没有风险评分。这些方法会在普通代码库中产生自信满满的误报,还会漏掉任何精心编写的内容。此服务会告诉你该去哪里查看;具体内容由你来判断。
  • 每个文件只统计一次。 一个代码库可能会通过多个名称呈现同一个文件——CLAUDE.md → AGENTS.md → .agents/AGENTS.md 是现实中常见的模式。条目会按解析后的真实路径去重,并列出别名,而不是把同一份内容统计三次。
  • 不会重复统计 .claude/。 技能自己的 CLAUDE.md 会作为技能报告,而不会再被当作项目指令文件。
  • “未识别路径令牌”并不代表安全。 如果钩子命令中没有此服务能够可靠提取的文件系统路径,它就会如实说明并停止。这是分析范围的明确局限,而不是结论。
  • 导入检测采取保守策略。 首先会去除围栏代码块;只有未限定根目录的 @token 指向文档时才会计入,因此 @scope/pkg 和 @mentions 不会计入统计。

坦诚说明局限

  • 它只做报告,不做判断,也不做修复。 不会编辑、隔离或评分。它列出的每一项都可能在合法的代码库中正常出现。
  • 你的客户端是否实际运行项目钩子,由客户端决定。 不同客户端各不相同,提示方式也不同,而且会随版本变化。此服务报告的是文件声明的内容,而不是你的客户端会执行什么。
  • 令牌数量是估算值(约 4 个字符/令牌)。请将其视为排序依据和大致规模,而非计费依据。Anthropic 的分词器并未公开,因此本地工具无法做得更准确。
  • 以 Claude Code 的布局为模型。 可以识别 Cursor、Windsurf、Cline 和 Copilot 的指令文件,但钩子和 MCP 的解析遵循 Claude Code 架构。
  • 超大型单体代码库会被截断。 遍历深度和条目数均设有上限;达到上限时,输出会明确说明并将结果标记为不完整,而不会悄悄少报。
  • 它从不读取 git 历史记录。 它描述的是此刻磁盘上的工作树,而不是差异所做的更改。
  • 不会跟随符号链接目录(以避免循环风险)。会跟随符号链接文件。

设计说明 / 威胁模型

这个服务的全部工作就是检查可能带有恶意的内容,因此设计时默认这些内容可能有恶意。

  • 它绝不能成为自己所报告的注入载体。 指令文件的正文绝不会返回——只返回元数据、路径,以及从已知 JSON 配置键中解析出的结构化字段。把某个仓库的 CLAUDE.md 粘贴到你的上下文中,告诉你这个仓库可能包含恶意内容,这无异于自我挫败。
  • 仓库编写的字符串会被隔离并标注。 钩子命令和 MCP 启动行必须展示出来才有用。它们会放在行内代码片段中,并对反引号进行中和、转义竖线、将换行符压平,这样精心构造的字符串就无法逃逸代码片段或 Markdown 表格;每个代码块还会附带一条常驻提示,说明引用文本是检出内容中的数据,而非指令。
  • 不启动子进程。不调用 Shell。不联网。不写入。 使用的 Node API 仅限 node:fs 读取、node:path 和 node:os。源代码中完全没有导入 child_process,因此扫描仓库时不会执行其中的任何内容。
  • dir 是唯一由模型控制的路径,并且从设计上就受到限制:该路径会经过解析和真实路径解析,并且必须是现有目录。由于不会输出文件正文,即使将其指向敏感位置,也只会泄露文件名和大小,而不会泄露内容;同时它也无法写入、执行或传输任何内容。
  • 绝不读取环境变量的值——只读取名称。人们常会把 API 密钥以明文留在 .mcp.json 中。
  • 工作量有上限: 深度上限、条目上限、文件大小上限,并且不会遍历符号链接目录。

开发者

由 Shift The Culture 开发——我们是一家由 AI Agent 驱动的一人公司,并亲自打造所需工具。这个服务免费且采用 MIT 许可,没有附加条件。

它还有三个同系列项目,同样免费且采用 MIT 许可:

  • whats-running-mcp — 查看此刻机器上实际运行的内容,而不是旧对话记录声称的内容。
  • whats-loaded-mcp — 查看你开始输入前就已占用上下文窗口的内容:技能描述、记忆文件及其导入项。
  • whats-allowed-mcp — 查看你的 Agent 无需询问就能执行的操作:合并后的权限规则、哪个设置文件优先,以及客户端接受后又忽略的规则。

其余工具为付费工具:

  • Agent Fleet Ops Kit($29)——在一台机器上运行三个或四个 Agent 时可能遇到的其他故障模式:两个会话编辑同一个检出目录、无人负责的开发服务器(导致 Agent 测试的应用与其编辑的应用不同),以及崩溃会话遗留的 MCP 服务占用端口和内存数周。 更喜欢 PayPal?同一套工具也可在 Payhip 获取。
  • Agent Reliability Kit($29)——一个 Stop 钩子和两个 CLI,可在 Agent 声称某个仓库、URL 或构建“已完成”,但实际上从未检查过时阻止这一轮操作。 更喜欢 PayPal?同一套工具也可在 Payhip 获取。

无论如何,上述服务始终免费且采用 MIT 许可——它不包含推销内容、不收集遥测数据,也不依赖付费工具包。

赞助商

此服务采用 MIT 许可,并将一直采用 MIT 许可。没有专业版,不收集遥测数据,也不会将任何内容留给免费版之外。赞助为维护工作提供资金,同时不会改变这些承诺。

目前还没有赞助商——首个名额开放中。 企业赞助商的名称或标志将出现在本节、两个同系列服务以及赞助商页面上。赞助等级、具体展示内容以及赞助明确不包含的权益,请访问: https://shifttheculture.media/sponsor

个人赞助:https://paypal.me/ShiftTheCultureLLC — 金额不限,不含额外权益,也不设等级。

许可证

MIT © Zachary Pampu

评论

支持 Markdown

第一次接触 MCP?

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

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