@openhands/extensions 0.5.0 → 0.6.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 (132) hide show
  1. package/.github/workflows/pypi-publish.yml +104 -0
  2. package/.github/workflows/tests.yml +6 -0
  3. package/.release-please-manifest.json +1 -1
  4. package/AGENTS.md +1 -1
  5. package/README.md +31 -3
  6. package/integrations/README.md +17 -7
  7. package/integrations/catalog/airtable.json +40 -10
  8. package/integrations/catalog/apify.json +0 -2
  9. package/integrations/catalog/asana.json +38 -0
  10. package/integrations/catalog/atlassian.json +5 -8
  11. package/integrations/catalog/bitbucket.json +39 -0
  12. package/integrations/catalog/box.json +39 -0
  13. package/integrations/catalog/brave-search.json +1 -2
  14. package/integrations/catalog/browser-mcp.json +0 -3
  15. package/integrations/catalog/canva.json +35 -0
  16. package/integrations/catalog/clickhouse.json +1 -2
  17. package/integrations/catalog/clickup.json +36 -0
  18. package/integrations/catalog/cloudflare-bindings.json +5 -8
  19. package/integrations/catalog/cloudflare-browser-rendering.json +5 -8
  20. package/integrations/catalog/cloudflare-builds.json +6 -9
  21. package/integrations/catalog/cloudflare-docs.json +4 -7
  22. package/integrations/catalog/cloudflare-observability.json +5 -8
  23. package/integrations/catalog/confluence.json +38 -0
  24. package/integrations/catalog/datadog.json +34 -0
  25. package/integrations/catalog/deepwiki.json +3 -7
  26. package/integrations/catalog/discord.json +39 -0
  27. package/integrations/catalog/dropbox.json +38 -0
  28. package/integrations/catalog/elevenlabs.json +27 -28
  29. package/integrations/catalog/everything.json +0 -2
  30. package/integrations/catalog/exa.json +0 -2
  31. package/integrations/catalog/fetch.json +0 -2
  32. package/integrations/catalog/figma.json +41 -9
  33. package/integrations/catalog/filesystem.json +0 -3
  34. package/integrations/catalog/firecrawl.json +0 -2
  35. package/integrations/catalog/freshdesk.json +38 -0
  36. package/integrations/catalog/git.json +0 -3
  37. package/integrations/catalog/github.json +43 -10
  38. package/integrations/catalog/gitlab.json +38 -0
  39. package/integrations/catalog/gmail.json +38 -0
  40. package/integrations/catalog/google-calendar.json +38 -0
  41. package/integrations/catalog/google-docs.json +38 -0
  42. package/integrations/catalog/google-drive.json +38 -0
  43. package/integrations/catalog/google-sheets.json +38 -0
  44. package/integrations/catalog/hubspot.json +34 -0
  45. package/integrations/catalog/huggingface.json +1 -2
  46. package/integrations/catalog/intercom.json +39 -0
  47. package/integrations/catalog/jira.json +38 -0
  48. package/integrations/catalog/kagi.json +2 -3
  49. package/integrations/catalog/linear.json +47 -16
  50. package/integrations/catalog/mailchimp.json +38 -0
  51. package/integrations/catalog/memory.json +0 -2
  52. package/integrations/catalog/microsoft-outlook.json +38 -0
  53. package/integrations/catalog/microsoft-teams.json +38 -0
  54. package/integrations/catalog/miro.json +38 -0
  55. package/integrations/catalog/monday.json +38 -0
  56. package/integrations/catalog/mongodb.json +1 -2
  57. package/integrations/catalog/neon.json +0 -2
  58. package/integrations/catalog/netlify.json +38 -0
  59. package/integrations/catalog/notion.json +37 -10
  60. package/integrations/catalog/obsidian.json +1 -3
  61. package/integrations/catalog/okta.json +38 -0
  62. package/integrations/catalog/onedrive.json +38 -0
  63. package/integrations/catalog/ordinal.json +33 -0
  64. package/integrations/catalog/paypal.json +5 -8
  65. package/integrations/catalog/pipedrive.json +39 -0
  66. package/integrations/catalog/plaid.json +31 -0
  67. package/integrations/catalog/playwright.json +0 -2
  68. package/integrations/catalog/posthog.json +38 -0
  69. package/integrations/catalog/quickbooks.json +38 -0
  70. package/integrations/catalog/redis.json +1 -3
  71. package/integrations/catalog/resend.json +1 -2
  72. package/integrations/catalog/salesforce.json +38 -0
  73. package/integrations/catalog/sentry.json +52 -14
  74. package/integrations/catalog/sequential-thinking.json +0 -2
  75. package/integrations/catalog/servicenow.json +39 -0
  76. package/integrations/catalog/sharepoint.json +38 -0
  77. package/integrations/catalog/shopify.json +38 -0
  78. package/integrations/catalog/slack.json +49 -10
  79. package/integrations/catalog/stripe.json +44 -14
  80. package/integrations/catalog/supabase.json +36 -9
  81. package/integrations/catalog/tavily.json +0 -2
  82. package/integrations/catalog/time.json +0 -2
  83. package/integrations/catalog/trello.json +31 -0
  84. package/integrations/catalog/vercel.json +38 -0
  85. package/integrations/catalog/webflow.json +34 -0
  86. package/integrations/catalog/xero.json +38 -0
  87. package/integrations/catalog/zendesk.json +38 -0
  88. package/integrations/catalog/zoom.json +38 -0
  89. package/integrations/catalog-index.js +171 -0
  90. package/integrations/index.d.ts +24 -60
  91. package/integrations/index.js +29 -207
  92. package/marketplaces/openhands-extensions.json +14 -1
  93. package/package.json +4 -7
  94. package/plugins/cobol-modernization/README.md +3 -3
  95. package/plugins/cobol-modernization/skills/{cobol-modernization-overview → cobol-modernization}/SKILL.md +1 -1
  96. package/plugins/magic-test/skills/magic-word/SKILL.md +1 -0
  97. package/plugins/migration-scoring/README.md +1 -1
  98. package/pyproject.toml +17 -3
  99. package/python/openhands_extensions/__init__.py +24 -0
  100. package/python/openhands_extensions/_version.py +24 -0
  101. package/python/openhands_extensions/integrations.py +92 -0
  102. package/release-please-config.json +2 -1
  103. package/scripts/build-integration-catalog.mjs +45 -0
  104. package/skills/agent-canvas-environment/.plugin/plugin.json +19 -0
  105. package/skills/agent-canvas-environment/README.md +5 -0
  106. package/skills/agent-canvas-environment/SKILL.md +141 -0
  107. package/skills/github-pr-reviewer/references/state-schema.md +18 -4
  108. package/skills/github-pr-reviewer/scripts/main.py +66 -12
  109. package/skills/github-repo-monitor/references/state-schema.md +11 -4
  110. package/skills/github-repo-monitor/scripts/main.py +67 -19
  111. package/skills/github-repo-monitor/tests/test_main.py +67 -8
  112. package/skills/index.js +19 -5
  113. package/skills/openhands-api/README.md +5 -1
  114. package/skills/openhands-api/SKILL.md +74 -5
  115. package/skills/openhands-automation/SKILL.md +3 -1
  116. package/skills/openhands-automation/references/custom-automation.md +166 -0
  117. package/skills/openhands-sdk/SKILL.md +8 -2
  118. package/skills/slack-channel-monitor/README.md +3 -3
  119. package/skills/slack-channel-monitor/SKILL.md +3 -2
  120. package/skills/slack-channel-monitor/references/state-schema.md +11 -4
  121. package/skills/slack-channel-monitor/scripts/main.py +111 -41
  122. package/tests/test_catalogs.py +21 -3
  123. package/tests/test_integration_catalog_in_sync.py +204 -0
  124. package/tests/test_slack_channel_monitor.py +142 -0
  125. package/tests/test_version_alignment.py +64 -0
  126. package/integrations/logos.d.ts +0 -5
  127. package/integrations/logos.js +0 -94
  128. package/integrations/oauth-provider-catalog.js +0 -553
  129. package/integrations/oauth-provider-registration-defaults.js +0 -610
  130. /package/plugins/cobol-modernization/skills/{mainfraime-removal → mainframe-removal}/SKILL.md +0 -0
  131. /package/plugins/cobol-modernization/skills/{mainfraime-removal → mainframe-removal}/references/cics-transformation-examples.md +0 -0
  132. /package/plugins/migration-scoring/skills/{migration-scoring-overview → migration-scoring}/SKILL.md +0 -0
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "id": "cloudflare-builds",
3
3
  "name": "Cloudflare Builds",
