GitHub
Connect GitHub so users can work with repositories and other resources their GitHub account is permitted to access through GitHub's hosted MCP server.
Before you begin, obtain:
- Administrative access to the GitHub organization that will own the OAuth app.
- Standard GitHub.com hosting for the target organization. This Setup Guide does not cover GitHub Enterprise Cloud with data residency or GitHub Enterprise Server.
- The organization-approved public URL for this connection from the application or cloud security owner.
- If the target organization restricts OAuth apps, access to an organization owner who can grant access — see Connect your credentials.
- A valid organization SSO session if the target organization protects resources with SSO enforcement.
Sign in at github.com.
Open organization developer settings
- Click your profile picture in the upper-right corner.
- Click Your organizations.
- To the right of the organization that should own the app, click Settings.
- In the left sidebar, click Developer settings.
- Click OAuth apps.
Register the OAuth app
GitHub makes OAuth app registration details public. Do not put internal URLs or sensitive details in the registration fields.
If the page shows New OAuth App, click it. If the page instead shows Register a new application, click it.
-
In Application name, enter a recognizable public name, such as
Speakeasy AI Control Plane – GitHub MCP. -
In Homepage URL, enter the full organization-approved public URL.
-
Optionally, enter a public-safe Application description.
-
In Authorization callback URL, enter this value:
https://ai.speakeasy.com/mcp/remote_login_callback -
Leave Enable Device Flow off.
-
Click Register application. This opens the app’s settings page.
If the target organization restricts OAuth apps, complete the organization approval flow after saving credentials in Connect your credentials.
Generate the OAuth credentials
- On the app’s settings page, copy the value next to Client ID into an approved password manager.
- Under Client secrets, click Generate a new client secret.
- Copy the generated client secret into the approved password manager. Do not put it in source control or this Guide.
If no usable secret is available before the first connection, return to this page and click Generate a new client secret.
Add the server in Speakeasy
- In the Speakeasy AI Control Plane sidebar, under MCP Gateway, select MCP.
- Click Add new to open Add MCP server.
- Choose From the catalog.
- On the MCP Catalog page, find GitHub using Search MCP servers….
- Open its entry and click Add.
- In the Add to Project dialog, under Identity, select User Identity. The dialog may preselect No Identity.
- Click Add to Project. If the dialog offers a Guardrails step, finish it or click Skip for now.
GitHub needs a client registered by hand, so the result says to finish setup in Settings > Identity, and the server stays Disabled for now. This is expected. Click Finish setup on the server’s result to open its Settings.
Connect your credentials
In the server’s Settings, find the Identity section.
-
Select User Identity.
-
In Choose an identity provider, confirm the provider is
https://github.com/login/oauth. It may be badged Will be created. If no provider or a different one is selected, open the picker, search forgithub.comin Search identity providers…, and choose thegithub.com/login/oauthprovider. -
Under the provider, choose Manual.
-
Paste the Client ID from Generate the OAuth credentials into Client ID.
-
Paste the client secret from Generate the OAuth credentials into Client secret. GitHub requires it, even though the field shows “Optional”.
-
Open Advanced and enter the scopes users may grant in Scope, on one line. Start from the full list GitHub’s server advertises and delete any your organization does not allow:
repo read:org read:user user:email read:packages write:packages read:project project gist notificationsA blank Scope requests every scope in this list, including
repo,write:packages, andgist. -
Click Save.
This section does not show the redirect URI. GitHub accepts the connection only if Register the OAuth app set Authorization callback URL to https://ai.speakeasy.com/mcp/remote_login_callback.
Then turn the server on:
- In Settings, open Danger Zone.
- Under Server Availability, turn on Enable MCP server so it shows Enabled.
If the target organization restricts OAuth apps, have a user authorize the connection, then complete the following:
- Have the user click their profile picture.
- Have the user click Settings.
- Under Integrations, have the user click Applications.
- Have the user click Authorized OAuth Apps.
- Have the user open this OAuth app.
- Next to the target organization, have the user click Request access.
- Have the user click Request approval from owners.
Then have an organization owner approve the pending request:
- Click the profile picture.
- Click Organizations.
- Select the target organization.
- Under the organization name, click Settings.
- Under Third-party Access, click OAuth app policy.
- Next to the app, click Review.
- Click Grant access.
If the user’s first authorization attempt was blocked before approval, have the user retry it after access is granted.
This guide covers setup only. For anything beyond it — billing, tool behavior, limits — see GitHub’s MCP documentation.