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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions