@hasna/mcps 0.0.16 → 0.0.17
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/README.md +20 -0
- package/bin/index.js +395 -21
- package/bin/mcp.js +394 -20
- package/dist/index.js +392 -18
- package/dist/mcp/index.js +394 -20
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,6 +27,9 @@ mcps --help
|
|
|
27
27
|
- `mcps call`
|
|
28
28
|
- `mcps info`
|
|
29
29
|
- `mcps doctor`
|
|
30
|
+
- `mcps providers list`
|
|
31
|
+
- `mcps providers search github`
|
|
32
|
+
- `mcps providers install github`
|
|
30
33
|
- `mcps env list <server-id>`
|
|
31
34
|
- `mcps env ref <server-id> API_KEY=UPSTREAM_API_KEY --source env`
|
|
32
35
|
- `mcps machines list`
|
|
@@ -55,6 +58,23 @@ Notes:
|
|
|
55
58
|
- Targets need SSH access plus `node` and either `bun` or `npm` available remotely.
|
|
56
59
|
- Use `-j` or `--json` on the new `machines` and `fleet` commands for scriptable output.
|
|
57
60
|
|
|
61
|
+
## Curated Provider Profiles
|
|
62
|
+
|
|
63
|
+
`mcps providers` exposes a curated catalog of common MCP providers with source,
|
|
64
|
+
auth, transport, and install metadata. The default catalog includes Notion,
|
|
65
|
+
Linear, GitHub, Slack, Gmail, Google Drive, Google Calendar, Stripe, Cloudflare,
|
|
66
|
+
PostgreSQL, filesystem, and browser automation profiles.
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
mcps providers list
|
|
70
|
+
mcps providers info github --json
|
|
71
|
+
mcps providers install github
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Direct remote providers install as HTTP/SSE entries. Local stdio fallbacks such
|
|
75
|
+
as PostgreSQL, filesystem, and Playwright browser automation require explicit
|
|
76
|
+
local command consent before registration.
|
|
77
|
+
|
|
58
78
|
## Credential References
|
|
59
79
|
|
|
60
80
|
Secret-like environment keys and values are rejected from plain server env storage.
|
package/bin/index.js
CHANGED
|
@@ -11985,7 +11985,7 @@ var init_provider_profile_seeds = __esm(() => {
|
|
|
11985
11985
|
provenance: {
|
|
11986
11986
|
source: "curated",
|
|
11987
11987
|
sourceUrl: "https://developers.notion.com/guides/mcp/build-mcp-client",
|
|
11988
|
-
verifiedAt: "2026-05-
|
|
11988
|
+
verifiedAt: "2026-05-11"
|
|
11989
11989
|
}
|
|
11990
11990
|
},
|
|
11991
11991
|
{
|
|
@@ -12017,7 +12017,384 @@ var init_provider_profile_seeds = __esm(() => {
|
|
|
12017
12017
|
provenance: {
|
|
12018
12018
|
source: "curated",
|
|
12019
12019
|
sourceUrl: "https://linear.app/docs/mcp",
|
|
12020
|
-
verifiedAt: "2026-05-
|
|
12020
|
+
verifiedAt: "2026-05-11"
|
|
12021
|
+
}
|
|
12022
|
+
},
|
|
12023
|
+
{
|
|
12024
|
+
id: "github",
|
|
12025
|
+
displayName: "GitHub",
|
|
12026
|
+
description: "Connect GitHub so agents can inspect repositories, manage issues and pull requests, analyze Actions runs, and work with project metadata.",
|
|
12027
|
+
endpoint: "https://api.githubcopilot.com/mcp/",
|
|
12028
|
+
transport: "streamable-http",
|
|
12029
|
+
authType: "oauth2",
|
|
12030
|
+
authMetadata: {
|
|
12031
|
+
oauthVersion: "2.0",
|
|
12032
|
+
pkce: true,
|
|
12033
|
+
dynamicClientRegistration: false,
|
|
12034
|
+
bearerToken: "optional",
|
|
12035
|
+
notes: "GitHub hosts the remote server. OAuth requires host-side GitHub App/OAuth App setup; clients that cannot complete OAuth can use an Authorization bearer GitHub PAT."
|
|
12036
|
+
},
|
|
12037
|
+
scopes: ["repo", "read:org", "read:user", "user:email", "workflow", "notifications", "project"],
|
|
12038
|
+
tokenMode: "user",
|
|
12039
|
+
installFallback: {
|
|
12040
|
+
command: "docker",
|
|
12041
|
+
args: ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"],
|
|
12042
|
+
env: { GITHUB_PERSONAL_ACCESS_TOKEN: "GITHUB_PERSONAL_ACCESS_TOKEN" },
|
|
12043
|
+
packageName: "ghcr.io/github/github-mcp-server",
|
|
12044
|
+
url: "https://api.githubcopilot.com/mcp/"
|
|
12045
|
+
},
|
|
12046
|
+
docsUrl: "https://github.com/github/github-mcp-server",
|
|
12047
|
+
safety: {
|
|
12048
|
+
requiresApproval: true,
|
|
12049
|
+
sensitiveScopes: ["repo", "workflow", "project"],
|
|
12050
|
+
dataClasses: ["repositories", "issues", "pull_requests", "actions", "security_alerts", "organization_members"],
|
|
12051
|
+
notes: "GitHub tools can read private source and mutate repository objects. Prefer least-privilege OAuth scopes or fine-grained PATs and approval-gate write operations."
|
|
12052
|
+
},
|
|
12053
|
+
provenance: {
|
|
12054
|
+
source: "curated",
|
|
12055
|
+
sourceUrl: "https://github.com/github/github-mcp-server",
|
|
12056
|
+
repositoryUrl: "https://github.com/github/github-mcp-server",
|
|
12057
|
+
packageName: "ghcr.io/github/github-mcp-server",
|
|
12058
|
+
verifiedAt: "2026-05-11"
|
|
12059
|
+
}
|
|
12060
|
+
},
|
|
12061
|
+
{
|
|
12062
|
+
id: "slack",
|
|
12063
|
+
displayName: "Slack",
|
|
12064
|
+
description: "Connect Slack so agents can search workspace messages and files, inspect conversations, read user context, and draft or send approved messages.",
|
|
12065
|
+
endpoint: "https://mcp.slack.com/mcp",
|
|
12066
|
+
transport: "streamable-http",
|
|
12067
|
+
authType: "oauth2",
|
|
12068
|
+
authMetadata: {
|
|
12069
|
+
oauthVersion: "2.0",
|
|
12070
|
+
pkce: true,
|
|
12071
|
+
dynamicClientRegistration: false,
|
|
12072
|
+
bearerToken: "none",
|
|
12073
|
+
notes: "Slack's remote MCP endpoint uses Streamable HTTP, requires a registered Slack app identity, and does not support SSE or dynamic client registration."
|
|
12074
|
+
},
|
|
12075
|
+
scopes: [
|
|
12076
|
+
"search:read.public",
|
|
12077
|
+
"search:read.private",
|
|
12078
|
+
"search:read.mpim",
|
|
12079
|
+
"search:read.im",
|
|
12080
|
+
"search:read.files",
|
|
12081
|
+
"search:read.users",
|
|
12082
|
+
"channels:history",
|
|
12083
|
+
"groups:history",
|
|
12084
|
+
"mpim:history",
|
|
12085
|
+
"im:history",
|
|
12086
|
+
"chat:write",
|
|
12087
|
+
"canvases:read",
|
|
12088
|
+
"canvases:write",
|
|
12089
|
+
"users:read",
|
|
12090
|
+
"users:read.email"
|
|
12091
|
+
],
|
|
12092
|
+
tokenMode: "user",
|
|
12093
|
+
docsUrl: "https://docs.slack.dev/ai/slack-mcp-server/",
|
|
12094
|
+
safety: {
|
|
12095
|
+
requiresApproval: true,
|
|
12096
|
+
sensitiveScopes: ["chat:write", "canvases:write", "users:read.email"],
|
|
12097
|
+
dataClasses: ["messages", "files", "channels", "users", "canvases"],
|
|
12098
|
+
notes: "Slack data often includes confidential team communication. Search/read access should stay tenant-scoped and message/canvas writes should require explicit approval."
|
|
12099
|
+
},
|
|
12100
|
+
provenance: {
|
|
12101
|
+
source: "curated",
|
|
12102
|
+
sourceUrl: "https://docs.slack.dev/ai/slack-mcp-server/",
|
|
12103
|
+
verifiedAt: "2026-05-11"
|
|
12104
|
+
}
|
|
12105
|
+
},
|
|
12106
|
+
{
|
|
12107
|
+
id: "gmail",
|
|
12108
|
+
displayName: "Gmail",
|
|
12109
|
+
description: "Connect Gmail through the open Workspace MCP server for mail search, message retrieval, drafts, labels, filters, and approved send workflows.",
|
|
12110
|
+
transport: "stdio",
|
|
12111
|
+
authType: "oauth2",
|
|
12112
|
+
authMetadata: {
|
|
12113
|
+
oauthVersion: "2.1",
|
|
12114
|
+
pkce: true,
|
|
12115
|
+
dynamicClientRegistration: false,
|
|
12116
|
+
bearerToken: "optional",
|
|
12117
|
+
notes: "Workspace MCP is an independent open-source Google Workspace server. Configure your own Google OAuth client and storage backend for Gmail access."
|
|
12118
|
+
},
|
|
12119
|
+
scopes: [
|
|
12120
|
+
"https://www.googleapis.com/auth/gmail.readonly",
|
|
12121
|
+
"https://www.googleapis.com/auth/gmail.modify",
|
|
12122
|
+
"https://www.googleapis.com/auth/gmail.compose",
|
|
12123
|
+
"https://www.googleapis.com/auth/gmail.send"
|
|
12124
|
+
],
|
|
12125
|
+
tokenMode: "user",
|
|
12126
|
+
installFallback: {
|
|
12127
|
+
command: "uvx",
|
|
12128
|
+
args: ["workspace-mcp"],
|
|
12129
|
+
env: { WORKSPACE_MCP_PERMISSIONS: "gmail:send" },
|
|
12130
|
+
packageName: "workspace-mcp",
|
|
12131
|
+
url: "http://127.0.0.1:8000/mcp"
|
|
12132
|
+
},
|
|
12133
|
+
docsUrl: "https://workspacemcp.com/docs",
|
|
12134
|
+
safety: {
|
|
12135
|
+
requiresApproval: true,
|
|
12136
|
+
sensitiveScopes: [
|
|
12137
|
+
"https://www.googleapis.com/auth/gmail.modify",
|
|
12138
|
+
"https://www.googleapis.com/auth/gmail.compose",
|
|
12139
|
+
"https://www.googleapis.com/auth/gmail.send"
|
|
12140
|
+
],
|
|
12141
|
+
dataClasses: ["email_messages", "threads", "attachments", "labels", "contacts"],
|
|
12142
|
+
notes: "Email content and sending are high-impact actions. Prefer read-only permissions until a user intentionally enables drafts or sends."
|
|
12143
|
+
},
|
|
12144
|
+
provenance: {
|
|
12145
|
+
source: "github",
|
|
12146
|
+
sourceUrl: "https://workspacemcp.com/docs",
|
|
12147
|
+
repositoryUrl: "https://github.com/taylorwilsdon/google_workspace_mcp",
|
|
12148
|
+
packageName: "workspace-mcp",
|
|
12149
|
+
verifiedAt: "2026-05-11"
|
|
12150
|
+
}
|
|
12151
|
+
},
|
|
12152
|
+
{
|
|
12153
|
+
id: "google-drive",
|
|
12154
|
+
displayName: "Google Drive",
|
|
12155
|
+
description: "Connect Google Drive through the open Workspace MCP server for file search, folder navigation, content reads, and approved file operations.",
|
|
12156
|
+
transport: "stdio",
|
|
12157
|
+
authType: "oauth2",
|
|
12158
|
+
authMetadata: {
|
|
12159
|
+
oauthVersion: "2.1",
|
|
12160
|
+
pkce: true,
|
|
12161
|
+
dynamicClientRegistration: false,
|
|
12162
|
+
bearerToken: "optional",
|
|
12163
|
+
notes: "Workspace MCP is an independent open-source Google Workspace server. Configure your own Google OAuth client and storage backend for Drive access."
|
|
12164
|
+
},
|
|
12165
|
+
scopes: [
|
|
12166
|
+
"https://www.googleapis.com/auth/drive.readonly",
|
|
12167
|
+
"https://www.googleapis.com/auth/drive.file",
|
|
12168
|
+
"https://www.googleapis.com/auth/drive"
|
|
12169
|
+
],
|
|
12170
|
+
tokenMode: "user",
|
|
12171
|
+
installFallback: {
|
|
12172
|
+
command: "uvx",
|
|
12173
|
+
args: ["workspace-mcp"],
|
|
12174
|
+
env: { WORKSPACE_MCP_PERMISSIONS: "drive:readonly" },
|
|
12175
|
+
packageName: "workspace-mcp",
|
|
12176
|
+
url: "http://127.0.0.1:8000/mcp"
|
|
12177
|
+
},
|
|
12178
|
+
docsUrl: "https://workspacemcp.com/docs",
|
|
12179
|
+
safety: {
|
|
12180
|
+
requiresApproval: true,
|
|
12181
|
+
sensitiveScopes: [
|
|
12182
|
+
"https://www.googleapis.com/auth/drive.file",
|
|
12183
|
+
"https://www.googleapis.com/auth/drive"
|
|
12184
|
+
],
|
|
12185
|
+
dataClasses: ["drive_files", "folders", "documents", "spreadsheets", "attachments", "sharing_permissions"],
|
|
12186
|
+
notes: "Drive access can expose broad business documents. Keep tenant allowlists and approval-gate creation, movement, and permission changes."
|
|
12187
|
+
},
|
|
12188
|
+
provenance: {
|
|
12189
|
+
source: "github",
|
|
12190
|
+
sourceUrl: "https://workspacemcp.com/docs",
|
|
12191
|
+
repositoryUrl: "https://github.com/taylorwilsdon/google_workspace_mcp",
|
|
12192
|
+
packageName: "workspace-mcp",
|
|
12193
|
+
verifiedAt: "2026-05-11"
|
|
12194
|
+
}
|
|
12195
|
+
},
|
|
12196
|
+
{
|
|
12197
|
+
id: "google-calendar",
|
|
12198
|
+
displayName: "Google Calendar",
|
|
12199
|
+
description: "Connect Google Calendar through the open Workspace MCP server for calendar discovery, event reads, and approved scheduling changes.",
|
|
12200
|
+
transport: "stdio",
|
|
12201
|
+
authType: "oauth2",
|
|
12202
|
+
authMetadata: {
|
|
12203
|
+
oauthVersion: "2.1",
|
|
12204
|
+
pkce: true,
|
|
12205
|
+
dynamicClientRegistration: false,
|
|
12206
|
+
bearerToken: "optional",
|
|
12207
|
+
notes: "Workspace MCP is an independent open-source Google Workspace server. Configure your own Google OAuth client and storage backend for Calendar access."
|
|
12208
|
+
},
|
|
12209
|
+
scopes: [
|
|
12210
|
+
"https://www.googleapis.com/auth/calendar.readonly",
|
|
12211
|
+
"https://www.googleapis.com/auth/calendar.events",
|
|
12212
|
+
"https://www.googleapis.com/auth/calendar"
|
|
12213
|
+
],
|
|
12214
|
+
tokenMode: "user",
|
|
12215
|
+
installFallback: {
|
|
12216
|
+
command: "uvx",
|
|
12217
|
+
args: ["workspace-mcp"],
|
|
12218
|
+
env: { WORKSPACE_MCP_PERMISSIONS: "calendar:readonly" },
|
|
12219
|
+
packageName: "workspace-mcp",
|
|
12220
|
+
url: "http://127.0.0.1:8000/mcp"
|
|
12221
|
+
},
|
|
12222
|
+
docsUrl: "https://workspacemcp.com/docs",
|
|
12223
|
+
safety: {
|
|
12224
|
+
requiresApproval: true,
|
|
12225
|
+
sensitiveScopes: [
|
|
12226
|
+
"https://www.googleapis.com/auth/calendar.events",
|
|
12227
|
+
"https://www.googleapis.com/auth/calendar"
|
|
12228
|
+
],
|
|
12229
|
+
dataClasses: ["calendars", "events", "attendees", "attachments", "availability"],
|
|
12230
|
+
notes: "Calendar writes can invite people, reveal availability, and alter operational schedules. Gate creates, updates, and deletes with user approval."
|
|
12231
|
+
},
|
|
12232
|
+
provenance: {
|
|
12233
|
+
source: "github",
|
|
12234
|
+
sourceUrl: "https://workspacemcp.com/docs",
|
|
12235
|
+
repositoryUrl: "https://github.com/taylorwilsdon/google_workspace_mcp",
|
|
12236
|
+
packageName: "workspace-mcp",
|
|
12237
|
+
verifiedAt: "2026-05-11"
|
|
12238
|
+
}
|
|
12239
|
+
},
|
|
12240
|
+
{
|
|
12241
|
+
id: "stripe",
|
|
12242
|
+
displayName: "Stripe",
|
|
12243
|
+
description: "Connect Stripe so agents can inspect accounts, balances, customers, prices, subscriptions, invoices, disputes, and perform approved Stripe API operations.",
|
|
12244
|
+
endpoint: "https://mcp.stripe.com",
|
|
12245
|
+
transport: "streamable-http",
|
|
12246
|
+
authType: "oauth2",
|
|
12247
|
+
authMetadata: {
|
|
12248
|
+
oauthVersion: "2.0",
|
|
12249
|
+
pkce: true,
|
|
12250
|
+
dynamicClientRegistration: false,
|
|
12251
|
+
bearerToken: "optional",
|
|
12252
|
+
notes: "Stripe supports OAuth MCP sessions and restricted API keys as Authorization bearer tokens for clients that do not support OAuth."
|
|
12253
|
+
},
|
|
12254
|
+
tokenMode: "workspace",
|
|
12255
|
+
installFallback: {
|
|
12256
|
+
command: "npx",
|
|
12257
|
+
args: ["-y", "@stripe/mcp"],
|
|
12258
|
+
env: { STRIPE_SECRET_KEY: "STRIPE_SECRET_KEY" },
|
|
12259
|
+
packageName: "@stripe/mcp",
|
|
12260
|
+
url: "https://mcp.stripe.com"
|
|
12261
|
+
},
|
|
12262
|
+
docsUrl: "https://docs.stripe.com/mcp",
|
|
12263
|
+
safety: {
|
|
12264
|
+
requiresApproval: true,
|
|
12265
|
+
sensitiveScopes: ["restricted_api_key", "live_mode"],
|
|
12266
|
+
dataClasses: ["payments", "customers", "subscriptions", "invoices", "disputes", "account_balances"],
|
|
12267
|
+
notes: "Use restricted keys, separate sandbox/live mode, and require approval for any operation that creates, updates, refunds, cancels, or exposes customer data."
|
|
12268
|
+
},
|
|
12269
|
+
provenance: {
|
|
12270
|
+
source: "curated",
|
|
12271
|
+
sourceUrl: "https://docs.stripe.com/mcp",
|
|
12272
|
+
repositoryUrl: "https://github.com/stripe/ai",
|
|
12273
|
+
packageName: "@stripe/mcp",
|
|
12274
|
+
verifiedAt: "2026-05-11"
|
|
12275
|
+
}
|
|
12276
|
+
},
|
|
12277
|
+
{
|
|
12278
|
+
id: "cloudflare",
|
|
12279
|
+
displayName: "Cloudflare",
|
|
12280
|
+
description: "Connect Cloudflare's remote MCP server for account, zone, developer platform, logs, analytics, and approved infrastructure operations.",
|
|
12281
|
+
endpoint: "https://mcp.cloudflare.com/mcp",
|
|
12282
|
+
transport: "streamable-http",
|
|
12283
|
+
authType: "oauth2",
|
|
12284
|
+
authMetadata: {
|
|
12285
|
+
oauthVersion: "2.0",
|
|
12286
|
+
pkce: true,
|
|
12287
|
+
dynamicClientRegistration: false,
|
|
12288
|
+
bearerToken: "none",
|
|
12289
|
+
notes: "Cloudflare's remote MCP server redirects users through Cloudflare authorization and permission selection."
|
|
12290
|
+
},
|
|
12291
|
+
tokenMode: "workspace",
|
|
12292
|
+
docsUrl: "https://developers.cloudflare.com/agents/model-context-protocol/mcp-servers-for-cloudflare/",
|
|
12293
|
+
safety: {
|
|
12294
|
+
requiresApproval: true,
|
|
12295
|
+
sensitiveScopes: ["account_admin", "zone_write", "workers_write", "dns_write"],
|
|
12296
|
+
dataClasses: ["accounts", "zones", "dns_records", "workers", "logs", "analytics", "security_events"],
|
|
12297
|
+
notes: "Cloudflare tools can affect live infrastructure. Require account scoping, least-privilege permissions, and approval for write operations."
|
|
12298
|
+
},
|
|
12299
|
+
provenance: {
|
|
12300
|
+
source: "curated",
|
|
12301
|
+
sourceUrl: "https://github.com/cloudflare/mcp",
|
|
12302
|
+
repositoryUrl: "https://github.com/cloudflare/mcp",
|
|
12303
|
+
verifiedAt: "2026-05-11"
|
|
12304
|
+
}
|
|
12305
|
+
},
|
|
12306
|
+
{
|
|
12307
|
+
id: "postgres",
|
|
12308
|
+
displayName: "PostgreSQL",
|
|
12309
|
+
description: "Connect a PostgreSQL database through the reference read-only MCP server for schema inspection and SQL query analysis.",
|
|
12310
|
+
transport: "stdio",
|
|
12311
|
+
authType: "api_key",
|
|
12312
|
+
authMetadata: {
|
|
12313
|
+
bearerToken: "none",
|
|
12314
|
+
notes: "The stdio server takes a PostgreSQL connection URL argument. Store the URL in a secret manager or environment variable and grant read-only database credentials."
|
|
12315
|
+
},
|
|
12316
|
+
tokenMode: "service",
|
|
12317
|
+
installFallback: {
|
|
12318
|
+
command: "npx",
|
|
12319
|
+
args: ["-y", "@modelcontextprotocol/server-postgres", "${POSTGRES_URL}"],
|
|
12320
|
+
packageName: "@modelcontextprotocol/server-postgres"
|
|
12321
|
+
},
|
|
12322
|
+
docsUrl: "https://www.npmjs.com/package/@modelcontextprotocol/server-postgres",
|
|
12323
|
+
safety: {
|
|
12324
|
+
readOnly: true,
|
|
12325
|
+
requiresApproval: false,
|
|
12326
|
+
sensitiveScopes: ["database_connection_url"],
|
|
12327
|
+
dataClasses: ["database_schema", "table_rows", "query_results"],
|
|
12328
|
+
notes: "Use read-only database users and network allowlists. Treat query results as sensitive even when the server enforces read-only transactions."
|
|
12329
|
+
},
|
|
12330
|
+
provenance: {
|
|
12331
|
+
source: "npm",
|
|
12332
|
+
sourceUrl: "https://www.npmjs.com/package/@modelcontextprotocol/server-postgres",
|
|
12333
|
+
repositoryUrl: "https://github.com/modelcontextprotocol/servers",
|
|
12334
|
+
packageName: "@modelcontextprotocol/server-postgres",
|
|
12335
|
+
verifiedAt: "2026-05-11"
|
|
12336
|
+
}
|
|
12337
|
+
},
|
|
12338
|
+
{
|
|
12339
|
+
id: "filesystem",
|
|
12340
|
+
displayName: "Filesystem",
|
|
12341
|
+
description: "Connect the reference filesystem MCP server for scoped local file and directory reads, writes, searches, metadata, and move operations.",
|
|
12342
|
+
transport: "stdio",
|
|
12343
|
+
authType: "none",
|
|
12344
|
+
authMetadata: {
|
|
12345
|
+
bearerToken: "none",
|
|
12346
|
+
notes: "Filesystem access is bounded by explicit root directories passed to the local stdio server."
|
|
12347
|
+
},
|
|
12348
|
+
tokenMode: "none",
|
|
12349
|
+
installFallback: {
|
|
12350
|
+
command: "npx",
|
|
12351
|
+
args: ["-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}"],
|
|
12352
|
+
packageName: "@modelcontextprotocol/server-filesystem"
|
|
12353
|
+
},
|
|
12354
|
+
docsUrl: "https://www.npmjs.com/package/@modelcontextprotocol/server-filesystem",
|
|
12355
|
+
safety: {
|
|
12356
|
+
requiresApproval: true,
|
|
12357
|
+
destructiveTools: ["write_file", "delete_file", "move_file", "create_directory"],
|
|
12358
|
+
dataClasses: ["local_files", "source_code", "documents", "directory_metadata"],
|
|
12359
|
+
notes: "Always constrain roots to intended project directories and approval-gate write, delete, and move operations."
|
|
12360
|
+
},
|
|
12361
|
+
provenance: {
|
|
12362
|
+
source: "npm",
|
|
12363
|
+
sourceUrl: "https://www.npmjs.com/package/@modelcontextprotocol/server-filesystem",
|
|
12364
|
+
repositoryUrl: "https://github.com/modelcontextprotocol/servers",
|
|
12365
|
+
packageName: "@modelcontextprotocol/server-filesystem",
|
|
12366
|
+
verifiedAt: "2026-05-11"
|
|
12367
|
+
}
|
|
12368
|
+
},
|
|
12369
|
+
{
|
|
12370
|
+
id: "browser",
|
|
12371
|
+
displayName: "Browser Automation",
|
|
12372
|
+
description: "Connect Playwright MCP so agents can navigate pages, inspect accessibility snapshots, fill forms, capture screenshots, and run browser automation.",
|
|
12373
|
+
transport: "stdio",
|
|
12374
|
+
authType: "none",
|
|
12375
|
+
authMetadata: {
|
|
12376
|
+
bearerToken: "none",
|
|
12377
|
+
notes: "Playwright MCP runs browser automation locally and may reuse browser profile state unless configured for isolation."
|
|
12378
|
+
},
|
|
12379
|
+
tokenMode: "none",
|
|
12380
|
+
installFallback: {
|
|
12381
|
+
command: "npx",
|
|
12382
|
+
args: ["-y", "@playwright/mcp"],
|
|
12383
|
+
packageName: "@playwright/mcp"
|
|
12384
|
+
},
|
|
12385
|
+
docsUrl: "https://playwright.dev/docs/getting-started-mcp",
|
|
12386
|
+
safety: {
|
|
12387
|
+
requiresApproval: true,
|
|
12388
|
+
destructiveTools: ["browser_click", "browser_type", "browser_file_upload", "browser_run_code"],
|
|
12389
|
+
dataClasses: ["web_pages", "forms", "cookies", "local_storage", "screenshots", "browser_profiles"],
|
|
12390
|
+
notes: "Browser automation can submit forms, alter accounts, and expose logged-in sessions. Prefer isolated profiles and require approval for side-effecting actions."
|
|
12391
|
+
},
|
|
12392
|
+
provenance: {
|
|
12393
|
+
source: "curated",
|
|
12394
|
+
sourceUrl: "https://playwright.dev/docs/getting-started-mcp",
|
|
12395
|
+
repositoryUrl: "https://github.com/microsoft/playwright-mcp",
|
|
12396
|
+
packageName: "@playwright/mcp",
|
|
12397
|
+
verifiedAt: "2026-05-11"
|
|
12021
12398
|
}
|
|
12022
12399
|
}
|
|
12023
12400
|
];
|
|
@@ -12140,22 +12517,19 @@ function getDb() {
|
|
|
12140
12517
|
db.exec("ALTER TABLE provider_profiles ADD COLUMN auth_metadata TEXT NOT NULL DEFAULT '{}'");
|
|
12141
12518
|
} catch {}
|
|
12142
12519
|
db.exec("CREATE INDEX IF NOT EXISTS idx_provider_profiles_enabled ON provider_profiles(enabled)");
|
|
12143
|
-
const
|
|
12144
|
-
|
|
12145
|
-
|
|
12146
|
-
|
|
12147
|
-
|
|
12148
|
-
|
|
12149
|
-
|
|
12150
|
-
|
|
12151
|
-
|
|
12152
|
-
|
|
12153
|
-
|
|
12154
|
-
|
|
12155
|
-
|
|
12156
|
-
});
|
|
12157
|
-
run();
|
|
12158
|
-
}
|
|
12520
|
+
const insertProviderProfile = db.prepare(`
|
|
12521
|
+
INSERT OR IGNORE INTO provider_profiles (
|
|
12522
|
+
id, display_name, description, endpoint, transport, fallback_endpoints,
|
|
12523
|
+
auth_type, auth_metadata, scopes, token_mode, install_fallback,
|
|
12524
|
+
docs_url, safety, provenance, enabled
|
|
12525
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
12526
|
+
`);
|
|
12527
|
+
const seedProviderProfiles = db.transaction(() => {
|
|
12528
|
+
for (const profile of DEFAULT_PROVIDER_PROFILE_SEEDS) {
|
|
12529
|
+
insertProviderProfile.run(profile.id, profile.displayName, profile.description ?? null, profile.endpoint ?? null, profile.transport, JSON.stringify(profile.fallbackEndpoints ?? []), profile.authType, JSON.stringify(profile.authMetadata ?? {}), JSON.stringify(profile.scopes ?? []), profile.tokenMode ?? "none", JSON.stringify(profile.installFallback ?? null), profile.docsUrl ?? null, JSON.stringify(profile.safety ?? {}), JSON.stringify(profile.provenance), profile.enabled === false ? 0 : 1);
|
|
12530
|
+
}
|
|
12531
|
+
});
|
|
12532
|
+
seedProviderProfiles();
|
|
12159
12533
|
db.exec(`
|
|
12160
12534
|
CREATE TABLE IF NOT EXISTS feedback (
|
|
12161
12535
|
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16)))),
|
|
@@ -19416,7 +19790,7 @@ var init_sources = __esm(() => {
|
|
|
19416
19790
|
var require_package = __commonJS((exports, module) => {
|
|
19417
19791
|
module.exports = {
|
|
19418
19792
|
name: "@hasna/mcps",
|
|
19419
|
-
version: "0.0.
|
|
19793
|
+
version: "0.0.17",
|
|
19420
19794
|
description: "Meta-MCP registry & CLI \u2014 discover, manage, and proxy MCP servers",
|
|
19421
19795
|
type: "module",
|
|
19422
19796
|
repository: {
|
|
@@ -38936,7 +39310,7 @@ function buildMcpTools() {
|
|
|
38936
39310
|
},
|
|
38937
39311
|
{
|
|
38938
39312
|
name: "list_provider_profiles",
|
|
38939
|
-
description: "List curated provider profiles for hosted/common MCP integrations such as
|
|
39313
|
+
description: "List curated provider profiles for hosted/common MCP integrations such as GitHub, Slack, Google Workspace, Stripe, Cloudflare, Postgres, filesystem, and browser automation.",
|
|
38940
39314
|
paramsSchema: {
|
|
38941
39315
|
enabled_only: exports_external2.boolean().optional().describe("Only include enabled provider profiles")
|
|
38942
39316
|
},
|
|
@@ -38946,7 +39320,7 @@ function buildMcpTools() {
|
|
|
38946
39320
|
name: "search_provider_profiles",
|
|
38947
39321
|
description: "Search curated provider profiles separately from raw MCP registry/source search.",
|
|
38948
39322
|
paramsSchema: {
|
|
38949
|
-
query: exports_external2.string().describe("Search query such as '
|
|
39323
|
+
query: exports_external2.string().describe("Search query such as 'github', 'slack', 'postgres', or an endpoint URL"),
|
|
38950
39324
|
enabled_only: exports_external2.boolean().optional().describe("Only include enabled provider profiles")
|
|
38951
39325
|
},
|
|
38952
39326
|
run: ({ query, enabled_only }) => jsonContent(searchProviderProfiles(String(query), { enabledOnly: enabled_only === true }))
|