4
- "description": "Inspect Workers Builds — logs, statuses, and rerun failed deploys.",
4
+ "description": "Inspect Workers Builds \u2014 logs, statuses, and rerun failed deploys.",
5
5
  "docsUrl": "https://developers.cloudflare.com/agents/model-context-protocol/",
6
6
  "iconBg": "#F38020",
7
+ "logoUrl": "https://cdn.simpleicons.org/cloudflare/FFFFFF",
7
8
  "keywords": [
8
9
  "cloudflare",
9
10
  "workers",
@@ -11,20 +12,16 @@
11
12
  "builds",
12
13
  "deploys"
13
14
  ],
14
- "kind": "mcp",
15
- "defaultConnectionOptionId": "none",
16
15
  "connectionOptions": [
17
16
  {
18
- "id": "none",
17
+ "id": "oauth",
19
18
  "provider": "mcp",
20
19
  "transport": {
21
- "kind": "sse",
22
- "url": "https://builds.mcp.cloudflare.com/sse",
23
- "apiKeyOptional": true
20
+ "kind": "shttp",
21
+ "url": "https://builds.mcp.cloudflare.com/mcp"
24
22
  },
25
23
  "auth": {
26
- "strategy": "none",
27
- "apiKeyOptional": true
24
+ "strategy": "oauth2"
28
25
  }
29
26
  }
30
27
  ]
