Skip to content

get_discussion and get_discussion_comments accept calls with missing required parameters instead of returning a validation error #2740

@rodboev

Description

@rodboev

Describe the bug

When get_discussion or get_discussion_comments is called without one of the required parameters (owner, repo, or discussionNumber), the tool does not return a parameter-validation error. Instead it silently substitutes a zero value and issues a GraphQL request, which returns a confusing API-level error rather than a clear message identifying the missing field.

Affected version: current (tested against ghcr.io/github/github-mcp-server latest as of 2026-06)

Steps to reproduce

  1. Configure the MCP server normally.
  2. Call get_discussion with only {"repo": "myrepo", "discussionNumber": 1} (omitting owner).
  3. Observe that the tool returns a GraphQL error like "Could not resolve to a Repository" rather than a message indicating owner is required.

Repeat with get_discussion_comments and any missing required field.

Expected behavior

The tool should return a structured error immediately: "missing required parameter: owner" (or equivalent), consistent with how add_discussion_comment and the other discussion write tools behave when a required parameter is absent.

Actual behavior

The tool issues a GraphQL query with the missing field set to its zero value ("" for strings, 0 for numbers) and returns whichever API error results from that invalid query.

Additional context

The write handlers in the same file (add_discussion_comment, reply_to_discussion_comment, etc.) were updated in PR #2718 to use explicit parameter validation that returns named errors on missing input. The two read handlers were not included in that pass and still use the legacy decoding pattern.

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