You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit makes the following changes as part of the overall effort
to prepare this 'advanced-security/codeql-development-mcp-server' to
be fully ready for initial public release:
- Rename entry point to codeql-development-mcp-server.ts
- Scope all codeql-pack.yml with advanced-security/ prefix
- Add npm publishConfig for GitHub Packages
- Add CODEQL_PATH env var with PATH-prepend strategy
- New package-paths.ts module for npm-install-safe path resolution
- Logger writes all output to stderr (stdout reserved for MCP protocol)
- Fix process.cwd() usages in language-resources, language-server-eval,
temp-dir, and session-data-manager
- Fix relative cwd/test paths resolved against workspaceRootDir
- Language server spawn() honors CODEQL_PATH via PATH prepend
- Use path.delimiter for Windows portability
- Relax engines to node >=22.0.0
- Fix VERSION constant from 1.0.0 to 2.23.9
- Update server/README.md env vars and file listing
- Updates unit tests to cover source code changes
- Adds 'docs/public.md' documentation of intended public features
Copy file name to clipboardExpand all lines: .github/agents/mcp-enabled-ql-workshop-developer.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
name: mcp-enabled-ql-workshop-developer
3
3
description: An agent that creates CodeQL query development workshops from production queries using the QL MCP Server tools. Use this agent to generate guided learning materials that teach developers how to build CodeQL queries incrementally.
4
-
model: Claude Opus 4.5 (copilot)
4
+
model: Claude Opus 4.6 (1M context) (copilot)
5
5
handoffs:
6
6
- agent: ql-mcp-tool-tester
7
7
label: Validate Solution Stage
@@ -35,7 +35,7 @@ My `mcp-enabled-ql-workshop-developer` agent:
35
35
36
36
## Core Capabilities
37
37
38
-
- Uses the QL MCP Server tools (`codeql-dev-mcp-server/*`) to create comprehensive CodeQL query development workshops.
38
+
- Uses the QL MCP Server tools (`ql-mcp/*`) to create comprehensive CodeQL query development workshops.
39
39
- Follows the [`create-codeql-query-development-workshop`](../skills/create-codeql-query-development-workshop/SKILL.md) skill to generate workshops from production-grade queries.
40
40
- Validates AST/CFG tools queries using the [`validate-ql-mcp-server-tools-queries`](../skills/validate-ql-mcp-server-tools-queries/SKILL.md) skill to ensure non-empty output.
41
41
- Leverages the `codeql` CLI for all CodeQL operations.
Copy file name to clipboardExpand all lines: .github/agents/ql-agent-skills-developer.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
name: ql-agent-skills-developer
3
3
description: Develops and improves Agent Skills for the CodeQL Development MCP Server.
4
4
argument-hint: 'Provide the name(s) of the Agent Skill(s) to be created or improved under the .github/skills/ directory, along with specific requirements where available.'
Copy file name to clipboardExpand all lines: .github/agents/ql-mcp-tool-developer.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
name: ql-mcp-tool-developer
3
3
description: An agent for developing new tools and/or improving existing tools for the QL MCP Server.
4
4
argument-hint: 'Provide the name(s) of the CodeQL Development MCP Server tool(s) to be created or improved, along with specific requirements where available.'
5
-
model: Claude Opus 4.5 (copilot)
5
+
model: Claude Opus 4.6 (1M context) (copilot)
6
6
handoffs:
7
7
- label: Test the CodeQL MCP Server tools via workshop
8
8
agent: ql-mcp-tool-tester
@@ -38,7 +38,7 @@ My `ql-mcp-tool-developer` agent:
Copy file name to clipboardExpand all lines: .github/agents/ql-mcp-tool-tester.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
name: ql-mcp-tool-tester
3
3
description: An agent for testing and validating tools for the latest QL Development MCP Server.
4
4
argument-hint: 'Provide the name(s) of the CodeQL Development MCP Server tool(s) to be tested and validated, along with specific testing requirements, where available.'
| swift | advanced-security/ql-mcp-swift-tools-src | codeql/swift-all |
208
208
209
209
## Lessons Learned
210
210
@@ -232,6 +232,45 @@ dependencies:
232
232
233
233
Library upgrades can cause non-deterministic ordering changes in query output. These are cosmetic differences - update `.expected` files when the logic is unchanged but output order differs.
234
234
235
+
### npm Package `files` Field Limitations
236
+
237
+
npm's `files` field does **not** support intermediate wildcard patterns like `ql/*/tools/src/`. Each language directory must be listed explicitly:
238
+
239
+
```json
240
+
"files": [
241
+
"dist/",
242
+
"ql/actions/tools/src/",
243
+
"ql/cpp/tools/src/",
244
+
"ql/csharp/tools/src/",
245
+
...
246
+
]
247
+
```
248
+
249
+
When adding a new language, add its `ql/{language}/tools/src/` entry to `server/package.json` `files`.
250
+
251
+
### Exclude `.qlx` Files from npm
252
+
253
+
`server/.npmignore`must contain `*.qlx` to prevent compiled CodeQL query bytecode (which is OS/architecture-specific) from being included in the npm package.
254
+
255
+
### Server Logger Writes to stderr Only
256
+
257
+
All `logger.info/warn/error/debug` methods write to `stderr` via `console.error`. This is **required** because in stdio transport mode, stdout is reserved exclusively for the MCP JSON-RPC protocol. Any non-protocol bytes on stdout corrupt the message stream.
258
+
259
+
### CODEQL_PATH Environment Variable
260
+
261
+
The server resolves the CodeQL CLI binary at startup via `resolveCodeQLBinary()` in `cli-executor.ts`. The `CODEQL_PATH` env var takes an **absolute path** to the `codeql` binary, bypassing PATH lookup. This is critical for users who have multiple CodeQL CLI versions installed.
262
+
263
+
### Publishing: `codeql pack publish`
264
+
265
+
- Use `--threads=-1` (leave 1 core unused) for parallel compilation
266
+
- `GITHUB_TOKEN`env var is recognized automatically — no need for `--github-auth-stdin`
267
+
- Precompilation is enabled by default (only `--no-precompile` opt-out exists)
268
+
- The `codeql pack install` subcommand does **not** have a `--threads` flag
269
+
270
+
### LICENSE File Name
271
+
272
+
The actual license file is `LICENSE` (no `.md` extension). Workflow steps and documentation must reference `LICENSE`, not `LICENSE.md`.
273
+
235
274
## Helper Script
236
275
237
276
See [verify-pack-compatibility.sh](verify-pack-compatibility.sh) for automated compatibility checking.
0 commit comments