From 80834e102ee872f96ddfb263831a2a483d622939 Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Wed, 18 Feb 2026 19:59:39 +0800 Subject: [PATCH 1/2] feat: add Grafana MCP server definition Signed-off-by: Mohammod Al Amin Ashik --- servers/com.grafana-mcp.json | 115 +++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 servers/com.grafana-mcp.json diff --git a/servers/com.grafana-mcp.json b/servers/com.grafana-mcp.json new file mode 100644 index 0000000..701c9b9 --- /dev/null +++ b/servers/com.grafana-mcp.json @@ -0,0 +1,115 @@ +{ + "$schema": "../schemas/server-definition.schema.json", + "id": "com.grafana-mcp", + "name": "Grafana", + "alias": "grafana", + "description": "Search dashboards, query Prometheus and Loki datasources, manage alerts, and investigate incidents through the official Grafana MCP server.", + "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"], + + "transport": { + "type": "stdio", + "command": "docker", + "args": [ + "run", "-i", "--rm", + "-e", "GRAFANA_URL", + "-e", "GRAFANA_SERVICE_ACCOUNT_TOKEN", + "-e", "GRAFANA_USERNAME", + "-e", "GRAFANA_PASSWORD", + "-e", "GRAFANA_ORG_ID", + "grafana/mcp-grafana", + "-t", "stdio" + ], + "env": { + "GRAFANA_URL": "${input:GRAFANA_URL}", + "GRAFANA_SERVICE_ACCOUNT_TOKEN": "${input:GRAFANA_TOKEN}", + "GRAFANA_USERNAME": "${input:GRAFANA_USERNAME}", + "GRAFANA_PASSWORD": "${input:GRAFANA_PASSWORD}", + "GRAFANA_ORG_ID": "${input:GRAFANA_ORG_ID}" + }, + "metadata": { + "inputs": [ + { + "id": "GRAFANA_URL", + "label": "Grafana URL", + "description": "URL of your Grafana instance. Include the protocol (http:// or https://).", + "type": "url", + "required": true, + "secret": false, + "placeholder": "http://localhost:3000" + }, + { + "id": "GRAFANA_TOKEN", + "label": "Grafana Service Account Token", + "description": "Service account token with appropriate permissions. Create a service account with the Editor role for full read/write access.", + "type": "password", + "required": true, + "secret": true, + "placeholder": "glsa_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + "obtain": { + "url": "https://grafana.com/docs/grafana/latest/administration/service-accounts/", + "instructions": "1. Go to your Grafana 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_USERNAME", + "label": "Grafana Username", + "description": "Username for basic authentication. Use as an alternative to service account token authentication.", + "type": "text", + "required": false, + "secret": false, + "placeholder": "admin" + }, + { + "id": "GRAFANA_PASSWORD", + "label": "Grafana Password", + "description": "Password for basic authentication. Used together with GRAFANA_USERNAME.", + "type": "password", + "required": false, + "secret": true + }, + { + "id": "GRAFANA_ORG_ID", + "label": "Grafana Organization ID", + "description": "Organization ID for multi-org Grafana 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 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", + "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" +} From d3f9cda31aab02aa2e8e9512c0e7ef9fa5c88ef4 Mon Sep 17 00:00:00 2001 From: Mohammod Al Amin Ashik Date: Wed, 18 Feb 2026 23:02:30 +0800 Subject: [PATCH 2/2] feat: use directory_path, file_path, and select input types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - filesystem: ALLOWED_DIR → directory_path - sqlite: DB_PATH → file_path - playwright: PLAYWRIGHT_MCP_BROWSER → select with chrome/firefox/webkit/msedge options Signed-off-by: Mohammod Al Amin Ashik --- schemas/server-definition.schema.json | 16 +++++++++++++++- servers/com.github-mcp.json | 2 +- servers/com.grafana-mcp.json | 4 ++-- servers/com.notion-mcp.json | 2 +- servers/com.slack-mcp.json | 2 +- servers/com.supabase-mcp.json | 2 +- servers/community.brave-search.json | 2 +- servers/community.exa-search.json | 2 +- servers/community.figma-context.json | 2 +- servers/community.filesystem.json | 2 +- servers/community.playwright.json | 10 ++++++++-- servers/community.sqlite.json | 2 +- 12 files changed, 34 insertions(+), 14 deletions(-) diff --git a/schemas/server-definition.schema.json b/schemas/server-definition.schema.json index 7d21e35..8539265 100644 --- a/schemas/server-definition.schema.json +++ b/schemas/server-definition.schema.json @@ -200,7 +200,7 @@ "description": "Human-readable label" }, "type": { - "enum": ["text", "password", "number", "boolean", "url"], + "enum": ["text", "number", "boolean", "url", "select", "file_path", "directory_path"], "default": "text", "description": "Input field type" }, @@ -244,6 +244,20 @@ } }, "description": "Instructions for obtaining this input value" + }, + "options": { + "type": "array", + "items": { + "type": "object", + "required": ["value", "label"], + "properties": { + "value": { "type": "string", "description": "Option value" }, + "label": { "type": "string", "description": "Display label" }, + "description": { "type": "string", "description": "Optional description" } + }, + "additionalProperties": false + }, + "description": "Predefined options for select input type" } }, "additionalProperties": false diff --git a/servers/com.github-mcp.json b/servers/com.github-mcp.json index c14b20e..916eb13 100644 --- a/servers/com.github-mcp.json +++ b/servers/com.github-mcp.json @@ -26,7 +26,7 @@ "id": "GITHUB_TOKEN", "label": "GitHub Personal Access Token", "description": "Token used to authenticate with the GitHub API. Requires repo and read:org scopes.", - "type": "password", + "type": "text", "required": true, "secret": true, "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", diff --git a/servers/com.grafana-mcp.json b/servers/com.grafana-mcp.json index 701c9b9..b479bd1 100644 --- a/servers/com.grafana-mcp.json +++ b/servers/com.grafana-mcp.json @@ -44,7 +44,7 @@ "id": "GRAFANA_TOKEN", "label": "Grafana Service Account Token", "description": "Service account token with appropriate permissions. Create a service account with the Editor role for full read/write access.", - "type": "password", + "type": "text", "required": true, "secret": true, "placeholder": "glsa_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -67,7 +67,7 @@ "id": "GRAFANA_PASSWORD", "label": "Grafana Password", "description": "Password for basic authentication. Used together with GRAFANA_USERNAME.", - "type": "password", + "type": "text", "required": false, "secret": true }, diff --git a/servers/com.notion-mcp.json b/servers/com.notion-mcp.json index d79d720..9f02914 100644 --- a/servers/com.notion-mcp.json +++ b/servers/com.notion-mcp.json @@ -22,7 +22,7 @@ "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": "password", + "type": "text", "required": true, "secret": true, "placeholder": "ntn_xxxxxxxxxxxxxxxxxxxxxxxxxxxx", diff --git a/servers/com.slack-mcp.json b/servers/com.slack-mcp.json index 48614b5..7bf9f72 100644 --- a/servers/com.slack-mcp.json +++ b/servers/com.slack-mcp.json @@ -23,7 +23,7 @@ "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": "password", + "type": "text", "required": true, "secret": true, "placeholder": "xoxb-your-bot-token-here", diff --git a/servers/com.supabase-mcp.json b/servers/com.supabase-mcp.json index b98585c..e41fd99 100644 --- a/servers/com.supabase-mcp.json +++ b/servers/com.supabase-mcp.json @@ -22,7 +22,7 @@ "id": "SUPABASE_ACCESS_TOKEN", "label": "Supabase Access Token", "description": "Personal access token for the Supabase Management API", - "type": "password", + "type": "text", "required": true, "secret": true, "placeholder": "sbp_...", diff --git a/servers/community.brave-search.json b/servers/community.brave-search.json index 69b7ce8..37cfc4d 100644 --- a/servers/community.brave-search.json +++ b/servers/community.brave-search.json @@ -22,7 +22,7 @@ "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": "password", + "type": "text", "required": true, "secret": true, "placeholder": "BSAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", diff --git a/servers/community.exa-search.json b/servers/community.exa-search.json index ffff7ee..f040189 100644 --- a/servers/community.exa-search.json +++ b/servers/community.exa-search.json @@ -22,7 +22,7 @@ "id": "EXA_API_KEY", "label": "Exa API Key", "description": "API key for the Exa Search API. Free tier available with limited requests.", - "type": "password", + "type": "text", "required": true, "secret": true, "placeholder": "exa-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", diff --git a/servers/community.figma-context.json b/servers/community.figma-context.json index 7a62262..2134608 100644 --- a/servers/community.figma-context.json +++ b/servers/community.figma-context.json @@ -22,7 +22,7 @@ "id": "FIGMA_API_KEY", "label": "Figma Personal Access Token", "description": "Personal access token for the Figma API. Generated from your Figma account settings.", - "type": "password", + "type": "text", "required": true, "secret": true, "placeholder": "figd_your_personal_access_token_here", diff --git a/servers/community.filesystem.json b/servers/community.filesystem.json index 7a32261..b92a153 100644 --- a/servers/community.filesystem.json +++ b/servers/community.filesystem.json @@ -19,7 +19,7 @@ "id": "ALLOWED_DIR", "label": "Allowed Directory", "description": "Path to the directory the server is allowed to access. The server will only read/write files within this directory.", - "type": "text", + "type": "directory_path", "required": true, "secret": false, "placeholder": "C:\\Users\\you\\projects or /home/you/projects" diff --git a/servers/community.playwright.json b/servers/community.playwright.json index 8081e22..5ab6cd3 100644 --- a/servers/community.playwright.json +++ b/servers/community.playwright.json @@ -19,10 +19,16 @@ "id": "PLAYWRIGHT_MCP_BROWSER", "label": "Browser", "description": "Browser to use for automation. Defaults to Chrome if not specified.", - "type": "text", + "type": "select", "required": false, "secret": false, - "placeholder": "chrome" + "placeholder": "chrome", + "options": [ + { "value": "chrome", "label": "Chrome" }, + { "value": "firefox", "label": "Firefox" }, + { "value": "webkit", "label": "WebKit" }, + { "value": "msedge", "label": "Microsoft Edge" } + ] }, { "id": "PLAYWRIGHT_MCP_HEADLESS", diff --git a/servers/community.sqlite.json b/servers/community.sqlite.json index c40cef7..e3866d7 100644 --- a/servers/community.sqlite.json +++ b/servers/community.sqlite.json @@ -19,7 +19,7 @@ "id": "DB_PATH", "label": "Database File Path", "description": "Path to the SQLite database file. The server will create the file if it doesn't exist.", - "type": "text", + "type": "file_path", "required": true, "secret": false, "placeholder": "C:\\data\\mydb.sqlite or /home/you/data/mydb.sqlite"