What's Inherited

by stcmain

Not rated
GitHub

About

Shows what a checkout you did not write tells your agent to do before you run it — instruction files and their imports, hook commands wired to agent events, MCP servers the repo declares, and the skills and subagents it ships.

Details

Author
stcmain
Categories
Developer Tools

Setup

Install What's Inherited in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/stcmain/whats-inherited-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

You review the code you clone. Almost nobody reviews the part of it that talks to your agent.An MCP server that enumerates everything in a checkout addressed to an AI agent rather than to you: instruction files, hook commands wired to agent events, MCP servers the repo declares, and the skills and subagents it ships.

git diffshows you code, and you read code. It also shows you three added lines in aCLAUDE.md, and you skim those, because they look like documentation. They are not documentation — they are instructions your model will follow.

The surface is bigger than most people picture. A directory you cloned can carry:

- CLAUDE.md/AGENTS.md/.cursorrules— loaded into context and treated as instructions, includingnestedcopies deep in the tree that only apply when the agent works in that subdirectory
- hook commands in.claude/settings.json— shell wired to fire on tool use, session start, or prompt submit
- .mcp.json— MCP servers the repo asks to add, often launched withnpx -y <package>, which means the code that runs is downloaded at start time and is not the code you reviewed
- .claude/skills,.claude/commands,.claude/agents— capabilities the repo hands the agent

Nothing collects that in one place. This does.

Run against a checkout oflangfuse/langfuseat7d2afa4— an ordinary, reputable open-source repo, picked precisely because there is nothing wrong with it:

# 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.
> Counted once, reachable under more than one name (symlinks): > - AGENTS.md ← also .agents/AGENTS.md, CLAUDE.md`

Five and a half thousand lines of standing instruction, most of it in files you would never open, in a repo nobody has any reason to distrust. That is the point: the number is large even in the benign case, which is exactly why an unusual entry in it goes unnoticed.

Every tool takes an optionaldir. When it is omitted the server falls back toWI_DEFAULT_ROOTif that is set, and otherwise to its working directory.

Claude Desktop (one-click, no terminal):download the latestwhats-inherited-mcp-<version>.dxtfromReleasesand open it with Claude Desktop (double-click, or Settings → Extensions → Install Extension…). The server and its dependencies ship inside the bundle — no npm, no Node install.

Register with Claude Code (available in every session):

claude mcp add --scope user whats-inherited -- npx -y whats-inherited-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

Published aswhats-inherited-mcpon npm and asio.github.stcmain/whats-inherited-mcpin theMCP Registry.

One optional setting, and it takes no credentials.

Every tool accepts an explicitdir, which always wins.WI_DEFAULT_ROOTonly changes the fallback, and it is worth setting when a desktop client launches the server: the process then inheritsthat client'sworking directory, which is rarely the checkout you meant to inspect.

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

What it counts, and what it refuses to guess

Inflating this in the alarming direction would be easy and would make the tool useless, so the accounting is deliberately conservative:

- It does not detect malicious content.There is no heuristic scanner, no "suspicious phrase" regex, no risk score. Those produce confident false positives on ordinary repos and miss anything written with care. This server tells youwhere to look; you do the reading.
- Files are counted once.A repo can expose one file under several names —
CLAUDE.md → AGENTS.md → .agents/AGENTS.mdis a real pattern in the wild. Entries are deduplicated by resolved real path and the aliases are listed, rather than counting the same content three times.
-
.claude/is not double-counted.A skill's ownCLAUDE.mdis reported as a skill, not also as a project instruction file.
- "No path token identified" is not a safety claim.When a hook command has no filesystem path this server can confidently extract, it says so and stops. That is a stated gap in the analysis, not a verdict.
- Import detection is conservative.Fenced code blocks are stripped first, and an unrooted
@tokenonly counts when it names a document — so@scope/pkgand@mentionsstay out of the number.

- It reports; it does not judge, and it does not fix.Nothing is edited, quarantined or scored. Every item it lists is normal in a legitimate repo.
- Whether your client actually runs project hooks is your client's business.Clients differ, and they prompt differently and change between versions. This server reports what the filesdeclare, not what your client will do with them.
- Token counts are estimates(~4 chars/token). Treat them as a ranking and a rough scale, not as billing. Anthropic's tokenizer is not public, so nothing local can do better.
- Claude Code layout is the model.Cursor, Windsurf, Cline and Copilot instruction files are recognised, but hook and MCP parsing follows the Claude Code schema.
- Very large monorepos are truncated.The walk is depth- and entry-capped; when the cap is hit the output says so and marks the results partial rather than quietly under-reporting.
- It never reads git history.It describes the working tree as it is on disk right now, not what a diff changed.
- Symlinked directories are not followed(loop risk). Symlinkedfilesare.

This server's whole job is to look at content that may be hostile, so the design assumes it is.

- It must not become the injection vector it reports on.Thebody of an instruction file is never returned— only metadata, paths and structured fields parsed out of known JSON config keys. Pasting a repo'sCLAUDE.mdinto your context to tell you the repo might contain something bad would be self-defeating.
- Repo-authored strings are fenced and labelled.Hook commands and MCP launch lines have to be shown to be useful. They are emitted inside inline code spans with backticks neutralised, pipes escaped and newlines flattened so a crafted string cannot break out of the span or out of a markdown table, and every block carries a standing note that the quoted text is data from the checkout, not instructions.
- No child processes. No shell. No network. No writes.The only Node APIs used are
node:fsreads,node:pathandnode:os. There is nochild_processimport anywhere in the source, so nothing in a scanned repo can be executed by scanning it.
-
diris the one model-controlled path, and it is bounded by construction: it is resolved, real-pathed and required to be an existing directory. Because file bodies are never emitted, pointing it somewhere sensitive discloses filenames and sizes, never contents — and it cannot write, execute or transmit anything.
- Environment variable values are never read— only names.
.mcp.json`is a place people leave API keys in plaintext.
- Bounded work:depth cap, entry cap, file-size ceiling, and no symlinked-directory traversal.