@@ -4,26 +4,23 @@
4
4
  "description": "Search and reference Cloudflare's developer documentation directly from the agent.",
5
5
  "docsUrl": "https://developers.cloudflare.com/agents/model-context-protocol/",
6
6
  "iconBg": "#F38020",
7
+ "logoUrl": "https://cdn.simpleicons.org/cloudflare/FFFFFF",
7
8
  "keywords": [
8
9
  "cloudflare",
9
10
  "docs",
10
11
  "reference",
11
12
  "workers"
12
13
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "none",
15
14
  "connectionOptions": [
16
15
  {
17
16
  "id": "none",
18
17
  "provider": "mcp",
19
18
  "transport": {
20
- "kind": "sse",
21
- "url": "https://docs.mcp.cloudflare.com/sse",
22
- "apiKeyOptional": true
19
+ "kind": "shttp",
20
+ "url": "https://docs.mcp.cloudflare.com/mcp"
23
21
  },
24
22
  "auth": {
25
- "strategy": "none",
26
- "apiKeyOptional": true
23
+ "strategy": "none"
27
24
  }
28
25
  }
29
26
  ]
@@ -4,6 +4,7 @@
4
4
  "description": "Tail Workers logs and query observability data from your Cloudflare account.",
5
5
  "docsUrl": "https://developers.cloudflare.com/agents/model-context-protocol/",
6
6
  "iconBg": "#F38020",
7
+ "logoUrl": "https://cdn.simpleicons.org/cloudflare/FFFFFF",
7
8
  "keywords": [
8
9
  "cloudflare",
9
10
  "logs",
@@ -11,20 +12,16 @@
11
12
  "observability",
12
13
  "workers"
13
14
  ],
14
- "kind": "mcp",
15
- "defaultConnectionOptionId": "none",
16
15
  "connectionOptions": [
17
16
  {
18
- "id": "none",
17
+ "id": "oauth",
19
18
  "provider": "mcp",
20
19
  "transport": {
21
- "kind": "sse",
22
- "url": "https://observability.mcp.cloudflare.com/sse",
23
- "apiKeyOptional": true
20
+ "kind": "shttp",
21
+ "url": "https://observability.mcp.cloudflare.com/mcp"
24
22
  },
25
23
  "auth": {
26
- "strategy": "none",
27
- "apiKeyOptional": true
24
+ "strategy": "oauth2"
28
25
  }
29
26
  }
30
27
  ]
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "confluence",
3
+ "name": "Confluence",
4
+ "description": "Wiki pages, spaces, and internal documentation search.",
5
+ "categories": [
6
+ "Documentation",
7
+ "Knowledge base"
8
+ ],
9
+ "appUrl": "https://www.atlassian.com/software/confluence",
10
+ "docsUrl": "https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/",
11
+ "notes": "Natural companion to Jira for software teams.",
12
+ "popularityRank": 11,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://auth.atlassian.com/authorize",
21
+ "tokenUrl": "https://auth.atlassian.com/oauth/token",
22
+ "scopes": [
23
+ "read:page:confluence"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://api.atlassian.com/ex/confluence/{cloudId}",
29
+ "defaultTool": {
30
+ "name": "list_spaces",
31
+ "description": "List Confluence spaces available to the connected user.",
32
+ "method": "GET",
33
+ "path": "/wiki/api/v2/spaces"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "id": "datadog",
3
+ "name": "Datadog",
4
+ "description": "Logs, metrics, monitors, incidents, and observability workflows.",
5
+ "categories": [
6
+ "Observability",
7
+ "Operations"
8
+ ],
9
+ "appUrl": "https://www.datadoghq.com",
10
+ "docsUrl": "https://docs.datadoghq.com/bits_ai/mcp_server/setup/",
11
+ "notes": "Uses Datadog's official hosted MCP server. The default registration targets the US1 endpoint and can be edited for other Datadog sites.",
12
+ "popularityRank": 35,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "mcp",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://app.datadoghq.com/oauth2/v1/authorize",
21
+ "tokenUrl": "https://api.datadoghq.com/oauth2/v1/token",
22
+ "scopes": [
23
+ "dashboards_read",
24
+ "monitors_read"
25
+ ]
26
+ }
27
+ },
28
+ "transport": {
29
+ "kind": "shttp",
30
+ "url": "https://mcp.datadoghq.com/api/unstable/mcp-server/mcp"
31
+ }
32
+ }
33
+ ]
34
+ }
@@ -12,20 +12,16 @@
12
12
  "docs",
