From 260e4df1ff96ffc164398e618909f5f6bfee53de Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Thu, 19 Feb 2026 15:11:46 +0800 Subject: [PATCH 1/5] feat: add multi-transport variants for MCP server definitions Split single server definitions into multiple variants based on transport/connection method and audience. Users can now choose between Remote HTTP (OAuth), Docker, npx, and self-hosted/enterprise options when installing a server. New variants added: - GitHub: Remote HTTP, Docker, Enterprise (GHES/GHEC) - Grafana: Self-Hosted, Cloud - Notion: Remote HTTP, npx, Docker - Sentry: Remote HTTP, npx, Self-Hosted - Supabase: Remote HTTP, npx - Playwright: npx, Docker - Slack: npx, Docker - Brave Search: npx, Docker - Exa Search: npx, Remote HTTP Total: 28 definitions (up from 16). All pass schema validation. Signed-off-by: Mohammod Al Amin Ashik --- ...ub-mcp.json => com.github-mcp-docker.json} | 8 +- servers/com.github-mcp-enterprise.json | 84 +++++++++++++++++ servers/com.github-mcp-http.json | 47 ++++++++++ servers/com.grafana-mcp-cloud.json | 94 +++++++++++++++++++ ....json => com.grafana-mcp-self-hosted.json} | 6 +- servers/com.notion-mcp-docker.json | 66 +++++++++++++ servers/com.notion-mcp-http.json | 47 ++++++++++ ...otion-mcp.json => com.notion-mcp-npx.json} | 8 +- ...ntry-mcp.json => com.sentry-mcp-http.json} | 7 +- servers/com.sentry-mcp-npx.json | 66 +++++++++++++ servers/com.sentry-mcp-self-hosted.json | 76 +++++++++++++++ servers/com.slack-mcp-docker.json | 84 +++++++++++++++++ ....slack-mcp.json => com.slack-mcp-npx.json} | 6 +- servers/com.supabase-mcp-http.json | 45 +++++++++ ...ase-mcp.json => com.supabase-mcp-npx.json} | 8 +- servers/community.brave-search-docker.json | 68 ++++++++++++++ ...h.json => community.brave-search-npx.json} | 6 +- servers/community.exa-search-http.json | 60 ++++++++++++ ...rch.json => community.exa-search-npx.json} | 8 +- servers/community.playwright-docker.json | 50 ++++++++++ ...ght.json => community.playwright-npx.json} | 6 +- 21 files changed, 819 insertions(+), 31 deletions(-) rename servers/{com.github-mcp.json => com.github-mcp-docker.json} (92%) create mode 100644 servers/com.github-mcp-enterprise.json create mode 100644 servers/com.github-mcp-http.json create mode 100644 servers/com.grafana-mcp-cloud.json rename servers/{com.grafana-mcp.json => com.grafana-mcp-self-hosted.json} (95%) create mode 100644 servers/com.notion-mcp-docker.json create mode 100644 servers/com.notion-mcp-http.json rename servers/{com.notion-mcp.json => com.notion-mcp-npx.json} (89%) rename servers/{com.sentry-mcp.json => com.sentry-mcp-http.json} (80%) create mode 100644 servers/com.sentry-mcp-npx.json create mode 100644 servers/com.sentry-mcp-self-hosted.json create mode 100644 servers/com.slack-mcp-docker.json rename servers/{com.slack-mcp.json => com.slack-mcp-npx.json} (97%) create mode 100644 servers/com.supabase-mcp-http.json rename servers/{com.supabase-mcp.json => com.supabase-mcp-npx.json} (91%) create mode 100644 servers/community.brave-search-docker.json rename servers/{community.brave-search.json => community.brave-search-npx.json} (88%) create mode 100644 servers/community.exa-search-http.json rename servers/{community.exa-search.json => community.exa-search-npx.json} (93%) create mode 100644 servers/community.playwright-docker.json rename servers/{community.playwright.json => community.playwright-npx.json} (88%) diff --git a/servers/com.github-mcp.json b/servers/com.github-mcp-docker.json similarity index 92% rename from servers/com.github-mcp.json rename to servers/com.github-mcp-docker.json index 916eb13..35af538 100644 --- a/servers/com.github-mcp.json +++ b/servers/com.github-mcp-docker.json @@ -1,9 +1,9 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "com.github-mcp", - "name": "GitHub", - "alias": "gh", - "description": "Interact with GitHub repositories, issues, pull requests, actions, and code security through the official GitHub MCP server.", + "id": "com.github-mcp-docker", + "name": "GitHub (Docker)", + "alias": "gh-docker", + "description": "Interact with GitHub repositories, issues, pull requests, and code security via Docker container. Requires Docker installed.", "icon": "https://avatars.githubusercontent.com/u/9919?v=4", "schema_version": "2.1", "categories": ["developer-tools", "version-control"], diff --git a/servers/com.github-mcp-enterprise.json b/servers/com.github-mcp-enterprise.json new file mode 100644 index 0000000..8cd0159 --- /dev/null +++ b/servers/com.github-mcp-enterprise.json @@ -0,0 +1,84 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.github-mcp-enterprise", + "name": "GitHub Enterprise", + "alias": "gh-ent", + "description": "Interact with GitHub Enterprise Server or GitHub Enterprise Cloud with Data Residency (ghe.com) via Docker container. For self-hosted GitHub instances.", + "icon": "https://avatars.githubusercontent.com/u/9919?v=4", + "schema_version": "2.1", + "categories": ["developer-tools", "version-control"], + "tags": ["git", "github", "enterprise", "ghes", "ghe", "self-hosted", "code", "issues", "pull-requests"], + + "transport": { + "type": "stdio", + "command": "docker", + "args": [ + "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_HOST": "${input:GITHUB_HOST}" + }, + "metadata": { + "inputs": [ + { + "id": "GITHUB_HOST", + "label": "GitHub Enterprise Host URL", + "description": "URL of your GitHub Enterprise instance. Include https:// prefix. For GHEC Data Residency use https://subdomain.ghe.com, for GHES use https://your-ghes-hostname.", + "type": "url", + "required": true, + "secret": false, + "placeholder": "https://github.mycompany.com", + "obtain": { + "instructions": "Enter the full URL of your GitHub Enterprise instance including the https:// protocol prefix.", + "button_label": "Learn More" + } + }, + { + "id": "GITHUB_TOKEN", + "label": "GitHub Personal Access Token", + "description": "Token used to authenticate with your GitHub Enterprise API. Requires repo and read:org scopes.", + "type": "text", + "required": true, + "secret": true, + "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "instructions": "1. Go to your GitHub Enterprise instance\n2. Navigate to Settings > Developer settings > Personal access tokens\n3. Click 'Generate new token (classic)'\n4. Select scopes: repo, read:org\n5. Click 'Generate token'\n6. Copy the token (starts with ghp_)", + "button_label": "Create Token" + } + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Create a personal access token on your GitHub Enterprise instance with repo and read:org scopes" + }, + + "contributor": { + "name": "GitHub", + "github": "github", + "url": "https://github.com" + }, + + "links": { + "repository": "https://github.com/github/github-mcp-server", + "homepage": "https://github.com/enterprise", + "documentation": "https://github.com/github/github-mcp-server#github-enterprise-server" + }, + + "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-http.json b/servers/com.github-mcp-http.json new file mode 100644 index 0000000..abca75c --- /dev/null +++ b/servers/com.github-mcp-http.json @@ -0,0 +1,47 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.github-mcp-http", + "name": "GitHub (Remote)", + "alias": "gh", + "description": "Interact with GitHub repositories, issues, pull requests, actions, and code security through GitHub's hosted remote MCP server. No local setup required.", + "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"], + + "transport": { + "type": "http", + "url": "https://api.githubcopilot.com/mcp/", + "metadata": { + "inputs": [] + } + }, + + "auth": { + "type": "oauth", + "instructions": "Authenticates via OAuth in your browser using your GitHub account. No token setup needed." + }, + + "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.grafana-mcp-cloud.json b/servers/com.grafana-mcp-cloud.json new file mode 100644 index 0000000..283dc3e --- /dev/null +++ b/servers/com.grafana-mcp-cloud.json @@ -0,0 +1,94 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.grafana-mcp-cloud", + "name": "Grafana Cloud", + "alias": "grafana-cloud", + "description": "Search dashboards, query Prometheus and Loki datasources, manage alerts, investigate incidents, and use Grafana Cloud features like Sift, OnCall, and Incidents.", + "icon": "https://avatars.githubusercontent.com/u/7195757?v=4", + "schema_version": "2.1", + "categories": ["monitoring", "developer-tools"], + "tags": ["grafana", "grafana-cloud", "monitoring", "dashboards", "prometheus", "loki", "alerts", "observability", "metrics", "incidents", "oncall"], + + "transport": { + "type": "stdio", + "command": "docker", + "args": [ + "run", "-i", "--rm", + "-e", "GRAFANA_URL", + "-e", "GRAFANA_SERVICE_ACCOUNT_TOKEN", + "-e", "GRAFANA_ORG_ID", + "grafana/mcp-grafana", + "-t", "stdio" + ], + "env": { + "GRAFANA_URL": "${input:GRAFANA_URL}", + "GRAFANA_SERVICE_ACCOUNT_TOKEN": "${input:GRAFANA_TOKEN}", + "GRAFANA_ORG_ID": "${input:GRAFANA_ORG_ID}" + }, + "metadata": { + "inputs": [ + { + "id": "GRAFANA_URL", + "label": "Grafana Cloud URL", + "description": "URL of your Grafana Cloud instance (e.g., https://myinstance.grafana.net).", + "type": "url", + "required": true, + "secret": false, + "placeholder": "https://myinstance.grafana.net" + }, + { + "id": "GRAFANA_TOKEN", + "label": "Grafana Service Account Token", + "description": "Service account token from your Grafana Cloud instance. Create one with the Editor role for full access.", + "type": "text", + "required": true, + "secret": true, + "placeholder": "glsa_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "url": "https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/service-accounts/", + "instructions": "1. Log in to your Grafana Cloud instance\n2. Navigate to Administration > Service accounts\n3. Click 'Add service account'\n4. Assign the 'Editor' role\n5. Click 'Add service account token'\n6. Copy the generated token (starts with glsa_)", + "button_label": "Learn More" + } + }, + { + "id": "GRAFANA_ORG_ID", + "label": "Grafana Organization ID", + "description": "Organization ID for multi-org Grafana Cloud setups. Leave empty for single-org instances.", + "type": "text", + "required": false, + "secret": false, + "default": "1", + "placeholder": "1" + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Create a service account token in your Grafana Cloud instance under Administration > Service accounts" + }, + + "contributor": { + "name": "Grafana Labs", + "github": "grafana", + "url": "https://grafana.com" + }, + + "links": { + "repository": "https://github.com/grafana/mcp-grafana", + "homepage": "https://grafana.com/products/cloud/", + "documentation": "https://github.com/grafana/mcp-grafana#readme" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": false, + "prompts": false, + "read_only_mode": false + }, + + "changelog_url": "https://github.com/grafana/mcp-grafana/releases" +} diff --git a/servers/com.grafana-mcp.json b/servers/com.grafana-mcp-self-hosted.json similarity index 95% rename from servers/com.grafana-mcp.json rename to servers/com.grafana-mcp-self-hosted.json index b479bd1..d660d4b 100644 --- a/servers/com.grafana-mcp.json +++ b/servers/com.grafana-mcp-self-hosted.json @@ -1,9 +1,9 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "com.grafana-mcp", - "name": "Grafana", + "id": "com.grafana-mcp-self-hosted", + "name": "Grafana (Self-Hosted)", "alias": "grafana", - "description": "Search dashboards, query Prometheus and Loki datasources, manage alerts, and investigate incidents through the official Grafana MCP server.", + "description": "Search dashboards, query Prometheus and Loki datasources, manage alerts, and investigate incidents on your self-hosted Grafana instance via Docker.", "icon": "https://avatars.githubusercontent.com/u/7195757?v=4", "schema_version": "2.1", "categories": ["monitoring", "developer-tools"], diff --git a/servers/com.notion-mcp-docker.json b/servers/com.notion-mcp-docker.json new file mode 100644 index 0000000..da0ec9c --- /dev/null +++ b/servers/com.notion-mcp-docker.json @@ -0,0 +1,66 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.notion-mcp-docker", + "name": "Notion (Docker)", + "alias": "notion-docker", + "description": "Read and write Notion pages, databases, and blocks via Docker container. Uses a Notion integration token for authentication.", + "icon": "https://avatars.githubusercontent.com/u/4792552?v=4", + "schema_version": "2.1", + "categories": ["productivity", "documentation"], + "tags": ["notion", "notes", "wiki", "database", "pages", "blocks", "knowledge-base", "docker"], + + "transport": { + "type": "stdio", + "command": "docker", + "args": ["run", "--rm", "-i", "-e", "NOTION_TOKEN", "mcp/notion"], + "env": { + "NOTION_TOKEN": "${input:NOTION_TOKEN}" + }, + "metadata": { + "inputs": [ + { + "id": "NOTION_TOKEN", + "label": "Notion Integration Token", + "description": "Internal integration secret token from Notion. Share the relevant pages/databases with your integration after creating it.", + "type": "text", + "required": true, + "secret": true, + "placeholder": "ntn_xxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "url": "https://www.notion.so/profile/integrations", + "instructions": "1. Go to notion.so/profile/integrations\n2. Click 'New integration'\n3. Give it a name and select your workspace\n4. Copy the Internal Integration Secret (starts with ntn_)\n5. Share desired pages/databases with the integration", + "button_label": "Create Integration" + } + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Create an integration at notion.so/profile/integrations and share pages with it" + }, + + "contributor": { + "name": "Notion", + "github": "makenotion", + "url": "https://notion.so" + }, + + "links": { + "repository": "https://github.com/makenotion/notion-mcp-server", + "homepage": "https://notion.so", + "documentation": "https://developers.notion.com" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": true, + "prompts": false, + "read_only_mode": false + }, + + "changelog_url": "https://github.com/makenotion/notion-mcp-server/releases" +} diff --git a/servers/com.notion-mcp-http.json b/servers/com.notion-mcp-http.json new file mode 100644 index 0000000..eae8bd6 --- /dev/null +++ b/servers/com.notion-mcp-http.json @@ -0,0 +1,47 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.notion-mcp-http", + "name": "Notion (Remote)", + "alias": "notion", + "description": "Read and write Notion pages, databases, and blocks through Notion's hosted remote MCP server. No local setup required, authenticates via OAuth.", + "icon": "https://avatars.githubusercontent.com/u/4792552?v=4", + "schema_version": "2.1", + "categories": ["productivity", "documentation"], + "tags": ["notion", "notes", "wiki", "database", "pages", "blocks", "knowledge-base"], + + "transport": { + "type": "http", + "url": "https://mcp.notion.com/mcp", + "metadata": { + "inputs": [] + } + }, + + "auth": { + "type": "oauth", + "instructions": "Authenticates via OAuth 2.1 in your browser using your Notion account. No token setup needed." + }, + + "contributor": { + "name": "Notion", + "github": "makenotion", + "url": "https://notion.so" + }, + + "links": { + "repository": "https://github.com/makenotion/notion-mcp-server", + "homepage": "https://notion.so", + "documentation": "https://developers.notion.com/docs/mcp" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": true, + "prompts": false, + "read_only_mode": false + }, + + "changelog_url": "https://github.com/makenotion/notion-mcp-server/releases" +} diff --git a/servers/com.notion-mcp.json b/servers/com.notion-mcp-npx.json similarity index 89% rename from servers/com.notion-mcp.json rename to servers/com.notion-mcp-npx.json index 9f02914..3bd060e 100644 --- a/servers/com.notion-mcp.json +++ b/servers/com.notion-mcp-npx.json @@ -1,9 +1,9 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "com.notion-mcp", - "name": "Notion", - "alias": "notion", - "description": "Read and write Notion pages, databases, blocks, and data sources through the official Notion MCP server.", + "id": "com.notion-mcp-npx", + "name": "Notion (npx)", + "alias": "notion-npx", + "description": "Read and write Notion pages, databases, and blocks locally via npx. Uses a Notion integration token for authentication.", "icon": "https://avatars.githubusercontent.com/u/4792552?v=4", "schema_version": "2.1", "categories": ["productivity", "documentation"], diff --git a/servers/com.sentry-mcp.json b/servers/com.sentry-mcp-http.json similarity index 80% rename from servers/com.sentry-mcp.json rename to servers/com.sentry-mcp-http.json index d3f04f3..cbaf89a 100644 --- a/servers/com.sentry-mcp.json +++ b/servers/com.sentry-mcp-http.json @@ -1,9 +1,9 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "com.sentry-mcp", - "name": "Sentry", + "id": "com.sentry-mcp-http", + "name": "Sentry (Remote)", "alias": "sentry", - "description": "Query and manage Sentry issues, errors, performance data, and project settings through the Sentry API.", + "description": "Query and manage Sentry issues, errors, performance data, and project settings through Sentry's hosted remote MCP server. No local setup required.", "icon": "\ud83d\udc1b", "schema_version": "2.1", "categories": ["monitoring", "developer-tools"], @@ -29,6 +29,7 @@ }, "links": { + "repository": "https://github.com/getsentry/sentry-mcp", "homepage": "https://sentry.io", "documentation": "https://docs.sentry.io" }, diff --git a/servers/com.sentry-mcp-npx.json b/servers/com.sentry-mcp-npx.json new file mode 100644 index 0000000..2b5ec92 --- /dev/null +++ b/servers/com.sentry-mcp-npx.json @@ -0,0 +1,66 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.sentry-mcp-npx", + "name": "Sentry (Local)", + "alias": "sentry-local", + "description": "Query and manage Sentry issues, errors, performance data, and project settings locally via npx. Supports AI-powered search with your own LLM API key.", + "icon": "\ud83d\udc1b", + "schema_version": "2.1", + "categories": ["monitoring", "developer-tools"], + "tags": ["sentry", "errors", "monitoring", "debugging", "performance", "observability"], + + "transport": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@sentry/mcp-server@latest"], + "env": { + "SENTRY_ACCESS_TOKEN": "${input:SENTRY_ACCESS_TOKEN}" + }, + "metadata": { + "inputs": [ + { + "id": "SENTRY_ACCESS_TOKEN", + "label": "Sentry User Auth Token", + "description": "User auth token from Sentry. Requires scopes: org:read, project:read, project:write, team:read, event:write.", + "type": "text", + "required": true, + "secret": true, + "placeholder": "sntryu_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "url": "https://sentry.io/settings/account/api/auth-tokens/", + "instructions": "1. Go to Sentry Settings > API > Auth Tokens\n2. Click 'Create New Token'\n3. Select scopes: org:read, project:read, project:write, team:read, team:write, event:write\n4. Click 'Create Token'\n5. Copy the generated token", + "button_label": "Create Token" + } + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Create a User Auth Token at Sentry Settings > API > Auth Tokens with org:read, project:read, project:write scopes" + }, + + "contributor": { + "name": "Sentry", + "github": "getsentry", + "url": "https://sentry.io" + }, + + "links": { + "repository": "https://github.com/getsentry/sentry-mcp", + "homepage": "https://sentry.io", + "documentation": "https://docs.sentry.io" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": true, + "prompts": false, + "read_only_mode": false + }, + + "changelog_url": "https://github.com/getsentry/sentry-mcp/releases" +} diff --git a/servers/com.sentry-mcp-self-hosted.json b/servers/com.sentry-mcp-self-hosted.json new file mode 100644 index 0000000..4646a3d --- /dev/null +++ b/servers/com.sentry-mcp-self-hosted.json @@ -0,0 +1,76 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.sentry-mcp-self-hosted", + "name": "Sentry (Self-Hosted)", + "alias": "sentry-sh", + "description": "Query and manage issues, errors, and performance data on your self-hosted Sentry instance. Runs locally via npx with a custom Sentry host.", + "icon": "\ud83d\udc1b", + "schema_version": "2.1", + "categories": ["monitoring", "developer-tools"], + "tags": ["sentry", "self-hosted", "errors", "monitoring", "debugging", "performance", "observability"], + + "transport": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@sentry/mcp-server@latest"], + "env": { + "SENTRY_ACCESS_TOKEN": "${input:SENTRY_ACCESS_TOKEN}", + "SENTRY_HOST": "${input:SENTRY_HOST}", + "MCP_DISABLE_SKILLS": "seer" + }, + "metadata": { + "inputs": [ + { + "id": "SENTRY_HOST", + "label": "Sentry Host", + "description": "Hostname of your self-hosted Sentry instance (hostname only, no https:// prefix).", + "type": "text", + "required": true, + "secret": false, + "placeholder": "sentry.mycompany.com" + }, + { + "id": "SENTRY_ACCESS_TOKEN", + "label": "Sentry User Auth Token", + "description": "User auth token from your self-hosted Sentry. Requires scopes: org:read, project:read, project:write, team:read, event:write.", + "type": "text", + "required": true, + "secret": true, + "placeholder": "sntryu_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "instructions": "1. Go to your Sentry instance Settings > API > Auth Tokens\n2. Click 'Create New Token'\n3. Select scopes: org:read, project:read, project:write, team:read, team:write, event:write\n4. Click 'Create Token'\n5. Copy the generated token", + "button_label": "Create Token" + } + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Create a User Auth Token on your self-hosted Sentry instance under Settings > API > Auth Tokens" + }, + + "contributor": { + "name": "Sentry", + "github": "getsentry", + "url": "https://sentry.io" + }, + + "links": { + "repository": "https://github.com/getsentry/sentry-mcp", + "homepage": "https://sentry.io", + "documentation": "https://develop.sentry.dev/self-hosted/" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": true, + "prompts": false, + "read_only_mode": false + }, + + "changelog_url": "https://github.com/getsentry/sentry-mcp/releases" +} diff --git a/servers/com.slack-mcp-docker.json b/servers/com.slack-mcp-docker.json new file mode 100644 index 0000000..8b3a083 --- /dev/null +++ b/servers/com.slack-mcp-docker.json @@ -0,0 +1,84 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.slack-mcp-docker", + "name": "Slack (Docker)", + "alias": "slack-docker", + "description": "Send and read Slack messages, manage channels, list users, add reactions, and interact with your Slack workspace via Docker container.", + "icon": "https://avatars.githubusercontent.com/u/6962987?v=4", + "schema_version": "2.1", + "categories": ["communication"], + "tags": ["slack", "messaging", "chat", "channels", "workspace", "collaboration", "docker"], + + "transport": { + "type": "stdio", + "command": "docker", + "args": [ + "run", "-i", "--rm", + "-e", "SLACK_BOT_TOKEN", + "-e", "SLACK_TEAM_ID", + "mcp/slack" + ], + "env": { + "SLACK_BOT_TOKEN": "${input:SLACK_BOT_TOKEN}", + "SLACK_TEAM_ID": "${input:SLACK_TEAM_ID}" + }, + "metadata": { + "inputs": [ + { + "id": "SLACK_BOT_TOKEN", + "label": "Slack Bot Token", + "description": "Bot user OAuth token for your Slack app. Requires scopes: channels:history, channels:read, chat:write, reactions:write, users:read, users.profile:read", + "type": "text", + "required": true, + "secret": true, + "placeholder": "xoxb-your-bot-token-here", + "obtain": { + "url": "https://api.slack.com/apps", + "instructions": "1. Go to api.slack.com/apps and create or select your app\n2. Navigate to OAuth & Permissions\n3. Add bot scopes: channels:history, channels:read, chat:write, reactions:write, users:read, users.profile:read\n4. Install the app to your workspace\n5. Copy the Bot User OAuth Token (starts with xoxb-)", + "button_label": "Create Slack App" + } + }, + { + "id": "SLACK_TEAM_ID", + "label": "Slack Team ID", + "description": "Your Slack workspace team ID. Found in workspace settings or the workspace URL.", + "type": "text", + "required": true, + "secret": false, + "placeholder": "T0123456789", + "obtain": { + "url": "https://slack.com/help/articles/221769328", + "instructions": "1. Open your Slack workspace in a browser\n2. The team ID is in the URL or available under Settings > Workspace Settings\n3. It starts with 'T' followed by alphanumeric characters", + "button_label": "Find Team ID" + } + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Create a Slack app at https://api.slack.com/apps and get the Bot User OAuth Token" + }, + + "contributor": { + "name": "Model Context Protocol", + "github": "modelcontextprotocol", + "url": "https://modelcontextprotocol.io" + }, + + "links": { + "repository": "https://github.com/modelcontextprotocol/servers", + "homepage": "https://slack.com", + "documentation": "https://api.slack.com/docs" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": false, + "prompts": false, + "read_only_mode": false + } +} diff --git a/servers/com.slack-mcp.json b/servers/com.slack-mcp-npx.json similarity index 97% rename from servers/com.slack-mcp.json rename to servers/com.slack-mcp-npx.json index 7bf9f72..d95c398 100644 --- a/servers/com.slack-mcp.json +++ b/servers/com.slack-mcp-npx.json @@ -1,9 +1,9 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "com.slack-mcp", - "name": "Slack", + "id": "com.slack-mcp-npx", + "name": "Slack (npx)", "alias": "slack", - "description": "Send and read Slack messages, manage channels, list users, add reactions, and interact with your Slack workspace.", + "description": "Send and read Slack messages, manage channels, list users, add reactions, and interact with your Slack workspace via npx.", "icon": "https://avatars.githubusercontent.com/u/6962987?v=4", "schema_version": "2.1", "categories": ["communication"], diff --git a/servers/com.supabase-mcp-http.json b/servers/com.supabase-mcp-http.json new file mode 100644 index 0000000..3c977f5 --- /dev/null +++ b/servers/com.supabase-mcp-http.json @@ -0,0 +1,45 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.supabase-mcp-http", + "name": "Supabase (Remote)", + "alias": "supabase", + "description": "Manage Supabase projects, databases, edge functions, storage, and authentication through Supabase's hosted remote MCP server. Authenticates via OAuth, no local setup required.", + "icon": "\u26a1", + "schema_version": "2.1", + "categories": ["database", "cloud"], + "tags": ["supabase", "postgres", "database", "auth", "storage", "edge-functions", "backend"], + + "transport": { + "type": "http", + "url": "https://mcp.supabase.com/mcp", + "metadata": { + "inputs": [] + } + }, + + "auth": { + "type": "oauth", + "instructions": "Authenticates via OAuth 2.1 in your browser using your Supabase account. No token setup needed." + }, + + "contributor": { + "name": "Supabase", + "github": "supabase", + "url": "https://supabase.com" + }, + + "links": { + "repository": "https://github.com/supabase-community/supabase-mcp", + "homepage": "https://supabase.com", + "documentation": "https://supabase.com/docs/guides/ai/mcp" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": true, + "prompts": false, + "read_only_mode": false + } +} diff --git a/servers/com.supabase-mcp.json b/servers/com.supabase-mcp-npx.json similarity index 91% rename from servers/com.supabase-mcp.json rename to servers/com.supabase-mcp-npx.json index e41fd99..c17f5e8 100644 --- a/servers/com.supabase-mcp.json +++ b/servers/com.supabase-mcp-npx.json @@ -1,9 +1,9 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "com.supabase-mcp", - "name": "Supabase", - "alias": "supabase", - "description": "Manage Supabase projects, databases, edge functions, storage, and authentication through the Supabase Management API.", + "id": "com.supabase-mcp-npx", + "name": "Supabase (npx)", + "alias": "supabase-npx", + "description": "Manage Supabase projects, databases, edge functions, storage, and authentication locally via npx. Uses a personal access token.", "icon": "\u26a1", "schema_version": "2.1", "categories": ["database", "cloud"], diff --git a/servers/community.brave-search-docker.json b/servers/community.brave-search-docker.json new file mode 100644 index 0000000..960468f --- /dev/null +++ b/servers/community.brave-search-docker.json @@ -0,0 +1,68 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "community.brave-search-docker", + "name": "Brave Search (Docker)", + "alias": "brave-docker", + "description": "Search the web using the Brave Search API via Docker container. Supports web search, news search, and local POI search with privacy-focused results.", + "icon": "https://avatars.githubusercontent.com/u/12301619?v=4", + "schema_version": "2.1", + "categories": ["search"], + "tags": ["brave", "search", "web-search", "news", "privacy", "research", "docker"], + + "transport": { + "type": "stdio", + "command": "docker", + "args": [ + "run", "-i", "--rm", + "-e", "BRAVE_API_KEY", + "mcp/brave-search" + ], + "env": { + "BRAVE_API_KEY": "${input:BRAVE_API_KEY}" + }, + "metadata": { + "inputs": [ + { + "id": "BRAVE_API_KEY", + "label": "Brave Search API Key", + "description": "API key for the Brave Search API. Free tier available with 2,000 queries/month.", + "type": "text", + "required": true, + "secret": true, + "placeholder": "BSAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "url": "https://brave.com/search/api/", + "instructions": "1. Go to brave.com/search/api\n2. Sign up or log in\n3. Subscribe to a plan (free tier available with 2,000 queries/month)\n4. Copy your API key from the dashboard", + "button_label": "Get API Key" + } + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Get a Brave Search API key at https://brave.com/search/api/" + }, + + "contributor": { + "name": "Brave", + "github": "brave", + "url": "https://brave.com" + }, + + "links": { + "repository": "https://github.com/brave/brave-search-mcp-server", + "homepage": "https://brave.com/search/api/", + "documentation": "https://api.search.brave.com/app/documentation" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": false, + "prompts": false, + "read_only_mode": true + } +} diff --git a/servers/community.brave-search.json b/servers/community.brave-search-npx.json similarity index 88% rename from servers/community.brave-search.json rename to servers/community.brave-search-npx.json index 37cfc4d..b26015a 100644 --- a/servers/community.brave-search.json +++ b/servers/community.brave-search-npx.json @@ -1,9 +1,9 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "community.brave-search", - "name": "Brave Search", + "id": "community.brave-search-npx", + "name": "Brave Search (npx)", "alias": "brave", - "description": "Search the web using the Brave Search API. Supports web search, news search, and local POI search with privacy-focused results.", + "description": "Search the web using the Brave Search API via npx. Supports web search, news search, and local POI search with privacy-focused results.", "icon": "https://avatars.githubusercontent.com/u/12301619?v=4", "schema_version": "2.1", "categories": ["search"], diff --git a/servers/community.exa-search-http.json b/servers/community.exa-search-http.json new file mode 100644 index 0000000..81bdc16 --- /dev/null +++ b/servers/community.exa-search-http.json @@ -0,0 +1,60 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "community.exa-search-http", + "name": "Exa Search (Remote)", + "alias": "exa", + "description": "AI-powered web search that understands meaning, not just keywords. Hosted remote MCP server, no local setup required.", + "icon": "https://avatars.githubusercontent.com/u/77906174?v=4", + "schema_version": "2.1", + "categories": ["search", "ai-ml"], + "tags": ["exa", "search", "web-search", "semantic-search", "ai-search", "research"], + + "transport": { + "type": "http", + "url": "https://mcp.exa.ai/mcp", + "metadata": { + "inputs": [ + { + "id": "EXA_API_KEY", + "label": "Exa API Key", + "description": "API key for the Exa Search API. Required for authentication via the remote endpoint.", + "type": "text", + "required": true, + "secret": true, + "placeholder": "exa-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", + "obtain": { + "url": "https://dashboard.exa.ai/api-keys", + "instructions": "1. Go to dashboard.exa.ai\n2. Sign up or log in to your account\n3. Navigate to API Keys section\n4. Click 'Create API Key'\n5. Copy the generated key", + "button_label": "Get API Key" + } + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Get an Exa API key at dashboard.exa.ai/api-keys" + }, + + "contributor": { + "name": "Exa", + "github": "exa-labs", + "url": "https://exa.ai" + }, + + "links": { + "repository": "https://github.com/exa-labs/exa-mcp-server", + "homepage": "https://exa.ai", + "documentation": "https://docs.exa.ai" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": false, + "prompts": false, + "read_only_mode": true + } +} diff --git a/servers/community.exa-search.json b/servers/community.exa-search-npx.json similarity index 93% rename from servers/community.exa-search.json rename to servers/community.exa-search-npx.json index f040189..f0378b2 100644 --- a/servers/community.exa-search.json +++ b/servers/community.exa-search-npx.json @@ -1,9 +1,9 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "community.exa-search", - "name": "Exa Search", - "alias": "exa", - "description": "AI-powered web search that understands meaning, not just keywords. Find similar pages, search by content type, and get clean text from any URL.", + "id": "community.exa-search-npx", + "name": "Exa Search (npx)", + "alias": "exa-npx", + "description": "AI-powered web search that understands meaning, not just keywords. Find similar pages, search by content type, and get clean text from any URL via npx.", "icon": "https://avatars.githubusercontent.com/u/77906174?v=4", "schema_version": "2.1", "categories": ["search", "ai-ml"], diff --git a/servers/community.playwright-docker.json b/servers/community.playwright-docker.json new file mode 100644 index 0000000..f0958d8 --- /dev/null +++ b/servers/community.playwright-docker.json @@ -0,0 +1,50 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "community.playwright-docker", + "name": "Playwright (Docker)", + "alias": "playwright-docker", + "description": "Browser automation using Playwright in a Docker container. Runs headless Chromium, no local browser installation needed. Ideal for server environments.", + "icon": "https://avatars.githubusercontent.com/u/6154722?v=4", + "schema_version": "2.1", + "categories": ["developer-tools"], + "tags": ["playwright", "browser", "automation", "testing", "screenshots", "web", "scraping", "docker", "headless"], + + "transport": { + "type": "stdio", + "command": "docker", + "args": [ + "run", "-i", "--rm", "--init", "--pull=always", + "mcr.microsoft.com/playwright/mcp" + ], + "metadata": { + "inputs": [] + } + }, + + "auth": { + "type": "none" + }, + + "contributor": { + "name": "Microsoft", + "github": "microsoft", + "url": "https://playwright.dev" + }, + + "links": { + "repository": "https://github.com/microsoft/playwright-mcp", + "homepage": "https://playwright.dev", + "documentation": "https://github.com/microsoft/playwright-mcp#readme" + }, + + "platforms": ["all"], + + "capabilities": { + "tools": true, + "resources": false, + "prompts": false, + "read_only_mode": false + }, + + "changelog_url": "https://github.com/microsoft/playwright-mcp/releases" +} diff --git a/servers/community.playwright.json b/servers/community.playwright-npx.json similarity index 88% rename from servers/community.playwright.json rename to servers/community.playwright-npx.json index 5ab6cd3..3b8f72e 100644 --- a/servers/community.playwright.json +++ b/servers/community.playwright-npx.json @@ -1,9 +1,9 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "community.playwright", - "name": "Playwright", + "id": "community.playwright-npx", + "name": "Playwright (npx)", "alias": "playwright", - "description": "Browser automation using Playwright. Navigate pages, click elements, fill forms, take screenshots, and interact with web content through structured accessibility snapshots.", + "description": "Browser automation using Playwright via npx. Navigate pages, click elements, fill forms, take screenshots, and interact with web content. Runs headed by default.", "icon": "https://avatars.githubusercontent.com/u/6154722?v=4", "schema_version": "2.1", "categories": ["developer-tools"], From 6ec8da76d329f669d405a32e0d33cad6b33a6bb6 Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Thu, 19 Feb 2026 15:19:37 +0800 Subject: [PATCH 2/5] feat: add optional PAT input to GitHub remote HTTP variant Allow users to optionally provide a Personal Access Token instead of using the default OAuth flow. Auth type changed to optional_api_key. Signed-off-by: Mohammod Al Amin Ashik --- servers/com.github-mcp-http.json | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/servers/com.github-mcp-http.json b/servers/com.github-mcp-http.json index abca75c..898d704 100644 --- a/servers/com.github-mcp-http.json +++ b/servers/com.github-mcp-http.json @@ -13,13 +13,28 @@ "type": "http", "url": "https://api.githubcopilot.com/mcp/", "metadata": { - "inputs": [] + "inputs": [ + { + "id": "GITHUB_TOKEN", + "label": "GitHub Personal Access Token", + "description": "Optional PAT for authentication instead of OAuth. If provided, sent as Bearer token. Leave empty to use OAuth flow.", + "type": "text", + "required": false, + "secret": true, + "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "url": "https://github.com/settings/tokens/new", + "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" + } + } + ] } }, "auth": { - "type": "oauth", - "instructions": "Authenticates via OAuth in your browser using your GitHub account. No token setup needed." + "type": "optional_api_key", + "instructions": "Uses OAuth by default. Optionally provide a Personal Access Token (PAT) with repo and read:org scopes for token-based auth." }, "contributor": { From b984361bb9efd5959116c82227e82bfc3ca612fa Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Thu, 19 Feb 2026 15:21:26 +0800 Subject: [PATCH 3/5] feat: split GitHub HTTP into separate OAuth and PAT variants - com.github-mcp-http: pure OAuth, zero config - com.github-mcp-http-pat: PAT-based auth with required token input Cleaner separation so users pick the auth method they want. Signed-off-by: Mohammod Al Amin Ashik --- servers/com.github-mcp-http-pat.json | 62 ++++++++++++++++++++++++++++ servers/com.github-mcp-http.json | 23 ++--------- 2 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 servers/com.github-mcp-http-pat.json diff --git a/servers/com.github-mcp-http-pat.json b/servers/com.github-mcp-http-pat.json new file mode 100644 index 0000000..057d8d7 --- /dev/null +++ b/servers/com.github-mcp-http-pat.json @@ -0,0 +1,62 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.github-mcp-http-pat", + "name": "GitHub (Remote PAT)", + "alias": "gh-pat", + "description": "Interact with GitHub repositories, issues, pull requests, actions, and code security through GitHub's hosted remote MCP server. Authenticates with a Personal Access Token.", + "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", "pat"], + + "transport": { + "type": "http", + "url": "https://api.githubcopilot.com/mcp/", + "metadata": { + "inputs": [ + { + "id": "GITHUB_TOKEN", + "label": "GitHub Personal Access Token", + "description": "PAT sent as Bearer token to the GitHub remote MCP server. Requires repo and read:org scopes.", + "type": "text", + "required": true, + "secret": true, + "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "url": "https://github.com/settings/tokens/new", + "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" + } + } + ] + } + }, + + "auth": { + "type": "api_key", + "instructions": "Create a personal access token at https://github.com/settings/tokens with repo and read:org scopes" + }, + + "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-http.json b/servers/com.github-mcp-http.json index 898d704..a5945fc 100644 --- a/servers/com.github-mcp-http.json +++ b/servers/com.github-mcp-http.json @@ -3,7 +3,7 @@ "id": "com.github-mcp-http", "name": "GitHub (Remote)", "alias": "gh", - "description": "Interact with GitHub repositories, issues, pull requests, actions, and code security through GitHub's hosted remote MCP server. No local setup required.", + "description": "Interact with GitHub repositories, issues, pull requests, actions, and code security through GitHub's hosted remote MCP server. Authenticates via OAuth, no token setup required.", "icon": "https://avatars.githubusercontent.com/u/9919?v=4", "schema_version": "2.1", "categories": ["developer-tools", "version-control"], @@ -13,28 +13,13 @@ "type": "http", "url": "https://api.githubcopilot.com/mcp/", "metadata": { - "inputs": [ - { - "id": "GITHUB_TOKEN", - "label": "GitHub Personal Access Token", - "description": "Optional PAT for authentication instead of OAuth. If provided, sent as Bearer token. Leave empty to use OAuth flow.", - "type": "text", - "required": false, - "secret": true, - "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", - "obtain": { - "url": "https://github.com/settings/tokens/new", - "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" - } - } - ] + "inputs": [] } }, "auth": { - "type": "optional_api_key", - "instructions": "Uses OAuth by default. Optionally provide a Personal Access Token (PAT) with repo and read:org scopes for token-based auth." + "type": "oauth", + "instructions": "Authenticates via OAuth in your browser using your GitHub account. No token setup needed." }, "contributor": { From 176cdf0f33ccf253526c89bbf736737c321c9615 Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Thu, 19 Feb 2026 15:22:12 +0800 Subject: [PATCH 4/5] feat: add headers support to HTTP transport schema, use in GitHub PAT variant - Add optional `headers` field to HTTP transport schema for sending custom headers (supports ${input:ID} interpolation) - GitHub PAT variant now sends `Authorization: Bearer ${input:GITHUB_TOKEN}` Signed-off-by: Mohammod Al Amin Ashik --- schemas/server-definition.schema.json | 5 +++++ servers/com.github-mcp-http-pat.json | 3 +++ 2 files changed, 8 insertions(+) diff --git a/schemas/server-definition.schema.json b/schemas/server-definition.schema.json index 8539265..81a6666 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 send with requests (supports ${input:ID} interpolation)" + }, "metadata": { "$ref": "#/$defs/metadata" } diff --git a/servers/com.github-mcp-http-pat.json b/servers/com.github-mcp-http-pat.json index 057d8d7..fec8db6 100644 --- a/servers/com.github-mcp-http-pat.json +++ b/servers/com.github-mcp-http-pat.json @@ -12,6 +12,9 @@ "transport": { "type": "http", "url": "https://api.githubcopilot.com/mcp/", + "headers": { + "Authorization": "Bearer ${input:GITHUB_TOKEN}" + }, "metadata": { "inputs": [ { From ff1b9a0791acb7fd0f8df610cccf27f9eaf957f5 Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Thu, 19 Feb 2026 18:46:25 +0800 Subject: [PATCH 5/5] feat: merge server variants, remove GitHub OAuth HTTP (no DCR) - Merge GitHub Docker + Enterprise into single definition with optional GITHUB_HOST input (empty defaults to github.com internally) - Merge Grafana Self-Hosted + Cloud into single Docker definition with all inputs (URL required, username/password optional) - Remove GitHub Remote OAuth (com.github-mcp-http) - no DCR support - Fix GITHUB_HOST type from url to text (expects hostname, not URL) - Keep Sentry npx + Self-Hosted separate (MCP_DISABLE_SKILLS=seer) Signed-off-by: Mohammod Al Amin Ashik --- servers/com.github-mcp-docker.json | 23 +++-- servers/com.github-mcp-enterprise.json | 84 ----------------- servers/com.github-mcp-http.json | 47 ---------- servers/com.grafana-mcp-cloud.json | 94 ------------------- ...osted.json => com.grafana-mcp-docker.json} | 10 +- 5 files changed, 22 insertions(+), 236 deletions(-) delete mode 100644 servers/com.github-mcp-enterprise.json delete mode 100644 servers/com.github-mcp-http.json delete mode 100644 servers/com.grafana-mcp-cloud.json rename servers/{com.grafana-mcp-self-hosted.json => com.grafana-mcp-docker.json} (88%) diff --git a/servers/com.github-mcp-docker.json b/servers/com.github-mcp-docker.json index 35af538..b2249c9 100644 --- a/servers/com.github-mcp-docker.json +++ b/servers/com.github-mcp-docker.json @@ -3,22 +3,24 @@ "id": "com.github-mcp-docker", "name": "GitHub (Docker)", "alias": "gh-docker", - "description": "Interact with GitHub repositories, issues, pull requests, and code security via Docker container. Requires Docker installed.", + "description": "Interact with GitHub repositories, issues, pull requests, and code security via Docker container. Supports both github.com and GitHub Enterprise instances. Requires Docker installed.", "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", "ghes"], "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_TOKEN}", + "GITHUB_HOST": "${input:GITHUB_HOST}" }, "metadata": { "inputs": [ @@ -35,6 +37,15 @@ "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": "Hostname of your GitHub instance. Leave empty for github.com. For GitHub Enterprise Server, enter your instance hostname (e.g., github.mycompany.com). For GHEC Data Residency, use subdomain.ghe.com.", + "type": "text", + "required": false, + "secret": false, + "placeholder": "github.mycompany.com" } ] } @@ -42,7 +53,7 @@ "auth": { "type": "api_key", - "instructions": "Create a personal access token at https://github.com/settings/tokens with repo and read:org scopes" + "instructions": "Create a personal access token at https://github.com/settings/tokens (or your Enterprise instance) with repo and read:org scopes" }, "contributor": { diff --git a/servers/com.github-mcp-enterprise.json b/servers/com.github-mcp-enterprise.json deleted file mode 100644 index 8cd0159..0000000 --- a/servers/com.github-mcp-enterprise.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "$schema": "../schemas/server-definition.schema.json", - "id": "com.github-mcp-enterprise", - "name": "GitHub Enterprise", - "alias": "gh-ent", - "description": "Interact with GitHub Enterprise Server or GitHub Enterprise Cloud with Data Residency (ghe.com) via Docker container. For self-hosted GitHub instances.", - "icon": "https://avatars.githubusercontent.com/u/9919?v=4", - "schema_version": "2.1", - "categories": ["developer-tools", "version-control"], - "tags": ["git", "github", "enterprise", "ghes", "ghe", "self-hosted", "code", "issues", "pull-requests"], - - "transport": { - "type": "stdio", - "command": "docker", - "args": [ - "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_HOST": "${input:GITHUB_HOST}" - }, - "metadata": { - "inputs": [ - { - "id": "GITHUB_HOST", - "label": "GitHub Enterprise Host URL", - "description": "URL of your GitHub Enterprise instance. Include https:// prefix. For GHEC Data Residency use https://subdomain.ghe.com, for GHES use https://your-ghes-hostname.", - "type": "url", - "required": true, - "secret": false, - "placeholder": "https://github.mycompany.com", - "obtain": { - "instructions": "Enter the full URL of your GitHub Enterprise instance including the https:// protocol prefix.", - "button_label": "Learn More" - } - }, - { - "id": "GITHUB_TOKEN", - "label": "GitHub Personal Access Token", - "description": "Token used to authenticate with your GitHub Enterprise API. Requires repo and read:org scopes.", - "type": "text", - "required": true, - "secret": true, - "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", - "obtain": { - "instructions": "1. Go to your GitHub Enterprise instance\n2. Navigate to Settings > Developer settings > Personal access tokens\n3. Click 'Generate new token (classic)'\n4. Select scopes: repo, read:org\n5. Click 'Generate token'\n6. Copy the token (starts with ghp_)", - "button_label": "Create Token" - } - } - ] - } - }, - - "auth": { - "type": "api_key", - "instructions": "Create a personal access token on your GitHub Enterprise instance with repo and read:org scopes" - }, - - "contributor": { - "name": "GitHub", - "github": "github", - "url": "https://github.com" - }, - - "links": { - "repository": "https://github.com/github/github-mcp-server", - "homepage": "https://github.com/enterprise", - "documentation": "https://github.com/github/github-mcp-server#github-enterprise-server" - }, - - "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-http.json b/servers/com.github-mcp-http.json deleted file mode 100644 index a5945fc..0000000 --- a/servers/com.github-mcp-http.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "$schema": "../schemas/server-definition.schema.json", - "id": "com.github-mcp-http", - "name": "GitHub (Remote)", - "alias": "gh", - "description": "Interact with GitHub repositories, issues, pull requests, actions, and code security through GitHub's hosted remote MCP server. Authenticates via OAuth, no token setup required.", - "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"], - - "transport": { - "type": "http", - "url": "https://api.githubcopilot.com/mcp/", - "metadata": { - "inputs": [] - } - }, - - "auth": { - "type": "oauth", - "instructions": "Authenticates via OAuth in your browser using your GitHub account. No token setup needed." - }, - - "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.grafana-mcp-cloud.json b/servers/com.grafana-mcp-cloud.json deleted file mode 100644 index 283dc3e..0000000 --- a/servers/com.grafana-mcp-cloud.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "$schema": "../schemas/server-definition.schema.json", - "id": "com.grafana-mcp-cloud", - "name": "Grafana Cloud", - "alias": "grafana-cloud", - "description": "Search dashboards, query Prometheus and Loki datasources, manage alerts, investigate incidents, and use Grafana Cloud features like Sift, OnCall, and Incidents.", - "icon": "https://avatars.githubusercontent.com/u/7195757?v=4", - "schema_version": "2.1", - "categories": ["monitoring", "developer-tools"], - "tags": ["grafana", "grafana-cloud", "monitoring", "dashboards", "prometheus", "loki", "alerts", "observability", "metrics", "incidents", "oncall"], - - "transport": { - "type": "stdio", - "command": "docker", - "args": [ - "run", "-i", "--rm", - "-e", "GRAFANA_URL", - "-e", "GRAFANA_SERVICE_ACCOUNT_TOKEN", - "-e", "GRAFANA_ORG_ID", - "grafana/mcp-grafana", - "-t", "stdio" - ], - "env": { - "GRAFANA_URL": "${input:GRAFANA_URL}", - "GRAFANA_SERVICE_ACCOUNT_TOKEN": "${input:GRAFANA_TOKEN}", - "GRAFANA_ORG_ID": "${input:GRAFANA_ORG_ID}" - }, - "metadata": { - "inputs": [ - { - "id": "GRAFANA_URL", - "label": "Grafana Cloud URL", - "description": "URL of your Grafana Cloud instance (e.g., https://myinstance.grafana.net).", - "type": "url", - "required": true, - "secret": false, - "placeholder": "https://myinstance.grafana.net" - }, - { - "id": "GRAFANA_TOKEN", - "label": "Grafana Service Account Token", - "description": "Service account token from your Grafana Cloud instance. Create one with the Editor role for full access.", - "type": "text", - "required": true, - "secret": true, - "placeholder": "glsa_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", - "obtain": { - "url": "https://grafana.com/docs/grafana-cloud/account-management/authentication-and-permissions/service-accounts/", - "instructions": "1. Log in to your Grafana Cloud instance\n2. Navigate to Administration > Service accounts\n3. Click 'Add service account'\n4. Assign the 'Editor' role\n5. Click 'Add service account token'\n6. Copy the generated token (starts with glsa_)", - "button_label": "Learn More" - } - }, - { - "id": "GRAFANA_ORG_ID", - "label": "Grafana Organization ID", - "description": "Organization ID for multi-org Grafana Cloud setups. Leave empty for single-org instances.", - "type": "text", - "required": false, - "secret": false, - "default": "1", - "placeholder": "1" - } - ] - } - }, - - "auth": { - "type": "api_key", - "instructions": "Create a service account token in your Grafana Cloud instance under Administration > Service accounts" - }, - - "contributor": { - "name": "Grafana Labs", - "github": "grafana", - "url": "https://grafana.com" - }, - - "links": { - "repository": "https://github.com/grafana/mcp-grafana", - "homepage": "https://grafana.com/products/cloud/", - "documentation": "https://github.com/grafana/mcp-grafana#readme" - }, - - "platforms": ["all"], - - "capabilities": { - "tools": true, - "resources": false, - "prompts": false, - "read_only_mode": false - }, - - "changelog_url": "https://github.com/grafana/mcp-grafana/releases" -} diff --git a/servers/com.grafana-mcp-self-hosted.json b/servers/com.grafana-mcp-docker.json similarity index 88% rename from servers/com.grafana-mcp-self-hosted.json rename to servers/com.grafana-mcp-docker.json index d660d4b..834374d 100644 --- a/servers/com.grafana-mcp-self-hosted.json +++ b/servers/com.grafana-mcp-docker.json @@ -1,13 +1,13 @@ { "$schema": "../schemas/server-definition.schema.json", - "id": "com.grafana-mcp-self-hosted", - "name": "Grafana (Self-Hosted)", + "id": "com.grafana-mcp-docker", + "name": "Grafana (Docker)", "alias": "grafana", - "description": "Search dashboards, query Prometheus and Loki datasources, manage alerts, and investigate incidents on your self-hosted Grafana instance via Docker.", + "description": "Search dashboards, query Prometheus and Loki datasources, manage alerts, and investigate incidents on any Grafana instance (self-hosted or Grafana Cloud) via Docker.", "icon": "https://avatars.githubusercontent.com/u/7195757?v=4", "schema_version": "2.1", "categories": ["monitoring", "developer-tools"], - "tags": ["grafana", "monitoring", "dashboards", "prometheus", "loki", "alerts", "observability", "metrics"], + "tags": ["grafana", "grafana-cloud", "monitoring", "dashboards", "prometheus", "loki", "alerts", "observability", "metrics", "incidents", "oncall"], "transport": { "type": "stdio", @@ -34,7 +34,7 @@ { "id": "GRAFANA_URL", "label": "Grafana URL", - "description": "URL of your Grafana instance. Include the protocol (http:// or https://).", + "description": "URL of your Grafana instance. Use http://localhost:3000 for local, or https://myinstance.grafana.net for Grafana Cloud.", "type": "url", "required": true, "secret": false,