Back to MCP directory
publicPublicdnsLocal runtime

codeql_n1ght_mcp_server

这是一个为CodeQL N1ght工具提供标准化接口的MCP服务器,使AI助手能够自动化执行代码分析工作流,包括环境安装、数据库创建和安全扫描。

article

README

🚀 CodeQL N1ght MCP 服务器

这是一个模型上下文协议(MCP)服务器,用于将 CodeQL N1ght 工具与 AI 助手集成,为 AI 助手提供与 CodeQL N1ght 工具交互的标准化接口,实现包括环境设置、数据库创建和安全扫描等自动化代码分析工作流程。

🚀 快速开始

运行 MCP 服务器的步骤如下:

  1. 安装依赖:
pip install -r requirements.txt
  1. 确保 CodeQL N1ght 可执行文件在配置的路径下(默认:J:\mcp\codeql-n1ght.exe)。
  2. 以标准输入输出(STDIO)模式运行 MCP 服务器:
python codeql_n1ght_mcp_server.py

✨ 主要特性

  • 环境安装:一键设置 JDK、Ant 和 CodeQL 依赖。
  • 数据库创建:可使用可配置的反编译器从 JAR/WAR/ZIP 文件创建 CodeQL 数据库。
  • 安全扫描:使用可定制的查询包执行安全扫描。
  • 并行处理:支持协程和多线程。
  • 灵活配置:可自定义路径、超时时间和缓存选项。

📦 安装指南

  1. 安装依赖:
pip install -r requirements.txt
  1. 确保 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 许可证。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client