Skip to content

Connectors · Developer & infrastructure

GitHub MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to GitHub and the rest of your systems. It gives your agent 602 GitHub actions (321 reads, 177 writes and 104 that wait for a confirmation) and holds the GitHub credential itself, so the agent never does. It paces GitHub's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "github.users.list",  intent: "check which GitHub account is connected"}# List users · read · 1 upstream call
  • 602actionsin one signed file
  • 321readlook, never change
  • 177writecreate and update
  • 104wait for a yesdestructive, confirmed first

Set up

Connect GitHub in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect GitHub.

    Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • tokenGitHub personal access token
    account { op: "connections.requirements", service: "github" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "github.users.list" }# list users · read · 1 upstream callcheck { action: "github.teams.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

GitHub at a glance

Sign-in
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
token
Limits we pace to
5,000 calls an hour, per connection
API covered
GitHub API 2022-11-28api.github.com
Built from
GitHub's documentation, read 15 September 2026OpenAPI spec (GitHub)
Service file
Version 2.0.0, signed (Ed25519)
Cached reads
305 of 321 reads, for up to an hour; a write clears what it affects
Ready-made plans
10 in the store
Shared entities
6, so ask can line GitHub up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in GitHub.

602 actions in 16 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 321readlook, never change
  • 177writecreate and update
  • 104destructivewait for a confirmation
  1. Repositories

    141

    71 read · 46 write · 24 destructive

    List organization repositories · List release assets · List repository teams · List repositories for the authenticated user

  2. Actions

    79

    42 read · 18 write · 19 destructive

    List selected repositories for an organization secret · List selected repositories for an organization variable · List artifacts for a repository · List workflow run artifacts

  3. Issues

    58

    27 read · 20 write · 11 destructive

    List repository issues · List issue comments for a repository · Create an issue · List issues assigned to the authenticated user

  4. Organisations

    50

    26 read · 15 write · 9 destructive

    List organizations · List organizations for the authenticated user · List organizations for a user · List organization invitation teams

  5. Users

    47

    28 read · 9 write · 10 destructive

    List users · Get a user using their ID · Get a user · Get contextual information for a user

  6. Activity

    34

    24 read · 6 write · 4 destructive

    List notifications for the authenticated user · List repository notifications for the authenticated user · Get feeds · List events for the authenticated user

  7. Pull requests

    34

    15 read · 16 write · 3 destructive

    List pull requests · Create a pull request stack · Create a pull request · Create a review for a pull request

  8. Teams

    32

    17 read · 8 write · 7 destructive

    List teams · List child teams · List child teams (Legacy) · List teams for the authenticated user

8 more areas · 127 actions
  • Packages 27
  • Projects 26
  • Gists 20
  • Reactions 15
  • Git 13
  • Checks 12
  • Meta 7
  • Search 7

GitHub's own MCP server

GitHub's MCP server, or actionlake?

GitHub runs a remote MCP server at api.githubcopilot.com/mcp, signed in with OAuth or a personal access token, and publishes the same server to run locally.

Use GitHub's server when one person wants to work in GitHub from their own AI client. Use actionlake when you also want GitHub behind the same endpoint as your other systems: a key per agent with allowed actions and a spending cap, a named person's approval before destructive actions, a sealed record of every call, and one ask across GitHub and another system.

Source: GitHub's documentation, checked 22 October 2026.

Top actions

The GitHub API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 259 of GitHub's 264 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
github.users.listList usersList usersreadidentity.user.list474 connectors
github.orgs.listList organizationsList organizationsreadidentity.group.list262 connectors
github.repos.list_for_orgList organization repositoriesList organization repositoriesreaddevops.repository.list28 connectors
github.repos.list_release_assetsList release assetsList release assetsreaddevops.artifact.list17 connectors
github.teams.listList teamsList teamsreadidentity.group.list262 connectors
github.teams.createCreate a teamCreate a teamwriteidentity.group.create205 connectors
github.issues.list_for_repoList repository issuesList repository issuesreadwork.task.list122 connectors
github.users.get_by_idGet a user using their IDGet a user using their IDreadidentity.user.get399 connectors
github.repos.list_forksList forksList forksreaddevops.repository.list28 connectors
github.users.update_authenticatedUpdate the authenticated userUpdate the authenticated userwriteidentity.user.update280 connectors
github.orgs.deleteDelete an organizationDelete an organizationdestructiveidentity.group.delete181 connectors
github.issues.createCreate an issueCreate an issuewritework.task.create127 connectors

Try it

Prompts to paste into Claude.