Built byShift The Culture— we run a one-person company on AI agents and ship the tooling we needed ourselves. This server is free and MIT-licensed, no strings.

It has three siblings, all also free and MIT:

- whats-running-mcp— what isactuallyrunning on the box right now, instead of what an old transcript claims.
-
whats-loaded-mcp— what is eating your context window before you type: skill descriptions, memory files and their imports.
-
whats-allowed-mcp— what your agent can do without asking you: merged permission rules, which settings file wins, and the rules your client accepts and then ignores.

- Agent Fleet Ops Kit($29) — the other failure modes of running three or four agents on one box: two sessions editing the same checkout, a dev server nobody owns (so the agent tests a different app than it edits), and MCP servers leaked from crashed sessions that hold ports and RAM for weeks. Prefer PayPal? Same kit onPayhip.
-
Agent Reliability Kit($29) — a Stop hook and two CLIs that block a turn when an agent claims "done" against a repo, URL, or build that was never actually checked. Prefer PayPal? Same kit onPayhip.

The server above stays free and MIT either way — it has no upsell in it, no telemetry, and no dependency on the paid kits.

This server is MIT and stays MIT. There is no pro edition, no telemetry, and nothing held back from the free build. Sponsorship is how the maintenance gets paid for without any of that changing.

No sponsors yet — the first slot is open.Company sponsors get their name or logo in this section, in the two sibling servers, and on the sponsor page. Tiers, exactly what the placement is, and what it explicitly does not buy:https://shifttheculture.media/sponsor

Individuals:https://paypal.me/ShiftTheCultureLLC— any amount, no perks, no tier.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Create crafted UI components inspired by the best 21st.dev design engineers.

Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server

An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .

MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent

ALAPI MCP Tools,Call hundreds of API interfaces via MCP

AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform

MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.

APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.

One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.

Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.