> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Github as an MCP

> Let your AI agents use Github in real time through the Nekt MCP Gateway.

GitHub is a developer platform for code hosting, collaboration, and CI/CD. By connecting Github as an MCP, your agent can read repositories, manage issues and pull requests, trigger GitHub Actions, and interact with GitHub Copilot directly.

| | Available |
| :- | :- |
| **Nekt Express** | Yes |
| **GCP** | Yes |
| **AWS** | Yes |

## Adding Github as an MCP

Before you start, make sure the [MCP Server](/mcp-server/setup) is set up. See [MCPs](/mcps/overview) for how MCPs work.

1. Go to **Activate → [MCPs](https://app.nekt.ai/mcps)**, click **New MCP** and choose **Github**.
2. **Name your MCP** and describe what it is used for. The agent reads the description to choose between MCPs of the same provider.
3. **Setup access**. To connect using an API key:

   1. Go to your GitHub account settings and generate a personal access token.

   2. For company-wide access, create a fine-grained personal access token with the organization as the resource owner and grant it access to the necessary repositories.

   * **GitHub token**: A GitHub personal access token authenticating every request to GitHub's hosted MCP server. For company-wide access, create a fine-grained token with the organization as the resource owner and grant it access to all repositories. If the organization requires approval, the token stays pending — with read access to public resources only — until an organization owner approves it. The token's permissions control read vs. write: a read-only token makes this a read-only connection, enforced by GitHub. (Required)
4. **Select tools**. Pick the tools your agents can use. See [Available tools](#available-tools) below.
5. Click **Save**. On Growth and Custom plans, choose who can use it; see [Access levels](/mcps/overview#access-levels).

## Example prompts

* "Check the latest pull requests in our main repository and summarize the pending reviews."
* "List the failed GitHub Actions workflows from yesterday and fetch the job logs for the failures."
* "Create a new issue describing the login bug, then assign GitHub Copilot to investigate it."
* "Search our codebase for usages of the deprecated logging function and list the files that need updating."

## Available tools

Choose which of these tools your agents can use in **Select tools**.

### Read tools

| Tool | Description | Parameters |
| :- | :- | :- |
| `actions_get` | Get details of GitHub Actions resources (workflows, workflow runs, jobs, and artifacts) | — |
| `actions_list` | List GitHub Actions workflows in a repository | — |
| `custom_properties_read` | Read custom properties | — |
| `get_code_quality_finding` | Get code quality finding | — |
| `get_code_scanning_alert` | Get code scanning alert | — |
| `get_commit` | Get commit details | — |
| `get_copilot_space` | Get Copilot Space | — |
| `get_dependabot_alert` | Get dependabot alert | — |
| `get_discussion` | Get discussion | — |
| `get_discussion_comments` | Get discussion comments | — |
| `get_file_contents` | Get file or directory contents | — |
| `get_gist` | Get Gist Content | — |
| `get_global_security_advisory` | Get a global security advisory | — |
| `get_job_logs` | Get GitHub Actions workflow job logs | — |
| `get_label` | Get a specific label from a repository | — |
| `get_latest_release` | Get latest release | — |
| `get_me` | Get my user profile | — |
| `get_notification_details` | Get notification details | — |
| `get_release_by_tag` | Get a release by tag name | — |
| `get_repository_tree` | Get repository tree | — |
| `get_secret_scanning_alert` | Get secret scanning alert | — |
| `get_tag` | Get tag details | — |
| `get_team_members` | Get team members | — |
| `get_teams` | Get teams | — |
| `github_support_docs_search` | Retrieve documentation relevant to answer GitHub product and support questions | — |
| `issue_read` | Get issue details | — |
| `list_branches` | List branches | — |
| `list_code_scanning_alerts` | List code scanning alerts | — |
| `list_commits` | List commits | — |
| `list_copilot_spaces` | List Copilot Spaces | — |
| `list_dependabot_alerts` | List dependabot alerts | — |
| `list_discussion_categories` | List discussion categories | — |
| `list_discussions` | List discussions | — |
| `list_gists` | List Gists | — |
| `list_global_security_advisories` | List global security advisories | — |
| `list_issue_fields` | List issue fields | — |
| `list_issue_types` | List available issue types | — |
| `list_issues` | List issues | — |
| `list_label` | List labels from a repository | — |
| `list_notifications` | List notifications | — |
| `list_org_repository_security_advisories` | List org repository security advisories | — |
| `list_pull_requests` | List pull requests | — |
| `list_releases` | List releases | — |
| `list_repository_collaborators` | List repository collaborators | — |
| `list_repository_security_advisories` | List repository security advisories | — |
| `list_secret_scanning_alerts` | List secret scanning alerts | — |
| `list_starred_repositories` | List starred repositories | — |
| `list_tags` | List tags | — |
| `projects_get` | Get details of GitHub Projects resources | — |
| `projects_list` | List GitHub Projects resources | — |
| `pull_request_read` | Get details for a single pull request | — |
| `repository_ruleset_read` | Read repository rulesets | — |
| `search_code` | Search code | — |
| `search_commits` | Search commits | — |
| `search_issues` | Search issues | — |
| `search_orgs` | Search organizations | — |
| `search_pull_requests` | Search pull requests | — |
| `search_repositories` | Search repositories | — |
| `search_users` | Search users | — |

### Write tools

| Tool | Description | Parameters |
| :- | :- | :- |
| `actions_run_trigger` | Trigger GitHub Actions workflow actions | — |
| `add_comment_to_pending_review` | Add review comment to the requester's latest pending pull request review | — |
| `add_issue_comment` | Add comment to issue or pull request | — |
| `add_reply_to_pull_request_comment` | Add reply to pull request comment | — |
| `assign_copilot_to_issue` | Assign Copilot to issue | — |
| `assign_copilot_to_issue_with_intent` | Assign Copilot to issue with intent | — |
| `create_branch` | Create branch | — |
| `create_gist` | Create Gist | — |
| `create_or_update_file` | Create or update file | — |
| `create_pull_request` | Open new pull request | — |
| `create_pull_request_with_copilot` | Perform task with GitHub Copilot coding agent | — |
| `create_repository` | Create repository | — |
| `create_repository_ruleset` | Create repository ruleset | — |
| `custom_properties_write` | Set custom properties | — |
| `delete_file` | Delete file | — |
| `delete_repository` | Delete repository | — |
| `discussion_comment_write` | Manage discussion comments | — |
| `dismiss_notification` | Dismiss notification | — |
| `fork_repository` | Fork repository | — |
| `issue_write` | Create or update issue/pull request | — |
| `label_write` | Write operations on repository labels | — |
| `manage_notification_subscription` | Manage notification subscription | — |
| `manage_repository_notification_subscription` | Manage repository notification subscription | — |
| `mark_all_notifications_read` | Mark all notifications as read | — |
| `merge_pull_request` | Merge pull request | — |
| `projects_write` | Manage GitHub Projects | — |
| `pull_request_review_write` | Write operations (create, submit, delete) on pull request reviews | — |
| `push_files` | Push files to repository | — |
| `request_copilot_review` | Request Copilot review | — |
| `star_repository` | Star repository | — |
| `sub_issue_write` | Change sub-issue | — |
| `unstar_repository` | Unstar repository | — |
| `update_gist` | Update Gist | — |
| `update_issue_comment` | Update issue comment | — |
| `update_pull_request` | Edit pull request | — |
| `update_pull_request_branch` | Update pull request branch | — |

## Troubleshooting

* **Expired or revoked access**: If your personal access token expires or is revoked, the MCP will show that it needs to reconnect. Go to the MCP's page in Nekt and update the token to restore access.
* **Missing permissions**: If the agent fails to perform certain actions (especially write operations like creating branches or modifying issues), ensure your token has the correct repository permissions granted. A read-only token will restrict the agent to read-only tools.
* **Pending organization approval**: If you created a fine-grained token for an organization that requires approval, the token will only have read access to public resources until an administrator approves it in GitHub.

## Need help?

Contact our support team if you have trouble connecting Github.
