
Fallow MCP Server: Setup for Claude Code, Cursor and Other Apps
Lets Claude, Cursor and other assistants find unused code, duplicates, complexity hotspots and bad imports in a TypeScript or JavaScript project.
Fallow is a code analysis tool for TypeScript and JavaScript, and its MCP server gives your assistant the same results as structured answers. Your assistant can ask what code nothing uses, where code is copied, which files are hotspots, and what a change would affect. It runs on your computer with no account, and only its cloud tools need a key. One tool can edit your project, so preview before you let it apply fixes. The docs say the command line is the main interface and the MCP server is an optional extra.
Good for
- Developers who want an assistant to clean up unused code and dependencies
- Tech leads who need complexity hotspots and architecture rules checked in reviews
- Teams who want an assistant to check a branch before they merge it
- Claude Code and Cursor users who work in TypeScript or JavaScript repos
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install fallow MCP
Claude Code
- 1
Copy this prompt.
Add the fallow MCP server to Claude Code. Run this command: claude mcp add fallow -- npx -y --package fallow fallow-mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
Read-only mode: There is no read-only mode. Ask your assistant to use only the preview for fixes, and keep your work committed.
The command runs the fallow-mcp launcher from the fallow npm package, so you do not install anything first. Start your assistant from the project root so it analyzes that project. Optional settings: FALLOW_BIN picks the fallow binary, FALLOW_TIMEOUT_SECS raises the 120-second default on large repos, and FALLOW_API_KEY enables the cloud tools. The vendor also offers a one-pass setup that writes AGENTS.md, skills and a commit gate; it is not needed for the server.
Built from the package data we hold. Not yet tested by us.
Tools
Finds unused files, exports, dependencies and circular imports
Runs the full dead-code analysis on a TypeScript or JavaScript project. It reports unused files, exports, types and dependencies, unresolved imports, circular dependencies and architecture-rule violations. It can save a baseline file if you ask.
Try: “Find all unused exports and files in this project.”
Write ·
analyzeChecks only the files you changed since a git ref
Runs the same dead-code analysis but only on files changed since a branch or commit. Finding IDs match a full run, so an ID missing here is unknown, not fixed.
Try: “What unused code did my changes since main introduce?”
Write ·
check_changedGives a pass, warn or fail verdict on your changed files
Audits changed files for dead code, complexity, duplication and styling and returns a verdict. It can compare against a base ref and read coverage data for sharper complexity scores.
Try: “Audit my branch against main and tell me if it passes.”
Files ·
auditFinds copy-pasted code across the project
Detects duplicated code and groups clones with a stable fingerprint. It can also find near-miss clones inside functions. Like analyze, it can write a baseline file when asked.
Try: “Find duplicated code in src and list the biggest clone groups.”
Write ·
find_dupesScores complexity, hotspots and what to refactor first
Reports per-function complexity, file health scores, hotspots that change often, and ranked refactoring targets. Options add git churn, ownership, test coverage gaps and trends against a saved snapshot.
Try: “Which files are the biggest complexity hotspots, and what should I refactor first?”
Write ·
check_healthChecks import cycles and layer-boundary violations
After you edit files, reports import cycles, boundary violations and rule-pack policy violations with the same finding IDs as analyze.
Try: “Did my last change introduce any circular imports or boundary violations?”
Files ·
check_architectureShows the architecture rules for files before you edit them
Before an edit, reports which boundary zone a file is in, which zones it may import from, and which calls or rule-pack policies are forbidden.
Try: “What are the architecture rules for src/billing/invoice.ts before I change it?”
Files ·
guardLists possible security problems, not confirmed ones
Returns unverified local security candidates with category, CWE, severity, evidence and a source-to-sink trace. The severity is a review priority, not a verdict.
Try: “List security candidates in this project and rank which to review first.”
Files ·
security_candidatesGathers everything known about one file or export
For one file or exported symbol, returns dead-code actions, duplication groups, complexity findings and security candidates in one call. An option adds the symbol's call chain.
Try: “Give me all the findings for src/utils/format.ts.”
Files ·
inspect_targetExplains why an export counts as used or unused
Shows whether a file is reachable, its direct references, re-export chains and a reason string for one export. Use it before deleting an export that looks unused.
Try: “Why does fallow think formatDate in src/utils/date.ts is unused?”
Files ·
trace_exportShows every import edge for a file
Lists a file's reachability, entry-point status, exports, what it imports, what imports it and its re-exports, so you can tell if it is isolated or live.
Try: “Who imports src/legacy/old-api.ts, and is it still reachable?”
Files ·
trace_fileShows where a package is imported
Returns the files that import a package, the ones that only use its types, a count, and whether package scripts or CI configs call it.
Try: “Where do we use lodash, and can we remove it?”
Files ·
trace_dependencyOpens one duplicate-code group in detail
Shows one clone group chosen by file and line or by fingerprint, with every instance and a suggestion for extracting a function.
Try: “Show me the duplicate group at src/api/users.ts line 40.”
Files ·
trace_cloneFinds the shortest import path between two files
Returns whether one module can reach another through imports and the chain of hops between them. An unreachable pair is a valid answer.
Try: “How does the checkout page end up importing the admin module?”
Files ·
trace_import_pathTraces exact TypeScript references with the type checker
Follows exact symbol references, namespaces, aliases and re-export hops using type-aware analysis. It adds proof to the project-wide usage data and does not return compiler errors.
Try: “Trace every reference to the User type exported from src/models.ts.”
Files ·
trace_symbolShows what a rename or deletion would break
For a TypeScript export, returns its exact consumers, the files affected transitively and the tests to run. It supports planning and does not replace the compiler.
Try: “What would break if I renamed parseConfig in src/config.ts?”
Files ·
symbol_impactLists files affected by changing one file
Returns the transitive set of affected files that are not in your diff, and the gaps where modules that rely on the file's contract may need coordinated changes.
Try: “Which other files could be affected if I change src/auth/session.ts?”
Files ·
impact_closureFinds functions that do the same thing in different words
Searches for semantically similar functions with a pinned local model and returns unverified candidates with scores. It never downloads a model, and asks you to run the setup command if one is missing.
Try: “Find functions in src that look like duplicates of each other even if the code differs.”
Files ·
find_similar_codeChecks one similar-code candidate with evidence
Reproduces one candidate and returns source, graph, ownership, churn, test and side-effect evidence so you can judge it. It writes no verdicts and edits no code.
Try: “Show me the evidence for similar-code candidate abc123.”
Files ·
inspect_similar_codeLists the few design decisions in a change that matter
Picks out the few structural decisions in a diff: a new dependency between zones, a new or changed public API, or a new third-party dependency, each with the kind of expert to ask.
Try: “What are the key design decisions in this pull request?”
Files ·
decision_surfaceShows what auto-fix would change, without changing it
Runs a dry run of the auto-fix and reports what it would remove. No files are changed.
Try: “Preview what fallow would auto-fix in this project.”
Files ·
fix_previewApplies the auto-fixes to your code
Edits your project to apply fixes. It removes unused exports, may delete dead enum declarations, deletes unused dependencies from package.json, removes unused enum members and pnpm catalog entries, and adds ignore rules to the fallow config.
Try: “Apply the safe auto-fixes for unused exports and dependencies.”
Delete ·
fix_applyPlans mutation tests without running them
Lists the code mutations that would be tested, with locations, operators and static test files. It never runs tests, and the real run is a separate command that does.
Try: “Plan mutation testing for the files I changed.”
Files ·
mutation_planShows one mutation from a saved report
Shows the original and mutated code, the covering tests and the killing test for one mutant in a saved report. It never runs tests.
Try: “Show me mutant m-42 from the last mutation report.”
Files ·
mutation_inspectCombines production coverage data with the health report
Takes a V8 coverage directory or Istanbul file and returns verdicts such as safe to delete, review required and low traffic, plus hot paths. A single local capture is free, and continuous monitoring needs a license.
Try: “Use this coverage folder to tell me which functions are never called in production.”
Files ·
check_runtime_coverageLists the busiest functions from production coverage
Returns production hot paths ranked by percentile and call count, each with a cost estimate to help pick speed work. Same inputs and license rules as the runtime coverage tool.
Try: “Which functions are the hottest paths in this coverage dump?”
Files ·
get_hot_pathsRates how risky changing a function is
Returns caller counts, traffic-weighted reach and a low, medium or high risk band for functions, using runtime coverage data.
Try: “How risky is it to change the functions in this coverage report?”
Files ·
get_blast_radiusScores how important each function is in production
Returns a 0 to 100 importance score per function from invocations, complexity and owner count, with a short reason.
Try: “Rank the most important functions in production by importance.”
Files ·
get_importanceLists code that looks safe to delete
Returns verdicts for cleanup review: safe to delete, review required, low traffic or coverage unavailable, based on runtime coverage data.
Try: “What code can I safely clean up according to this coverage data?”
Files ·
get_cleanup_candidatesShows where each design token is used
For Tailwind v4 theme tokens and CSS-in-JS tokens, returns where each token is defined and a count and sample of its consumers. It needs no runtime data.
Try: “Where is the --color-brand token used across the codebase?”
Files ·
get_token_blast_radiusPulls production usage data from Fallow Cloud
Fetches a runtime-context slice for a repo from Fallow Cloud. It needs a cloud API key from an organization on the Pro or Enterprise plan or an active trial.
Try: “Get the last 30 days of production context for my-org/my-repo from Fallow Cloud.”
Network ·
get_cloud_runtime_contextPulls production facts for changed files from Fallow Cloud
Reads production facts for a few changed files or functions from Fallow Cloud without a full pull. It needs a cloud API key.
Try: “What does production say about the files in this change for my-org/my-repo?”
Network ·
get_cloud_review_packetShows how production behavior changed between deployments
Reads, for each function, how its production activity changed between two deployments, such as newly called or heated up. It needs a cloud API key and gives context, not a deletion verdict.
Try: “How did production behavior change between the last two deployments of my-org/my-repo?”
Network ·
get_cloud_deployment_changesFinds feature flags in the code
Detects environment-variable flags, calls to common flag providers and config-object flags. A top option limits the results.
Try: “List all feature flags in this codebase.”
Files ·
feature_flagsReads the opt-in value report for the project
Shows current finding counts, the trend since the last recorded run, and what the pre-commit gate contained. It runs no analysis and reads a history file stored outside the repo.
Try: “How has the number of findings changed since fallow was added?”
Files ·
impactCombines the value reports of every tracked project
Sums the value reports of all projects tracked on this machine, using hashed project keys instead of paths. It runs no analysis.
Try: “Show the combined fallow impact across all my projects.”
Files ·
impact_allMaps a stack trace to the code it names
Takes pasted stack trace text and classifies each frame as in your project, in node_modules or outside the corpus. It then resolves your project's frames to definitions. It reads no source maps.
Try: “Here is a stack trace. Which of these frames are in my code?”
Files ·
trace_errorUsed by the assistant behind the scenes
Lists the fallow-ignore comments in your code
Lists active suppression markers by file with line, kind, reason and whether each is stale, so you can see what a clean result hides.
Try: “Which findings are suppressed with fallow-ignore, and are any stale?”
Files ·
list_suppressionsShows your architecture zones and access rules
Returns boundary zone definitions, access rules, file counts per zone and logical groups. If none are configured it says so.
Try: “Show me the architecture boundary zones for this project.”
Files ·
list_boundariesProposes a fallow config for a project that has none
Detects the framework, workspace and tooling and returns a proposed config plus the decisions behind each setting. It writes nothing.
Try: “Propose a fallow config for this repo.”
Files ·
recommendRuns several read-only analyses in one script
Runs a short JavaScript snippet in a sandbox that can call fallow's read-only analyses together. The sandbox has no filesystem, network or shell access, and tools that change files are not available.
Try: “Run dead-code and duplication analysis together and give me one combined summary.”
Read ·
code_executeShows the project's plugins, files and entry points
Returns project metadata such as detected plugins, file list, entry points and boundaries, with options to return only some sections.
Try: “Which entry points and plugins did fallow detect for this project?”
Files ·
project_infoExplains one kind of finding
Explains an issue type with its rationale, an example and fix guidance, without running any analysis.
Try: “Explain what an unused-export finding means and how to fix it.”
Read ·
fallow_explain
From the official docs
Permissions
high risk · 5 things to watch · 4 advisories
High risk
One tool applies fixes that edit files and delete unused dependencies, and there is no read-only switch. Keep the project in git, and have the assistant run the preview first.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can delete code and dependencies
The fix tool removes unused exports, deletes unused dependencies from package.json and may delete dead enum declarations. Ask for the preview first and keep your work committed. github.com
Some analysis tools write files
Four tools can save a baseline or snapshot file, inside the project root, the CI workspace or the temp folder. A host that auto-approves read-only tools now asks before running them. fallow.tools
Cloud tools send requests to Fallow Cloud
They are the only tools that make a network call, and they need an API key from an organization on the Pro or Enterprise plan or an active trial. Skip them if code context must stay local. fallow.tools
It starts the fallow command for some options
For options only the command line has, the server runs a fallow subprocess. The FALLOW_BIN setting picks which binary, and the default is fallow on your PATH. fallow.tools
Telemetry is off unless you opt in
The README says analysis runs on your machine or CI runner and telemetry is opt-in. github.com
Security advisories
4 known advisories, all fixed in a newer version.
- fallow's hooks install interpolates the remote default branch name unvalidated into the generated pre-commit hook, so a crafted branch name executes attacker commands at commit timehigh · Fixed in 3.37.0 · GHSA-q7hv-gh62-p89c
- A base commit could make Git read a repository config from inside the audit base snapshotlow · Fixed in 3.37.0 · GHSA-5h8g-6c9w-67vw
- Fallow: A .* glob segment let an analyzed repository make Fallow test paths in the parent of the project rootlow · Fixed in 3.34.0 · GHSA-h4fr-cmh5-qr62
- Fallow: Jest and Vitest projects entries let an analyzed repository make Fallow read files outside the project rootlow · Fixed in 3.34.0 · GHSA-jfwm-3p3c-6hx5
Technical details
| Turning on read-only | No read-only mode is documented. The fix_apply tool edits files, and four analysis tools can save baseline or snapshot files. |
|---|---|
| Talks to | Fallow Cloud, only for the three cloud tools |
| Sign-in and keys | Local analysis needs no credentials. The cloud tools read FALLOW_API_KEY from the server environment, or the key stored by the fallow cloud login command. |
| Scopes |
|
Questions
Is the Fallow MCP server free?
Yes for local analysis. The package is MIT licensed and needs no account. The cloud tools need an API key from a Pro or Enterprise organization or an active trial, and continuous runtime-coverage monitoring needs a license.
Do I need MCP to use Fallow with an AI assistant?
No. The docs say any agent that can run shell commands can call the Fallow command line directly, and that is the main interface. The MCP server adds typed tools on top.
Can Fallow delete my code?
Yes, through the apply-fixes tool. It removes unused exports and unused dependencies and may delete dead enum declarations. The preview tool shows the changes first and edits nothing.
Does Fallow send my code anywhere?
Not for local analysis. The README says analysis runs on your machine or CI runner. Only the cloud tools contact Fallow Cloud, and telemetry is opt-in.
Why does the server fail to start with ENOENT?
The plain fallow-mcp command needs the program on your PATH, and a project-local install is not on it. Use the npx command from the install box above, which finds it, and start your assistant from the project root.
Why does Claude Code ignore my Fallow config?
Claude Code does not read MCP servers from .claude/settings.json and gives no error. Add the server with the claude mcp add command or put it in .mcp.json in the project root.
How many tools does Fallow have?
The vendor docs list 41 and the current source registers 43, including two cloud tools. The count can change between versions, and the tools section above lists all 43.
What does fallow agent install do?
It sets up Claude Code, Codex and Cursor in one pass. It writes an AGENTS.md task map, installs two skills, registers the MCP server and adds a gate on git commit and git push. Run it with the dry-run option first to see the plan.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
fallow- Registry
- npm
- Transport
- stdio
- Auth
- None
- Version
- 3.38.1
- License
- MIT
- Last commit
- Oct 31, 2026
- Open issues
- 20
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- Fallow README · github.com
- Fallow agent integration: MCP · fallow.tools
- Fallow MCP server source · github.com