Skip to main content
Glama

github_action

Perform GitHub REST API actions: search repositories and code, create branches and commits, open, comment on, or merge pull requests, and read workflow checks.

Instructions

Interact with the GitHub REST API: search/read repos, create branches and commits, open PRs, comment, merge, and read workflow checks.

Input Schema

NameRequiredDescriptionDefault
refNoCommit SHA, branch, or tag for list_checks.
baseNoPull request base branch.
bodyNoIssue, pull request, or comment body text.
headNoPull request head branch.
pageNoPage number.
repoNoRepository name.
draftNoCreate a draft pull request.
filesNoFiles for push_files: { path, content, encoding? } entries.
forceNoForce-update the branch ref during push_files. Defaults to false.
ownerNoRepository owner login.
queryNoSearch query string (for search_repos and search_code).
stateNoFilter by state: open, closed, all.
titleNoIssue or pull request title.
actionYesAction: search_repos, get_repo, list_issues, create_issue, list_prs, get_user, list_gists, search_code, create_branch, push_files, create_pull_request, comment_issue_or_pr, merge_pull_request, close_pull_request, list_checks.
branchNoTarget branch for branch creation, file pushes, pull requests, or checks.
labelsNoComma-separated label names to filter by.
numberNoIssue or pull request number fallback.
statusNoFilter list_checks by status.
api_keyNoGitHub token fallback. Saved UnClick GitHub login is preferred when omitted.
commentNoComment body fallback for comment_issue_or_pr.
messageNoCommit message for push_files.
per_pageNoResults per page (max 100).
usernameNoGitHub username (for get_user and list_gists).
deletionsNoFile paths to delete during push_files.
check_nameNoFilter list_checks by check name.
new_branchNoNew branch name for create_branch.
base_branchNoBase branch for create_branch, push_files branch creation, or pull requests.
pull_numberNoPull request number for comment_issue_or_pr or merge_pull_request.
access_tokenNoGitHub personal access token (PAT). Saved UnClick GitHub login is used when this is omitted.
commit_titleNoMerge commit title.
issue_numberNoIssue number for comment_issue_or_pr.
merge_methodNoMerge method: merge, squash, or rebase. Defaults to squash.
commit_messageNoMerge commit message.
expected_head_shaNoOptional safety check: fail if the branch head has moved.
maintainer_can_modifyNoAllow maintainers to modify the pull request branch. Defaults to true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed28 schema fields changedv0.1.11
    • changedInput schema / properties / access_token / description
      Previous value: -"GitHub personal access token (PAT). Public data works without a token."New value: +"GitHub personal access token (PAT). Saved UnClick GitHub login is used when this is omitted."
    • changedInput schema / properties / action / description
      Previous value: -"Action: search_repos, get_repo, list_issues, create_issue, list_prs, get_user, list_gists, search_code."New value: +"Action: search_repos, get_repo, list_issues, create_issue, list_prs, get_user, list_gists, search_code, create_branch, push_files, create_pull_request, comment_issue_or_pr, merge_pull_request, close_pull_request, list_checks."
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "search_repos",
      -  "get_repo",
      -  "list_issues",
      -  "create_issue",
      -  "list_prs",
      -  "get_user",
      -  "list_gists",
      -  "search_code"
      -]New value: +[
      +  "search_repos",
      +  "get_repo",
      +  "list_issues",
      +  "create_issue",
      +  "list_prs",
      +  "get_user",
      +  "list_gists",
      +  "search_code",
      +  "create_branch",
      +  "push_files",
      +  "create_pull_request",
      +  "comment_issue_or_pr",
      +  "merge_pull_request",
      +  "close_pull_request",
      +  "list_checks"
      +]
    • addedInput schema / properties / api_key
      Added value: +{
      +  "description": "GitHub token fallback. Saved UnClick GitHub login is preferred when omitted.",
      +  "type": "string"
      +}
    • addedInput schema / properties / base
      Added value: +{
      +  "description": "Pull request base branch.",
      +  "type": "string"
      +}
    • addedInput schema / properties / base_branch
      Added value: +{
      +  "description": "Base branch for create_branch, push_files branch creation, or pull requests.",
      +  "type": "string"
      +}
    • changedInput schema / properties / body / description
      Previous value: -"Issue body text (for create_issue)."New value: +"Issue, pull request, or comment body text."
    • addedInput schema / properties / branch
      Added value: +{
      +  "description": "Target branch for branch creation, file pushes, pull requests, or checks.",
      +  "type": "string"
      +}
    • addedInput schema / properties / check_name
      Added value: +{
      +  "description": "Filter list_checks by check name.",
      +  "type": "string"
      +}
    • addedInput schema / properties / comment
      Added value: +{
      +  "description": "Comment body fallback for comment_issue_or_pr.",
      +  "type": "string"
      +}
    • addedInput schema / properties / commit_message
      Added value: +{
      +  "description": "Merge commit message.",
      +  "type": "string"
      +}
    • addedInput schema / properties / commit_title
      Added value: +{
      +  "description": "Merge commit title.",
      +  "type": "string"
      +}
    • addedInput schema / properties / deletions
      Added value: +{
      +  "description": "File paths to delete during push_files.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / draft
      Added value: +{
      +  "description": "Create a draft pull request.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / expected_head_sha
      Added value: +{
      +  "description": "Optional safety check: fail if the branch head has moved.",
      +  "type": "string"
      +}
    • addedInput schema / properties / files
      Added value: +{
      +  "description": "Files for push_files: { path, content, encoding? } entries.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "content": {
      +        "type": "string"
      +      },
      +      "encoding": {
      +        "enum": [
      +          "utf-8",
      +          "base64"
      +        ],
      +        "type": "string"
      +      },
      +      "path": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "path",
      +      "content"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / force
      Added value: +{
      +  "description": "Force-update the branch ref during push_files. Defaults to false.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / head
      Added value: +{
      +  "description": "Pull request head branch.",
      +  "type": "string"
      +}
    • addedInput schema / properties / issue_number
      Added value: +{
      +  "description": "Issue number for comment_issue_or_pr.",
      +  "type": "number"
      +}
    • addedInput schema / properties / maintainer_can_modify
      Added value: +{
      +  "description": "Allow maintainers to modify the pull request branch. Defaults to true.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / merge_method
      Added value: +{
      +  "description": "Merge method: merge, squash, or rebase. Defaults to squash.",
      +  "type": "string"
      +}
    • addedInput schema / properties / message
      Added value: +{
      +  "description": "Commit message for push_files.",
      +  "type": "string"
      +}
    • addedInput schema / properties / new_branch
      Added value: +{
      +  "description": "New branch name for create_branch.",
      +  "type": "string"
      +}
    • addedInput schema / properties / number
      Added value: +{
      +  "description": "Issue or pull request number fallback.",
      +  "type": "number"
      +}
    • addedInput schema / properties / pull_number
      Added value: +{
      +  "description": "Pull request number for comment_issue_or_pr or merge_pull_request.",
      +  "type": "number"
      +}
    • addedInput schema / properties / ref
      Added value: +{
      +  "description": "Commit SHA, branch, or tag for list_checks.",
      +  "type": "string"
      +}
    • addedInput schema / properties / status
      Added value: +{
      +  "description": "Filter list_checks by status.",
      +  "type": "string"
      +}
    • changedInput schema / properties / title / description
      Previous value: -"Issue title (for create_issue)."New value: +"Issue or pull request title."
  2. Addedv0.1.5

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and largely fails it. It does not disclose auth requirements (the schema's api_key/access_token fallback to a saved UnClick login), rate limits, or which of the enumerated actions are destructive (merge_pull_request, close_pull_request are write operations with real consequences). It implies read and write capabilities coexist but gives no safety context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words; the capability list is dense but efficient. It is appropriately sized for a name/description slot, though it could have used the saved space to communicate usage rather than only capability breadth.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a dispatcher with 15 actions, 35 parameters, no annotations, and no output schema, the description is thin. It does not map actions to required arguments, does not flag which actions mutate state, and does not cover authentication behavior, leaving the agent to reconstruct all of this from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 35 parameters (including the action enum and its 15 values) are already documented in the schema. The description adds no per-action parameter mapping or syntax detail beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource ('Interact with the GitHub REST API') and enumerates capability groups (search/read repos, create branches/commits, open PRs, comment, merge, read checks). This makes the tool's scope clear, though it never contrasts itself with the nearly identical gitea_action or gitlab_action siblings, so it stops short of the sibling-differentiating bar for a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no when-not-to-use guidance. Nothing tells the agent how to choose between this tool and gitea_action/gitlab_action, nor which 'action' value fits a given intent, nor any prerequisite conditions. The description is purely a capability list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools