Skip to content

Commit beabc97

Browse files
authored
feat: add new input types, update schema, and add Grafana server (#20)
* feat: add Grafana MCP server definition Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com> * feat: use directory_path, file_path, and select input types - 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 <maa.ashik00@gmail.com> --------- Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
1 parent 70d4335 commit beabc97

12 files changed

Lines changed: 147 additions & 12 deletions

schemas/server-definition.schema.json

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@
200200
"description": "Human-readable label"
201201
},
202202
"type": {
203-
"enum": ["text", "password", "number", "boolean", "url"],
203+
"enum": ["text", "number", "boolean", "url", "select", "file_path", "directory_path"],
204204
"default": "text",
205205
"description": "Input field type"
206206
},
@@ -244,6 +244,20 @@
244244
}
245245
},
246246
"description": "Instructions for obtaining this input value"
247+
},
248+
"options": {
249+
"type": "array",
250+
"items": {
251+
"type": "object",
252+
"required": ["value", "label"],
253+
"properties": {
254+
"value": { "type": "string", "description": "Option value" },
255+
"label": { "type": "string", "description": "Display label" },
256+
"description": { "type": "string", "description": "Optional description" }
257+
},
258+
"additionalProperties": false
259+
},
260+
"description": "Predefined options for select input type"
247261
}
248262
},
249263
"additionalProperties": false

servers/com.github-mcp.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"id": "GITHUB_TOKEN",
2727
"label": "GitHub Personal Access Token",
2828
"description": "Token used to authenticate with the GitHub API. Requires repo and read:org scopes.",
29-
"type": "password",
29+
"type": "text",
3030
"required": true,
3131
"secret": true,
3232
"placeholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

servers/com.grafana-mcp.json

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
{
2+
"$schema": "../schemas/server-definition.schema.json",
3+
"id": "com.grafana-mcp",
4+
"name": "Grafana",
5+
"alias": "grafana",
6+
"description": "Search dashboards, query Prometheus and Loki datasources, manage alerts, and investigate incidents through the official Grafana MCP server.",
7+
"icon": "https://avatars.githubusercontent.com/u/7195757?v=4",
8+
"schema_version": "2.1",
9+
"categories": ["monitoring", "developer-tools"],
10+
"tags": ["grafana", "monitoring", "dashboards", "prometheus", "loki", "alerts", "observability", "metrics"],
11+
12+
"transport": {
13+
"type": "stdio",
14+
"command": "docker",
15+
"args": [
16+
"run", "-i", "--rm",
17+
"-e", "GRAFANA_URL",
18+
"-e", "GRAFANA_SERVICE_ACCOUNT_TOKEN",
19+
"-e", "GRAFANA_USERNAME",
20+
"-e", "GRAFANA_PASSWORD",
21+
"-e", "GRAFANA_ORG_ID",
22+
"grafana/mcp-grafana",
23+
"-t", "stdio"
24+
],
25+
"env": {
26+
"GRAFANA_URL": "${input:GRAFANA_URL}",
27+
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "${input:GRAFANA_TOKEN}",
28+
"GRAFANA_USERNAME": "${input:GRAFANA_USERNAME}",
29+
"GRAFANA_PASSWORD": "${input:GRAFANA_PASSWORD}",
30+
"GRAFANA_ORG_ID": "${input:GRAFANA_ORG_ID}"
31+
},
32+
"metadata": {
33+
"inputs": [
34+
{
35+
"id": "GRAFANA_URL",
36+
"label": "Grafana URL",
37+
"description": "URL of your Grafana instance. Include the protocol (http:// or https://).",
38+
"type": "url",
39+
"required": true,
40+
"secret": false,
41+
"placeholder": "http://localhost:3000"
42+
},
43+
{
44+
"id": "GRAFANA_TOKEN",
45+
"label": "Grafana Service Account Token",
46+
"description": "Service account token with appropriate permissions. Create a service account with the Editor role for full read/write access.",
47+
"type": "text",
48+
"required": true,
49+
"secret": true,
50+
"placeholder": "glsa_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
51+
"obtain": {
52+
"url": "https://grafana.com/docs/grafana/latest/administration/service-accounts/",
53+
"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_)",
54+
"button_label": "Learn More"
55+
}
56+
},
57+
{
58+
"id": "GRAFANA_USERNAME",
59+
"label": "Grafana Username",
60+
"description": "Username for basic authentication. Use as an alternative to service account token authentication.",
61+
"type": "text",
62+
"required": false,
63+
"secret": false,
64+
"placeholder": "admin"
65+
},
66+
{
67+
"id": "GRAFANA_PASSWORD",
68+
"label": "Grafana Password",
69+
"description": "Password for basic authentication. Used together with GRAFANA_USERNAME.",
70+
"type": "text",
71+
"required": false,
72+
"secret": true
73+
},
74+
{
75+
"id": "GRAFANA_ORG_ID",
76+
"label": "Grafana Organization ID",
77+
"description": "Organization ID for multi-org Grafana setups. Leave empty for single-org instances.",
78+
"type": "text",
79+
"required": false,
80+
"secret": false,
81+
"default": "1",
82+
"placeholder": "1"
83+
}
84+
]
85+
}
86+
},
87+
88+
"auth": {
89+
"type": "api_key",
90+
"instructions": "Create a service account token in your Grafana instance under Administration > Service accounts"
91+
},
92+
93+
"contributor": {
94+
"name": "Grafana Labs",
95+
"github": "grafana",
96+
"url": "https://grafana.com"
97+
},
98+
99+
"links": {
100+
"repository": "https://github.com/grafana/mcp-grafana",
101+
"homepage": "https://grafana.com",
102+
"documentation": "https://github.com/grafana/mcp-grafana#readme"
103+
},
104+
105+
"platforms": ["all"],
106+
107+
"capabilities": {
108+
"tools": true,
109+
"resources": false,
110+
"prompts": false,
111+
"read_only_mode": false
112+
},
113+
114+
"changelog_url": "https://github.com/grafana/mcp-grafana/releases"
115+
}

