Skip to main content

GitHub MCP Tools Reference

This reference documents all 46 GitHub MCP tools available through the Bike4Mind integration, organized by category.

User (1 tool)

ToolDescriptionKey Parameters
get_authenticated_userGet details about the authenticated GitHub user including login, name, email, company, location, and activity stats

Issues (5 tools)

ToolDescriptionKey Parameters
create_issueCreate a new issue with title, body, labels, and assignees. Validates that labels exist in the repo.owner, repo, title, body, labels[], assignees[]
update_issueModify an issue's title, body, state, labels, assignees, or type (Bug/Feature/Task)owner, repo, issue_number, title, body, state, labels[], assignees[]
list_issuesList repository issues with filtering by state, labels, assignee, or type. Supports pagination.owner, repo, state, labels, assignee, type, page, per_page
get_issueGet detailed issue information including labels, assignees, milestone, type, and associated projectsowner, repo, issue_number
create_issue_commentAdd a comment to an existing issueowner, repo, issue_number, body
Issue Types

GitHub issue types (Bug, Feature, Task) are organization-level features. Use list_org_issue_types to see available types before assigning them.

Labels (4 tools)

ToolDescriptionKey Parameters
create_labelCreate a new label with name, hex color, and optional descriptionowner, repo, name, color, description
update_labelUpdate a label's name, color, or descriptionowner, repo, name, new_name, color, description
delete_labelPermanently delete a label from a repositoryowner, repo, name
list_labelsList all labels in a repository with paginationowner, repo, page, per_page
Destructive Action

delete_label permanently removes a label and unlinks it from all issues. This cannot be undone.

Search (1 tool)

ToolDescriptionKey Parameters
search_codeSearch code across repositories using GitHub query syntax. Supports language, file, and repo filters.query, language, filename, repo

Search syntax examples:

  • useAuth language:typescript — Search for useAuth in TypeScript files
  • TODO repo:org/frontend — Find TODOs in a specific repo
  • filename:package.json express — Find express in package.json files

Repositories (2 tools)

ToolDescriptionKey Parameters
list_repositoriesList repositories you have access to, filterable by visibility, affiliation, and sortablevisibility, affiliation, sort, direction, page, per_page
get_repositoryGet detailed repository info including description, language, topics, license, forks, stars, and featuresowner, repo

Branches (2 tools)

ToolDescriptionKey Parameters
list_branchesList all branches with protection status and commit infoowner, repo, page, per_page
create_branchCreate a new branch from a source branch (defaults to main). Includes name validation.owner, repo, branch, source_branch

File Contents (1 tool)

ToolDescriptionKey Parameters
create_or_update_fileCreate or update a file in a repository. Auto-detects if file exists, supports custom committer info.owner, repo, path, content, message, branch, committer
One File Per Commit

This tool creates one commit per file. For multi-file changes, each file requires a separate tool call and creates a separate commit.

Commits (2 tools)

ToolDescriptionKey Parameters
list_commitsView commit history with optional filtering by branch/SHA, file path, or author. Includes stats.owner, repo, sha, path, author, page, per_page
get_commitGet detailed commit information including author, stats, and files changed with patch contentowner, repo, ref

Pull Requests (7 tools)

ToolDescriptionKey Parameters
list_pull_requestsList PRs with filtering by state, author, and labels. Supports pagination.owner, repo, state, author, labels, page, per_page
get_pull_requestGet detailed PR info including diffs, commits, mergeability, and review commentsowner, repo, pull_number
get_pull_request_filesGet list of files changed in a PR with patch content, additions/deletionsowner, repo, pull_number
get_pull_request_diffGet raw unified diff for a PR (may fail for large diffs)owner, repo, pull_number
create_pull_requestCreate a new PR with title, body, head/base branches. Defaults to draft. Includes idempotency check.owner, repo, title, body, head, base, draft
update_pull_requestUpdate PR title, body, state, base branch, draft status, or maintainer permissionsowner, repo, pull_number, title, body, state, base, draft
merge_pull_requestMerge a PR with configurable method (merge/squash/rebase) and optional SHA validationowner, repo, pull_number, merge_method, commit_title, commit_message, sha

Reviews (3 tools)

ToolDescriptionKey Parameters
create_reviewCreate a review (APPROVE/REQUEST_CHANGES/COMMENT) with optional inline file comments on specific linesowner, repo, pull_number, event, body, comments[]
approve_prApprove a pull request with optional message. Convenience wrapper around create_review.owner, repo, pull_number, body
request_changesRequest changes with required explanation and optional inline comments. Convenience wrapper.owner, repo, pull_number, body, comments[]

Projects v2 (5 tools)

ToolDescriptionKey Parameters
list_org_projectsList all GitHub Projects v2 for an organization with paginationorg, first, after
list_project_fieldsList all fields (Status, Priority, Size, etc.) for a project with available optionsproject_id
get_project_itemGet an issue as a project item with all field values. Scans up to 1,000 items.project_id, issue_url
add_issue_to_projectAdd an issue to a project. Required before updating project fields.project_id, issue_url
update_project_item_fieldsUpdate multiple fields at once on a project item (single-select, text, number, date, iteration)project_id, item_id, fields
Projects v2 Workflow

To update an issue's project fields: (1) add_issue_to_project first, then (2) update_project_item_fields. You cannot update fields on an issue that isn't in the project.

Milestones (4 tools)

ToolDescriptionKey Parameters
create_milestoneCreate a milestone with title, description, due date, and stateowner, repo, title, description, due_on, state
update_milestoneUpdate milestone title, description, due date, or state. Can reopen closed milestones.owner, repo, milestone_number, title, description, due_on, state
list_milestonesList milestones with filtering by state, sorting, and progress calculationsowner, repo, state, sort, direction
close_milestoneClose (complete) a milestone. Use update_milestone with state="open" to reopen.owner, repo, milestone_number

Workflows / GitHub Actions (4 tools)

ToolDescriptionKey Parameters
list_workflow_runsList GitHub Actions runs with filtering by branch, status, or trigger event. Includes PR associations.owner, repo, branch, status, event, page, per_page
get_workflow_run_detailsGet detailed run info including jobs and steps with failure summariesowner, repo, run_id
get_workflow_run_logsDownload and summarize all logs for a run, with error extraction. Can filter to failed jobs only.owner, repo, run_id, failed_only
get_job_logsGet logs for a specific job with optional step filtering and error summarizationowner, repo, job_id, step, tail

Issue Types (1 tool)

ToolDescriptionKey Parameters
list_org_issue_typesList all available issue types (Bug, Feature, Task) for an organizationorg

Permissions Required

All tools require the GitHub OAuth connection with these scopes:

ScopeTools That Require It
repoAll repository, issue, PR, branch, commit, file, label, milestone, and workflow tools
read:orglist_org_issue_types, list_org_projects
read:userget_authenticated_user
projectAll Projects v2 tools

Rate Limits

API TypeLimitAffected Tools
REST API5,000 requests/hourMost tools
Search API30 requests/minutesearch_code
GraphQL API5,000 points/hourProjects v2 tools, draft PR conversion

Error Handling

ErrorCauseRecovery
401 UnauthorizedToken expired or revokedReconnect GitHub in Profile → Integrations
403 ForbiddenRate limit hit or scope insufficientWait for reset or reconnect with correct scopes
404 Not FoundResource doesn't exist or no accessVerify resource exists and you have permission
422 Unprocessable EntityInvalid inputCheck error details for the specific validation failure
409 ConflictResource already exists (e.g., duplicate branch name)Use a different name or check existing resources