@aiwerk/mcp-bridge 2.1.4 → 2.5.0

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.
Files changed (40) hide show
  1. package/README.md +39 -2
  2. package/dist/src/index.d.ts +1 -1
  3. package/dist/src/mcp-router.d.ts +6 -3
  4. package/dist/src/mcp-router.js +37 -10
  5. package/dist/src/security.js +17 -16
  6. package/dist/src/standalone-server.d.ts +2 -0
  7. package/dist/src/standalone-server.js +20 -15
  8. package/dist/src/transport-base.d.ts +5 -2
  9. package/dist/src/transport-base.js +9 -2
  10. package/dist/src/transport-sse.d.ts +2 -2
  11. package/dist/src/transport-sse.js +3 -4
  12. package/dist/src/transport-stdio.js +10 -4
  13. package/dist/src/transport-streamable-http.d.ts +2 -2
  14. package/dist/src/transport-streamable-http.js +3 -4
  15. package/dist/src/types.d.ts +6 -1
  16. package/dist/src/types.js +5 -6
  17. package/package.json +2 -2
  18. package/scripts/validate-recipes.sh +13 -0
  19. package/servers/apify/recipe.json +20 -7
  20. package/servers/atlassian/recipe.json +20 -8
  21. package/servers/chrome-devtools/recipe.json +22 -8
  22. package/servers/github/recipe.json +20 -8
  23. package/servers/google-maps/recipe.json +25 -10
  24. package/servers/hetzner/recipe.json +23 -9
  25. package/servers/hostinger/recipe.json +24 -9
  26. package/servers/imap-email/README.md +37 -0
  27. package/servers/imap-email/recipe.json +47 -6
  28. package/servers/index.json +292 -71
  29. package/servers/linear/recipe.json +23 -9
  30. package/servers/miro/recipe.json +26 -9
  31. package/servers/notion/recipe.json +24 -9
  32. package/servers/stripe/recipe.json +26 -9
  33. package/servers/tavily/recipe.json +24 -9
  34. package/servers/todoist/recipe.json +24 -9
  35. package/servers/wise/recipe.json +23 -9
  36. package/servers/atlassian/config.json +0 -19
  37. package/servers/chrome-devtools/config.json +0 -16
  38. package/servers/github/config.json +0 -21
  39. package/servers/hostinger/config.json +0 -17
  40. package/servers/wise/config.json +0 -16
@@ -15,6 +15,19 @@ RED='\033[0;31m'
15
15
  GREEN='\033[0;32m'
16
16
  NC='\033[0m'
17
17
 
