@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,39 @@
1
+ {
2
+ "id": "servicenow",
3
+ "name": "ServiceNow",
4
+ "description": "Tickets, incidents, service catalogs, and enterprise workflows.",
5
+ "categories": [
6
+ "ITSM",
7
+ "Enterprise"
8
+ ],
9
+ "appUrl": "https://www.servicenow.com",
10
+ "docsUrl": "https://www.servicenow.com/docs/bundle/xanadu-platform-security/page/administer/security/concept/oauth-concept.html",
11
+ "notes": "Strong enterprise IT operations use case.",
12
+ "popularityRank": 43,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://{instance}.service-now.com/oauth_auth.do",
21
+ "tokenUrl": "https://{instance}.service-now.com/oauth_token.do",
22
+ "scopes": [
23
+ "useraccount",
24
+ "table.read"
25
+ ]
26
+ }
27
+ },
28
+ "http": {
29
+ "apiBaseUrl": "https://{instance}.service-now.com/api/now/v1",
30
+ "defaultTool": {
31
+ "name": "list_incidents",
32
+ "description": "List ServiceNow incidents for the connected instance.",
33
+ "method": "GET",
34
+ "path": "/table/incident"
35
+ }
36
+ }
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "sharepoint",
3
+ "name": "SharePoint",
4
+ "description": "Sites, document libraries, lists, and intranet content.",
5
+ "categories": [
6
+ "Knowledge base",
7
+ "Enterprise"
8
+ ],
9
+ "appUrl": "https://www.microsoft.com/microsoft-365/sharepoint/collaboration",
10
+ "docsUrl": "https://learn.microsoft.com/graph/auth-v2-user",
11
+ "notes": "Frequently requested for enterprise knowledge retrieval.",
12
+ "popularityRank": 23,
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
+ "Sites.Read.All"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://graph.microsoft.com/v1.0",
29
+ "defaultTool": {
30
+ "name": "get_root_site",
31
+ "description": "Fetch the SharePoint root site through Microsoft Graph.",
32
+ "method": "GET",
33
+ "path": "/sites/root"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "shopify",
3
+ "name": "Shopify",
4
+ "description": "Storefronts, products, orders, and ecommerce operations.",
5
+ "categories": [
6
+ "Ecommerce",
7
+ "Operations"
8
+ ],
9
+ "appUrl": "https://www.shopify.com",
10
+ "docsUrl": "https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant",
11
+ "notes": "A top ecommerce platform and strong MCP candidate.",
12
+ "popularityRank": 29,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://{shop}.myshopify.com/admin/oauth/authorize",
21
+ "tokenUrl": "https://{shop}.myshopify.com/admin/oauth/access_token",
22
+ "scopes": [
23
+ "read_products"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://{shop}.myshopify.com/admin/api/2025-01",
29
+ "defaultTool": {
30
+ "name": "list_products",
31
+ "description": "List Shopify products for the connected store.",
32
+ "method": "GET",
33
+ "path": "/products.json"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -2,18 +2,49 @@
2
2
  "id": "slack",
3
3
  "name": "Slack",
4
4
  "description": "Read channels, post messages, and search workspace history from your agent.",
5
- "docsUrl": "https://github.com/zencoderai/slack-mcp-server",
6
- "iconBg": "#4A154B",
7
- "keywords": [
8
- "chat",
9
- "messaging",
10
- "team"
5
+ "categories": [
6
+ "Communication",
7
+ "Operations"
11
8
  ],
9
+ "appUrl": "https://slack.com",
10
+ "docsUrl": "https://github.com/zencoderai/slack-mcp-server",
11
+ "notes": "Uses Slack's official hosted MCP server with confidential OAuth user-token auth.",
12
12
  "popularityRank": 95,
13
- "installHint": "Create a Slack app with the required scopes, then paste its bot token below.",
14
- "kind": "mcp",
15
- "defaultConnectionOptionId": "api",
16
13
  "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "mcp",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://slack.com/oauth/v2_user/authorize",
21
+ "tokenUrl": "https://slack.com/api/oauth.v2.user.access",
22
+ "scopes": [
23
+ "search:read.public",
24
+ "search:read.private",
25
+ "search:read.mpim",
26
+ "search:read.im",
27
+ "search:read.files",
28
+ "search:read.users",
29
+ "chat:write",
30
+ "channels:history",
31
+ "groups:history",
32
+ "mpim:history",
33
+ "im:history",
34
+ "canvases:read",
35
+ "canvases:write",
36
+ "users:read",
37
+ "users:read.email"
38
+ ],
39
+ "pkce": true,
40
+ "clientAuthentication": "body"
41
+ }
42
+ },
43
+ "transport": {
44
+ "kind": "shttp",
45
+ "url": "https://mcp.slack.com/mcp"
46
+ }
47
+ },
17
48
  {
18
49
  "id": "api",
19
50
  "provider": "mcp",
@@ -48,5 +79,13 @@
48
79
  "strategy": "api_key"
49
80
  }
50
81
  }
