article
README
🚀 CodeQL N1ght MCP 服务器
这是一个模型上下文协议(MCP)服务器,用于将 CodeQL N1ght 工具与 AI 助手集成,为 AI 助手提供与 CodeQL N1ght 工具交互的标准化接口,实现包括环境设置、数据库创建和安全扫描等自动化代码分析工作流程。
🚀 快速开始
运行 MCP 服务器的步骤如下:
- 安装依赖:
pip install -r requirements.txt
- 确保 CodeQL N1ght 可执行文件在配置的路径下(默认:
J:\mcp\codeql-n1ght.exe)。 - 以标准输入输出(STDIO)模式运行 MCP 服务器:
python codeql_n1ght_mcp_server.py
✨ 主要特性
- 环境安装:一键设置 JDK、Ant 和 CodeQL 依赖。
- 数据库创建:可使用可配置的反编译器从 JAR/WAR/ZIP 文件创建 CodeQL 数据库。
- 安全扫描:使用可定制的查询包执行安全扫描。
- 并行处理:支持协程和多线程。
- 灵活配置:可自定义路径、超时时间和缓存选项。
📦 安装指南
- 安装依赖:
pip install -r requirements.txt
- 确保 CodeQL N1ght 可执行文件在配置的路径下(默认:
J:\mcp\codeql-n1ght.exe)。
💻 使用示例
基础用法
运行 MCP 服务器:
python codeql_n1ght_mcp_server.py
高级用法
不同工具的使用示例如下:
version:获取 CodeQL N1ght 可执行文件的版本或帮助信息。install_environment:使用可选的自定义 URL 安装所需依赖(JDK、Ant、CodeQL)。create_database:从目标文件(JAR/WAR/ZIP)创建 CodeQL 数据库,可进行以下配置:- 反编译器选择(procyon/fernflower)
- 依赖处理(无/全部)
- 并行处理
- 缓存管理
scan_database:在 CodeQL 数据库上执行安全扫描,可配置以下内容:- 数据库和查询包路径
- 并行处理选项
- 缓存控制
run_codeql_n1ght:使用自定义参数直接执行命令的通用接口。
📚 详细文档
配置
- 默认可执行文件路径:
J:\mcp\codeql-n1ght.exe - 路径兼容性:支持 Windows (
J:\path) 和 Unix 风格 (/j:/path) 的路径格式。 - 超时时间:每个操作都可配置(一般操作默认 10 分钟,数据库/扫描操作默认 20 小时)。
响应格式
所有工具都返回标准化的响应格式:
{
"returncode": 0,
"stdout": "command output",
"stderr": "error output",
"timeout": false
}
错误处理
- 可执行文件未找到:如果缺少 CodeQL N1ght 可执行文件,则返回错误。
- 参数无效:验证反编译器和依赖选项。
- 超时管理:可配置超时时间并终止进程。
- 路径解析:自动进行路径规范化和验证。
📄 许可证
本项目是开源的,采用 MIT 许可证。
Scan to join WeChat group