Atlas / MCP servers / timohaa / scopewalker-mcp

scopewalker-mcpSAFE

mcp/timohaa/scopewalker-mcp

Codebase analysis MCP server for AI agents: complexity metrics, size thresholds, prop drilling, and code smell detection built on tree-sitter and tokei.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
9 9r · 0w · 0d
Transport
stdio
License
MIT
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://buymeacoffee.com/thaanpaa?utmsource=scopewalker-mcp&utmmedium=readme&utm_campaign=funding)

AI agents will happily create 1000+ line source files and add a 20th parameter to a function call, even if there's a rule file telling them not to. Scopewalker exists to enforce stricter codebase standards.

It's a local MCP server (open source, runs over stdio, makes no network calls) that exposes 9 read-only tools:

  • get_line_counts - per-file line counts (total, code, blank, comment) with sorting, extension filters, and project-wide totals
  • get_functions - function and method detection; per-file counts, or per-function line metrics via detail=lines with a min_lines filter for hunting oversized functions
  • get_complexity_metrics - max/average nesting depth and parameter counts (JSX props included), import counts, a per-file cognitive-complexity score, and per-function cyclomatic complexity with high/extreme severity bands, plus hotspots flagged for deeply nested or over-parameterized functions
  • check_thresholds - flags files and functions exceeding size thresholds (defaults: 300 lines per file, 100 per function)
  • get_code_inventory - classes with their methods, functions, interfaces/types, enums, and constants, each marked exported or not; private symbols hidden by default
  • get_documentation_coverage - coverage percentage plus every function, class, or method missing a doc comment (JSDoc, Python docstrings, Rust ///, and other per-language formats)
  • get_code_smells - TODO/FIXME/HACK/XXX/BUG/UNUSED/DEPRECATED markers found by scanning actual comments via the AST (no false positives from string literals), plus as unknown as / as any as double casts in TypeScript
  • get_prop_drilling - parameter names threaded through many functions and files, with forwarding evidence and a high/medium/low risk
Read from source at commit 6068986cce6aOBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code (npm)
claude mcp add scopewalker-mcp -- npx -y [email protected]
03

Exposed tools (9)

9 read · 0 write · 0 destructive.

ToolRiskDescription
check_thresholdsread
find_dead_coderead
get_code_inventoryread
get_code_smellsread
get_complexity_metricsread
get_documentation_coverageread
get_functionsread
get_line_countsread
get_prop_drillingread
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (5)

MEDIUMInventory / provenance · inv.binary · CWE-1104
src/tools/codeInventoryGoMethods.ts
codeInventoryGoMethods.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.hidden_file · CWE-1104
.markdownlint.json
.markdownlint.json
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
.mcpbignore
.mcpbignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/lib/glob.test.ts:103
extensions: ["ts,../../outside/*"],
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, fast-glob, ignore, tree-sitter, tree-sitter-c, tree-sitter-cpp, tree-sitter-go, tree-sitter-java
Why it matters. 28 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha 6068986cce6afull audit observations/trust-audit/mcp-server/timohaa__scopewalker-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-116068986cce6aSAFEB89first audit
06

Questions

What is the scopewalker-mcp MCP server?

Codebase analysis MCP server for AI agents: complexity metrics, size thresholds, prop drilling, and code smell detection built on tree-sitter and tokei.

What tools does scopewalker-mcp expose?

9 in total: 9 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is scopewalker-mcp safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does scopewalker-mcp need?

No credential environment variables were found in its source, so it appears to need none.

How does scopewalker-mcp run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as scopewalker-mcp at 1.4.0.

How current is this page?

The grade is for one exact copy of the source (6068986cce6a), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement