Skip to content

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

@data-douser

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

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