Each one names the GitHub actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which GitHub tasks are overdue, and who owns each one?

    callsgithub.issues.list_for_repo

  2. Planwrite

    Audit protection settings on a branch in GitHub.

    callsgithub.repos.get_branchgithub.repos.get_pull_request_review_protectiongithub.repos.get_all_status_check_contextsgithub.repos.get_teams_with_access_to_protected_branchgithub.repos.set_status_check_contexts+1 more

  3. Planwrite

    Create a repository from a template and set it up in GitHub. Ask me before anything is sent or changed.

    callsgithub.repos.create_using_templategithub.repos.get_readmegithub.repos.create_or_update_file_contentsgithub.repos.create_autolinkgithub.issues.create_milestone+1 more

  4. Writewrite

    Create a team in GitHub. Show me exactly what you will send before you save it.

    callsgithub.teams.create

The plan store

Ready-made plans for GitHub.

10 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.

  1. Collect a weekly health snapshot for a repository

    Use it when Someone wants a weekly read-only health snapshot of a single repository.

    Effect
    read
    Steps
    6
    Needs
    owner and repo
    Install
    github-weekly-repo-health-report
  2. Triage stale organisation issues and label them

    Use it when An agent needs to find and label issues in an organisation that have gone quiet.

    Effect
    write
    Steps
    3 · loops
    Needs
    org, owner, repo, stale days and triage label
    Install
    github-triage-stale-org-issues
  3. Read and clear repository notifications

    Use it when A noisy repository notification inbox needs reading and clearing down.

    Effect
    write
    Steps
    5 · loops
    Needs
    owner, repo and since days
    Install
    github-clear-notification-inbox
  4. Rotate an organisation Actions secret

    Use it when An organisation Actions secret needs a new value pushed with an approval trail.

    A person decidesOverwrite organisation secret secret name in org with a new encrypted value. Running workflows will pick it up immediately.

    Effect
    write
    Steps
    5
    Needs
    encrypted value, key id, org, secret name and visibility
    Install
    github-rotate-org-actions-secret
  5. Audit protection settings on a branch

    Use it when Someone wants to see how a protected branch is configured and align its required checks.

    Effect
    write
    Steps
    6
    Needs
    branch, contexts, owner, repo and sha
    Install
    github-audit-branch-protection
  6. Publish a draft release and announce it

    Use it when A draft GitHub release is ready and someone wants it published with a sign-off.

    A person decidesPublish release tag name of owner/repo to the public and mark it latest.

    Effect
    write
    Steps
    6
    Needs
    owner, release id, repo and sha
    Install
    github-publish-release-notes
  7. Create a repository from a template and set it up

    Use it when A new project repository must be stood up from a template with its initial scaffolding.

    A person decidesCreate repository org/name from template template owner/template repo.

    Effect
    write
    Steps
    7
    Needs
    name, org, template owner, template repo and tracker url
    Install
    github-bootstrap-repo-from-template
  8. Approve and merge a pull request once checks are green

    Use it when A pull request is ready and someone wants it reviewed and merged with a sign-off.

    A person decidesApprove and merge owner/repo pull request #pull number using merge method.

    Effect
    write
    Steps
    7
    Needs
    head ref, merge method, owner, pull number and repo
    Install
    github-review-and-merge-pull-request
  9. Offboard a member from an organisation

    Use it when Someone has left and their organisation access must be revoked with a sign-off.

    A person decidesRemove username (role) from the org organisation. This revokes all their access.

    Effect
    destructive
    Steps
    5
    Needs
    org and username
    Install
    github-offboard-org-member
  10. Re-run a failed workflow and wait for the result

    Use it when A CI run failed and someone wants it retried once a human agrees.

    A person decidesRe-run workflow name on owner/repo after failure in job name.

    Effect
    destructive
    Steps
    6
    Needs
    job id, owner, repo and run id
    Install
    github-retry-failed-workflow-run
install a plan
account { op: "plans.install", slug: "github-weekly-repo-health-report" }
# then ask for it by name; a schedule can run it on a timetable

Governance for GitHub

Destructive actions wait for a yes.

104 GitHub actions are destructive. The first 10:

  • Delete an organizationgithub.orgs.delete
  • Delete a teamgithub.teams.delete_in_org
  • Delete a team (Legacy)github.teams.delete_legacy
  • Delete a repositorygithub.repos.delete
  • Delete an artifactgithub.actions.delete_artifact
  • Delete a release assetgithub.repos.delete_release_asset
  • Unlock an issuegithub.issues.unlock
  • Delete project item for organizationgithub.projects.delete_item_for_org
  • Delete project item for usergithub.projects.delete_item_for_user
  • Transfer a repositorygithub.repos.transfer

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

dogithub.orgs.deleteconfirm_policy: human

Delete an organization?

intent: the user asked me to delete an organization

