@trops/dash-core 0.1.449 → 0.1.451
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/electron/index.js +121 -1
- package/dist/electron/index.js.map +1 -1
- package/dist/index.esm.js +158 -69
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +117 -37
- package/dist/index.js.map +1 -1
- package/dist/mcp/knownExternalMcpServers.json +557 -0
- package/package.json +3 -3
|
@@ -0,0 +1,557 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"_meta": {
|
|
4
|
+
"purpose": "Curated allow-list of MCP servers that are NOT in the built-in mcpServerCatalog.json but exist in the official Anthropic-maintained MCP servers repo (github.com/modelcontextprotocol/servers). The AI Widget Builder may install entries from this list via the install_known_mcp_server dash MCP tool, gated by a user confirmation modal in the renderer. The id field is the trust boundary — only entries listed here are installable via that path.",
|
|
5
|
+
"source": "https://github.com/modelcontextprotocol/servers",
|
|
6
|
+
"policy": "Hand-maintained. To add a server: open a PR adding an entry below, sourced from the official repo's Reference servers or Official integrations sections. Do not add community/random sources at runtime."
|
|
7
|
+
},
|
|
8
|
+
"servers": [
|
|
9
|
+
{
|
|
10
|
+
"id": "fetch",
|
|
11
|
+
"name": "Fetch",
|
|
12
|
+
"description": "Generic HTTP fetch tool — retrieve any URL and convert to text/markdown for the LLM.",
|
|
13
|
+
"icon": "globe",
|
|
14
|
+
"tags": ["web", "http", "general"],
|
|
15
|
+
"sourceUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",
|
|
16
|
+
"mcpConfig": {
|
|
17
|
+
"transport": "stdio",
|
|
18
|
+
"command": "uvx",
|
|
19
|
+
"args": ["mcp-server-fetch"],
|
|
20
|
+
"envMapping": {}
|
|
21
|
+
},
|
|
22
|
+
"credentialSchema": {}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "git",
|
|
26
|
+
"name": "Git",
|
|
27
|
+
"description": "Read and search local Git repositories.",
|
|
28
|
+
"icon": "code-branch",
|
|
29
|
+
"tags": ["developer", "git", "code"],
|
|
30
|
+
"sourceUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/git",
|
|
31
|
+
"mcpConfig": {
|
|
32
|
+
"transport": "stdio",
|
|
33
|
+
"command": "uvx",
|
|
34
|
+
"args": ["mcp-server-git", "--repository", "{repoPath}"],
|
|
35
|
+
"envMapping": {},
|
|
36
|
+
"argsMapping": {
|
|
37
|
+
"repoPath": { "type": "interpolate", "placeholder": "{repoPath}" }
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"credentialSchema": {
|
|
41
|
+
"repoPath": {
|
|
42
|
+
"type": "directory",
|
|
43
|
+
"displayName": "Repository Path",
|
|
44
|
+
"required": true,
|
|
45
|
+
"secret": false,
|
|
46
|
+
"instructions": "Absolute path to the local Git repository this server should access."
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "time",
|
|
52
|
+
"name": "Time",
|
|
53
|
+
"description": "Get the current time across timezones — useful for scheduling and reporting widgets.",
|
|
54
|
+
"icon": "clock",
|
|
55
|
+
"tags": ["utility", "time", "timezone"],
|
|
56
|
+
"sourceUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/time",
|
|
57
|
+
"mcpConfig": {
|
|
58
|
+
"transport": "stdio",
|
|
59
|
+
"command": "uvx",
|
|
60
|
+
"args": ["mcp-server-time"],
|
|
61
|
+
"envMapping": {}
|
|
62
|
+
},
|
|
63
|
+
"credentialSchema": {}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "google-maps",
|
|
67
|
+
"name": "Google Maps",
|
|
68
|
+
"description": "Geocoding, directions, and place search via the Google Maps Platform.",
|
|
69
|
+
"icon": "map-location-dot",
|
|
70
|
+
"tags": ["maps", "geo", "places"],
|
|
71
|
+
"sourceUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/google-maps",
|
|
72
|
+
"mcpConfig": {
|
|
73
|
+
"transport": "stdio",
|
|
74
|
+
"command": "npx",
|
|
75
|
+
"args": ["-y", "@modelcontextprotocol/server-google-maps"],
|
|
76
|
+
"envMapping": {
|
|
77
|
+
"GOOGLE_MAPS_API_KEY": "apiKey"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"credentialSchema": {
|
|
81
|
+
"apiKey": {
|
|
82
|
+
"type": "text",
|
|
83
|
+
"displayName": "Google Maps API Key",
|
|
84
|
+
"required": true,
|
|
85
|
+
"secret": true,
|
|
86
|
+
"instructions": "Create at console.cloud.google.com/google/maps-apis. Enable Places API + Geocoding API on the project."
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "puppeteer",
|
|
92
|
+
"name": "Puppeteer",
|
|
93
|
+
"description": "Headless browser automation — navigate pages, take screenshots, extract content.",
|
|
94
|
+
"icon": "browser",
|
|
95
|
+
"tags": ["browser", "automation", "scraping"],
|
|
96
|
+
"sourceUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/puppeteer",
|
|
97
|
+
"mcpConfig": {
|
|
98
|
+
"transport": "stdio",
|
|
99
|
+
"command": "npx",
|
|
100
|
+
"args": ["-y", "@modelcontextprotocol/server-puppeteer"],
|
|
101
|
+
"envMapping": {}
|
|
102
|
+
},
|
|
103
|
+
"credentialSchema": {}
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "sqlite",
|
|
107
|
+
"name": "SQLite",
|
|
108
|
+
"description": "Query and manage local SQLite databases.",
|
|
109
|
+
"icon": "database",
|
|
110
|
+
"tags": ["database", "sql", "local"],
|
|
111
|
+
"sourceUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/sqlite",
|
|
112
|
+
"mcpConfig": {
|
|
113
|
+
"transport": "stdio",
|
|
114
|
+
"command": "uvx",
|
|
115
|
+
"args": ["mcp-server-sqlite", "--db-path", "{dbPath}"],
|
|
116
|
+
"envMapping": {},
|
|
117
|
+
"argsMapping": {
|
|
118
|
+
"dbPath": { "type": "interpolate", "placeholder": "{dbPath}" }
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"credentialSchema": {
|
|
122
|
+
"dbPath": {
|
|
123
|
+
"type": "text",
|
|
124
|
+
"displayName": "Database File Path",
|
|
125
|
+
"required": true,
|
|
126
|
+
"secret": false,
|
|
127
|
+
"instructions": "Absolute path to a SQLite .db file."
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "redis",
|
|
133
|
+
"name": "Redis",
|
|
134
|
+
"description": "Read, write, and inspect Redis keys, lists, hashes, and streams.",
|
|
135
|
+
"icon": "database",
|
|
136
|
+
"tags": ["database", "cache", "redis"],
|
|
137
|
+
"sourceUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/redis",
|
|
138
|
+
"mcpConfig": {
|
|
139
|
+
"transport": "stdio",
|
|
140
|
+
"command": "npx",
|
|
141
|
+
"args": ["-y", "@modelcontextprotocol/server-redis", "{redisUrl}"],
|
|
142
|
+
"envMapping": {},
|
|
143
|
+
"argsMapping": {
|
|
144
|
+
"redisUrl": { "type": "interpolate", "placeholder": "{redisUrl}" }
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"credentialSchema": {
|
|
148
|
+
"redisUrl": {
|
|
149
|
+
"type": "text",
|
|
150
|
+
"displayName": "Redis URL",
|
|
151
|
+
"required": true,
|
|
152
|
+
"secret": true,
|
|
153
|
+
"instructions": "Connection string, e.g. redis://default:password@host:6379"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "sequential-thinking",
|
|
159
|
+
"name": "Sequential Thinking",
|
|
160
|
+
"description": "Helper that lets the LLM reason in structured, revisable steps. Useful for widgets that need multi-step planning.",
|
|
161
|
+
"icon": "brain",
|
|
162
|
+
"tags": ["utility", "reasoning"],
|
|
163
|
+
"sourceUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking",
|
|
164
|
+
"mcpConfig": {
|
|
165
|
+
"transport": "stdio",
|
|
166
|
+
"command": "npx",
|
|
167
|
+
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"],
|
|
168
|
+
"envMapping": {}
|
|
169
|
+
},
|
|
170
|
+
"credentialSchema": {}
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"id": "everart",
|
|
174
|
+
"name": "EverArt",
|
|
175
|
+
"description": "Generate images via EverArt's API.",
|
|
176
|
+
"icon": "image",
|
|
177
|
+
"tags": ["image", "generation", "ai"],
|
|
178
|
+
"sourceUrl": "https://github.com/modelcontextprotocol/servers/tree/main/src/everart",
|
|
179
|
+
"mcpConfig": {
|
|
180
|
+
"transport": "stdio",
|
|
181
|
+
"command": "npx",
|
|
182
|
+
"args": ["-y", "@modelcontextprotocol/server-everart"],
|
|
183
|
+
"envMapping": {
|
|
184
|
+
"EVERART_API_KEY": "apiKey"
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"credentialSchema": {
|
|
188
|
+
"apiKey": {
|
|
189
|
+
"type": "text",
|
|
190
|
+
"displayName": "EverArt API Key",
|
|
191
|
+
"required": true,
|
|
192
|
+
"secret": true,
|
|
193
|
+
"instructions": "Sign up at everart.ai and create an API key."
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "stripe",
|
|
199
|
+
"name": "Stripe",
|
|
200
|
+
"description": "Read customers, payments, subscriptions, and products from your Stripe account.",
|
|
201
|
+
"icon": "credit-card",
|
|
202
|
+
"tags": ["payments", "billing", "finance"],
|
|
203
|
+
"sourceUrl": "https://github.com/stripe/agent-toolkit",
|
|
204
|
+
"mcpConfig": {
|
|
205
|
+
"transport": "stdio",
|
|
206
|
+
"command": "npx",
|
|
207
|
+
"args": ["-y", "@stripe/mcp", "--tools=all", "--api-key={apiKey}"],
|
|
208
|
+
"envMapping": {},
|
|
209
|
+
"argsMapping": {
|
|
210
|
+
"apiKey": { "type": "interpolate", "placeholder": "{apiKey}" }
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"credentialSchema": {
|
|
214
|
+
"apiKey": {
|
|
215
|
+
"type": "text",
|
|
216
|
+
"displayName": "Stripe Secret Key",
|
|
217
|
+
"required": true,
|
|
218
|
+
"secret": true,
|
|
219
|
+
"instructions": "Use a restricted key with read-only scopes from dashboard.stripe.com/apikeys. Begins with sk_live_ or sk_test_."
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"id": "cloudflare",
|
|
225
|
+
"name": "Cloudflare",
|
|
226
|
+
"description": "Manage Cloudflare Workers, KV, R2, D1, and other Cloudflare APIs.",
|
|
227
|
+
"icon": "cloud",
|
|
228
|
+
"tags": ["infrastructure", "cdn", "edge"],
|
|
229
|
+
"sourceUrl": "https://github.com/cloudflare/mcp-server-cloudflare",
|
|
230
|
+
"mcpConfig": {
|
|
231
|
+
"transport": "stdio",
|
|
232
|
+
"command": "npx",
|
|
233
|
+
"args": ["-y", "@cloudflare/mcp-server-cloudflare"],
|
|
234
|
+
"envMapping": {
|
|
235
|
+
"CLOUDFLARE_API_TOKEN": "apiToken",
|
|
236
|
+
"CLOUDFLARE_ACCOUNT_ID": "accountId"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"credentialSchema": {
|
|
240
|
+
"apiToken": {
|
|
241
|
+
"type": "text",
|
|
242
|
+
"displayName": "API Token",
|
|
243
|
+
"required": true,
|
|
244
|
+
"secret": true,
|
|
245
|
+
"instructions": "Create at dash.cloudflare.com/profile/api-tokens with the scopes you need."
|
|
246
|
+
},
|
|
247
|
+
"accountId": {
|
|
248
|
+
"type": "text",
|
|
249
|
+
"displayName": "Account ID",
|
|
250
|
+
"required": true,
|
|
251
|
+
"secret": false,
|
|
252
|
+
"instructions": "Find at dash.cloudflare.com under Account → Account ID."
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"id": "sentry",
|
|
258
|
+
"name": "Sentry",
|
|
259
|
+
"description": "Read errors, issues, and project info from Sentry.",
|
|
260
|
+
"icon": "circle-exclamation",
|
|
261
|
+
"tags": ["monitoring", "errors", "observability"],
|
|
262
|
+
"sourceUrl": "https://github.com/getsentry/sentry-mcp",
|
|
263
|
+
"mcpConfig": {
|
|
264
|
+
"transport": "stdio",
|
|
265
|
+
"command": "npx",
|
|
266
|
+
"args": ["-y", "@sentry/mcp-server"],
|
|
267
|
+
"envMapping": {
|
|
268
|
+
"SENTRY_AUTH_TOKEN": "authToken"
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
"credentialSchema": {
|
|
272
|
+
"authToken": {
|
|
273
|
+
"type": "text",
|
|
274
|
+
"displayName": "Auth Token",
|
|
275
|
+
"required": true,
|
|
276
|
+
"secret": true,
|
|
277
|
+
"instructions": "Create a User Auth Token at sentry.io/settings/account/api/auth-tokens."
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"id": "supabase",
|
|
283
|
+
"name": "Supabase",
|
|
284
|
+
"description": "Query Supabase Postgres tables, run SQL, and manage projects.",
|
|
285
|
+
"icon": "database",
|
|
286
|
+
"tags": ["database", "backend", "postgres"],
|
|
287
|
+
"sourceUrl": "https://github.com/supabase-community/supabase-mcp",
|
|
288
|
+
"mcpConfig": {
|
|
289
|
+
"transport": "stdio",
|
|
290
|
+
"command": "npx",
|
|
291
|
+
"args": ["-y", "@supabase/mcp-server-supabase@latest", "--access-token={accessToken}"],
|
|
292
|
+
"envMapping": {},
|
|
293
|
+
"argsMapping": {
|
|
294
|
+
"accessToken": { "type": "interpolate", "placeholder": "{accessToken}" }
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
"credentialSchema": {
|
|
298
|
+
"accessToken": {
|
|
299
|
+
"type": "text",
|
|
300
|
+
"displayName": "Personal Access Token",
|
|
301
|
+
"required": true,
|
|
302
|
+
"secret": true,
|
|
303
|
+
"instructions": "Create at supabase.com/dashboard/account/tokens."
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"id": "atlassian",
|
|
309
|
+
"name": "Atlassian (Jira + Confluence)",
|
|
310
|
+
"description": "Read Jira issues + Confluence pages.",
|
|
311
|
+
"icon": "jira",
|
|
312
|
+
"tags": ["project-management", "issues", "wiki"],
|
|
313
|
+
"sourceUrl": "https://github.com/sooperset/mcp-atlassian",
|
|
314
|
+
"mcpConfig": {
|
|
315
|
+
"transport": "stdio",
|
|
316
|
+
"command": "uvx",
|
|
317
|
+
"args": ["mcp-atlassian"],
|
|
318
|
+
"envMapping": {
|
|
319
|
+
"JIRA_URL": "siteUrl",
|
|
320
|
+
"JIRA_USERNAME": "username",
|
|
321
|
+
"JIRA_API_TOKEN": "apiToken"
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
"credentialSchema": {
|
|
325
|
+
"siteUrl": {
|
|
326
|
+
"type": "text",
|
|
327
|
+
"displayName": "Site URL",
|
|
328
|
+
"required": true,
|
|
329
|
+
"secret": false,
|
|
330
|
+
"instructions": "e.g. https://your-org.atlassian.net"
|
|
331
|
+
},
|
|
332
|
+
"username": {
|
|
333
|
+
"type": "text",
|
|
334
|
+
"displayName": "Email / Username",
|
|
335
|
+
"required": true,
|
|
336
|
+
"secret": false,
|
|
337
|
+
"instructions": "Your Atlassian login email."
|
|
338
|
+
},
|
|
339
|
+
"apiToken": {
|
|
340
|
+
"type": "text",
|
|
341
|
+
"displayName": "API Token",
|
|
342
|
+
"required": true,
|
|
343
|
+
"secret": true,
|
|
344
|
+
"instructions": "Create at id.atlassian.com/manage-profile/security/api-tokens."
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"id": "asana",
|
|
350
|
+
"name": "Asana",
|
|
351
|
+
"description": "Read tasks, projects, and workspaces from Asana.",
|
|
352
|
+
"icon": "list-check",
|
|
353
|
+
"tags": ["project-management", "tasks"],
|
|
354
|
+
"sourceUrl": "https://github.com/roychri/mcp-server-asana",
|
|
355
|
+
"mcpConfig": {
|
|
356
|
+
"transport": "stdio",
|
|
357
|
+
"command": "npx",
|
|
358
|
+
"args": ["-y", "@roychri/mcp-server-asana"],
|
|
359
|
+
"envMapping": {
|
|
360
|
+
"ASANA_ACCESS_TOKEN": "accessToken"
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"credentialSchema": {
|
|
364
|
+
"accessToken": {
|
|
365
|
+
"type": "text",
|
|
366
|
+
"displayName": "Personal Access Token",
|
|
367
|
+
"required": true,
|
|
368
|
+
"secret": true,
|
|
369
|
+
"instructions": "Create at app.asana.com/0/my-apps."
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"id": "trello",
|
|
375
|
+
"name": "Trello",
|
|
376
|
+
"description": "Read boards, lists, and cards from Trello.",
|
|
377
|
+
"icon": "trello",
|
|
378
|
+
"tags": ["project-management", "kanban"],
|
|
379
|
+
"sourceUrl": "https://github.com/delorenj/mcp-server-trello",
|
|
380
|
+
"mcpConfig": {
|
|
381
|
+
"transport": "stdio",
|
|
382
|
+
"command": "npx",
|
|
383
|
+
"args": ["-y", "@delorenj/mcp-server-trello"],
|
|
384
|
+
"envMapping": {
|
|
385
|
+
"TRELLO_API_KEY": "apiKey",
|
|
386
|
+
"TRELLO_TOKEN": "token"
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
"credentialSchema": {
|
|
390
|
+
"apiKey": {
|
|
391
|
+
"type": "text",
|
|
392
|
+
"displayName": "API Key",
|
|
393
|
+
"required": true,
|
|
394
|
+
"secret": true,
|
|
395
|
+
"instructions": "Get from trello.com/app-key."
|
|
396
|
+
},
|
|
397
|
+
"token": {
|
|
398
|
+
"type": "text",
|
|
399
|
+
"displayName": "OAuth Token",
|
|
400
|
+
"required": true,
|
|
401
|
+
"secret": true,
|
|
402
|
+
"instructions": "Generate via the Manual Token link on trello.com/app-key."
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"id": "perplexity",
|
|
408
|
+
"name": "Perplexity",
|
|
409
|
+
"description": "Search the web with Perplexity's answer-engine API.",
|
|
410
|
+
"icon": "magnifying-glass",
|
|
411
|
+
"tags": ["search", "web", "research"],
|
|
412
|
+
"sourceUrl": "https://github.com/ppl-ai/modelcontextprotocol",
|
|
413
|
+
"mcpConfig": {
|
|
414
|
+
"transport": "stdio",
|
|
415
|
+
"command": "npx",
|
|
416
|
+
"args": ["-y", "server-perplexity-ask"],
|
|
417
|
+
"envMapping": {
|
|
418
|
+
"PERPLEXITY_API_KEY": "apiKey"
|
|
419
|
+
}
|
|
420
|
+
},
|
|
421
|
+
"credentialSchema": {
|
|
422
|
+
"apiKey": {
|
|
423
|
+
"type": "text",
|
|
424
|
+
"displayName": "API Key",
|
|
425
|
+
"required": true,
|
|
426
|
+
"secret": true,
|
|
427
|
+
"instructions": "Create at perplexity.ai/settings/api."
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"id": "tavily",
|
|
433
|
+
"name": "Tavily",
|
|
434
|
+
"description": "Web search + extraction tuned for LLM agents.",
|
|
435
|
+
"icon": "magnifying-glass",
|
|
436
|
+
"tags": ["search", "web", "research"],
|
|
437
|
+
"sourceUrl": "https://github.com/tavily-ai/tavily-mcp",
|
|
438
|
+
"mcpConfig": {
|
|
439
|
+
"transport": "stdio",
|
|
440
|
+
"command": "npx",
|
|
441
|
+
"args": ["-y", "tavily-mcp@latest"],
|
|
442
|
+
"envMapping": {
|
|
443
|
+
"TAVILY_API_KEY": "apiKey"
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
"credentialSchema": {
|
|
447
|
+
"apiKey": {
|
|
448
|
+
"type": "text",
|
|
449
|
+
"displayName": "API Key",
|
|
450
|
+
"required": true,
|
|
451
|
+
"secret": true,
|
|
452
|
+
"instructions": "Sign up at tavily.com and create an API key."
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"id": "exa",
|
|
458
|
+
"name": "Exa Search",
|
|
459
|
+
"description": "Neural web search optimized for LLM agents.",
|
|
460
|
+
"icon": "magnifying-glass",
|
|
461
|
+
"tags": ["search", "web", "research"],
|
|
462
|
+
"sourceUrl": "https://github.com/exa-labs/exa-mcp-server",
|
|
463
|
+
"mcpConfig": {
|
|
464
|
+
"transport": "stdio",
|
|
465
|
+
"command": "npx",
|
|
466
|
+
"args": ["-y", "exa-mcp-server"],
|
|
467
|
+
"envMapping": {
|
|
468
|
+
"EXA_API_KEY": "apiKey"
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
"credentialSchema": {
|
|
472
|
+
"apiKey": {
|
|
473
|
+
"type": "text",
|
|
474
|
+
"displayName": "API Key",
|
|
475
|
+
"required": true,
|
|
476
|
+
"secret": true,
|
|
477
|
+
"instructions": "Get from dashboard.exa.ai."
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"id": "firecrawl",
|
|
483
|
+
"name": "Firecrawl",
|
|
484
|
+
"description": "Scrape, crawl, and extract structured data from web pages.",
|
|
485
|
+
"icon": "spider",
|
|
486
|
+
"tags": ["web", "scraping", "crawl"],
|
|
487
|
+
"sourceUrl": "https://github.com/mendableai/firecrawl-mcp-server",
|
|
488
|
+
"mcpConfig": {
|
|
489
|
+
"transport": "stdio",
|
|
490
|
+
"command": "npx",
|
|
491
|
+
"args": ["-y", "firecrawl-mcp"],
|
|
492
|
+
"envMapping": {
|
|
493
|
+
"FIRECRAWL_API_KEY": "apiKey"
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
"credentialSchema": {
|
|
497
|
+
"apiKey": {
|
|
498
|
+
"type": "text",
|
|
499
|
+
"displayName": "API Key",
|
|
500
|
+
"required": true,
|
|
501
|
+
"secret": true,
|
|
502
|
+
"instructions": "Get from firecrawl.dev/app/api-keys."
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"id": "heroku",
|
|
508
|
+
"name": "Heroku",
|
|
509
|
+
"description": "Manage Heroku apps, dynos, and add-ons.",
|
|
510
|
+
"icon": "cloud",
|
|
511
|
+
"tags": ["deployment", "cloud", "paas"],
|
|
512
|
+
"sourceUrl": "https://github.com/heroku/heroku-mcp-server",
|
|
513
|
+
"mcpConfig": {
|
|
514
|
+
"transport": "stdio",
|
|
515
|
+
"command": "npx",
|
|
516
|
+
"args": ["-y", "@heroku/mcp-server"],
|
|
517
|
+
"envMapping": {
|
|
518
|
+
"HEROKU_API_KEY": "apiKey"
|
|
519
|
+
}
|
|
520
|
+
},
|
|
521
|
+
"credentialSchema": {
|
|
522
|
+
"apiKey": {
|
|
523
|
+
"type": "text",
|
|
524
|
+
"displayName": "API Key",
|
|
525
|
+
"required": true,
|
|
526
|
+
"secret": true,
|
|
527
|
+
"instructions": "Get from dashboard.heroku.com/account → API Key."
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
"id": "neon",
|
|
533
|
+
"name": "Neon",
|
|
534
|
+
"description": "Manage Neon serverless Postgres projects + branches.",
|
|
535
|
+
"icon": "database",
|
|
536
|
+
"tags": ["database", "postgres", "serverless"],
|
|
537
|
+
"sourceUrl": "https://github.com/neondatabase/mcp-server-neon",
|
|
538
|
+
"mcpConfig": {
|
|
539
|
+
"transport": "stdio",
|
|
540
|
+
"command": "npx",
|
|
541
|
+
"args": ["-y", "@neondatabase/mcp-server-neon", "start"],
|
|
542
|
+
"envMapping": {
|
|
543
|
+
"NEON_API_KEY": "apiKey"
|
|
544
|
+
}
|
|
545
|
+
},
|
|
546
|
+
"credentialSchema": {
|
|
547
|
+
"apiKey": {
|
|
548
|
+
"type": "text",
|
|
549
|
+
"displayName": "API Key",
|
|
550
|
+
"required": true,
|
|
551
|
+
"secret": true,
|
|
552
|
+
"instructions": "Create at console.neon.tech/app/settings/api-keys."
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
]
|
|
557
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trops/dash-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.451",
|
|
4
4
|
"description": "Core framework for Dash dashboard applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"scripts": {
|
|
20
20
|
"build": "npm run build:renderer && npm run build:electron",
|
|
21
21
|
"build:renderer": "rollup -c rollup.config.renderer.mjs",
|
|
22
|
-
"build:electron": "rollup -c rollup.config.electron.mjs && mkdir -p dist/mcp && cp electron/mcp/mcpServerCatalog.json dist/mcp/ && rm -rf dist/mcp/servers && cp -r electron/mcp/servers dist/mcp/ && node scripts/inject-secrets.js",
|
|
22
|
+
"build:electron": "rollup -c rollup.config.electron.mjs && mkdir -p dist/mcp && cp electron/mcp/mcpServerCatalog.json dist/mcp/ && cp electron/mcp/knownExternalMcpServers.json dist/mcp/ && rm -rf dist/mcp/servers && cp -r electron/mcp/servers dist/mcp/ && node scripts/inject-secrets.js",
|
|
23
23
|
"clean": "rm -rf dist",
|
|
24
24
|
"prepublishOnly": "npm run clean && npm run build",
|
|
25
|
-
"test:mcp": "node --test electron/controller/mcpController.test.js electron/mcp/mcpServerCatalog.test.js",
|
|
25
|
+
"test:mcp": "node --test electron/controller/mcpController.test.js electron/mcp/mcpServerCatalog.test.js electron/mcp/installExternalMcpTool.test.js",
|
|
26
26
|
"test": "jest --watchAll=false",
|
|
27
27
|
"prettify": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\" \"electron/**/*.js\"",
|
|
28
28
|
"ci": "./scripts/ci.sh",
|