18
+ echo "Validating recipe schema..."
19
+ echo ""
20
+
21
+ for recipe in "$SERVERS_DIR"/*/recipe.json; do
22
+ if ! npx tsx "$SCRIPT_DIR/../bin/validate-recipe.ts" "$recipe" >/dev/null; then
23
+ echo -e "${RED}❌ SCHEMA [$(basename "$(dirname "$recipe")")] $recipe${NC}"
24
+ ERRORS=$((ERRORS + 1))
25
+ else
26
+ echo -e "${GREEN}✓${NC} [$(basename "$(dirname "$recipe")")] schema valid"
27
+ fi
28
+ done
29
+
30
+ echo ""
18
31
  echo "Validating recipe URLs..."
19
32
  echo ""
20
33
 
@@ -4,7 +4,6 @@
4
4
  "name": "Apify",
5
5
  "description": "Web scraping and automation platform with 3000+ ready-made actors for data extraction, browser automation, and crawling",
6
6
  "repository": "https://github.com/apify/apify-mcp-server",
7
-
8
7
  "transports": [
9
8
  {
10
9
  "type": "streamable-http",
@@ -14,24 +13,38 @@
14
13
  }
15
14
  }
16
15
  ],
17
-
18
16
  "auth": {
19
17
  "required": true,
20
18
  "type": "bearer",
21
- "envVars": ["APIFY_TOKEN"],
19
+ "envVars": [
20
+ "APIFY_TOKEN"
21
+ ],
22
22
  "credentialsUrl": "https://console.apify.com/settings/integrations",
23
23
  "instructions": "Copy your API token from Apify Console > Settings > Integrations."
24
24
  },
25
-
26
25
  "metadata": {
27
26
  "homepage": "https://apify.com/",
28
27
  "author": "Apify",
29
- "tags": ["scraping", "automation", "web", "crawling", "actors"],
28
+ "tags": [
29
+ "scraping",
30
+ "automation",
31
+ "web",
32
+ "crawling",
33
+ "actors"
34
+ ],
30
35
  "category": "automation",
31
36
  "pricing": "byok",
32
- "maturity": "stable"
37
+ "maturity": "stable",
38
+ "subcategory": "scraping",
39
+ "origin": "community",
40
+ "countries": [
41
+ "global"
42
+ ],
43
+ "audience": "developer",
44
+ "selfHosted": false,
45
+ "sideEffects": "read-write",
46
+ "authSummary": "bearer"
33
47
  },
34
-
35
48
  "capabilities": {
36
49
  "tools": true,
37
50
  "resources": false,
@@ -4,12 +4,13 @@
4
4
  "name": "Atlassian (Confluence + Jira)",
5
5
  "description": "Confluence wiki and Jira project management — search, create, and update pages and issues",
6
6
  "repository": "https://github.com/sooperset/mcp-atlassian",
7
-
8
7
  "transports": [
9
8
  {
10
9
  "type": "stdio",
11
10
  "command": "uvx",
12
- "args": ["mcp-atlassian"],
11
+ "args": [
12
+ "mcp-atlassian"
13
+ ],
13
14
  "env": {
14
15
  "CONFLUENCE_URL": "${CONFLUENCE_URL}",
15
16
  "CONFLUENCE_USERNAME": "${CONFLUENCE_USERNAME}",
@@ -20,7 +21,6 @@
20
21
  }
21
22
  }
22
23
  ],
23
-
24
24
  "auth": {
25
25
  "required": true,
26
26
  "type": "api-key",
@@ -35,22 +35,34 @@
35
35
  "credentialsUrl": "https://id.atlassian.com/manage-profile/security/api-tokens",
36
36
  "instructions": "Create an API token at Atlassian account settings. Set CONFLUENCE_URL and JIRA_URL to your instance URLs (e.g., https://yourcompany.atlassian.net/wiki and https://yourcompany.atlassian.net)."
37
37
  },
38
-
39
38
  "install": {
40
39
  "method": "uvx",
41
40
  "package": "mcp-atlassian",
42
41
  "version": "latest"
43
42
  },
44
-
45
43
  "metadata": {
46
44
  "homepage": "https://github.com/sooperset/mcp-atlassian",
47
45
  "author": "sooperset",
48
- "tags": ["wiki", "project-management", "confluence", "jira", "atlassian"],
46
+ "tags": [
47
+ "wiki",
48
+ "project-management",
49
+ "confluence",
50
+ "jira",
51
+ "atlassian"
52
+ ],
49
53
  "category": "productivity",
50
54
  "pricing": "byok",
51
- "maturity": "stable"
55
+ "maturity": "stable",
56
+ "subcategory": "project-management",
57
+ "origin": "community",
58
+ "countries": [
59
+ "global"
60
+ ],
61
+ "audience": "business",
62
+ "selfHosted": false,
63
+ "sideEffects": "read-write",
64
+ "authSummary": "api-key"
52
65
  },
53
-
54
66
  "capabilities": {
55
67
  "tools": true,
56
68
  "resources": false,
@@ -4,38 +4,52 @@
4
4
  "name": "Chrome DevTools",
5
5
  "description": "Control and inspect a live Chrome browser for automation, debugging, and performance analysis via the Chrome DevTools Protocol",
6
6
  "repository": "https://github.com/ChromeDevTools/chrome-devtools-mcp",
7
-
8
7
  "transports": [
9
8
  {
10
9
  "type": "stdio",
11
10
  "command": "npx",
12
- "args": ["-y", "chrome-devtools-mcp@0.20.0", "--autoConnect"],
11
+ "args": [
12
+ "-y",
13
+ "chrome-devtools-mcp@0.20.0",
14
+ "--autoConnect"
15
+ ],
13
16
  "env": {}
14
17
  }
15
18
  ],
16
-
17
19
  "auth": {
18
20
  "required": false,
19
21
  "type": "none",
20
22
  "envVars": [],
21
23
  "instructions": "Requires Chrome >= 144 with remote debugging enabled at chrome://inspect/#remote-debugging. Chrome will show a permission dialog on each connection."
22
24
  },
23
-
24
25
  "install": {
25
26
  "method": "npx",
26
27
  "package": "chrome-devtools-mcp",
27
28
  "version": "0.20.0"
28
29
  },
29
-
30
30
  "metadata": {
31
31
  "homepage": "https://github.com/ChromeDevTools/chrome-devtools-mcp",
32
32
  "author": "ChromeDevTools",
33
- "tags": ["browser", "debugging", "automation", "devtools", "chrome"],
33
+ "tags": [
34
+ "browser",
35
+ "debugging",
36
+ "automation",
37
+ "devtools",
38
+ "chrome"
39
+ ],
34
40
  "category": "development",
35
41
  "pricing": "free",
36
- "maturity": "stable"
42
+ "maturity": "stable",
43
+ "subcategory": "monitoring",
44
+ "origin": "community",
45
+ "countries": [
46
+ "global"
47
+ ],
48
+ "audience": "developer",
49
+ "selfHosted": true,
50
+ "sideEffects": "read-only",
51
+ "authSummary": "none"
37
52
  },
38
-
39
53
  "capabilities": {
40
54
  "tools": true,
41
55
  "resources": false,
@@ -4,7 +4,6 @@
4
4
  "name": "GitHub",
5
5
  "description": "GitHub repository management — repos, issues, PRs, code search, and more via the official GitHub MCP server",
6
6
  "repository": "https://github.com/github/github-mcp-server",
7
-
8
7
  "transports": [
9
8
  {
10
9
  "type": "stdio",
@@ -22,30 +21,43 @@
22
21
  }
23
22
  }
24
23
  ],
25
-
26
24
  "auth": {
27
25
  "required": true,
28
26
  "type": "api-key",
29
- "envVars": ["GITHUB_MCP_TOKEN"],
27
+ "envVars": [
28
+ "GITHUB_MCP_TOKEN"
29
+ ],
30
30
  "credentialsUrl": "https://github.com/settings/tokens",
31
31
  "instructions": "Create a Personal Access Token at GitHub Settings > Developer settings > Personal access tokens. Grant repo, issues, and pull_requests scopes."
32
32
  },
33
-
34
33
  "install": {
35
34
  "method": "docker",
36
35
  "image": "ghcr.io/github/github-mcp-server",
37
36
  "version": "latest"
38
37
  },
39
-
40
38
  "metadata": {
41
39
  "homepage": "https://github.com/github/github-mcp-server",
42
40
  "author": "GitHub",
43
- "tags": ["git", "repos", "issues", "pull-requests", "code-review"],
41
+ "tags": [
42
+ "git",
43
+ "repos",
44
+ "issues",
45
+ "pull-requests",
46
+ "code-review"
47
+ ],
44
48
  "category": "development",
45
49
  "pricing": "byok",
46
- "maturity": "stable"
50
+ "maturity": "stable",
51
+ "subcategory": "version-control",
52
+ "origin": "official",
53
+ "countries": [
54
+ "global"
55
+ ],
56
+ "audience": "developer",
57
+ "selfHosted": false,
58
+ "sideEffects": "read-write",
59
+ "authSummary": "api-key"
47
60
  },
48
-
49
61
  "capabilities": {
50
62
  "tools": true,
51
63
  "resources": false,
@@ -4,41 +4,56 @@
4
4
  "name": "Google Maps",
5
5
  "description": "Google Maps integration for places search, geocoding, directions, and distance matrix via the official MCP server",
6
6
  "repository": "https://github.com/modelcontextprotocol/servers",
7
-
8
7
  "transports": [
9
8
  {
10
9
  "type": "stdio",
11
10
  "command": "npx",
12
- "args": ["-y", "@modelcontextprotocol/server-google-maps"],
11
+ "args": [
12
+ "-y",
13
+ "@modelcontextprotocol/server-google-maps"
14
+ ],
13
15
  "env": {
14
16
  "GOOGLE_MAPS_API_KEY": "${GOOGLE_MAPS_API_KEY}"
15
17
  }
16
18
  }
17
19
  ],
18
-
19
20
  "auth": {
20
21
  "required": true,
21
22
  "type": "api-key",
22
- "envVars": ["GOOGLE_MAPS_API_KEY"],
23
+ "envVars": [
24
+ "GOOGLE_MAPS_API_KEY"
25
+ ],
23
26
  "credentialsUrl": "https://console.cloud.google.com/apis/credentials",
24
27
  "instructions": "Create an API key in Google Cloud Console and enable the Maps JavaScript API, Places API, Geocoding API, and Directions API."
25
28
  },
26
-
27
29
  "install": {
28
30
  "method": "npx",
29
31
  "package": "@modelcontextprotocol/server-google-maps",
30
32
  "version": "latest"
31
33
  },
32
-
33
34
  "metadata": {
34
35
  "homepage": "https://developers.google.com/maps",
35
36
  "author": "Anthropic / MCP Community",
36
- "tags": ["maps", "geocoding", "places", "directions", "navigation"],
37
- "category": "other",
37
+ "tags": [
38
+ "maps",
39
+ "geocoding",
40
+ "places",
41
+ "directions",
42
+ "navigation"
43
+ ],
44
+ "category": "data",
38
45
  "pricing": "byok",
39
- "maturity": "stable"
46
+ "maturity": "stable",
47
+ "subcategory": "search-engine",
48
+ "origin": "official",
49
+ "countries": [
50
+ "global"
51
+ ],
52
+ "audience": "general",
53
+ "selfHosted": false,
54
+ "sideEffects": "read-only",
55
+ "authSummary": "api-key"
40
56
  },
41
-
42
57
  "capabilities": {
43
58
  "tools": true,
44
59
  "resources": false,
@@ -4,42 +4,56 @@
4
4
  "name": "Hetzner Cloud",
5
5
  "description": "Manage Hetzner Cloud infrastructure — servers, networks, load balancers, volumes, firewalls, and more via the Hetzner Cloud API",
6
6
  "repository": "https://github.com/dkruyt/mcp-hetzner",
7
-
8
7
  "transports": [
9
8
  {
10
9
  "type": "stdio",
11
10
  "command": "node",
12
- "args": ["dist/index.js"],
11
+ "args": [
12
+ "dist/index.js"
13
+ ],
13
14
  "env": {
14
15
  "HCLOUD_TOKEN": "${HETZNER_API_TOKEN}"
15
16
  }
16
17
  }
17
18
  ],
18
-
19
19
  "auth": {
20
20
  "required": true,
21
21
  "type": "api-key",
22
- "envVars": ["HETZNER_API_TOKEN"],
22
+ "envVars": [
23
+ "HETZNER_API_TOKEN"
24
+ ],
23
25
  "credentialsUrl": "https://console.hetzner.cloud/",
24
26
  "instructions": "Create an API token in the Hetzner Cloud Console under your project > Security > API Tokens."
25
27
  },
26
-
27
28
  "install": {
28
29
  "method": "git",
29
30
  "repository": "https://github.com/dkruyt/mcp-hetzner",
30
31
  "buildCommand": "npm install && npm run build",
31
32
  "version": "latest"
32
33
  },
33
-
34
34
  "metadata": {
35
35
  "homepage": "https://www.hetzner.com/cloud",
36
36
  "author": "dkruyt",
37
- "tags": ["cloud", "infrastructure", "servers", "vps", "hetzner"],
37
+ "tags": [
38
+ "cloud",
39
+ "infrastructure",
40
+ "servers",
41
+ "vps",
42
+ "hetzner"
43
+ ],
38
44
  "category": "infrastructure",
39
45
  "pricing": "byok",
40
- "maturity": "stable"
46
+ "maturity": "stable",
47
+ "subcategory": "cloud",
48
+ "origin": "community",
49
+ "countries": [
50
+ "EU"
51
+ ],
52
+ "audience": "developer",
53
+ "selfHosted": false,
54
+ "sideEffects": "billing-impact",
55
+ "authSummary": "api-key"
41
56
  },
42
-
43
57
  "capabilities": {
44
58
  "tools": true,
45
59
  "resources": false,
@@ -3,41 +3,56 @@
3
3
  "id": "hostinger",
4
4
  "name": "Hostinger",
5
5
  "description": "Web hosting management via Hostinger API — manage domains, hosting plans, email accounts, and website settings",
6
-
7
6
  "transports": [
8
7
  {
9
8
  "type": "stdio",
10
9
  "command": "npx",
11
- "args": ["-y", "@anthropic-pb/hostinger-mcp-server"],
10
+ "args": [
11
+ "-y",
12
+ "@anthropic-pb/hostinger-mcp-server"
13
+ ],
12
14
  "env": {
13
15
  "HOSTINGER_API_TOKEN": "${HOSTINGER_API_TOKEN}"
14
16
  }
15
17
  }
16
18
  ],
17
-
18
19
  "auth": {
19
20
  "required": true,
20
21
  "type": "api-key",
21
- "envVars": ["HOSTINGER_API_TOKEN"],
22
+ "envVars": [
23
+ "HOSTINGER_API_TOKEN"
24
+ ],
22
25
  "credentialsUrl": "https://hpanel.hostinger.com/api",
23
26
  "instructions": "Generate an API token in the Hostinger hPanel under API section."
24
27
  },
25
-
26
28
  "install": {
27
29
  "method": "npx",
28
30
  "package": "@anthropic-pb/hostinger-mcp-server",
29
31
  "version": "latest"
30
32
  },
31
-
32
33
  "metadata": {
33
34
  "homepage": "https://www.hostinger.com/",
34
35
  "author": "Anthropic / Hostinger",
35
- "tags": ["hosting", "domains", "web-hosting", "email", "dns"],
36
+ "tags": [
37
+ "hosting",
38
+ "domains",
39
+ "web-hosting",
40
+ "email",
41
+ "dns"
42
+ ],
36
43
  "category": "infrastructure",
37
44
  "pricing": "byok",
38
- "maturity": "stable"
45
+ "maturity": "stable",
46
+ "subcategory": "cloud",
47
+ "origin": "community",
48
+ "countries": [
49
+ "global"
50
+ ],
51
+ "audience": "developer",
52
+ "selfHosted": false,
53
+ "sideEffects": "billing-impact",
54
+ "authSummary": "api-key"
39
55
  },
40
-
41
56
  "capabilities": {
42
57
  "tools": true,
43
58
  "resources": false,
@@ -0,0 +1,37 @@
1
+ # IMAP Email MCP Server
2
+
3
+ IMAP/SMTP email tools for any provider (list, read, search, move, flag, delete, send, reply, attachments).
4
+
5
+ ## Requirements
6
+ - Node.js + npx
7
+ - IMAP credentials
8
+ - SMTP credentials (optional, for sending)
9
+
10
+ ## Quick Install
11
+
12
+ ### Linux / macOS
13
+ ```bash
14
+ mcp-bridge install imap-email
15
+ ```
16
+
17
+ ### Windows (PowerShell)
18
+ ```powershell
19
+ mcp-bridge install imap-email
20
+ ```
21
+
22
+ ## Required Environment Variables
23
+ - `IMAP_HOST`
24
+ - `IMAP_PORT`
25
+ - `IMAP_USER`
26
+ - `IMAP_PASS`
27
+ - `SMTP_HOST`
28
+ - `SMTP_PORT`
29
+ - `SMTP_SEND_ENABLED`
30
+
31
+ Set `SMTP_SEND_ENABLED=true` to enable sending/replying via SMTP.
32
+
33
+ ## Remove
34
+
35
+ ```bash
36
+ ./install-server.sh imap-email --remove
37
+ ```
@@ -6,19 +6,36 @@
6
6
  "recipeVersion": "1.0.0",
7
7
  "metadata": {
8
8
  "category": "communication",
9
- "tags": ["email", "imap", "smtp", "inbox"],
9
+ "tags": [
10
+ "email",
11
+ "imap",
12
+ "smtp",
13
+ "inbox"
14
+ ],
10
15
  "country": "global",
11
16
  "language": "en",
12
17
  "homepage": "https://github.com/AIWerk/mcp-server-imap",
13
18
  "license": "MIT",
14
19
  "pricing": "free",
15
- "maturity": "beta"
20
+ "maturity": "beta",
21
+ "subcategory": "email",
22
+ "origin": "aiwerk",
23
+ "countries": [
24
+ "global"
25
+ ],
26
+ "audience": "general",
27
+ "selfHosted": true,
28
+ "sideEffects": "read-write",
29
+ "authSummary": "api-key"
16
30
  },
17
31
  "transports": [
18
32
  {
19
33
  "type": "stdio",
20
34
  "command": "npx",
21
- "args": ["-y", "@aiwerk/mcp-server-imap"],
35
+ "args": [
36
+ "-y",
37
+ "@aiwerk/mcp-server-imap"
38
+ ],
22
39
  "env": {
23
40
  "IMAP_HOST": "${IMAP_HOST}",
24
41
  "IMAP_PORT": "${IMAP_PORT}",
@@ -33,13 +50,37 @@
33
50
  "auth": {
34
51
  "required": true,
35
52
  "type": "api-key",
36
- "envVars": ["IMAP_HOST", "IMAP_USER", "IMAP_PASS"],
37
- "instructions": "Set your IMAP server hostname, username (email), and password. For Gmail use an App Password. Set SMTP_SEND_ENABLED=true to enable email sending.",
53
+ "envVars": [
54
+ "IMAP_HOST",
55
+ "IMAP_PORT",
56
+ "IMAP_USER",
57
+ "IMAP_PASS",
58
+ "SMTP_HOST",
59
+ "SMTP_PORT",
60
+ "SMTP_SEND_ENABLED"
61
+ ],
62
+ "instructions": "Set your IMAP server hostname, port, username (email), and password. For Gmail use an App Password. Set SMTP_SEND_ENABLED=true to enable email sending.",
38
63
  "bootstrap": "env-only"
39
64
  },
65
+ "install": {
66
+ "method": "npx",
67
+ "package": "@aiwerk/mcp-server-imap",
68
+ "version": "latest"
69
+ },
40
70
  "capabilities": {
41
71
  "toolCount": 10,
42
- "toolNames": ["email_list", "email_read", "email_search", "email_folders", "email_move", "email_flag", "email_delete", "email_send", "email_reply", "email_attachment"],
72
+ "toolNames": [
73
+ "email_list",
74
+ "email_read",
75
+ "email_search",
76
+ "email_folders",
77
+ "email_move",
78
+ "email_flag",
79
+ "email_delete",
80
+ "email_send",
81
+ "email_reply",
82
+ "email_attachment"
83
+ ],
43
84
  "sideEffects": "external-write"
44
85
  }
45
86
  }