codeql.com
codeql.com logo

CodeQL

Bridges to the CodeQL static analysis engine for identifying security vulnerabilities and quality issues in codebases th...

Created byApr 22, 2025

CodeQL MCP Server

This project runs a Model Context Protocol (MCP) server that wraps the CodeQL query server. It enables tools like Cursor or AI agents to interact with CodeQL through structured commands and doc search.

Features

  • Register CodeQL databases
  • Run full queries or quick-evaluate a symbol
  • Decode .bqrs files into JSON
  • Locate predicate/class symbol positions

File Structure

[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]

Requirements

Install with `uv`:
or with pip:

Running the MCP Server

  • Required for Cursor or AI agent use

Cursor Config

Make sure your .cusor/config.json contains:

Notes

  • Tools like Cursor will invoke these commands directly via natural language.
  • You must have a codeql binary in your $PATH, or hardcode its path in codeqlclient.py.
  • You should probably specify query locations, query write locations and database paths in your prompts.

CodeQL MCP Server

This project runs a Model Context Protocol (MCP) server that wraps the CodeQL query server. It enables tools like Cursor or AI agents to interact with CodeQL through structured commands and doc search.

Features

  • Register CodeQL databases
  • Run full queries or quick-evaluate a symbol
  • Decode .bqrs files into JSON
  • Locate predicate/class symbol positions

File Structure

[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]

Requirements

Install with `uv`:
or with pip:

Running the MCP Server

  • Required for Cursor or AI agent use

Cursor Config

Make sure your .cusor/config.json contains:

Notes

  • Tools like Cursor will invoke these commands directly via natural language.
  • You must have a codeql binary in your $PATH, or hardcode its path in codeqlclient.py.
  • You should probably specify query locations, query write locations and database paths in your prompts.