@openhands/extensions 0.4.2 → 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 (134) 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/automations/catalog/slack-channel-monitor.json +2 -2
  7. package/integrations/README.md +17 -7
  8. package/integrations/catalog/airtable.json +40 -10
  9. package/integrations/catalog/apify.json +0 -2
  10. package/integrations/catalog/asana.json +38 -0
  11. package/integrations/catalog/atlassian.json +5 -8
  12. package/integrations/catalog/bitbucket.json +39 -0
  13. package/integrations/catalog/box.json +39 -0
  14. package/integrations/catalog/brave-search.json +1 -2
  15. package/integrations/catalog/browser-mcp.json +0 -3
  16. package/integrations/catalog/canva.json +35 -0
  17. package/integrations/catalog/clickhouse.json +1 -2
  18. package/integrations/catalog/clickup.json +36 -0
  19. package/integrations/catalog/cloudflare-bindings.json +5 -8
  20. package/integrations/catalog/cloudflare-browser-rendering.json +5 -8
  21. package/integrations/catalog/cloudflare-builds.json +6 -9
  22. package/integrations/catalog/cloudflare-docs.json +4 -7
  23. package/integrations/catalog/cloudflare-observability.json +5 -8
  24. package/integrations/catalog/confluence.json +38 -0
  25. package/integrations/catalog/datadog.json +34 -0
  26. package/integrations/catalog/deepwiki.json +3 -7
  27. package/integrations/catalog/discord.json +39 -0
  28. package/integrations/catalog/dropbox.json +38 -0
  29. package/integrations/catalog/elevenlabs.json +27 -28
  30. package/integrations/catalog/everything.json +0 -2
  31. package/integrations/catalog/exa.json +0 -2
  32. package/integrations/catalog/fetch.json +0 -2
  33. package/integrations/catalog/figma.json +41 -9
  34. package/integrations/catalog/filesystem.json +0 -3
  35. package/integrations/catalog/firecrawl.json +0 -2
  36. package/integrations/catalog/freshdesk.json +38 -0
  37. package/integrations/catalog/git.json +0 -3
  38. package/integrations/catalog/github.json +51 -34
  39. package/integrations/catalog/gitlab.json +38 -0
  40. package/integrations/catalog/gmail.json +38 -0
  41. package/integrations/catalog/google-calendar.json +38 -0
  42. package/integrations/catalog/google-docs.json +38 -0
  43. package/integrations/catalog/google-drive.json +38 -0
  44. package/integrations/catalog/google-sheets.json +38 -0
  45. package/integrations/catalog/hubspot.json +34 -0
  46. package/integrations/catalog/huggingface.json +1 -2
  47. package/integrations/catalog/intercom.json +39 -0
  48. package/integrations/catalog/jira.json +38 -0
  49. package/integrations/catalog/kagi.json +2 -3
  50. package/integrations/catalog/linear.json +47 -16
  51. package/integrations/catalog/mailchimp.json +38 -0
  52. package/integrations/catalog/memory.json +0 -2
  53. package/integrations/catalog/microsoft-outlook.json +38 -0
  54. package/integrations/catalog/microsoft-teams.json +38 -0
  55. package/integrations/catalog/miro.json +38 -0
  56. package/integrations/catalog/monday.json +38 -0
  57. package/integrations/catalog/mongodb.json +1 -2
  58. package/integrations/catalog/neon.json +0 -2
  59. package/integrations/catalog/netlify.json +38 -0
  60. package/integrations/catalog/notion.json +37 -10
  61. package/integrations/catalog/obsidian.json +1 -3
  62. package/integrations/catalog/okta.json +38 -0
  63. package/integrations/catalog/onedrive.json +38 -0
  64. package/integrations/catalog/ordinal.json +33 -0
  65. package/integrations/catalog/paypal.json +5 -8
  66. package/integrations/catalog/pipedrive.json +39 -0
  67. package/integrations/catalog/plaid.json +31 -0
  68. package/integrations/catalog/playwright.json +0 -2
  69. package/integrations/catalog/posthog.json +38 -0
  70. package/integrations/catalog/quickbooks.json +38 -0
  71. package/integrations/catalog/redis.json +1 -3
  72. package/integrations/catalog/resend.json +1 -2
  73. package/integrations/catalog/salesforce.json +38 -0
  74. package/integrations/catalog/sentry.json +52 -14
  75. package/integrations/catalog/sequential-thinking.json +0 -2
  76. package/integrations/catalog/servicenow.json +39 -0
  77. package/integrations/catalog/sharepoint.json +38 -0
  78. package/integrations/catalog/shopify.json +38 -0
  79. package/integrations/catalog/slack.json +49 -10
  80. package/integrations/catalog/stripe.json +44 -14
  81. package/integrations/catalog/supabase.json +36 -9
  82. package/integrations/catalog/tavily.json +0 -2
  83. package/integrations/catalog/time.json +0 -2
  84. package/integrations/catalog/trello.json +31 -0
  85. package/integrations/catalog/vercel.json +38 -0
  86. package/integrations/catalog/webflow.json +34 -0
  87. package/integrations/catalog/xero.json +38 -0
  88. package/integrations/catalog/zendesk.json +38 -0
  89. package/integrations/catalog/zoom.json +38 -0
  90. package/integrations/catalog-index.js +171 -0
  91. package/integrations/index.d.ts +26 -60
  92. package/integrations/index.js +29 -207
  93. package/marketplaces/openhands-extensions.json +14 -1
  94. package/package.json +4 -7
  95. package/plugins/cobol-modernization/README.md +3 -3
  96. package/plugins/cobol-modernization/skills/{cobol-modernization-overview → cobol-modernization}/SKILL.md +1 -1
  97. package/plugins/magic-test/skills/magic-word/SKILL.md +1 -0
  98. package/plugins/migration-scoring/README.md +1 -1
  99. package/pyproject.toml +17 -3
  100. package/python/openhands_extensions/__init__.py +24 -0
  101. package/python/openhands_extensions/_version.py +24 -0
  102. package/python/openhands_extensions/integrations.py +92 -0
  103. package/release-please-config.json +2 -1
  104. package/scripts/build-integration-catalog.mjs +45 -0
  105. package/skills/agent-canvas-environment/.plugin/plugin.json +19 -0
  106. package/skills/agent-canvas-environment/README.md +5 -0
  107. package/skills/agent-canvas-environment/SKILL.md +141 -0
  108. package/skills/github-pr-reviewer/references/state-schema.md +18 -4
  109. package/skills/github-pr-reviewer/scripts/main.py +66 -12
  110. package/skills/github-repo-monitor/references/state-schema.md +11 -4
  111. package/skills/github-repo-monitor/scripts/main.py +67 -19
  112. package/skills/github-repo-monitor/tests/test_main.py +67 -8
  113. package/skills/index.js +19 -5
  114. package/skills/openhands-api/README.md +5 -1
  115. package/skills/openhands-api/SKILL.md +74 -5
  116. package/skills/openhands-automation/SKILL.md +3 -1
  117. package/skills/openhands-automation/references/custom-automation.md +166 -0
  118. package/skills/openhands-sdk/SKILL.md +8 -2
  119. package/skills/slack-channel-monitor/README.md +9 -5
  120. package/skills/slack-channel-monitor/SKILL.md +16 -6
  121. package/skills/slack-channel-monitor/references/slack-api.md +5 -3
  122. package/skills/slack-channel-monitor/references/state-schema.md +70 -36
  123. package/skills/slack-channel-monitor/scripts/main.py +335 -63
  124. package/tests/test_catalogs.py +21 -3
  125. package/tests/test_integration_catalog_in_sync.py +204 -0
  126. package/tests/test_slack_channel_monitor.py +142 -0
  127. package/tests/test_version_alignment.py +64 -0
  128. package/integrations/logos.d.ts +0 -5
  129. package/integrations/logos.js +0 -94
  130. package/integrations/oauth-provider-catalog.js +0 -553
  131. package/integrations/oauth-provider-registration-defaults.js +0 -610
  132. /package/plugins/cobol-modernization/skills/{mainfraime-removal → mainframe-removal}/SKILL.md +0 -0
  133. /package/plugins/cobol-modernization/skills/{mainfraime-removal → mainframe-removal}/references/cics-transformation-examples.md +0 -0
  134. /package/plugins/migration-scoring/skills/{migration-scoring-overview → migration-scoring}/SKILL.md +0 -0
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "monday",
3
+ "name": "Monday.com",
4
+ "description": "Boards, automations, and work management across teams.",
5
+ "categories": [
6
+ "Project management",
7
+ "Operations"
8
+ ],
9
+ "appUrl": "https://monday.com",
10
+ "docsUrl": "https://developer.monday.com/apps/docs/oauth",
11
+ "notes": "High-demand operations platform with rich board APIs.",
12
+ "popularityRank": 16,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://auth.monday.com/oauth2/authorize",
21
+ "tokenUrl": "https://auth.monday.com/oauth2/token",
22
+ "scopes": [
23
+ "boards:read"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://api.monday.com/v2",
29
+ "defaultTool": {
30
+ "name": "list_boards",
31
+ "description": "Query boards from Monday.com.",
32
+ "method": "POST",
33
+ "path": "/"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -4,13 +4,12 @@
4
4
  "description": "Query MongoDB collections, inspect schemas, and run aggregation pipelines.",
5
5
  "docsUrl": "https://www.mongodb.com/docs/mcp-server/",
6
6
  "iconBg": "#00684A",
7
+ "logoUrl": "https://cdn.simpleicons.org/mongodb/FFFFFF",
7
8
  "keywords": [
8
9
  "database",
9
10
  "nosql",
10
11
  "atlas"
11
12
  ],
12
- "kind": "mcp",
13
- "defaultConnectionOptionId": "api",
14
13
  "connectionOptions": [
15
14
  {
16
15
  "id": "api",
@@ -10,8 +10,6 @@
10
10
  "postgres",
11
11
  "serverless"
12
12
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "api",
15
13
  "connectionOptions": [
16
14
  {
17
15
  "id": "api",
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "netlify",
3
+ "name": "Netlify",
4
+ "description": "Sites, builds, deploy previews, and web operations.",
5
+ "categories": [
6
+ "Deployment",
7
+ "Developer tools"
8
+ ],
9
+ "appUrl": "https://www.netlify.com",
10
+ "docsUrl": "https://docs.netlify.com/api/get-started/#oauth-applications",
11
+ "notes": "Common alternative hosting/deployment automation target.",
12
+ "popularityRank": 40,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://app.netlify.com/authorize",
21
+ "tokenUrl": "https://api.netlify.com/oauth/token",
22
+ "scopes": [
23
+ "sites:read"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://api.netlify.com/api/v1",
29
+ "defaultTool": {
30
+ "name": "list_sites",
31
+ "description": "List Netlify sites available to the connected user.",
32
+ "method": "GET",
33
+ "path": "/sites"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -2,19 +2,37 @@
2
2
  "id": "notion",
3
3
  "name": "Notion",
4
4
  "description": "Read and edit Notion pages, databases, and blocks via Notion's MCP server.",
5
- "docsUrl": "https://developers.notion.com/docs/mcp",
6
- "iconBg": "#FFFFFF",
7
- "iconColor": "#000000",
8
- "keywords": [
9
- "docs",
10
- "notes",
11
- "wiki",
12
- "knowledge base"
5
+ "categories": [
6
+ "Knowledge base",
7
+ "Documentation"
13
8
  ],
9
+ "appUrl": "https://www.notion.so",
10
+ "docsUrl": "https://developers.notion.com/docs/mcp",
11
+ "notes": "",
14
12
  "popularityRank": 82,
15
- "kind": "mcp",
16
- "defaultConnectionOptionId": "api",
17
13
  "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://api.notion.com/v1/oauth/authorize",
21
+ "tokenUrl": "https://api.notion.com/v1/oauth/token",
22
+ "scopes": []
23
+ }
24
+ },
25
+ "http": {
26
+ "apiBaseUrl": "https://api.notion.com",
27
+ "openApiUrl": "https://developers.notion.com/openapi.json",
28
+ "defaultTool": {
29
+ "name": "post_search",
30
+ "description": "Search pages and databases in the connected Notion workspace.",
31
+ "method": "POST",
32
+ "path": "/v1/search"
33
+ }
34
+ }
35
+ },
18
36
  {
19
37
  "id": "api",
20
38
  "provider": "mcp",
@@ -42,5 +60,14 @@
42
60
  "strategy": "api_key"
43
61
  }
44
62
  }
63
+ ],
64
+ "iconBg": "#FFFFFF",
65
+ "logoUrl": "https://cdn.simpleicons.org/notion/000000",
66
+ "iconColor": "#000000",
67
+ "keywords": [
68
+ "docs",
69
+ "notes",
70
+ "wiki",
71
+ "knowledge base"
45
72
  ]
46
73
  }
@@ -4,15 +4,13 @@
4
4
  "description": "Read and edit Markdown notes inside an Obsidian vault on the local disk.",
5
5
  "docsUrl": "https://github.com/MarkusPfundstein/mcp-obsidian",
6
6
  "iconBg": "#7C3AED",
7
+ "logoUrl": "https://cdn.simpleicons.org/obsidian/FFFFFF",
7
8
  "keywords": [
8
9
  "notes",
9
10
  "knowledge",
10
11
  "markdown",
11
12
  "vault"
12
13
  ],
13
- "kind": "mcp",
14
- "runtimeAvailability": "local",
15
- "defaultConnectionOptionId": "api",
16
14
  "connectionOptions": [
17
15
  {
18
16
  "id": "api",
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "okta",
3
+ "name": "Okta",
4
+ "description": "Identity, users, applications, and access administration.",
5
+ "categories": [
6
+ "Identity",
7
+ "Enterprise"
8
+ ],
9
+ "appUrl": "https://www.okta.com",
10
+ "docsUrl": "https://developer.okta.com/docs/guides/implement-oauth-for-okta/main/",
11
+ "notes": "High-value admin and security automation surface.",
12
+ "popularityRank": 42,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://{yourOktaDomain}/oauth2/v1/authorize",
21
+ "tokenUrl": "https://{yourOktaDomain}/oauth2/v1/token",
22
+ "scopes": [
23
+ "okta.users.read"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://{yourOktaDomain}/api/v1",
29
+ "defaultTool": {
30
+ "name": "list_users",
31
+ "description": "List Okta users for the connected org.",
32
+ "method": "GET",
33
+ "path": "/users"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "onedrive",
3
+ "name": "OneDrive",
4
+ "description": "Cloud file access and document workflows through Microsoft Graph.",
5
+ "categories": [
6
+ "Storage",
7
+ "Documents"
8
+ ],
9
+ "appUrl": "https://www.microsoft.com/microsoft-365/onedrive/online-cloud-storage",
10
+ "docsUrl": "https://learn.microsoft.com/graph/auth-v2-user",
11
+ "notes": "Useful for enterprise file automation and search.",
12
+ "popularityRank": 22,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
21
+ "tokenUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/token",
22
+ "scopes": [
23
+ "Files.Read"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://graph.microsoft.com/v1.0",
29
+ "defaultTool": {
30
+ "name": "list_drive_items",
31
+ "description": "List OneDrive items in the root folder.",
32
+ "method": "GET",
33
+ "path": "/me/drive/root/children"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "ordinal",
3
+ "name": "Ordinal",
4
+ "description": "Social media posts, profiles, analytics, labels, approvals, and engagements.",
5
+ "categories": [
6
+ "Social media",
7
+ "Marketing"
8
+ ],
9
+ "appUrl": "https://app.tryordinal.com",
10
+ "docsUrl": "https://docs.tryordinal.com/api/mcp",
11
+ "logoUrl": "https://app.tryordinal.com/favicon.ico",
12
+ "notes": "Official MCP server backed by Ordinal's API with API-key (Bearer) auth.",
13
+ "popularityRank": 52,
14
+ "connectionOptions": [
15
+ {
16
+ "id": "api",
17
+ "provider": "mcp",
18
+ "auth": {
19
+ "strategy": "bearer",
20
+ "authModes": [
21
+ "bearer"
22
+ ],
23
+ "credentialLabel": "Ordinal API key",
24
+ "credentialPlaceholder": "Paste your Ordinal API key",
25
+ "credentialHelp": "API key from your Ordinal workspace settings, sent as a Bearer token in the Authorization header."
26
+ },
27
+ "transport": {
28
+ "kind": "shttp",
29
+ "url": "https://app.tryordinal.com/api/mcp"
30
+ }
31
+ }
32
+ ]
33
+ }
@@ -4,25 +4,22 @@
4
4
  "description": "Manage transactions and merchant data via PayPal's MCP server.",
5
5
  "docsUrl": "https://developer.paypal.com/tools/mcp-server/",
6
6
  "iconBg": "#003087",
7
+ "logoUrl": "https://cdn.simpleicons.org/paypal/FFFFFF",
7
8
  "keywords": [
8
9
  "payments",
9
10
  "billing",
10
11
  "finance"
11
12
  ],
12
- "kind": "mcp",
13
- "defaultConnectionOptionId": "none",
14
13
  "connectionOptions": [
15
14
  {
16
- "id": "none",
15
+ "id": "oauth",
17
16
  "provider": "mcp",
18
17
  "transport": {
19
- "kind": "sse",
20
- "url": "https://mcp.paypal.com/sse",
21
- "apiKeyOptional": true
18
+ "kind": "shttp",
19
+ "url": "https://mcp.paypal.com/mcp"
22
20
  },
23
21
  "auth": {
24
- "strategy": "none",
25
- "apiKeyOptional": true
22
+ "strategy": "oauth2"
26
23
  }
27
24
  }
28
25
  ]
@@ -0,0 +1,39 @@
1
+ {
2
+ "id": "pipedrive",
3
+ "name": "Pipedrive",
4
+ "description": "Deals, contacts, and sales pipeline management.",
5
+ "categories": [
6
+ "CRM",
7
+ "Sales"
8
+ ],
9
+ "appUrl": "https://www.pipedrive.com",
10
+ "docsUrl": "https://pipedrive.readme.io/docs/marketplace-oauth-authorization",
11
+ "notes": "Common CRM choice with solid OAuth story.",
12
+ "popularityRank": 45,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://oauth.pipedrive.com/oauth/authorize",
21
+ "tokenUrl": "https://oauth.pipedrive.com/oauth/token",
22
+ "scopes": [
23
+ "deals:read",
24
+ "contacts:read"
25
+ ]
26
+ }
27
+ },
28
+ "http": {
29
+ "apiBaseUrl": "https://api.pipedrive.com/v1",
30
+ "defaultTool": {
31
+ "name": "list_persons",
32
+ "description": "List Pipedrive people visible to the connected user.",
33
+ "method": "GET",
34
+ "path": "/persons"
35
+ }
36
+ }
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "id": "plaid",
3
+ "name": "Plaid",
4
+ "description": "Financial account connectivity and transaction data flows.",
5
+ "categories": [
6
+ "Finance",
7
+ "Payments"
8
+ ],
9
+ "appUrl": "https://plaid.com",
10
+ "docsUrl": "https://plaid.com/docs/auth/oauth/",
11
+ "notes": "Strong fintech workflow candidate, although much of Plaid's OAuth guidance is a special-case token exchange rather than a generic end-user SaaS OAuth connector.",
12
+ "popularityRank": 41,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2"
19
+ },
20
+ "http": {
21
+ "apiBaseUrl": "https://production.plaid.com",
22
+ "defaultTool": {
23
+ "name": "get_accounts",
24
+ "description": "Fetch accounts for a connected Plaid item.",
25
+ "method": "POST",
26
+ "path": "/accounts/get"
27
+ }
28
+ }
29
+ }
30
+ ]
31
+ }
@@ -11,8 +11,6 @@
11
11
  "testing",
12
12
  "scrape"
13
13
  ],
14
- "kind": "mcp",
15
- "defaultConnectionOptionId": "none",
16
14
  "connectionOptions": [
17
15
  {
18
16
  "id": "none",
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "posthog",
3
+ "name": "PostHog",
4
+ "description": "Product analytics, feature flags, and session insights.",
5
+ "categories": [
6
+ "Analytics",
7
+ "Product"
8
+ ],
9
+ "appUrl": "https://posthog.com",
10
+ "docsUrl": "https://posthog.com/docs/apps/build/oauth",
11
+ "notes": "Relevant for product analytics and experimentation workflows.",
12
+ "popularityRank": 37,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://us.posthog.com/oauth/authorize",
21
+ "tokenUrl": "https://us.posthog.com/oauth/token",
22
+ "scopes": [
23
+ "project:read"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://us.posthog.com/api",
29
+ "defaultTool": {
30
+ "name": "list_projects",
31
+ "description": "List PostHog projects available to the connected user.",
32
+ "method": "GET",
33
+ "path": "/projects/"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "quickbooks",
3
+ "name": "QuickBooks",
4
+ "description": "Accounting, invoices, customers, and financial operations.",
5
+ "categories": [
6
+ "Finance",
7
+ "Accounting"
8
+ ],
9
+ "appUrl": "https://quickbooks.intuit.com",
10
+ "docsUrl": "https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0",
11
+ "notes": "Frequent finance automation request with OAuth-based apps.",
12
+ "popularityRank": 47,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://appcenter.intuit.com/connect/oauth2",
21
+ "tokenUrl": "https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer",
22
+ "scopes": [
23
+ "com.intuit.quickbooks.accounting"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://sandbox-quickbooks.api.intuit.com/v3/company/{companyId}",
29
+ "defaultTool": {
30
+ "name": "list_customers",
31
+ "description": "Query QuickBooks customers for the connected company.",
32
+ "method": "GET",
33
+ "path": "/query?query=SELECT%20*%20FROM%20Customer%20MAXRESULTS%2010"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -4,14 +4,12 @@
4
4
  "description": "Get, set, scan, and inspect data on a Redis or Redis-compatible instance.",
5
5
  "docsUrl": "https://github.com/redis/mcp-redis",
6
6
  "iconBg": "#DC382D",
7
+ "logoUrl": "https://cdn.simpleicons.org/redis/FFFFFF",
7
8
  "keywords": [
8
9
  "cache",
9
10
  "kv",
10
11
  "database"
11
12
  ],
12
- "kind": "mcp",
13
- "runtimeAvailability": "local",
14
- "defaultConnectionOptionId": "api",
15
13
  "connectionOptions": [
16
14
  {
17
15
  "id": "api",
@@ -4,13 +4,12 @@
4
4
  "description": "Send transactional and marketing emails via the Resend API.",
5
5
  "docsUrl": "https://resend.com/docs/mcp",
6
6
  "iconBg": "var(--oh-surface-deep)",
7
+ "logoUrl": "https://cdn.simpleicons.org/resend/FFFFFF",
7
8
  "keywords": [
8
9
  "email",
9
10
  "transactional",
10
11
  "smtp"
11
12
  ],
12
- "kind": "mcp",
13
- "defaultConnectionOptionId": "api",
14
13
  "connectionOptions": [
15
14
  {
16
15
  "id": "api",
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "salesforce",
3
+ "name": "Salesforce",
4
+ "description": "CRM records, accounts, opportunities, and sales operations.",
5
+ "categories": [
6
+ "CRM",
7
+ "Sales"
8
+ ],
9
+ "appUrl": "https://www.salesforce.com",
10
+ "docsUrl": "https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_web_server_flow.htm&type=5",
11
+ "notes": "Very common enterprise CRM and agent-assist target.",
12
+ "popularityRank": 24,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://login.salesforce.com/services/oauth2/authorize",
21
+ "tokenUrl": "https://login.salesforce.com/services/oauth2/token",
22
+ "scopes": [
23
+ "api"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://{instance}.salesforce.com/services/data/v60.0",
29
+ "defaultTool": {
30
+ "name": "list_accounts",
31
+ "description": "List Salesforce accounts from the connected org.",
32
+ "method": "GET",
33
+ "path": "/sobjects/Account"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -2,29 +2,67 @@
2
2
  "id": "sentry",
3
3
  "name": "Sentry",
4
4
  "description": "Triage issues, inspect events, and run Seer fixes against your Sentry org.",
5
- "docsUrl": "https://docs.sentry.io/product/sentry-mcp/",
6
- "iconBg": "#362D59",
7
- "keywords": [
8
- "errors",
9
- "observability",
10
- "monitoring",
11
- "crash"
5
+ "categories": [
6
+ "Observability",
7
+ "Engineering"
12
8
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "none",
9
+ "appUrl": "https://sentry.io",
10
+ "docsUrl": "https://docs.sentry.io/product/sentry-mcp/",
11
+ "notes": "Natural target for engineering support agents.",
12
+ "popularityRank": 36,
15
13
  "connectionOptions": [
16
14
  {
17
- "id": "none",
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://sentry.io/oauth/authorize",
21
+ "tokenUrl": "https://sentry.io/oauth/token",
22
+ "scopes": [
23
+ "project:read",
24
+ "event:read",
25
+ "org:read"
26
+ ]
27
+ }
28
+ },
29
+ "http": {
30
+ "apiBaseUrl": "https://sentry.io/api/0",
31
+ "defaultTool": {
32
+ "name": "list_organizations",
33
+ "description": "List Sentry organizations available to the connected user.",
34
+ "method": "GET",
35
+ "path": "/organizations/"
36
+ }
37
+ }
38
+ },
39
+ {
40
+ "id": "oauth-mcp",
18
41
  "provider": "mcp",
19
42
  "transport": {
20
43
  "kind": "shttp",
21
- "url": "https://mcp.sentry.dev/mcp",
22
- "apiKeyOptional": true
44
+ "url": "https://mcp.sentry.dev/mcp"
23
45
  },
24
46
  "auth": {
25
- "strategy": "none",
26
- "apiKeyOptional": true
47
+ "strategy": "oauth2",
48
+ "oauth": {
49
+ "authorizationUrl": "https://sentry.io/oauth/authorize",
50
+ "tokenUrl": "https://sentry.io/oauth/token",
51
+ "scopes": [
52
+ "project:read",
53
+ "event:read",
54
+ "org:read"
55
+ ]
56
+ }
27
57
  }
28
58
  }
59
+ ],
60
+ "iconBg": "#362D59",
61
+ "logoUrl": "https://cdn.simpleicons.org/sentry/FFFFFF",
62
+ "keywords": [
63
+ "errors",
64
+ "observability",
65
+ "monitoring",
66
+ "crash"
29
67
  ]
30
68
  }
@@ -9,8 +9,6 @@
9
9
  "planning",
10
10
  "thoughts"
11
11
  ],
12
- "kind": "mcp",
13
- "defaultConnectionOptionId": "none",
14
12
  "connectionOptions": [
15
13
  {
16
14
  "id": "none",