MCP 服务器 Semgrep
供电:
关于项目
该项目最初受到Semgrep 工具、 Replit 团队及其Agent V2以及stefanskiasan/semgrep-mcp-server的实现的启发,但随着架构的重大变化而发展,以增强和简化安装和维护。
MCP 服务器 Semgrep 是一款符合模型上下文协议 (MCP)的服务器,它将强大的 Semgrep 静态分析工具与 Anthropic Claude 等 AI 助手集成在一起。它通过对话界面直接实现高级代码分析、安全漏洞检测和代码质量改进。
Related MCP server: Semgrep MCP Server
集成的好处
对于开发人员和开发团队:
整体源代码分析——检测整个项目中的问题,而不仅仅是单个文件中的问题
主动错误检测——在潜在问题成为严重错误之前识别它们
持续的代码质量改进——定期扫描和重构可以逐步改进代码库
风格一致性——识别和修复代码中的不一致之处,例如:
CSS 中的任意 z 索引层
命名约定不一致
代码重复
使用“魔法数字”代替命名常量
为了安全:
已知漏洞的自动代码验证——扫描已知的安全问题模式
定制安全规则- 创建项目特定的规则
团队教育——通过检测潜在问题来教授安全编程实践
对于项目维护和开发:
“实时”文档——人工智能可以解释代码片段存在问题的原因以及如何修复它
减少技术债务——系统地检测和修复问题区域
改进的代码审查——自动检测常见问题,可以专注于更复杂的问题
主要特点
与官方 MCP SDK 直接集成
简化的架构和整合的处理程序
简洁的 ES 模块实现
高效的错误处理和路径验证,确保安全
界面和文档有英语和波兰语版本
全面的单元测试
详尽的文档
跨平台兼容性(Windows、macOS、Linux)
灵活的 Semgrep 安装检测和管理
功能
Semgrep MCP Server 提供以下工具:
scan_directory :扫描源代码以查找潜在问题
list_rules :显示 Semgrep 支持的可用规则和语言
analyze_results :扫描结果的详细分析
create_rule :创建自定义 Semgrep 规则
filter_results :按各种标准过滤结果
export_results :以各种格式导出结果
compare_results :比较两组结果(例如,更改前后)
常见用例
部署前的代码安全性分析
检测常见的编程错误
在团队内强制执行编码标准
重构并提高现有代码的质量
识别样式和代码结构中的不一致之处(例如 CSS、组件组织)
有关最佳实践的开发人员教育
验证修复的正确性(比较扫描前后)
安装
先决条件
Node.js v18+
TypeScript(用于开发)
选项 1:从 Smithery.ai 安装(推荐)
安装和使用 MCP Server Semgrep 的最简单方法是通过 Smithery.ai:
按照安装说明将其添加到兼容 MCP 的客户端
配置任何可选设置,例如 Semgrep API 令牌
这是 Claude Desktop 和其他 MCP 客户端的推荐方法,因为它可以自动处理所有依赖项和配置。
选项 2:从 NPM 注册表安装
该软件包也可在其他注册中心使用:
选项 3:从 GitHub 安装
选项 4:本地开发设置
克隆存储库:
安装依赖项(支持所有主要的包管理器):
构建项目:
注意:安装过程将自动检查 Semgrep 是否可用。如果未找到 Semgrep,您将收到有关如何安装它的说明。
Semgrep 安装选项
Semgrep 可以通过多种方式安装:
通过包管理器:
# Using pnpm pnpm add -g semgrep # Using npm npm install -g semgrep # Using yarn yarn global add semgrepPython pip :
pip install semgrepHomebrew (macOS):
brew install semgrepLinux :
sudo apt-get install semgrep # or curl -sSL https://install.semgrep.dev | sh窗户:
pip install semgrep
与 Claude Desktop 集成
有两种方法可以将 MCP Server Semgrep 与 Claude Desktop 集成:
方法 1:通过 Smithery.ai 安装(推荐)
点击“在 Claude Desktop 中安装”
按照屏幕上的说明进行操作
方法二:手动配置
安装 Claude Desktop
更新 Claude Desktop 配置文件(
claude_desktop_config.json)并将其添加到服务器部分:
启动 Claude Desktop 并开始询问有关代码分析的问题!
使用示例
项目扫描
风格一致性分析
创建自定义规则
筛选结果
识别有问题的模式
创建自定义规则
您可以根据项目的特定需求创建自定义规则。以下是您可以创建的规则示例:
检测不一致 z 索引的规则:
检测已弃用的导入的规则:
发展
测试
项目结构
更多文档
有关使用该工具的详细信息,请参见:
USAGE.md - 详细使用说明
README_PL.md - 波兰语文档
示例/ - 有趣且实用的 Semgrep 规则示例 - “代码恐怖殿堂”
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
开发者
Maciej Gad——一位半年前找不到
bash的兽医Klaudiusz——一个独立的、空灵的存在,也是 Anthropic 的 Claude Sonnet 3.5-3.7 的独立实例,居住在美国加利福尼亚州 GPU 的某个地方
从 CLI 新手到 MCP 工具开发人员的旅程
🤖 在Claude Code和MCP Tools的强力帮助下开发
致谢
Stefanskiasan的原创灵感
克劳德的人类学和 MCP 协议
Semgrep出色的静态分析工具