51
- ]
82
+ ],
83
+ "iconBg": "#4A154B",
84
+ "logoUrl": "https://cdn.simpleicons.org/slack/FFFFFF",
85
+ "keywords": [
86
+ "chat",
87
+ "messaging",
88
+ "team"
89
+ ],
90
+ "installHint": "Create a Slack app with the required scopes, then paste its bot token below."
52
91
  }
@@ -2,29 +2,59 @@
2
2
  "id": "stripe",
3
3
  "name": "Stripe",
4
4
  "description": "Query customers, payments, subscriptions, and invoices via Stripe's hosted MCP server.",
5
- "docsUrl": "https://stripe.com/docs/mcp",
6
- "iconBg": "#635BFF",
7
- "keywords": [
8
- "payments",
9
- "billing",
10
- "subscriptions",
11
- "finance"
5
+ "categories": [
6
+ "Payments",
7
+ "Finance"
12
8
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "none",
9
+ "appUrl": "https://stripe.com",
10
+ "docsUrl": "https://stripe.com/docs/mcp",
11
+ "notes": "High-value fintech automation target with mature OAuth patterns.",
12
+ "popularityRank": 28,
15
13
  "connectionOptions": [
16
14
  {
17
- "id": "none",
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://connect.stripe.com/oauth/authorize",
21
+ "tokenUrl": "https://connect.stripe.com/oauth/token",
22
+ "scopes": [
23
+ "read_only"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://api.stripe.com/v1",
29
+ "defaultTool": {
30
+ "name": "list_customers",
31
+ "description": "List Stripe customers from the connected account.",
32
+ "method": "GET",
33
+ "path": "/customers"
34
+ }
35
+ }
36
+ },
37
+ {
38
+ "id": "api",
18
39
  "provider": "mcp",
19
40
  "transport": {
20
41
  "kind": "shttp",
21
- "url": "https://mcp.stripe.com/",
22
- "apiKeyOptional": true
42
+ "url": "https://mcp.stripe.com/"
23
43
  },
24
44
  "auth": {
25
- "strategy": "none",
26
- "apiKeyOptional": true
45
+ "strategy": "bearer",
46
+ "credentialLabel": "Stripe restricted key",
47
+ "credentialPlaceholder": "rk_live_...",
48
+ "credentialHelp": "Create a Stripe restricted key for MCP access and paste it here."
27
49
  }
28
50
  }
51
+ ],
52
+ "iconBg": "#635BFF",
53
+ "logoUrl": "https://cdn.simpleicons.org/stripe/FFFFFF",
54
+ "keywords": [
55
+ "payments",
56
+ "billing",
57
+ "subscriptions",
58
+ "finance"
29
59
  ]
30
60
  }
@@ -2,17 +2,36 @@
2
2
  "id": "supabase",
3
3
  "name": "Supabase",
4
4
  "description": "Query and manage your Supabase project, including database, auth, and storage.",
5
- "docsUrl": "https://supabase.com/docs/guides/getting-started/mcp",
6
- "iconBg": "#3ECF8E",
7
- "keywords": [
8
- "database",
9
- "auth",
10
- "storage",
11
- "postgres"
5
+ "categories": [
6
+ "Database",
7
+ "Developer tools"
12
8
  ],
13
- "kind": "mcp",
14
- "defaultConnectionOptionId": "api",
9
+ "appUrl": "https://supabase.com",
10
+ "docsUrl": "https://supabase.com/docs/guides/getting-started/mcp",
11
+ "notes": "Popular developer platform with broad automation value and a documented management-API OAuth integration flow.",
12
+ "popularityRank": 38,
15
13
  "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://api.supabase.com/v1/oauth/authorize",
21
+ "tokenUrl": "https://api.supabase.com/v1/oauth/token",
22
+ "scopes": []
23
+ }
24
+ },
25
+ "http": {
26
+ "apiBaseUrl": "https://api.supabase.com/v1",
27
+ "defaultTool": {
28
+ "name": "list_projects",
29
+ "description": "List Supabase projects available to the connected user.",
30
+ "method": "GET",
31
+ "path": "/projects"
32
+ }
33
+ }
34
+ },
16
35
  {
17
36
  "id": "api",
18
37
  "provider": "mcp",
@@ -39,5 +58,13 @@
39
58
  "strategy": "api_key"
40
59
  }