servers/com.notion-mcp.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"id": "NOTION_TOKEN",
2323
"label": "Notion Integration Token",
2424
"description": "Internal integration secret token from Notion. Share the relevant pages/databases with your integration after creating it.",
25-
"type": "password",
25+
"type": "text",
2626
"required": true,
2727
"secret": true,
2828
"placeholder": "ntn_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",

servers/com.slack-mcp.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"id": "SLACK_BOT_TOKEN",
2424
"label": "Slack Bot Token",
2525
"description": "Bot user OAuth token for your Slack app. Requires scopes: channels:history, channels:read, chat:write, reactions:write, users:read, users.profile:read",
26-
"type": "password",
26+
"type": "text",
2727
"required": true,
2828
"secret": true,
2929
"placeholder": "xoxb-your-bot-token-here",

servers/com.supabase-mcp.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"id": "SUPABASE_ACCESS_TOKEN",
2323
"label": "Supabase Access Token",
2424
"description": "Personal access token for the Supabase Management API",
25-
"type": "password",
25+
"type": "text",
2626
"required": true,
2727
"secret": true,
2828
"placeholder": "sbp_...",

servers/community.brave-search.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"id": "BRAVE_API_KEY",
2323
"label": "Brave Search API Key",
2424
"description": "API key for the Brave Search API. Free tier available with 2,000 queries/month.",
25-
"type": "password",
25+
"type": "text",
2626
"required": true,
2727
"secret": true,
2828
"placeholder": "BSAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

servers/community.exa-search.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"id": "EXA_API_KEY",
2323
"label": "Exa API Key",
2424
"description": "API key for the Exa Search API. Free tier available with limited requests.",
25-
"type": "password",
25+
"type": "text",
2626
"required": true,
2727
"secret": true,
2828
"placeholder": "exa-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",

servers/community.figma-context.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"id": "FIGMA_API_KEY",
2323
"label": "Figma Personal Access Token",
2424
"description": "Personal access token for the Figma API. Generated from your Figma account settings.",
25-
"type": "password",
25+
"type": "text",
2626
"required": true,
2727
"secret": true,
2828
"placeholder": "figd_your_personal_access_token_here",

servers/community.filesystem.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"id": "ALLOWED_DIR",
2020
"label": "Allowed Directory",
2121
"description": "Path to the directory the server is allowed to access. The server will only read/write files within this directory.",
22-
"type": "text",
22+
"type": "directory_path",
2323
"required": true,
2424
"secret": false,
2525
"placeholder": "C:\\Users\\you\\projects or /home/you/projects"

0 commit comments

Comments
 (0)