timohaa/scopewalker-mcp

GitHub: timohaa/scopewalker-mcp

面向 AI 编程助手的本地 MCP 服务器,用于执行代码库质量标准并检测复杂度与代码异味。

Stars: 0 | Forks: 0

# Scopewalker MCP AI agents 非常乐意创建 1000 多行的源文件,并在函数调用中添加第 20 个参数,即使有规则文件告诉它们不要这样做。Scopewalker 的存在就是为了执行更严格的代码库标准。 它是一个本地 MCP server(开源,通过 stdio 运行,不进行任何网络调用),提供 8 个只读工具: - `get_line_counts` - 每个文件的行数统计(总计、代码、空行、注释),支持排序、扩展名过滤和全项目总计 - `get_functions` - 函数和方法检测;可通过 `detail=lines` 查看每个文件的计数或每个函数的行数指标,并带有 `min_lines` 过滤器,用于查找过大的函数 - `get_complexity_metrics` - 最大/平均嵌套深度和参数计数(包括 JSX props)、import 计数,以及每个文件的认知复杂度评分,并标记深度嵌套或参数过多的函数作为热点 - `check_thresholds` - 标记超过大小阈值的文件和函数(默认:每个文件 300 行,每个函数 100 行) - `get_code_inventory` - 类及其方法、函数、接口/类型、枚举和常量,每个都标记是否导出;默认隐藏私有符号 - `get_documentation_coverage` - 覆盖率百分比,以及缺少文档注释(JSDoc、Python docstrings、Rust `///` 和其他特定语言格式)的每个函数、类或方法 - `get_code_smells` - 通过 AST 扫描实际注释找到的 TODO/FIXME/HACK/XXX/BUG/UNUSED/DEPRECATED 标记(字符串字面量不会产生误报),以及 TypeScript 中的 `as unknown as` / `as any as` 双重类型转换 - `get_prop_drilling` - 贯穿多个函数和文件的参数名称,带有转发证据和高/中/低风险评级 它底层使用 tree-sitter(解析)+ tokei(行数统计)+ fast-glob(文件发现);没有任何内容是自定义解析的。在 macOS 上结合 Claude Code 进行了测试,但应该适用于 Cursor、VS Code、Windsurf、Gemini CLI、Codex 或任何其他支持 MCP 的工具。 请参阅 [TOOLS.md](TOOLS.md) 获取快速参考,以及 [docs/](docs/) 了解各工具的参数和示例响应。 ## 安全默认设置 - **无网络访问:** 所有分析均通过 stdio 在本地运行——不会有任何数据离开您的机器,不涉及 API 密钥或外部服务。 - **路径范围限制:** 所有工具仅在允许的根目录(默认:当前工作目录和系统 temp)内运行。可通过 `SCOPEWALKER_ALLOWED_ROOTS=/abs/path1,/abs/path2` 进行覆盖。 - **大文件防护:** 基于 AST 的工具会跳过大于 1 MB 的文件,以避免过多的内存/CPU 消耗。基于 tokei 的行数统计不执行此限制。 - **输出限制:** 除非设置了 `limit`,否则工具默认返回 20 个文件/项目。 - **注释脱敏:** `get_code_smells` 默认隐藏注释文本;传入 `include_text: true` 可显式返回代码片段。 ## 环境要求 - Node.js 22+ - [tokei](https://github.com/XAMPPRocky/tokei) - 通过 `brew install tokei` 或 `cargo install tokei` 安装 ## 安装 Scopewalker 已发布到 npm,包名为 [`scopewalker-mcp`](https://www.npmjs.com/package/scopewalker-mcp)——无需克隆或构建。配置您的 MCP client 通过 `npx` 运行它(示例见下文),或者使用 `npm install -g scopewalker-mcp` 全局安装。 如果要从源码构建,请参阅[开发](#development)。 ## 配置 ### Claude Code ``` claude mcp add scopewalker-mcp --scope user -- npx -y scopewalker-mcp ``` 或者添加到 `~/.claude.json`: ``` { "mcpServers": { "scopewalker-mcp": { "command": "npx", "args": ["-y", "scopewalker-mcp"] } } } ``` 详情请参阅 [Claude Code MCP 文档](https://code.claude.com/docs/en/mcp)。 ### Claude Desktop 从[最新发布版本](https://github.com/timohaa/scopewalker-mcp/releases/latest)下载 `scopewalker-mcp.mcpb`,并使用 Claude Desktop 打开(或将其拖到“Settings > Extensions”中)以实现一键安装。 ### Cursor 添加到 `~/.cursor/mcp.json`(全局)或 `.cursor/mcp.json`(项目): ``` { "mcpServers": { "scopewalker-mcp": { "command": "npx", "args": ["-y", "scopewalker-mcp"] } } } ``` 或者通过“File > Preferences > Cursor Settings > MCP”进行配置。 详情请参阅 [Cursor MCP 文档](https://cursor.com/docs/mcp)。 ### VS Code (GitHub Copilot) 添加到您工作区的 `.vscode/mcp.json` 中: ``` { "servers": { "scopewalker-mcp": { "command": "npx", "args": ["-y", "scopewalker-mcp"] } } } ``` 需要 VS Code 1.102+ 且启用 Agent Mode。 详情请参阅 [VS Code MCP 文档](https://code.visualstudio.com/docs/agent-customization/mcp-servers)。 ### Windsurf 添加到 `~/.codeium/windsurf/mcp_config.json`: ``` { "mcpServers": { "scopewalker-mcp": { "command": "npx", "args": ["-y", "scopewalker-mcp"] } } } ``` 或者通过“Windsurf Settings > Cascade > Manage MCPs”进行配置。 详情请参阅 [Windsurf MCP 文档](https://docs.devin.ai/desktop/cascade/mcp)。 ### Gemini CLI 添加到 `~/.gemini/settings.json`: ``` { "mcpServers": { "scopewalker-mcp": { "command": "npx", "args": ["-y", "scopewalker-mcp"] } } } ``` 详情请参阅 [Gemini CLI MCP 文档](https://geminicli.com/docs/tools/mcp-server/)。 ### OpenAI Codex CLI 添加到 `~/.codex/config.toml`: ``` [mcp_servers.scopewalker-mcp] command = "npx" args = ["-y", "scopewalker-mcp"] ``` 或者使用 CLI: ``` codex mcp add scopewalker-mcp -- npx -y scopewalker-mcp ``` 详情请参阅 [Codex MCP 文档](https://developers.openai.com/codex/mcp/)。 ## 用法 配置完成后,AI 助手会自动调用 Scopewalker 的工具——无需特殊语法。您可以这样提问: - "在提交之前,检查这个仓库是否符合我们的大小阈值" - "`src/` 中哪些函数的认知复杂度最高?" - "找出 `src/auth` 中未记录文档的导出项" - "这个模块中还有遗留的 TODO/FIXME/HACK 标记吗?" - "给我展示接收超过 5 个参数的函数" 它会根据请求选择合适的工具和参数。 本仓库还通过 Claude Code 的 skills 和 agents 自用(dogfood)了其工具: - [`.claude/skills/check-quality/SKILL.md`](.claude/skills/check-quality/SKILL.md) — 作为质量门禁的一部分运行 `check_thresholds` 和 `get_code_smells` - [`.claude/agents/standards-enforcer.md`](.claude/agents/standards-enforcer.md) — 使用全套工具来查找并修复标准违规 - [`.claude/agents/docs-reality-sync.md`](.claude/agents/docs-reality-sync.md) — 使用 `get_code_inventory` 和 `get_functions` 保持文档与代码同步 ## 开发 如果要从源码运行而不是使用 npm: ``` git clone https://github.com/timohaa/scopewalker-mcp.git cd scopewalker-mcp npm install npm run build ``` 然后将您的 MCP client 指向构建输出,例如 `claude mcp add scopewalker-mcp --scope user -- node /path/to/scopewalker-mcp/dist/index.js`。 ``` npm run build # Build the project npm run check # Lint + typecheck npm run test # Run tests npm run test:coverage # Run tests with coverage ``` 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解贡献指南,以及 [docs/patterns.md](docs/patterns.md) 了解工具注册、错误处理和测试模式。 ## 支持的语言 基于 AST 的工具(除 `get_line_counts` 外的所有工具)可解析: - TypeScript/JavaScript (`.ts`, `.tsx`, `.js`, `.jsx`, `.mjs`, `.cjs`) - Python (`.py`) - Go (`.go`) - Rust (`.rs`) - Java (`.java`) - C/C++ (`.c`, `.h`, `.cpp`, `.cc`, `.cxx`, `.hpp`) - Ruby (`.rb`) `get_line_counts` 通过 tokei 运行,因此它会报告 tokei 识别的每一种语言。请参阅 [docs/tools-overview.md](docs/tools-overview.md#supported-languages) 了解每种语言的检测内容。 ## 许可证 MIT
标签:AI辅助编程, MCP服务器, MITM代理, Tree-sitter, 云安全监控, 代码规范, 代码质量分析, 自动化攻击, 静态分析