CodeQL MCP服务器
用于CodeQL代码分析的MCP服务器,带有PostgreSQL图形数据库,查询速度快100倍。
特性
岩心分析
- 创建用于代码分析的CodeQL数据库
- 使用内置查询套件运行安全扫描
- 支持JavaScript/TypeScript、Python、Java、C/C++、C#、Go、Ruby、Swift
- 用于快速重复查询的数据库缓存
图形数据库(快速查询模式)
- 为即时查询构建PostgreSQL图索引
- 比直接CodeQL查询快100-600倍
- 分析调用链和类层次结构
- 识别热点和代码模式
快速开始
1.基本设置
./scripts/install-codeql.sh2.PostgreSQL设置(可选-用于快速查询)
./scripts/setup-database.sh3.验证
./scripts/check-env.sh用法
基本工作流程
# 1. Create CodeQL database
create_database /path/to/project javascript myproject
# 2. Run security analysis
analyze_security myproject
# 3. Find functions (slow)
find_function myproject "handler"快速工作流(使用PostgreSQL)
# 1. Create CodeQL database
create_database /path/to/project javascript myproject
# 2. Build graph index (one-time operation)
build_graph_index myproject
# 3. Fast queries using graph index
find_function_graph myproject "handler"
find_callers_graph myproject "logger"
find_call_chain_graph myproject "main" "execute" 5
get_class_hierarchy_graph myproject "Router"
get_graph_stats myproject可用工具
数据库管理
create_database-从源代码创建CodeQL数据库list_databases-列出所有缓存的数据库delete_database-删除数据库upgrade_database-升级数据库架构get_database_info-获取数据库元数据
分析工具
run_query-运行CodeQL查询或查询套件analyze_security-运行安全分析find_patterns-查找代码模式get_metrics-获取代码度量
图形数据库工具(需要图形索引)
build_graph_index-构建PostgreSQL索引(一次性操作)find_function_graph-使用图索引查找函数find_callers_graph-查找调用函数的人find_call_chain_graph-查找函数之间的调用路径get_class_hierarchy_graph-获取类继承树get_graph_stats-获取数据库统计信息和热点
导出工具
export_results-将SARIF结果导出为CSV/JSON/Markdown
性能比较
| 操作 | CodeQL Direct | 图形索引模式 | 加速 |
|---|---|---|---|
| 查找功能 | 15-30s | \/`: |
| 语言 | 核心分析 | 图形索引 | 查询目录 | 状态 |
|---|---|---|---|---|
| JavaScript/TypeScript | ✅ | ✅ | queries/export/javascript/ | 已测试✓ |
| python✅ | ✅ | queries/export/python/ | 已测试✓ | |
| Java✅ | ❌ | queries/export/java/ | 计划中 | |
| C/C++ | ✅ | ❌ | queries/export/cpp/ | 计划中 |
| 去吧✅ | ❌ | queries/export/go/ | 计划中 | |
| C#/Ruby✅ | ❌ | queries/export/csharp/, queries/export/ruby/ | 计划中 |
每个语言目录应包含:
extract-functions.ql-提取所有函数定义extract-calls.ql-提取函数调用图extract-classes.ql-提取类定义extract-methods.ql-提取类方法关系
脚本
所有实用程序脚本都在 ./scripts/:
install-codeql.sh-安装CodeQL CLI和依赖项setup-database.sh-为图索引设置PostgreSQL数据库check-env.sh-验证是否安装了所有要求schema.sql-PostgreSQL模式定义
测试
# Use MCP Inspector to test tools
npx @modelcontextprotocol/inspector $(which node) build/index.js许可证
麻省理工学院
