Skip to content

Time Based filtering missing on list_commits operations in remote mcp server #2293

@amammay

Description

@amammay

Describe the bug

When i was trying to use the list_commits tool on the remote mcp server. I noticed a difference between the documented schema vs the actual schema being returned.

The documented schema here states

github-mcp-server/README.md

Lines 1240 to 1250 in 95726ad

- **list_commits** - List commits
- **Required OAuth Scopes**: `repo`
- `author`: Author username or email address to filter commits by (string, optional)
- `owner`: Repository owner (string, required)
- `page`: Page number for pagination (min 1) (number, optional)
- `path`: Only commits containing this file path will be returned (string, optional)
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)
- `repo`: Repository name (string, required)
- `sha`: Commit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA. (string, optional)
- `since`: Only commits after this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD) (string, optional)
- `until`: Only commits before this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD) (string, optional)

the support for since/until. But when invoking the list tools api the schema returned ends up being

      {
        "name": "list_commits",
        "description": "Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100).",
        "inputSchema": {
          "type": "object",
          "properties": {
            "author": {
              "type": "string",
              "description": "Author username or email address to filter commits by"
            },
            "owner": {
              "type": "string",
              "description": "Repository owner"
            },
            "page": {
              "type": "number",
              "description": "Page number for pagination (min 1)",
              "minimum": 1
            },
            "perPage": {
              "type": "number",
              "description": "Results per page for pagination (min 1, max 100)",
              "minimum": 1,
              "maximum": 100
            },
            "repo": {
              "type": "string",
              "description": "Repository name"
            },
            "sha": {
              "type": "string",
              "description": "Commit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA."
            }
          },
          "required": [
            "owner",
            "repo"
          ]
        },
        "_status": "enabled",
        "_nameForModel": "list_commits",
        "annotations": {
          "title": "List commits",
          "readOnlyHint": true
        }
      }

Affected version

    "github-repo-mcp-server": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/x/repos/readonly",
      "headers": {
        "Authorization": "Bearer ${GITHUB_PAT}"
      }
    }

Steps to reproduce the behavior

  1. Use to the list_commits tool via the remote mcp server.
  2. Try to invoke with a time range
  3. Time range not passed through

Expected vs actual behavior

I expected time range filtering to work.

Metadata

Metadata

Assignees

No one assigned

    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