Server

GitHub

Endpoint
https://api.githubcopilot.com/mcp
Transport
Streamable HTTP
Access
Public Anyone can connect; where an account is needed, anyone can create one by self-service sign-up. Manual check · jbspeakr (documentation pass with Claude Code) · · evidence · Any GitHub account can authorize the server; organization admin policies may limit scopes, and EMU enterprises may disable PATs.
Auth
OAuth An OAuth 2.x authorization obtained through the server's authorization server. Manual check · jbspeakr (documentation pass with Claude Code) · · evidence · One-click OAuth is the default; a personal access token sent as a bearer header is also accepted.
Why it is listed
Listed because it appears in a public directory of MCP servers. Source
Homepage
https://github.com

Against MCP Authorization 2026-07-28current

  • Supported 12
  • Unsupported 3
  • Unknown 8

Passive scanGrade C · · Report

Contribute a correctionWithdraw this serverJSON

Older revisions of the matrix: 2025-11-25

MCP server features 13

FeatureLevelStatusObservedEvidence
Protected Resource Metadata servedmcp.prm · Discovery · Authorization Server Discovery › Authorization Server LocationMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; resource: https://api.githubcopilot.com/mcp
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
PRM lists an authorization servermcp.prm.authorization-servers · Discovery · Authorization Server Discovery › Authorization Server LocationMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; authorization_servers: [https://github.com/login/oauth]
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
PRM lists scopes_supportedmcp.prm.scopes-supported · Discovery · Authorization › Scope Selection StrategyMAYSupportedPassive scan · scanner@0.3.0source— HTTP 200; scopes_supported: [repo, read:org, read:user, user:email, read:packages, write:packages, read:project, project, gist, notifications]
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
PRM reachable at a well-known URImcp.prm.well-known · Discovery · Authorization Server Discovery › Protected Resource Metadata Discovery RequirementsMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; found at the path-aware location
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
resource_metadata in the 401 challengemcp.prm.www-authenticate · Discovery · Authorization Server Discovery › Protected Resource Metadata Discovery RequirementsMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 401; WWW-Authenticate resource_metadata: https://api.githubcopilot.com/.well-known/oauth-protected-resource/mcp
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
403 insufficient_scope for step-upmcp.rs.insufficient-scope · Authorization · Authorization › Scope Challenge HandlingSHOULDUnknown no observationno observation yet
Scope in the WWW-Authenticate challengemcp.rs.scope-challenge · Authorization · Authorization › Scope Selection StrategySHOULDUnsupportedPassive scan · scanner@0.3.0source— HTTP 401; WWW-Authenticate: Bearer error="invalid_request", error_description="No access token was provided in this request", resource_metadata="https://api.githubcopilot.com/.well-known/oauth-protected-resource/mcp", no scope parameter
No offline_access in advertised scopesmcp.prm.no-offline-access · Tokens · Authorization › Refresh TokensSHOULDSupportedPassive scan · scanner@0.3.0source— HTTP 200; scopes_supported without offline_access: [repo, read:org, read:user, user:email, read:packages, write:packages, read:project, project, gist, notifications]
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
401 for missing or invalid tokensmcp.rs.401-on-invalid · Tokens · Authorization › Token HandlingMUSTUnknown no observationno observation yet
Audience validationmcp.rs.audience-validation · Tokens · Security Considerations › Access Token Privilege RestrictionMUSTUnknown no observationno observation yet
Bearer token only in the Authorization headermcp.rs.bearer-header · Tokens · Authorization › Access Token UsageMUSTUnknown no observationno observation yet
No token passthrough to upstream APIsmcp.rs.no-passthrough · Delegation · Security Considerations › Access Token Privilege RestrictionMUSTUnknown no observationno observation yet
Per-client consent on proxy serversmcp.proxy.consent · Consent · Security Considerations › Confused Deputy ProblemMUSTUnknown no observationno observation yet

Authorization server features 10

FeatureLevelStatusObservedEvidence
Metadata issuer matches the discovery URLmcp.as.issuer-match · Discovery · Authorization Server Discovery › Authorization Server Metadata DiscoveryMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; issuer: https://github.com/login/oauth equals the issuer the PRM named
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
Authorization server metadata discoverablemcp.as.metadata · Discovery · Authorization Server Discovery › Authorization Server Metadata DiscoveryMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; issuer: https://github.com/login/oauth
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
Client ID Metadata Documents supportedmcp.as.cimd · Registration · Client Registration › Client ID Metadata DocumentsSHOULDUnsupportedPassive scan · scanner@0.3.0source— HTTP 200; client_id_metadata_document_supported: absent
1 earlier observation
  1. Unsupported · Passive scan · scanner@0.2.0 · evidence
Dynamic Client Registration offeredmcp.as.dcr · Registration · Client Registration › Dynamic Client RegistrationMAYUnsupportedPassive scan · scanner@0.3.0source— HTTP 200; registration_endpoint: absent
2 earlier observations
  1. Unsupported · Passive scan · scanner@0.2.0 · evidence
  2. Unsupported · Vendor claim · jbspeakr · evidence
Documented pre-registration pathmcp.as.preregistration · Registration · Client Registration › Pre-registrationSHOULDSupportedVendor claim · jbspeakr (documentation pass with Claude Code)source— "Each MCP host application needs to configure a GitHub App or OAuth App to support remote access via OAuth. Any host application that supports remote MCP servers should support the remote GitHub server with PAT authentication." (Pre-registration is per host application via a GitHub App or OAuth App; PAT bearer auth is the fallback for unregistered hosts.)
Issuer identifier in authorization responsesmcp.as.iss-param · Authorization · Authorization › Authorization Response ValidationSHOULDSupportedPassive scan · scanner@0.3.0source— HTTP 200; authorization_response_iss_parameter_supported: true
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence
PKCE with S256 advertisedmcp.as.pkce-s256 · Authorization · Security Considerations › Authorization Code ProtectionMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; code_challenge_methods_supported: [S256]
2 earlier observations
  1. Supported · Passive scan · scanner@0.2.0 · evidence
  2. Partial · Vendor claim · jbspeakr (documentation pass with Claude Code) · evidence
Refresh token rotation for public clientsmcp.as.refresh-rotation · Tokens · Security Considerations › Token TheftMUSTUnknown no observationno observation yet
Resource indicators honouredmcp.as.resource-indicator · Tokens · Security Considerations › Token Audience Binding and ValidationMUSTUnknown no observationno observation yet
All endpoints served over HTTPSmcp.as.https · Transport · Security Considerations › Communication SecurityMUSTSupportedPassive scan · scanner@0.3.0source— HTTP 200; all 3 endpoints use https
1 earlier observation
  1. Supported · Passive scan · scanner@0.2.0 · evidence