Connect to GitHub changedthird-party/claude-desktop/connectors-github
Nearest release: v2.1.302, published 2 hours after upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 16 Oct 2026 14:21 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 20 Oct 2026 18:07 UTC.
Upstream edited
Recorded here
Lines+38added
Lines−40removed
From line
42
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits5to this page, all time
The whole hunk
from line 42, old and new numbered
/
from line 42
4242
4343### Set up the local connector
4444
45<Steps>
46 <Step title="Register a GitHub OAuth app">
47 In your GitHub organization, open **Settings → Developer settings → OAuth Apps → New OAuth App** and register an app for Claude Desktop:
45**1. Register a GitHub OAuth app**
4846
49 1. Set **Application name** and **Homepage URL** to values your users will recognize on the authorization screen.
50 2. Enter any valid URL as the **Authorization callback URL**. The device flow does not use a redirect, but GitHub requires the field.
51 3. After registering, select **Enable Device Flow** on the app's settings page and save. Sign-in fails without it.
52 4. Note the app's **Client ID**. Do not create a client secret; the device flow does not use one, and Claude Desktop never asks for it.
47In your GitHub organization, open **Settings → Developer settings → OAuth Apps → New OAuth App** and register an app for Claude Desktop:
5348
54 A GitHub App works in place of an OAuth app: put its client ID in the same field. Its permissions come from the app registration itself (the entry's `scope` field is ignored), it must be installed where users need access, and its user tokens expire after about eight hours, so users sign in again more often than with an OAuth app.
55 </Step>
491. Set **Application name** and **Homepage URL** to values your users will recognize on the authorization screen.
502. Enter any valid URL as the **Authorization callback URL**. The device flow does not use a redirect, but GitHub requires the field.
513. After registering, select **Enable Device Flow** on the app's settings page and save. Sign-in fails without it.
524. Note the app's **Client ID**. Do not create a client secret; the device flow does not use one, and Claude Desktop never asks for it.
5653
57 <Step title="Add the managed entry">
58 In the Claude Desktop [in-app configuration window](/docs/third-party/claude-desktop/in-app-configuration), open **Connectors**, select **Add server**, and choose **GitHub** under the **Built-in** group. Enter the client ID from step 1, select **Test this connection** to verify that the bundled server starts and lists its tools, and select **Save**.
54A GitHub App works in place of an OAuth app: put its client ID in the same field. Its permissions come from the app registration itself (the entry's `scope` field is ignored), it must be installed where users need access, and its user tokens expire after about eight hours, so users sign in again more often than with an OAuth app.
5955
60 If you manage configuration through JSON or a plist directly, add an entry to [`managedMcpServers`](/docs/third-party/claude-desktop/configuration#managedmcpservers) with the `server` field set to `github`:
56**2. Add the managed entry**
6157
62 ```json theme={null}
63 {
64 "name": "GitHub",
65 "server": "github",
66 "clientId": "OAUTH_APP_CLIENT_ID_FROM_STEP_1"
67 }
68 ```
58In the Claude Desktop [in-app configuration window](/docs/third-party/claude-desktop/in-app-configuration), open **Connectors**, select **Add server**, and choose **GitHub** under the **Built-in** group. Enter the client ID from step 1, select **Test this connection** to verify that the bundled server starts and lists its tools, and select **Save**.
6959
70 | Field | Required | Description |
71 | - | - | - |
72 | `name` | Yes | Unique display name, shown to users in connector settings. |
73 | `server` | Yes | Must be `github`. |
74 | `clientId` | Yes | The client ID of the OAuth app (or GitHub App) from step 1. |
75 | `host` | No | Base URL of your GitHub Enterprise Server instance, for example `https://github.example.com`. Leave unset for github.com. HTTPS is required. |
76 | `scope` | No | Space-separated OAuth scopes to request at sign-in, for example `repo read:org`. Defaults to `repo read:org read:user`. Ignored for GitHub Apps. |
77 | `toolsets` | No | Comma-separated [github-mcp-server toolsets](https://github.com/github/github-mcp-server) to enable, for example `context,repos,issues,pull_requests`. Defaults to the bundled server's default toolsets. |
78 | `readOnly` | No | `true` starts the server with read tools only; write tools are not registered at all. |
79 | `toolPolicy` | No | Per-tool approval locks, the same as for any managed server. See [`toolPolicy`](/docs/third-party/claude-desktop/configuration#managedmcpservers). |
60If you manage configuration through JSON or a plist directly, add an entry to [`managedMcpServers`](/docs/third-party/claude-desktop/configuration#managedmcpservers) with the `server` field set to `github`:
8061
81 In the in-app configuration window, the GitHub form offers the client ID, GitHub Enterprise Server URL, toolsets, and read-only fields; set `scope` through exported JSON or your device-management tool if you need a non-default scope set.
82 </Step>
62```json theme={null}
63{
64 "name": "GitHub",
65 "server": "github",
66 "clientId": "OAUTH_APP_CLIENT_ID_FROM_STEP_1"
67}
68```
8369
84 <Step title="Allow the required network hosts">
85 The server and the sign-in flow call GitHub directly from the device, so in addition to the [base egress hosts](/docs/third-party/claude-desktop/telemetry#required-egress-paths), devices need outbound HTTPS access to:
70| Field | Required | Description |
71| - | - | - |
72| `name` | Yes | Unique display name, shown to users in connector settings. |
73| `server` | Yes | Must be `github`. |
74| `clientId` | Yes | The client ID of the OAuth app (or GitHub App) from step 1. |
75| `host` | No | Base URL of your GitHub Enterprise Server instance, for example `https://github.example.com`. Leave unset for github.com. HTTPS is required. |
76| `scope` | No | Space-separated OAuth scopes to request at sign-in, for example `repo read:org`. Defaults to `repo read:org read:user`. Ignored for GitHub Apps. |
77| `toolsets` | No | Comma-separated [github-mcp-server toolsets](https://github.com/github/github-mcp-server) to enable, for example `context,repos,issues,pull_requests`. Defaults to the bundled server's default toolsets. |
78| `readOnly` | No | `true` starts the server with read tools only; write tools are not registered at all. |
79| `toolPolicy` | No | Per-tool approval locks, the same as for any managed server. See [`toolPolicy`](/docs/third-party/claude-desktop/configuration#managedmcpservers). |
8680
87 | Host | Purpose |
88 | - | - |
89 | `github.com` | OAuth device-flow sign-in |
90 | `api.github.com` | GitHub API calls |
81In the in-app configuration window, the GitHub form offers the client ID, GitHub Enterprise Server URL, toolsets, and read-only fields; set `scope` through exported JSON or your device-management tool if you need a non-default scope set.
9182
92 GitHub Enterprise Server deployments need access to the instance's own host instead. No egress to any Anthropic host is needed for GitHub data.
93 </Step>
94</Steps>
83**3. Allow the required network hosts**
84
85The server and the sign-in flow call GitHub directly from the device, so in addition to the [base egress hosts](/docs/third-party/claude-desktop/telemetry#required-egress-paths), devices need outbound HTTPS access to:
86
87| Host | Purpose |
88| - | - |
89| `github.com` | OAuth device-flow sign-in |
90| `api.github.com` | GitHub API calls |
91
92GitHub Enterprise Server deployments need access to the instance's own host instead. No egress to any Anthropic host is needed for GitHub data.
9593
9694### How users sign in
9795
No line in this hunk matches that.