使用说明
代码分析MCP服务器
项目概述
A. 模型上下文协议(MCP)服务器 它为AI助手提供了强大的代码分析功能。非常适合演示先进的软件工程概念,同时保持架构清晰易懂。
这个项目展示了什么
核心CS概念:
- 抽象语法树(AST) -解析和分析代码结构
- 静态代码分析 -查找错误、复杂性、模式
- API设计 -干净、类型安全的接口
- 协议实现 -JSON-RPC通信
- 文件系统操作 -递归目录遍历
- 数据结构 -用于代码表示的树、图、映射
- 算法设计 -模式匹配、复杂度计算
软件工程实践:
- TypeScript开发 -类型安全和现代JavaScript
- 错误处理 -强大的错误管理和日志记录
- 架构验证 -使用Zod进行运行时类型检查
- 模块化架构 -关注点分离
- 文档 -自文档化代码和API
- 测试策略 -单元和集成测试
建筑
Code Analysis MCP Server
├── Resources (Read-only data)
│ ├── codebase://project/structure # File tree and project info
│ ├── docs://generated/readme # Auto-generated README
│ └── (dynamic) # Other future resources
├── Tools (AI-callable functions)
│ ├── analyze_path() # Analyze *any* file OR directory
│ └── generate_documentation() # Generate docs from code
└── Prompts (templates)
└── code_review # Code-review helper
学习成果
- MCP协议 -深入了解客户端-服务器通信
- 代码分析 -ESLint、SonarQube等工具如何在内部工作
- AST操纵 -构建开发工具的基础
- 类型系统 -高级TypeScript模式
- API设计 -创建干净、可扩展的接口
- 错误处理 -生产就绪错误管理
- 软件体系结构 -可扩展、可维护的代码组织
“你会如何扩展这个系统?”
- Git集成服务器 -分析提交历史、公关差异
- CI/CD集成服务器 -构建指标,测试覆盖率分析
- 文档服务器 -从代码自动生成文档
- 安全分析服务器 -漏洞扫描、依赖性分析
- 性能监控服务器 -运行时分析、分析数据
- 团队分析服务器 -代码所有权、生产力指标
- 直接相关的 -每家公司都需要代码分析
- 高级概念 -展现出对CS的深刻理解
- 生产就绪 -正确的错误处理、记录、验证
- 可扩展设计 -添加功能的清晰路径
- 现代技术栈 -TypeScript,现代工具
- 清晰的文档 -展示沟通技巧
使用的技术
- TypeScript -类型安全开发
- Node.js -运行时环境
- MCP-SDK -协议实施
- AST分析器 -代码结构分析
- 萨德 -运行时模式验证
- 温斯顿 -专业测井
- 开玩笑 -测试框架
@代码分析{“路径”:“C:\Users\pasha\Desktop\N2N”}
🔧 用法
- 安装和构建
npm install npm run build - 启动服务器(已编译)
npm start # or: node dist/server.js - 连接克劳德桌面
更新(或创建)
claude_desktop_config.json:{ "mcpServers": { "code-analysis": { "command": "node", "args": ["--no-warnings", "dist/server.js"], "cwd": "C:\\Users\\<you>\\Desktop\\Mcp" } } } - 调用工具•如果
@code-analysis {"path": "C:\\Users\\<you>\\Desktop\\N2N"}path指向a 文件 ⇒ 返回具有LOC和圈复杂度的JSON。 •如果它指向a 目录 ⇒ 返回完整的项目结构报告(文件、语言、LOC等)。
工具输入/输出
| 工具 | 输入JSON | 返回 |
|---|---|---|
| 分析路径 | { "path": "<absolute-or-relative-path>" } |
纯文本JSON摘要(文件或目录) |
| 生成文档 | { "projectName": "MyApp", "format": "markdown" } |
Markdown或JSON文档 |
调试提示
• 服务器日志 → 标准错误(不会损坏MCP JSON)。
•如果光标显示 Unexpected token 错误,请确保您正在运行 dist/server.js (不是ts节点)。
•在任何TypeScript编辑后重新构建: npm run build.
•使用 LOG_LEVEL=debug node dist/server.js 以获得详细的输出。
