Provides structural analysis tools for AI agents to understand code impact, call graphs, and symbol relationships without using LLM tokens.
Also known as GhostlyGawd/codeweb, @ghostlygawd/codeweb
- Stars
- 0
- Tools
- —
- Downloads, 30 days
- 282
- Latest version
- 0.15.0
- Last commit
- Nov 9, 2026
- License
- MIT
What is codeweb MCP?
codeweb provides structural analysis tools for AI agents to understand code impact, call graphs, and symbol relationships without using LLM tokens.
Summary generated from the project's README
About codeweb MCP server
Codeweb provides structural analysis tools designed to help AI agents understand the impact of code changes through call graphs and symbol relationships. It operates entirely on your local machine without requiring accounts, servers, or telemetry. The system performs static analysis to map functions, classes, and methods, allowing agents to query the codebase structure instead of relying on less accurate methods like grep.
Developers can use this MCP server to provide agents with 28 specialized tools, such as codeweb_impact, codeweb_callers, and codeweb_find_similar. These tools return bounded structural answers, which helps keep the agent's context window small and focused on implementation. Because the analysis is deterministic and does not use LLM tokens for the mapping process, it is efficient and cost-effective for large repositories. The server can map 3,000 symbols in approximately 3 seconds, providing a clear view of duplicated logic, dead code, and domain coupling.
What you can do with it
- 1Assess code change impactAn AI agent can determine the blast radius of a specific function edit before writing any code.
- 2Identify all function callersDevelopers can use the server to find every symbol that calls a specific function to avoid breaking dependencies.
- 3Detect logic duplicationThe tool helps identify instances where different functions perform the same work across the codebase.
- 4Automate structural regression testingYou can use the gate feature to fail pull requests that introduce dependency cycles or orphan symbols.
Written from the project's README. Every use case is checked against a quote from it.
How to install codeweb MCP
Formats verified 10 Nov 2026Install codeweb MCP in Claude Code
$ claude mcp add codeweb -- npx -y @ghostlygawd/codewebInstall codeweb MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"codeweb": {
"command": "npx",
"args": [
"-y",
"@ghostlygawd/codeweb"
]
}
}
}Install codeweb MCP in VS Code
.vscode/mcp.json
{
"servers": {
"codeweb": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ghostlygawd/codeweb"
]
}
}
}Install codeweb MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"codeweb": {
"command": "npx",
"args": [
"-y",
"@ghostlygawd/codeweb"
]
}
}
}Install codeweb MCP in Codex
~/.codex/config.toml
[mcp_servers.codeweb] command = "npx" args = ["-y", "@ghostlygawd/codeweb"]
Install codeweb MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"codeweb": {
"command": "npx",
"args": [
"-y",
"@ghostlygawd/codeweb"
]
}
}
}Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachableghostlygawd/codeweb is public and reachablegithub.com/ghostlygawd/codeweb ↗Pass
- Package names this repository as its source@ghostlygawd/codeweb names ghostlygawd/codeweb as sourcenpmjs.com/package/@ghostlygawd/codeweb ↗Pass
- Build provenance (Sigstore attestation)Sigstore attestation for @ghostlygawd/codewebnpmjs.com/package/@ghostlygawd/codeweb/v/0.15.0#provenance ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-11-09github.com/ghostlygawd/codeweb ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from @ghostlygawd/codewebPass
- No critical advisory in the package or its dependencies2 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubFree & MIT-licensed. Runs entirely on your machine — no account, no server, no telemetry. Reads your code; never executes it.
Website · Gate every PR · See it in action · Install · Use · For agents (MCP: Model Context Protocol) · How it works · Free forever · Changelog
See what your AI edits affect.
npx -y @ghostlygawd/codeweb .
Structural checks for AI code changes. codeweb's gate builds the call graph before and after a change, then fails the pull request on three regressions: a new dependency cycle, a new body-confirmed duplication, or an existing non-exported symbol that becomes an orphan with no mapped callers. Gate conditions and limits.
No LLM is in the checks. The gate uses zero model tokens for its static analysis. A passing check does not prove the program works. Analysis can miss dynamic relationships; inspect unresolved results and run the relevant tests. Pure removals pass the structural rules.
The verdict uses the mapped graph, not a model, and costs zero LLM tokens. Exported symbols are exempt
from the diff’s orphan check. Inspect analysis.checks: skipped
checks are not passes, and refresh drops the evidence needed to evaluate duplication.
A green result does not establish complete dependency coverage or behavioral correctness. Pure removals do not count as structural regressions. Put it on your PRs →
The gate needs a map to compare, and that map is worth reading on its own.
codeweb reads your code. It maps supported functions and the calls it can resolve between them. It maps 3,000 symbols in approximately 3 seconds. Static analysis produces the same map from the same code. No LLM is in the mapping loop.
Static extraction can omit unsupported layouts, ambiguous calls, and runtime dispatch; the map is not a completeness guarantee.
Your coding agents query the map instead of using grep. In measured tests, agents that used grep missed more than half of a function's real callers (see the measurements). An incomplete caller list can cause an agent to break code that it did not inspect.
- Give agents structural data: The Model Context Protocol (MCP) server provides 28 tools,
including
codeweb_impact,codeweb_callers, andcodeweb_find_similar. - Keep answers small: Each query returns a bounded structural answer. Your agents can use their remaining context for implementation work.
- Inspect the same data: The interactive report shows the extracted codebase map.
The map also shows relationships that are not visible in one file. These relationships include duplicated logic, dead code, hotspots, and tangled domains.
Try it on your repo
cd your-project
npx -y @ghostlygawd/codeweb .
For a repository with 3,000 symbols, the first map takes approximately 3 seconds. Open
.codeweb/report.html to inspect the map.
Gate every pull request
From a Codeweb source checkout, run the verdict locally; the GitHub Action can run it on every pull request:
node scripts/ci-gate.mjs --base origin/main --target src # exit 1 on a structural regression
The gate builds the graph from the pull request base and from its head, then diffs them. It posts a sticky structural review comment either way, so reviewers see the blast radius without installing anything.
Pin the Action to a release tag, not a moving branch: a floating ref can change your gate's
verdict semantics under you. Pin codeweb-ref to the same tag so the engine is fixed too. The
workflow YAML, the monorepo matrix form, and every input live in
docs/ci-gate.md.
Want the gate hosted — no workflow YAML, cached base graphs, and history across every repo in the org? That is the planned scope of codeweb Teams, the paid half of the boundary. Running it yourself stays free forever.
See it in action
Each screenshot below shows a generated report for axios (280 symbols, 7 domains). The screenshots are not mockups.
codeweb found 3 real duplications in axios and rejected 12 false positives. Read the case study, or inspect the live map.
Know what an edit breaks — before you write
Select a function in the live map. The map highlights the function's blast radius and shows the symbols that the change can affect.
Your agents can get the same answer from the codeweb_impact MCP tool before they edit the code.
Navigate the whole system
The force-directed map shows the extracted symbols. You can collapse symbols into domains. Search, drag, zoom, or select a node to trace its callers and dependencies.
Findings — stop guessing what to refactor
The Findings tab ranks duplication, highly connected hotspots, and likely dead code. Select a row to inspect the symbol's callers and dependencies.
See duplication density, and where domains tangle
codeweb works at symbol resolution. It maps functions, classes, methods, and the call and import edges between them. A file-level scanner can show that two modules are similar. codeweb can show that two functions do the same work, identify their callers, and calculate the effect of a merge.
Benchmarks
- Find callers before an edit: In the v0.9.0 efficiency pilot, agents found 74% of a function's real callers with codeweb and 44% with grep at the same context spend. A missed caller can cause an edit to break working code.
- Calculate the effect of a change: One codeweb call returned one small answer. A simulated graph-assisted grep loop used 126 times the context size in the recorded comparison. This measures context-size differences, not total agent-session token savings.
- Detect duplicate code: codeweb found every planted duplicate with zero false alarms, including renamed copies. Text search found 0% of the renamed copies.
- Check deterministic results: Tests compared codeweb with the TypeScript compiler and other independent implementations more than 490,000 times, with zero disagreements.
- Map and query quickly: The first map takes approximately 3 seconds for a repository with 3,000 symbols. Queries take approximately 0.1 seconds. A repository with twice as many symbols takes approximately 1.3 times as long to map.
- Understand the limits: A new map after a very large edit can take more time. Agents also completed simple tasks successfully without codeweb.
Methodology, raw data, and per-claim receipts:
the evidence ledger. Benchmark your own
repo from a Codeweb source checkout: npm run bench -- <path>/.codeweb/graph.json. CI re-runs the performance budgets on
every PR; breaking a published number fails the build.
codeweb also keeps a local activity tally. From a Codeweb source checkout, run npm run stats to see it:
codeweb this month: 41 pre-edit card(s) · 5 card-named caller(s) followed · 2 regression(s) flagged · 120 queries served
To evaluate a dependency, point codeweb at a repository that you do not own:
/codeweb https://github.com/owner/repo. codeweb makes a read-only clone, maps the clone, and
adds an adoption review. codeweb does not execute the target code.
Install
Free & MIT-licensed. Runs entirely on your machine — no account, no server, no telemetry. Reads your code; never executes it.
- codeweb requires Node.js ≥ 22.
- codeweb has zero required dependencies. CI verifies operation with an empty
node_modulesdirectory. - The optional
web-tree-sitterwasm grammar improves extraction. codeweb does not require it. - CI publishes releases with npm provenance. Run
npm audit signaturesto verify a release.
Using Claude Code? Install the plugin to add the /codeweb command, automatic pre-edit
impact cards, and all 28 tools:
/plugin marketplace add GhostlyGawd/codeweb
/plugin install codeweb
Restart Claude Code to register the /codeweb command, agents, and skill.
Using Codex? Install the bundled coding skill and local MCP server:
codex plugin marketplace add GhostlyGawd/codeweb
codex plugin add codeweb@codeweb
Reload Codex, then use $codeweb to inspect callers before an edit, compare existing
implementations, or review a structural change. The plugin uses your existing tool permissions.
The plugin/MCP workflow is verified with Codex CLI 0.159.2 and 0.160.0. If a client does not expose bundled tools, use the standalone MCP recipe below with the coding skill. Manage each configured entry when disabling or removing Codeweb. This workflow does not claim automatic hook delivery.
Choose your MCP client: The setup page provides one recipe for Claude Code, Cursor, Windsurf, Gemini CLI, or Codex. Print a recipe and check local setup from your project:
npx -y @ghostlygawd/codeweb setup --client cursor
npx -y @ghostlygawd/codeweb doctor
Setup prints configuration without replacing files. Doctor checks the local server and graph;
a successful local check does not prove an editor connection. Restart your client, ask your
agents to run codeweb_callers, and check a returned source location.
Map a repository without an AI agent: Run one command from your project directory:
cd your-project
npx -y @ghostlygawd/codeweb . # ~3 s for 3,000 symbols — then open .codeweb/report.html
For a temporary evaluation, use the npx command. It creates the map without a permanent
installation.
Run the engine from a clone:
git clone https://github.com/GhostlyGawd/codeweb.git
node codeweb/scripts/run.mjs /path/to/your/project
docs/cli.md lists each executable, flag, and exit code.
VS Code: editor/vscode-codeweb shows an
N callers · blast M lens above each mapped symbol. Select the lens to open the report.
What you can do
Each link lands on full docs, flags, and examples in the reference.
- Know before you edit: Find callers, calculate the effect of a change, and check for an existing implementation. → Query the graph · context & pre-flight
- Gate every edit: Get a structural regression result for an edit, pull request, or
architecture rule.
→ The
diffverdict · the PR gate · the capability suite - Clean up, ranked: Rank consolidation and dead-code work by evidence.
→
optimize·hotspots·campaign·trend
Use
/codeweb # map the current project
/codeweb src/payments --depth symbol # deep-dive one subsystem
/codeweb https://github.com/owner/repo # external review before adopting
/codeweb owner/repo --open # clone, map, and open the report
Available flags include --depth module|symbol|auto, --engine hybrid|read|tools,
--focus <glob>, --mode internal|external, and --open. See commands/codeweb.md for details.
codeweb writes all outputs to <target>/.codeweb/. Agents and other tools can read graph.json.
You can open report.html. codeweb also creates Markdown versions.
See the description of each output file.
Use it as an MCP tool
scripts/mcp-server.mjs is a zero-dependency Model Context Protocol (MCP) stdio server. It gives
MCP clients access to 28 tools. The tools help the client orient, read the structure,
check before writing, gate an edit, and plan cleanup.
The September 14 packaged assessment exercised the baseline loop with Codex CLI 0.154.0; it did not certify every tool in every client. Claude runtime compatibility and other clients were not tested in that assessment. See the recorded scope.
The plugin registers the server automatically. To register the standalone server, run:
claude mcp add codeweb -- npx -y -p @ghostlygawd/codeweb codeweb-mcp
Requires Codeweb 0.15.0 or later. Use the installed MCP server, or register a source checkout using its absolute path as shown in the reference.
The loop an agent runs:
- Orient with
codeweb_brief(orcodeweb_findwhen no symbol name is known). - Before editing, call
codeweb_refresh {baseline:true}once to capture fresh source. Askcodeweb_explain, thencodeweb_context,codeweb_impact, orcodeweb_dependentsabout the symbol before changing it. - After editing, call
codeweb_diff {before:"baseline",refresh:true}. - If red, repair the code and repeat that same diff against the same baseline.
Do not capture another baseline during repair:
baseline:truereplaces the original. Ordinary and automatic refreshes preserve it. Start a new baseline for the next task.
Known unsupported same-line JS/TS declarations produce status: "inconclusive" and
ok:false instead of a clean gate. Inspect the diagnostic locations and callers in source.
The detector covers known layouts; no diagnostic does not prove complete extraction.
Read analysis.checks: a skipped check is not a pass. Refresh drops overlap evidence, so
this loop does not evaluate duplication; structural green does not prove behavioral
correctness. Run the project's tests too. If the baseline is missing, edited source cannot
reconstruct it — recover the pre-edit source before beginning again.
For npm v0.14.0, use the snapshot quickstart. For the unreleased checkout, try the tiny cycle → repair → green walkthrough. Clients that hide the server's built-in instructions can paste the rules snippet instead.
The server includes these agent-specific features:
- Optional
graphargument: The server finds the nearest map when you omitgraph. If no map exists, the error directs the agent tocodeweb_map. - Budgeted responses: Responses include the highest-ranked items and the true totals. A context response that was approximately 300 KB is now approximately 10 KB.
- Staleness information: A stale result identifies its state and directs the agent to
codeweb_refresh— on the orient tools and on every spawned advisor answer.
All 28 tools, grouped and explained →
How it works
For JavaScript, TypeScript, Python, Rust, Go, Java, C#, Ruby, PHP, Kotlin, Swift, C, and C++, codeweb uses a deterministic Node pipeline by default. One command creates the map. No LLM is in the pipeline, and the same input produces the same bytes.
The map pipeline has the four stages in the following diagram. scripts/run.mjs also creates
optimize.md after overlap analysis and before report rendering.
- Extract (
extract-symbols.mjs) parses each source file into atomic nodes such as functions, classes, and methods. It also records call and import edges. If a bare call can refer to more than one definition, codeweb omits the edge instead of guessing. Per-file caching makes extraction incremental and byte-identical to a full rebuild. An imported.jsonfile enters the map as a file-level node without being parsed. An unreferenced.jsonfile stays out of the map, which prevents lock-file noise. - Cluster (
cluster3.mjs) removes genuine utility hubs and groups the remaining nodes into directory-anchored semantic domains. - Overlap (
overlap.mjs) detects duplicated logic and parallel implementations. It compares each candidate with the actual function bodies by using token-shingle similarity. This check prevents name coincidences from becoming findings. A structural pass over identifier-normalized skeletons also finds renamed Type-2 clones (find-similar --structural). - Render (
build-report.mjs) convertsgraph.jsoninto the self-containedreport.htmlandreport.mdfiles.
For a language that the extractor cannot parse, codeweb uses the agent path.
codeweb-dissector agents extract nodes and edges for each subsystem. codeweb-domain-mapper
then assigns domains and overlaps.
Both paths produce the same graph.json schema. In external mode, each path also adds an
adoption verdict.
Versus a language server (LSP): an LSP answers one hop on demand — definitions, direct references — inside an editor session. codeweb builds one deterministic whole-graph artifact: transitive impact, duplication with body evidence, dead code, and domain coupling.
Agents query that artifact over MCP, and CI diffs it to gate a PR. The two compose — codeweb replaces the grep loop, not your language server.
Choose a reading path in the documentation index, which also explains repository ownership. The component map details the engine.
Roadmap
- Support more first-class languages: codeweb currently supports thirteen native languages:
JavaScript, TypeScript, Python, Rust, Go, Java, C#, Ruby, PHP, Kotlin,
Swift, C, and C++. Other languages use the agent fallback. Dynamic-dispatch AST tiers
cover JS/TS, Java, C#, Python, Go, Rust, Ruby, PHP, C, and C++. Kotlin and Swift
dispatch requires a trusted wasm grammar at the pinned ABI. See
scripts/grammars/PROVENANCE.md.
Recent releases added the agent-intelligence suite (hotspots, campaign, reading-order, Type-2 clone detection, and suppression memory), a live interactive demo, Go and Rust on the fast path, duplication trend data, and the one-command CI regression gate with a GitHub Action. codeweb currently provides 28 tools.
codeweb MCP questions
How do I add codeweb MCP to Claude Code?
Run claude mcp add codeweb -- npx -y @ghostlygawd/codeweb in your terminal. Add --scope user to make it available in every project.
How do I add codeweb MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
Does codeweb use an LLM for its analysis?
No, the tool uses static analysis and does not use any LLM tokens for its mapping or structural checks.
How does codeweb compare to using grep for finding callers?
In measured tests, agents using codeweb found 74% of real callers compared to only 44% using grep at the same context spend.
Is my code sent to a server or used for telemetry?
No, the tool runs entirely on your local machine with no account, no server, and no telemetry.
What kind of structural regressions does the gate detect?
The gate identifies new dependency cycles, new body-confirmed duplications, or existing non-exported symbols that become orphans.