diff --git a/schemas/server-definition.schema.json b/schemas/server-definition.schema.json index 7d21e35..1936cee 100644 --- a/schemas/server-definition.schema.json +++ b/schemas/server-definition.schema.json @@ -167,6 +167,11 @@ "format": "uri", "description": "HTTP endpoint URL (supports Streamable HTTP)" }, + "headers": { + "type": "object", + "additionalProperties": { "type": "string" }, + "description": "HTTP headers to include with requests. Values support ${input:ID} placeholders for user-provided values." + }, "metadata": { "$ref": "#/$defs/metadata" } diff --git a/servers/com.github-mcp-http.json b/servers/com.github-mcp-http.json new file mode 100644 index 0000000..62ad4f3 --- /dev/null +++ b/servers/com.github-mcp-http.json @@ -0,0 +1,65 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.github-mcp-http", + "name": "GitHub (Remote)", + "alias": "gh-remote", + "description": "Interact with GitHub repositories, issues, pull requests, actions, and code security through GitHub's hosted remote MCP server. No local installation required. Authenticates with a Personal Access Token (PAT) via Bearer header.", + "icon": "https://avatars.githubusercontent.com/u/9919?v=4", + "schema_version": "2.1", + "categories": ["developer-tools", "version-control"], + "tags": ["git", "github", "code", "issues", "pull-requests", "repos", "actions", "code-review", "remote"], + + "transport": { + "type": "http", + "url": "https://api.githubcopilot.com/mcp/", + "headers": { + "Authorization": "Bearer ${input:GITHUB_TOKEN}" + }, + "metadata": { + "inputs": [ + { + "id": "GITHUB_TOKEN", + "label": "GitHub Personal Access Token", + "description": "Personal Access Token for GitHub. Create a fine-grained PAT with the scopes needed for the tools you want to use.", + "type": "password", + "required": true, + "secret": true, + "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "url": "https://github.com/settings/tokens?type=beta", + "instructions": "1. Go to github.com/settings/tokens\n2. Click 'Generate new token' > 'Fine-grained token'\n3. Set expiration, select repositories, and choose permissions\n4. Click 'Generate token' and copy it", + "button_label": "Create Token" + } + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Create a GitHub Personal Access Token (fine-grained) at https://github.com/settings/tokens with the scopes needed for the tools you want to use. The token is sent as a Bearer token in the Authorization header." + }, + + "contributor": { + "name": "GitHub", + "github": "github", + "url": "https://github.com" + }, + + "links": { + "repository": "https://github.com/github/github-mcp-server", + "homepage": "https://github.com", + "documentation": "https://github.com/github/github-mcp-server#readme" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": true, + "prompts": true, + "read_only_mode": false + }, + + "changelog_url": "https://github.com/github/github-mcp-server/releases" +} diff --git a/servers/com.github-mcp.json b/servers/com.github-mcp.json index c14b20e..a52ae06 100644 --- a/servers/com.github-mcp.json +++ b/servers/com.github-mcp.json @@ -1,29 +1,31 @@ { "$schema": "../schemas/server-definition.schema.json", "id": "com.github-mcp", - "name": "GitHub", + "name": "GitHub (Local)", "alias": "gh", - "description": "Interact with GitHub repositories, issues, pull requests, actions, and code security through the official GitHub MCP server.", + "description": "Interact with GitHub repositories, issues, pull requests, actions, and code security through the official GitHub MCP server running locally via Docker. Supports GitHub.com, GitHub Enterprise Server, and GitHub Enterprise Cloud (ghe.com).", "icon": "https://avatars.githubusercontent.com/u/9919?v=4", "schema_version": "2.1", "categories": ["developer-tools", "version-control"], - "tags": ["git", "github", "code", "issues", "pull-requests", "repos", "actions", "code-review"], + "tags": ["git", "github", "code", "issues", "pull-requests", "repos", "actions", "code-review", "enterprise"], "transport": { "type": "stdio", "command": "docker", "args": [ - "run", "-i", "--rm", "-e", - "GITHUB_PERSONAL_ACCESS_TOKEN", + "run", "-i", "--rm", + "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", + "-e", "GITHUB_HOST", "ghcr.io/github/github-mcp-server" ], "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:GITHUB_TOKEN}" + "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:GITHUB_PERSONAL_ACCESS_TOKEN}", + "GITHUB_HOST": "${input:GITHUB_HOST}" }, "metadata": { "inputs": [ { - "id": "GITHUB_TOKEN", + "id": "GITHUB_PERSONAL_ACCESS_TOKEN", "label": "GitHub Personal Access Token", "description": "Token used to authenticate with the GitHub API. Requires repo and read:org scopes.", "type": "password", @@ -35,6 +37,16 @@ "instructions": "1. Click 'Generate new token (classic)'\n2. Give it a name like 'McpMux'\n3. Select scopes: repo, read:org\n4. Click 'Generate token'\n5. Copy the token (starts with ghp_)", "button_label": "Create Token" } + }, + { + "id": "GITHUB_HOST", + "label": "GitHub Host", + "description": "GitHub hostname. Set this for GitHub Enterprise Server or GitHub Enterprise Cloud with data residency. Leave empty for github.com.", + "type": "url", + "required": false, + "secret": false, + "default": "https://api.github.com", + "placeholder": "https://github.example.com" } ] }