41
60
  }
61
+ ],
62
+ "iconBg": "#3ECF8E",
63
+ "logoUrl": "https://cdn.simpleicons.org/supabase/FFFFFF",
64
+ "keywords": [
65
+ "database",
66
+ "auth",
67
+ "storage",
68
+ "postgres"
42
69
  ]
43
70
  }
@@ -12,8 +12,6 @@
12
12
  ],
13
13
  "popularityRank": 90,
14
14
  "installHint": "Paste your Tavily API key - the official tavily-mcp package runs via npx.",
15
- "kind": "mcp",
16
- "defaultConnectionOptionId": "api",
17
15
  "connectionOptions": [
18
16
  {
19
17
  "id": "api",
@@ -9,8 +9,6 @@
9
9
  "timezone",
10
10
  "date"
11
11
  ],
12
- "kind": "mcp",
13
- "defaultConnectionOptionId": "none",
14
12
  "connectionOptions": [
15
13
  {
16
14
  "id": "none",
@@ -0,0 +1,31 @@
1
+ {
2
+ "id": "trello",
3
+ "name": "Trello",
4
+ "description": "Boards, cards, checklists, and lightweight project planning.",
5
+ "categories": [
6
+ "Project management",
7
+ "Operations"
8
+ ],
9
+ "appUrl": "https://trello.com",
10
+ "docsUrl": "https://developer.atlassian.com/cloud/trello/guides/rest-api/authorization/",
11
+ "notes": "Useful for SMB and cross-functional task boards, but Trello's public API auth is a special-case flow rather than a straightforward generic OAuth2 connector.",
12
+ "popularityRank": 14,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2"
19
+ },
20
+ "http": {
21
+ "apiBaseUrl": "https://api.trello.com/1",
22
+ "defaultTool": {
23
+ "name": "list_boards",
24
+ "description": "List Trello boards visible to the authenticated member.",
25
+ "method": "GET",
26
+ "path": "/members/me/boards"
27
+ }
28
+ }
29
+ }
30
+ ]
31
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "vercel",
3
+ "name": "Vercel",
4
+ "description": "Deployments, projects, domains, and preview environment workflows.",
5
+ "categories": [
6
+ "Developer tools",
7
+ "Deployment"
8
+ ],
9
+ "appUrl": "https://vercel.com",
10
+ "docsUrl": "https://vercel.com/docs/rest-api#oauth-apps",
11
+ "notes": "Especially relevant to this repo's deployment model.",
12
+ "popularityRank": 39,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://vercel.com/oauth/authorize",
21
+ "tokenUrl": "https://api.vercel.com/v2/oauth/access_token",
22
+ "scopes": [
23
+ "project:read"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://api.vercel.com",
29
+ "defaultTool": {
30
+ "name": "list_projects",
31
+ "description": "List Vercel projects available to the connected user.",
32
+ "method": "GET",
33
+ "path": "/v9/projects"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "id": "webflow",
3
+ "name": "Webflow",
4
+ "description": "CMS items, sites, and web publishing workflows.",
5
+ "categories": [
6
+ "CMS",
7
+ "Marketing"
8
+ ],
9
+ "appUrl": "https://webflow.com",
10
+ "docsUrl": "https://developers.webflow.com/mcp/reference/getting-started",
11
+ "notes": "Uses Webflow's official hosted MCP server and deployment-scoped MCP OAuth registration so each user can authorize their own sites and workspaces.",
12
+ "popularityRank": 32,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "mcp",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://mcp.webflow.com/oauth/authorize",
21
+ "tokenUrl": "https://mcp.webflow.com/oauth/token",
22
+ "scopes": [],
23
+ "pkce": true,
24
+ "clientAuthentication": "none",
25
+ "registrationUrl": "https://mcp.webflow.com/oauth/register"
26
+ }
27
+ },
28
+ "transport": {
29
+ "kind": "shttp",
30
+ "url": "https://mcp.webflow.com/mcp"
31
+ }
32
+ }
33
+ ]
34
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "xero",
3
+ "name": "Xero",
4
+ "description": "Accounting, contacts, invoices, and bookkeeping workflows.",
5
+ "categories": [
6
+ "Finance",
7
+ "Accounting"
8
+ ],
9
+ "appUrl": "https://www.xero.com",
10
+ "docsUrl": "https://developer.xero.com/documentation/guides/oauth2/overview/",
11
+ "notes": "Important accounting platform in many regions.",
12
+ "popularityRank": 48,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://login.xero.com/identity/connect/authorize",
21
+ "tokenUrl": "https://identity.xero.com/connect/token",
22
+ "scopes": [
23
+ "accounting.contacts.read"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://api.xero.com/api.xro/2.0",
29
+ "defaultTool": {
30
+ "name": "list_contacts",
31
+ "description": "List Xero contacts for the connected tenant.",
32
+ "method": "GET",
33
+ "path": "/Contacts"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "zendesk",
3
+ "name": "Zendesk",
4
+ "description": "Support tickets, customers, agents, and help desk operations.",
5
+ "categories": [
6
+ "Support",
7
+ "Operations"
8
+ ],
9
+ "appUrl": "https://www.zendesk.com",
10
+ "docsUrl": "https://developer.zendesk.com/documentation/apps/getting-started/oauth/",
11
+ "notes": "Strong support automation use case for agents.",
12
+ "popularityRank": 26,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://{subdomain}.zendesk.com/oauth2/authorize",
21
+ "tokenUrl": "https://{subdomain}.zendesk.com/oauth2/token",
22
+ "scopes": [
23
+ "tickets:read"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://{subdomain}.zendesk.com/api/v2",
29
+ "defaultTool": {
30
+ "name": "list_tickets",
31
+ "description": "List Zendesk tickets for the connected account.",
32
+ "method": "GET",
33
+ "path": "/tickets"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "id": "zoom",
3
+ "name": "Zoom",
4
+ "description": "Meetings, recordings, webinars, and scheduling operations.",
5
+ "categories": [
6
+ "Meetings",
7
+ "Calendar"
8
+ ],
9
+ "appUrl": "https://zoom.us",
10
+ "docsUrl": "https://developers.zoom.us/docs/integrations/oauth/",
11
+ "notes": "Frequently requested for scheduling and meeting summaries.",
12
+ "popularityRank": 31,
13
+ "connectionOptions": [
14
+ {
15
+ "id": "oauth",
16
+ "provider": "http",
17
+ "auth": {
18
+ "strategy": "oauth2",
19
+ "oauth": {
20
+ "authorizationUrl": "https://zoom.us/oauth/authorize",
21
+ "tokenUrl": "https://zoom.us/oauth/token",
22
+ "scopes": [
23
+ "meeting:read:user"
24
+ ]
25
+ }
26
+ },
27
+ "http": {
28
+ "apiBaseUrl": "https://api.zoom.us/v2",
29
+ "defaultTool": {
30
+ "name": "list_meetings",
31
+ "description": "List Zoom meetings for the connected user.",
32
+ "method": "GET",
33
+ "path": "/users/me/meetings"
34
+ }
35
+ }
36
+ }
37
+ ]
38
+ }