run suspended · waiting for a named person · key github-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "github-agent",  allowed_actions: ["github.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "github.orgs.delete", approver: "[email protected]" },    { match: "github.teams.delete_in_org", approver: "[email protected]" },    { match: "github.teams.delete_legacy", approver: "[email protected]" }  ]}
Illustrative. Scoped to GitHub only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What GitHub costs on actionlake.

Every GitHub action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call GitHub refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 602 GitHub actions
  • 602actions pageeach page of a long list is one call
  • 305reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every GitHub action.

602 actions by area: the id your agent calls, what it does, and its effect.

Repositories141
  • github.repos.list_for_authenticated_userList repositories for the authenticated userread
  • github.repos.list_for_orgList organization repositoriesread
  • github.repos.list_release_assetsList release assetsread
  • github.repos.list_teamsList repository teamsread
  • github.repos.accept_invitation_for_authenticated_userAccept a repository invitationwrite
  • github.repos.add_app_access_restrictionsAdd app access restrictionswrite
  • and 135 more in this area
Actions79
  • github.actions.list_artifacts_for_repoList artifacts for a repositoryread
  • github.actions.list_selected_repos_for_org_secretList selected repositories for an organization secretread
  • github.actions.list_selected_repos_for_org_variableList selected repositories for an organization variableread
  • github.actions.list_workflow_run_artifactsList workflow run artifactsread
  • github.actions.add_selected_repo_to_org_secretAdd selected repository to an organization secretwrite
  • github.actions.add_selected_repo_to_org_variableAdd selected repository to an organization variablewrite
  • and 73 more in this area
Issues58
  • github.issues.createCreate an issuewrite
  • github.issues.listList issues assigned to the authenticated userread
  • github.issues.list_comments_for_repoList issue comments for a repositoryread
  • github.issues.list_for_repoList repository issuesread
  • github.issues.add_assigneesAdd assignees to an issuewrite
  • github.issues.add_blocked_by_dependencyAdd a dependency an issue is blocked bywrite
  • and 52 more in this area
Organisations50
  • github.orgs.listList organizationsread
  • github.orgs.list_for_authenticated_userList organizations for the authenticated userread
  • github.orgs.list_for_userList organizations for a userread
  • github.orgs.list_invitation_teamsList organization invitation teamsread
  • github.orgs.block_userBlock a user from an organizationwrite
  • github.orgs.cancel_invitationCancel an organization invitationdestructive
  • and 44 more in this area
Users47
  • github.users.get_by_idGet a user using their IDread
  • github.users.get_by_usernameGet a userread
  • github.users.get_context_for_userGet contextual information for a userread
  • github.users.listList usersread
  • github.users.add_email_for_authenticated_userAdd an email address for the authenticated userwrite
  • github.users.add_social_account_for_authenticated_userAdd social accounts for the authenticated userwrite
  • and 41 more in this area
Activity34
  • github.activity.get_feedsGet feedsread
  • github.activity.list_events_for_authenticated_userList events for the authenticated userread
  • github.activity.list_notifications_for_authenticated_userList notifications for the authenticated userread
  • github.activity.list_repo_notifications_for_authenticated_userList repository notifications for the authenticated userread
  • github.activity.check_repo_is_starred_by_authenticated_userCheck if a repository is starred by the authenticated userread
  • github.activity.delete_repo_subscriptionDelete a repository subscriptiondestructive
  • and 28 more in this area
Pull requests34
  • github.pull_request_stacks.createCreate a pull request stackwrite
  • github.pulls.createCreate a pull requestwrite
  • github.pulls.create_reviewCreate a review for a pull requestwrite
  • github.pulls.listList pull requestsread
  • github.pull_request_stacks.addAdd pull requests to a pull request stackwrite
  • github.pull_request_stacks.getGet a pull request stackread
  • and 28 more in this area
Teams32
  • github.teams.listList teamsread
  • github.teams.list_child_in_orgList child teamsread
  • github.teams.list_child_legacyList child teams (Legacy)read
  • github.teams.list_for_authenticated_userList teams for the authenticated userread
  • github.teams.add_member_legacyAdd team member (Legacy)write
  • github.teams.add_or_update_membership_for_user_in_orgAdd or update team membership for a userwrite
  • and 26 more in this area
Packages27
  • github.packages.list_docker_migration_conflicting_packages_for_authenticated_userGet list of conflicting packages during Docker migration for authenticated-userread
  • github.packages.list_docker_migration_conflicting_packages_for_organizationGet list of conflicting packages during Docker migration for organizationread
  • github.packages.list_docker_migration_conflicting_packages_for_userGet list of conflicting packages during Docker migration for userread
  • github.packages.list_packages_for_authenticated_userList packages for the authenticated user's namespaceread
  • github.packages.delete_package_for_authenticated_userDelete a package for the authenticated userdestructive
  • github.packages.delete_package_for_orgDelete a package for an organizationdestructive
  • and 21 more in this area
Projects26
  • github.projects.add_item_for_orgAdd item to organization owned projectwrite
  • github.projects.add_item_for_userAdd item to user owned projectwrite
  • github.projects.create_draft_item_for_authenticated_userCreate draft item for user owned projectwrite
  • github.projects.create_draft_item_for_orgCreate draft item for organization owned projectwrite
  • github.projects.add_field_for_orgAdd a field to an organization-owned project.write
  • github.projects.add_field_for_userAdd field to user owned projectwrite
  • and 20 more in this area
Gists20
  • github.gists.createCreate a gistwrite
  • github.gists.forkFork a gistwrite
  • github.gists.listList gists for the authenticated userread
  • github.gists.list_commitsList gist commitsread
  • github.gists.check_is_starredCheck if a gist is starredread
  • github.gists.create_commentCreate a gist commentwrite
  • and 14 more in this area
Reactions15
  • github.reactions.create_for_commit_commentCreate reaction for a commit commentwrite
  • github.reactions.list_for_commit_commentList reactions for a commit commentread
  • github.reactions.list_for_pull_request_review_commentList reactions for a pull request review commentread
  • github.reactions.list_for_releaseList reactions for a releaseread
  • github.reactions.create_for_issueCreate reaction for an issuewrite
  • github.reactions.create_for_issue_commentCreate reaction for an issue commentwrite
  • and 9 more in this area
Git13
  • github.git.create_refCreate a referencewrite
  • github.git.create_tagCreate a tag objectwrite
  • github.git.get_treeGet a treeread
  • github.git.list_matching_refsList matching referencesread
  • github.git.create_blobCreate a blobwrite
  • github.git.create_commitCreate a commitwrite
  • and 7 more in this area
Checks12
  • github.checks.list_annotationsList check run annotationsread
  • github.checks.list_for_refList check runs for a Git referenceread
  • github.checks.list_for_suiteList check runs in a check suiteread
  • github.checks.list_suites_for_refList check suites for a Git referenceread
  • github.checks.createCreate a check runwrite
  • github.checks.create_suiteCreate a check suitewrite
  • and 6 more in this area
Meta7
  • github.licenses.get_for_repoGet the license for a repositoryread
  • github.meta.getGet GitHub meta informationread
  • github.meta.get_all_versionsGet all API versionsread
  • github.meta.get_octocatGet Octocatread
  • github.meta.get_zenGet the Zen of GitHubread
  • github.meta.rootGitHub API Rootread
  • and 1 more in this area
Search7
  • github.search.issues_and_pull_requestsSearch issues and pull requestsread
  • github.search.reposSearch repositoriesread
  • github.search.topicsSearch topicsread
  • github.search.usersSearch usersread
  • github.search.codeSearch coderead
  • github.search.commitsSearch commitsread
  • and 1 more in this area

This index shows a sample of each area. All 602 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.

Questions

The GitHub MCP server, answered.

Is there a GitHub MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 602 GitHub actions across repositories, actions, issues and organisations, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by GitHub.

Does GitHub have its own MCP server?

GitHub runs a remote MCP server at api.githubcopilot.com/mcp, signed in with OAuth or a personal access token, and publishes the same server to run locally. (GitHub's documentation, checked 22 October 2026.) Use GitHub's server when one person wants to work in GitHub from their own AI client. Use actionlake when you also want GitHub behind the same endpoint as your other systems: a key per agent with allowed actions and a spending cap, a named person's approval before destructive actions, a sealed record of every call, and one ask across GitHub and another system.

What do I need to connect GitHub?

GitHub personal access token. The free call account { op: "connections.requirements", service: "github" } lists exactly what to paste.

Can an AI agent delete or change things in GitHub?

Only if its key allows it, and only with an explicit confirmation. 104 GitHub actions are destructive, including delete an organization, delete a team and delete a team (Legacy). Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my GitHub API limit?

actionlake paces every call to the limits in the GitHub service file: 5,000 calls an hour per connection. Repeated reads are answered from cache (305 GitHub actions can be), which never reaches GitHub.

What does a GitHub action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (602 GitHub actions page). Cache hits, searches, dry runs and calls GitHub refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which GitHub API does it cover?

The GitHub API 2022-11-28 at api.github.com. It is built from GitHub's documentation as read on 15 September 2026. 602 actions in 16 areas, each one in the signed service file (version 2.0.0).

Does actionlake keep my GitHub data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your GitHub credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent GitHub today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.