13
13
  "qa"
14
14
  ],
15
- "kind": "mcp",
16
- "defaultConnectionOptionId": "none",
17
15
  "connectionOptions": [
18
16
  {
19
17
  "id": "none",
20
18
  "provider": "mcp",
21
19
  "transport": {
22
- "kind": "sse",
23
- "url": "https://mcp.deepwiki.com/sse",
24
- "apiKeyOptional": true
20
+ "kind": "shttp",
21
+ "url": "https://mcp.deepwiki.com/mcp"
25
22
  },
26
23
  "auth": {
27
- "strategy": "none",
28
- "apiKeyOptional": true
24
+ "strategy": "none"
29
25
  }
30
26
  }
31
27
  ]
@@ -0,0 +1,39 @@
1
+ {
2
+ "id": "discord",
3
+ "name": "Discord",
4
+ "description": "Guilds, channels, messages, and community operations.",
5
+ "categories": [
6
+ "Communication",
7
+ "Community"
8
+ ],
9
+ "appUrl": "https://discord.com",
10
+ "docsUrl": "https://discord.com/developers/docs/topics/oauth2",
11
+ "notes": "Useful for community automation and bot-assisted workflows.",
12
+ "popularityRank": 30,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://discord.com/oauth2/authorize",
21
+ "tokenUrl": "https://discord.com/api/oauth2/token",
22
+ "scopes": [
23
+ "identify",
24
+ "guilds"
25
+ ]
26
+ }
27
+ },
28
+ "http": {
29
+ "apiBaseUrl": "https://discord.com/api/v10",
30
+ "defaultTool": {
31
+ "name": "list_guilds",
32
+ "description": "List Discord guilds available to the connected user.",
33
+ "method": "GET",
34
+ "path": "/users/@me/guilds"
35
+ }
36
+ }
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "dropbox",
3
+ "name": "Dropbox",
4
+ "description": "Cloud files, folders, content access, and sharing.",
5
+ "categories": [
6
+ "Storage",
7
+ "Documents"
8
+ ],
9
+ "appUrl": "https://www.dropbox.com",
10
+ "docsUrl": "https://developers.dropbox.com/oauth-guide",
11
+ "notes": "Popular file automation target with mature OAuth support.",
12
+ "popularityRank": 18,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://www.dropbox.com/oauth2/authorize",
21
+ "tokenUrl": "https://api.dropboxapi.com/oauth2/token",
22
+ "scopes": [
23
+ "files.metadata.read"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://api.dropboxapi.com/2",
29
+ "defaultTool": {
30
+ "name": "list_root_folder",
31
+ "description": "List entries in the root Dropbox folder.",
32
+ "method": "POST",
33
+ "path": "/files/list_folder"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -2,41 +2,40 @@
2
2
  "id": "elevenlabs",
3
3
  "name": "ElevenLabs",
4
4
  "description": "Generate speech, clone voices, and transcribe audio via ElevenLabs.",
5
- "docsUrl": "https://elevenlabs.io/docs/api-reference/mcp",
6
- "iconBg": "var(--oh-color-base)",
7
- "keywords": [
8
- "tts",
9
- "speech",
10
- "voice",
11
- "audio"
5
+ "categories": [
6
+ "Audio",
7
+ "AI"
12
8
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "api",
9
+ "appUrl": "https://elevenlabs.io",
10
+ "docsUrl": "https://elevenlabs.io/docs/api-reference/mcp",
11
+ "notes": "Official API-key connector backed by ElevenLabs' published OpenAPI spec.",
12
+ "popularityRank": 51,
15
13
  "connectionOptions": [
16
14
  {
17
15
  "id": "api",
18
- "provider": "mcp",
19
- "transport": {
20
- "kind": "stdio",
21
- "serverName": "elevenlabs",
22
- "command": "uvx",
23
- "args": [
24
- "elevenlabs-mcp"
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "api_key",
19
+ "authModes": [
20
+ "api_key"
25
21
  ],
26
- "envFields": [
27
- {
28
- "key": "ELEVENLABS_API_KEY",
29
- "label": "ElevenLabs API key",
30
- "type": "password",
31
- "required": true,
32
- "helperText": "API key from your ElevenLabs account settings.",
33
- "helperLink": "https://elevenlabs.io/app/settings/api-keys"
34
- }
35
- ]
22
+ "credentialLabel": "ElevenLabs API key",
23
+ "credentialPlaceholder": "Paste your ElevenLabs API key",
24
+ "credentialHelp": "Personal or workspace ElevenLabs API key sent in the xi-api-key header.",
25
+ "apiKeyHeaderName": "xi-api-key"
36
26
  },
37
- "auth": {
38
- "strategy": "api_key"
27
+ "http": {
28
+ "apiBaseUrl": "https://api.elevenlabs.io",
29
+ "openApiUrl": "https://api.elevenlabs.io/openapi.json"
39
30
  }
40
31
  }
32
+ ],
33
+ "iconBg": "var(--oh-color-base)",
34
+ "logoUrl": "https://cdn.simpleicons.org/elevenlabs/FFFFFF",
35
+ "keywords": [
36
+ "tts",
37
+ "speech",
38
+ "voice",
39
+ "audio"
41
40
  ]
42
41
  }
@@ -9,8 +9,6 @@
9
9
  "test",
10
10
  "reference"
11
11
  ],
12
- "kind": "mcp",
13
- "defaultConnectionOptionId": "none",
14
12
  "connectionOptions": [
15
13
  {
16
14
  "id": "none",
@@ -10,8 +10,6 @@
10
10
  "research",
11
11
  "neural"
12
12
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "api",
15
13
  "connectionOptions": [
16
14
  {
17
15
  "id": "api",
@@ -10,8 +10,6 @@
10
10
  "url",
11
11
  "scrape"
12
12
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "none",
15
13
  "connectionOptions": [
16
14
  {
17
15
  "id": "none",
@@ -2,17 +2,41 @@
2
2
  "id": "figma",
3
3
  "name": "Figma",
4
4
  "description": "Read Figma frames, components, and styles to ground UI work in your designs.",
5
- "docsUrl": "https://github.com/GLips/Figma-Context-MCP",
6
- "iconBg": "var(--oh-surface)",
7
- "keywords": [
8
- "design",
9
- "ui",
10
- "frames",
11
- "components"
5
+ "categories": [
6
+ "Design",
7
+ "Frontend"
12
8
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "api",
9
+ "appUrl": "https://www.figma.com",
10
+ "docsUrl": "https://github.com/GLips/Figma-Context-MCP",
11
+ "notes": "",
12
+ "popularityRank": 5,
15
13
  "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://www.figma.com/oauth",
21
+ "tokenUrl": "https://api.figma.com/v1/oauth/token",
22
+ "scopes": [
23
+ "current_user:read",
24
+ "file_content:read",
25
+ "file_metadata:read",
26
+ "projects:read"
27
+ ]
28
+ }
29
+ },
30
+ "http": {
31
+ "apiBaseUrl": "https://api.figma.com",
32
+ "defaultTool": {
33
+ "name": "get_file",
34
+ "description": "Fetch a Figma file by key.",
35
+ "method": "GET",
36
+ "path": "/v1/files/{fileKey}"
37
+ }
38
+ }
39
+ },
16
40
  {
17
41
  "id": "api",
18
42
  "provider": "mcp",
@@ -40,5 +64,13 @@
40
64
  "strategy": "api_key"
41
65
  }
42
66
  }
67
+ ],
68
+ "iconBg": "var(--oh-surface)",
69
+ "logoUrl": "https://cdn.simpleicons.org/figma/FFFFFF",
70
+ "keywords": [
71
+ "design",
72
+ "ui",
73
+ "frames",
74
+ "components"
43
75
  ]
44
76
  }
@@ -10,9 +10,6 @@
10
10
  "disk"
11
11
  ],
12
12
  "installHint": "Each path is exposed read/write. Add as many as you need, separated by spaces.",
13
- "kind": "mcp",
14
- "runtimeAvailability": "local",
15
- "defaultConnectionOptionId": "api",
16
13
  "connectionOptions": [
17
14
  {
18
15
  "id": "api",
@@ -10,8 +10,6 @@
10
10
  "web",
11
11
  "markdown"
12
12
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "api",
15
13
  "connectionOptions": [
16
14
  {
17
15
  "id": "api",
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "freshdesk",
3
+ "name": "Freshdesk",
4
+ "description": "Support tickets, customer records, and help desk workflows.",
5
+ "categories": [
6
+ "Support",
7
+ "Operations"
8
+ ],
9
+ "appUrl": "https://www.freshworks.com/freshdesk/",
10
+ "docsUrl": "https://developers.freshdesk.com/api/#authentication",
11
+ "notes": "Popular support platform for SMB and mid-market teams.",
12
+ "popularityRank": 44,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://{domain}.freshdesk.com/oauth/authorize",
21
+ "tokenUrl": "https://{domain}.freshdesk.com/oauth/token",
22
+ "scopes": [
23
+ "tickets_view"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://{domain}.freshdesk.com/api/v2",
29
+ "defaultTool": {
30
+ "name": "list_tickets",
31
+ "description": "List Freshdesk tickets for the connected account.",
32
+ "method": "GET",
33
+ "path": "/tickets"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -11,9 +11,6 @@
11
11
  "blame"
12
12
  ],
13
13
  "installHint": "Runs the official Python server via uvx — no setup beyond the path.",
14
- "kind": "mcp",
15
- "runtimeAvailability": "local",
16
- "defaultConnectionOptionId": "api",
17
14
  "connectionOptions": [
18
15
  {
19
16
  "id": "api",
@@ -2,19 +2,43 @@
2
2
  "id": "github",
3
3
  "name": "GitHub",
4
4
  "description": "Search code, manage issues and pull requests, and inspect repos via the GitHub API.",
5
- "docsUrl": "https://github.com/github/github-mcp-server",
6
- "iconBg": "var(--oh-surface)",
7
- "keywords": [
8
- "git",
9
- "pr",
10
- "repo",
11
- "issues",
12
- "code"
5
+ "categories": [
6
+ "Engineering",
7
+ "Source control"
13
8
  ],
9
+ "appUrl": "https://github.com",
10
+ "docsUrl": "https://github.com/github/github-mcp-server",
11
+ "notes": "Current managed connector works with bearer tokens today; GitHub OAuth is a strong candidate for a future one-click connect flow.",
14
12
  "popularityRank": 100,
15
- "kind": "mcp",
16
- "defaultConnectionOptionId": "api",
17
13
  "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "mcp",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://github.com/login/oauth/authorize",
21
+ "tokenUrl": "https://github.com/login/oauth/access_token",
22
+ "scopes": [
23
+ "read:user",
24
+ "repo"
25
+ ]
26
+ }
27
+ },
28
+ "transport": {
29
+ "kind": "shttp",
30
+ "url": "https://api.githubcopilot.com/mcp/"
31
+ },
32
+ "http": {
33
+ "apiBaseUrl": "https://api.github.com",
34
+ "defaultTool": {
35
+ "name": "get_authenticated_user",
36
+ "description": "Fetch the authenticated GitHub user profile.",
37
+ "method": "GET",
38
+ "path": "/user"
39
+ }
40
+ }
41
+ },
18
42
  {
19
43
  "id": "api",
20
44
  "provider": "mcp",
@@ -31,5 +55,14 @@
31
55
  "saveCredentialAsSecretByDefault": true
32
56
  }
33
57
  }
58
+ ],
59
+ "iconBg": "var(--oh-surface)",
60
+ "logoUrl": "https://cdn.simpleicons.org/github/FFFFFF",
61
+ "keywords": [
62
+ "git",
63
+ "pr",
64
+ "repo",
65
+ "issues",
66
+ "code"
34
67
  ]
35
68
  }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "gitlab",
3
+ "name": "GitLab",
4
+ "description": "Repositories, issues, merge requests, pipelines, and DevSecOps.",
5
+ "categories": [
6
+ "Engineering",
7
+ "Source control"
8
+ ],
9
+ "appUrl": "https://about.gitlab.com",
10
+ "docsUrl": "https://docs.gitlab.com/integration/oauth_provider/",
11
+ "notes": "Major Git hosting platform and natural expansion beyond GitHub.",
12
+ "popularityRank": 49,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://gitlab.com/oauth/authorize",
21
+ "tokenUrl": "https://gitlab.com/oauth/token",
22
+ "scopes": [
23
+ "read_api"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://gitlab.com/api/v4",
29
+ "defaultTool": {
30
+ "name": "get_current_user",
31
+ "description": "Fetch the authenticated GitLab user profile.",
32
+ "method": "GET",
33
+ "path": "/user"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "gmail",
3
+ "name": "Gmail",
4
+ "description": "Mailbox search, drafting, sending, and thread triage.",
5
+ "categories": [
6
+ "Communication",
7
+ "Email"
8
+ ],
9
+ "appUrl": "https://workspace.google.com/products/gmail/",
10
+ "docsUrl": "https://developers.google.com/identity/protocols/oauth2",
11
+ "notes": "Popular agent workflow target for inbox triage and drafting.",
12
+ "popularityRank": 8,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth",
21
+ "tokenUrl": "https://oauth2.googleapis.com/token",
22
+ "scopes": [
23
+ "https://www.googleapis.com/auth/gmail.readonly"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://gmail.googleapis.com",
29
+ "defaultTool": {
30
+ "name": "list_messages",
31
+ "description": "List Gmail messages for the authenticated user.",
32
+ "method": "GET",
33
+ "path": "/gmail/v1/users/me/messages"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }