Skip to content

Add per-release, per-language CodeQL API reference resources #3

Description

@data-douser

Extend server/src/resources/ to serve versioned, language-specific CodeQL API documentation as MCP resources.

Resource URI Scheme

codeql://api/{language}/{version}/{module}
codeql://api/java/2.24.0/dataflow
codeql://api/javascript/latest/ast

Implementation Design

  1. Resource Registry (server/src/resources/api-reference.ts)

    • Define resource templates for each language × version × module combination
    • Support latest alias resolving to current CLI version
    • Map modules: ast, dataflow, taint, cfg, types
  2. Documentation Sources

    • Fetch from CodeQL standard library QLDoc comments
    • Cache generated documentation in server/resources/api-cache/
    • Implement cache invalidation on version change
  3. Dynamic Resource Generation

    • Use codeql resolve qlpacks to identify installed library versions
    • Extract QLDoc via codeql generate doc-index or direct QL parsing
    • Format as Markdown with class hierarchies and predicate signatures
  4. Resource Registration

    • Register parameterized resources using MCP resource templates
    • Support filtering by language in resources/list responses

Acceptance Criteria

  • Resources available for all 9 supported languages
  • latest version alias works correctly
  • Graceful fallback when docs unavailable for specific version
  • Documentation cache reduces repeated generation overhead

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions