v2.24.3
v2.24.3
Highlights
π Database Lock Contention Fix & New CodeQL Search/Discovery Tools
This release resolves a critical compatibility issue where databases locked by the GitHub.vscode-codeql extension prevented the MCP server from running CLI commands. A new DatabaseCopier syncs databases into a managed, lock-free directory under the extension's globalStorage. Two new tools β search_ql_code and codeql_resolve_files β eliminate the need for LLMs to use grep or shell access for QL code search and file discovery.
π Automatic CodeQL CLI Discovery
The MCP server now automatically finds the CodeQL CLI binary installed by the GitHub.vscode-codeql extension, which stores it off-PATH. Discovery uses distribution.json (folder index hint) with a fallback to scanning distribution* directories. This works at two layers: the VS Code extension CliResolver and the server-side cli-executor.
π Rewritten MCP Resources as Actionable LLM-Oriented Guides
All static MCP resources have been rewritten as actionable, LLM-oriented guides. Resources are now registered under clearer URIs (e.g., codeql://server/overview, codeql://server/queries, codeql://server/tools, codeql://server/prompts) and include new resources for learning query basics, test-driven development, and language-specific security query guides.
New MCP Server Tools
| search_ql_code | Searches QL source code by text or regex pattern across resolved CodeQL packs and workspace folders, returning matched lines with surrounding context. Eliminates the need for LLMs to use grep or shell access. |
| codeql_resolve_files | Discovers files by extension or glob pattern within CodeQL databases and packs, enabling LLMs to find source files without CLI dependencies. |
New MCP Server Resources
codeql://server/overview |
MCP server orientation guide (replaces getting-started.md) |
codeql://server/queries |
PrintAST, PrintCFG, CallGraphFrom, CallGraphTo overview |
codeql://server/tools |
Complete default tool reference |
codeql://server/prompts |
Complete prompt reference |
codeql://learning/query-basics |
Practical query writing reference |
codeql://learning/test-driven-development |
TDD theory overview with cross-links |
codeql://learning/security-queries/* |
Language-specific security query guides (migrated from .github/skills/) |
Changed MCP Server Prompts & Resources
All existing workflow prompts and resources have been updated to remove grep/CLI references in favor of the new search_ql_code and codeql_resolve_files tools.
Changed MCP Server Tools
| profile_codeql_query_from_logs | Rewritten with two-tier design: compact inline JSON + line-indexed detail file for targeted read_file access. Parser now captures RA operations and pipeline-stage tuple progressions. Output is deterministic (no timestamps). Uses streaming async generators instead of readFileSync for large evaluator logs. |
| codeql_query_run | resolveDatabasePath helper auto-resolves multi-language database roots and throws on ambiguity instead of silently picking the first candidate. |
| codeql_database_analyze | Same resolveDatabasePath helper applied for consistent database path resolution. |
| codeql_resolve_database | Now probes child directories for databases; uses resolveDatabasePath for ambiguity detection. |
Bug Fixes
- Database lock contention with
vscode-codeqlβ Fixed a critical issue where.lockfiles created by thevscode-codeqlquery server preventedcodeql_query_runandcodeql_database_analyzefrom executing. A newDatabaseCopiersyncs databases into a managed lock-free directory. (#119) - Version-bearing files not updated during release β The
update-release-version.shscript now tracksserver/src/codeql-development-mcp-server.ts(const VERSION) alongside all other version files. (#90) - MCP resource content missing at runtime in VSIX β Embedded MCP resource content at build time via esbuild loader for VSIX compatibility. (#111)
- CODEQL_PATH tests failing on Windows CI β Fixed robust binary search and MSYS2 FIFO skip for
windows-latest. (#115) - TOCTOU race condition in
search_ql_codeβ Eliminated filesystem race (read-then-check instead of stat-then-read); added symlink cycle detection. (#119) - OOM risk with large files in
search_ql_codeβ Large files (>5 MB) are now streamed line-by-line instead of loaded into memory. (#119) - Transient HTTP 503 in
install-packs.shβ Added exponential backoff retry (3 attempts, 10s/20s/40s) forcodeql pack installto handle GHCR.io rate limits. (#121)
Infrastructure & CI/CD
- Added
CODEQL_MCP_TMP_DIRandCODEQL_MCP_WORKSPACE_FOLDERSenvironment variables for workspace-local scratch directories. (#119) - Added query-file-finder contextual hints for missing tests, documentation, and expected results. (#119)
- Set
ENABLE_MONITORING_TOOLS=falsefor client integration tests to avoid CI interference. (#115)
Dependency Updates
- Upgraded CodeQL CLI dependency to v2.24.3. (#114)
- Upgraded NodeJS dependencies to latest available versions. (#108, #114)
- Bumped
actions/download-artifactfrom 7 to 8. (#94) - Bumped
actions/upload-artifactfrom 6 to 7. (#93)
What's Changed (PRs)
- Fix release update of version-bearing files from
2.24.2-rc3to2.24.2by @data-douser in #90 - Support automatic discovery of
codeqlCLI distributions installed off-PATH by VS Code extension by @data-douser in #91 - Build(deps): bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #93
- Build(deps): bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #94
- Upgrade NodeJS dependencies to latest available versions by @data-douser in #108
- Embed MCP resource content at build time for VSIX compatibility by @Copilot in #111
- Rewrite static MCP resources as actionable LLM-oriented guides by @Copilot in #113
- Upgrade CodeQL to
v2.24.3and upgrade NodeJS dependencies to latest by @data-douser in #114 - Fix CODEQL_PATH Tests (windows-latest) CI failure by @Copilot in #115
- Fixes for extension
.lockdatabase contention and tool improvements to avoid LLM use ofgrepby @data-douser in #119
Full Changelog: v2.24.2...v2.24.3
What's Changed
- Prep for v2.24.1 release by @data-douser in #38
- Refactor release into separate child workflows with isolated deployment environments by @data-douser in #45
- Build(deps): bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #49
- Build(deps): bump dotenv from 17.2.4 to 17.3.0 by @dependabot[bot] in #54
- Add nightly CodeQL CLI update workflow by @data-douser in #58
- Add
vscode-codeql-development-mcp-server.vsixextension for "bridge" toGitHub.vscode-codeqlextension's databases, query results, and MRVA results by @data-douser in #61 - Fixes and integration tests for MCP-provided prompts and VSIX bundle by @data-douser in #71
- Avoid timeouts in client integration test fixtures by @data-douser in #74
- Add a new prompt & tool for diagnosing FPs/FNs from query runs. by @MichaelRFairhurst in #70
- Upgrade CodeQL CLI dependency to v2.24.2 by @github-actions[bot] in #65
- Fixes for
v2.24.2release prep by @data-douser in #75 - Add
stdiotransport support to client integration test runner by @Copilot in #77 - Prep for
v2.24.2release by @data-douser in #81 - Fix
release-tagworkflow for releases created fromv*tag onmainbranch by @data-douser in #85 - Fix release-tag workflow to push only annotated tags to main by @data-douser in #87
- Fix release update of version-bearing files from
2.24.2-rc3to2.24.2by @data-douser in #90 - Build(deps): bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #93
- Upgrade NodeJS dependencies to latest available versions by @data-douser in #108
- Build(deps): bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #94
- Embed MCP resource content at build time for VSIX compatibility by @Copilot in #111
- Support automatic discovery of
codeqlCLI distributions installed off-PATH by VS Code extension by @data-douser in #91 - Upgrade CodeQL to
v2.24.3and upgrade NodeJS dependencies to latest by @data-douser in #114 - Fix CODEQL_PATH Tests (windows-latest) CI failure by @Copilot in #115
- [UPDATE PRIMITIVE] Rewrite static MCP resources as actionable LLM-oriented guides by @Copilot in #113
- Fixes for extension
.lockdatabase contention and tool improvements to avoid LLM use ofgrepby @data-douser in #119
New Contributors
- @dependabot[bot] made their first contribution in #49
- @MichaelRFairhurst made their first contribution in #70
- @github-actions[bot] made their first contribution in #65
Full Changelog: v2.24.0...v2.24.3