@hasna/connectors 0.5.0 → 0.5.2

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 (223) hide show
  1. package/bin/index.js +147 -6
  2. package/bin/mcp.js +92 -1
  3. package/bin/serve.js +91 -0
  4. package/connectors/connect-ably/.env.example +11 -0
  5. package/connectors/connect-ably/CLAUDE.md +111 -0
  6. package/connectors/connect-ably/README.md +193 -0
  7. package/connectors/connect-ably/package.json +54 -0
  8. package/connectors/connect-ably/scripts/release.ts +179 -0
  9. package/connectors/connect-ably/src/api/channels.ts +33 -0
  10. package/connectors/connect-ably/src/api/client.ts +203 -0
  11. package/connectors/connect-ably/src/api/index.ts +59 -0
  12. package/connectors/connect-ably/src/api/messages.ts +48 -0
  13. package/connectors/connect-ably/src/api/presence.ts +39 -0
  14. package/connectors/connect-ably/src/api/stats.ts +29 -0
  15. package/connectors/connect-ably/src/cli/index.ts +397 -0
  16. package/connectors/connect-ably/src/index.ts +102 -0
  17. package/connectors/connect-ably/src/types/index.ts +294 -0
  18. package/connectors/connect-ably/src/utils/auth.ts +274 -0
  19. package/connectors/connect-ably/src/utils/bulk.ts +212 -0
  20. package/connectors/connect-ably/src/utils/config.ts +323 -0
  21. package/connectors/connect-ably/src/utils/output.ts +175 -0
  22. package/connectors/connect-ably/src/utils/settings.ts +114 -0
  23. package/connectors/connect-ably/src/utils/storage.ts +198 -0
  24. package/connectors/connect-ably/tsconfig.json +16 -0
  25. package/connectors/connect-box/.env.example +11 -0
  26. package/connectors/connect-box/CLAUDE.md +272 -0
  27. package/connectors/connect-box/README.md +193 -0
  28. package/connectors/connect-box/package.json +51 -0
  29. package/connectors/connect-box/scripts/release.ts +179 -0
  30. package/connectors/connect-box/src/api/client.ts +213 -0
  31. package/connectors/connect-box/src/api/example.ts +48 -0
  32. package/connectors/connect-box/src/api/index.ts +51 -0
  33. package/connectors/connect-box/src/cli/index.ts +254 -0
  34. package/connectors/connect-box/src/index.ts +103 -0
  35. package/connectors/connect-box/src/types/index.ts +237 -0
  36. package/connectors/connect-box/src/utils/auth.ts +274 -0
  37. package/connectors/connect-box/src/utils/bulk.ts +212 -0
  38. package/connectors/connect-box/src/utils/config.ts +326 -0
  39. package/connectors/connect-box/src/utils/output.ts +175 -0
  40. package/connectors/connect-box/src/utils/settings.ts +114 -0
  41. package/connectors/connect-box/src/utils/storage.ts +198 -0
  42. package/connectors/connect-box/tsconfig.json +16 -0
  43. package/connectors/connect-clearbit/.env.example +11 -0
  44. package/connectors/connect-clearbit/CLAUDE.md +272 -0
  45. package/connectors/connect-clearbit/README.md +193 -0
  46. package/connectors/connect-clearbit/package.json +51 -0
  47. package/connectors/connect-clearbit/scripts/release.ts +179 -0
  48. package/connectors/connect-clearbit/src/api/client.ts +213 -0
  49. package/connectors/connect-clearbit/src/api/example.ts +48 -0
  50. package/connectors/connect-clearbit/src/api/index.ts +51 -0
  51. package/connectors/connect-clearbit/src/cli/index.ts +254 -0
  52. package/connectors/connect-clearbit/src/index.ts +103 -0
  53. package/connectors/connect-clearbit/src/types/index.ts +237 -0
  54. package/connectors/connect-clearbit/src/utils/auth.ts +274 -0
  55. package/connectors/connect-clearbit/src/utils/bulk.ts +212 -0
  56. package/connectors/connect-clearbit/src/utils/config.ts +326 -0
  57. package/connectors/connect-clearbit/src/utils/output.ts +175 -0
  58. package/connectors/connect-clearbit/src/utils/settings.ts +114 -0
  59. package/connectors/connect-clearbit/src/utils/storage.ts +198 -0
  60. package/connectors/connect-clearbit/tsconfig.json +16 -0
  61. package/connectors/connect-coda/.env.example +11 -0
  62. package/connectors/connect-coda/CLAUDE.md +272 -0
  63. package/connectors/connect-coda/README.md +193 -0
  64. package/connectors/connect-coda/package.json +51 -0
  65. package/connectors/connect-coda/scripts/release.ts +179 -0
  66. package/connectors/connect-coda/src/api/client.ts +213 -0
  67. package/connectors/connect-coda/src/api/example.ts +48 -0
  68. package/connectors/connect-coda/src/api/index.ts +51 -0
  69. package/connectors/connect-coda/src/cli/index.ts +254 -0
  70. package/connectors/connect-coda/src/index.ts +103 -0
  71. package/connectors/connect-coda/src/types/index.ts +237 -0
  72. package/connectors/connect-coda/src/utils/auth.ts +274 -0
  73. package/connectors/connect-coda/src/utils/bulk.ts +212 -0
  74. package/connectors/connect-coda/src/utils/config.ts +326 -0
  75. package/connectors/connect-coda/src/utils/output.ts +175 -0
  76. package/connectors/connect-coda/src/utils/settings.ts +114 -0
  77. package/connectors/connect-coda/src/utils/storage.ts +198 -0
  78. package/connectors/connect-coda/tsconfig.json +16 -0
  79. package/connectors/connect-dropbox/.env.example +11 -0
  80. package/connectors/connect-dropbox/CLAUDE.md +119 -0
  81. package/connectors/connect-dropbox/README.md +193 -0
  82. package/connectors/connect-dropbox/package.json +51 -0
  83. package/connectors/connect-dropbox/src/api/client.ts +222 -0
  84. package/connectors/connect-dropbox/src/api/index.ts +395 -0
  85. package/connectors/connect-dropbox/src/cli/index.ts +627 -0
  86. package/connectors/connect-dropbox/src/index.ts +20 -0
  87. package/connectors/connect-dropbox/src/types/index.ts +516 -0
  88. package/connectors/connect-dropbox/src/utils/config.ts +197 -0
  89. package/connectors/connect-dropbox/tsconfig.json +16 -0
  90. package/connectors/connect-linode/.env.example +11 -0
  91. package/connectors/connect-linode/CLAUDE.md +272 -0
  92. package/connectors/connect-linode/README.md +193 -0
  93. package/connectors/connect-linode/package.json +51 -0
  94. package/connectors/connect-linode/scripts/release.ts +179 -0
  95. package/connectors/connect-linode/src/api/client.ts +213 -0
  96. package/connectors/connect-linode/src/api/example.ts +48 -0
  97. package/connectors/connect-linode/src/api/index.ts +51 -0
  98. package/connectors/connect-linode/src/cli/index.ts +254 -0
  99. package/connectors/connect-linode/src/index.ts +103 -0
  100. package/connectors/connect-linode/src/types/index.ts +237 -0
  101. package/connectors/connect-linode/src/utils/auth.ts +274 -0
  102. package/connectors/connect-linode/src/utils/bulk.ts +212 -0
  103. package/connectors/connect-linode/src/utils/config.ts +326 -0
  104. package/connectors/connect-linode/src/utils/output.ts +175 -0
  105. package/connectors/connect-linode/src/utils/settings.ts +114 -0
  106. package/connectors/connect-linode/src/utils/storage.ts +198 -0
  107. package/connectors/connect-linode/tsconfig.json +16 -0
  108. package/connectors/connect-mailgun/.env.example +11 -0
  109. package/connectors/connect-mailgun/CLAUDE.md +272 -0
  110. package/connectors/connect-mailgun/README.md +193 -0
  111. package/connectors/connect-mailgun/package.json +51 -0
  112. package/connectors/connect-mailgun/scripts/release.ts +179 -0
  113. package/connectors/connect-mailgun/src/api/client.ts +213 -0
  114. package/connectors/connect-mailgun/src/api/example.ts +48 -0
  115. package/connectors/connect-mailgun/src/api/index.ts +51 -0
  116. package/connectors/connect-mailgun/src/cli/index.ts +254 -0
  117. package/connectors/connect-mailgun/src/index.ts +103 -0
  118. package/connectors/connect-mailgun/src/types/index.ts +237 -0
  119. package/connectors/connect-mailgun/src/utils/auth.ts +274 -0
  120. package/connectors/connect-mailgun/src/utils/bulk.ts +212 -0
  121. package/connectors/connect-mailgun/src/utils/config.ts +326 -0
  122. package/connectors/connect-mailgun/src/utils/output.ts +175 -0
  123. package/connectors/connect-mailgun/src/utils/settings.ts +114 -0
  124. package/connectors/connect-mailgun/src/utils/storage.ts +198 -0
  125. package/connectors/connect-mailgun/tsconfig.json +16 -0
  126. package/connectors/connect-messagebird/.env.example +11 -0
  127. package/connectors/connect-messagebird/CLAUDE.md +272 -0
  128. package/connectors/connect-messagebird/README.md +193 -0
  129. package/connectors/connect-messagebird/package.json +51 -0
  130. package/connectors/connect-messagebird/scripts/release.ts +179 -0
  131. package/connectors/connect-messagebird/src/api/client.ts +213 -0
  132. package/connectors/connect-messagebird/src/api/example.ts +48 -0
  133. package/connectors/connect-messagebird/src/api/index.ts +51 -0
  134. package/connectors/connect-messagebird/src/cli/index.ts +254 -0
  135. package/connectors/connect-messagebird/src/index.ts +103 -0
  136. package/connectors/connect-messagebird/src/types/index.ts +237 -0
  137. package/connectors/connect-messagebird/src/utils/auth.ts +274 -0
  138. package/connectors/connect-messagebird/src/utils/bulk.ts +212 -0
  139. package/connectors/connect-messagebird/src/utils/config.ts +326 -0
  140. package/connectors/connect-messagebird/src/utils/output.ts +175 -0
  141. package/connectors/connect-messagebird/src/utils/settings.ts +114 -0
  142. package/connectors/connect-messagebird/src/utils/storage.ts +198 -0
  143. package/connectors/connect-messagebird/tsconfig.json +16 -0
  144. package/connectors/connect-miro/.env.example +11 -0
  145. package/connectors/connect-miro/CLAUDE.md +272 -0
  146. package/connectors/connect-miro/README.md +193 -0
  147. package/connectors/connect-miro/package.json +51 -0
  148. package/connectors/connect-miro/scripts/release.ts +179 -0
  149. package/connectors/connect-miro/src/api/client.ts +213 -0
  150. package/connectors/connect-miro/src/api/example.ts +48 -0
  151. package/connectors/connect-miro/src/api/index.ts +51 -0
  152. package/connectors/connect-miro/src/cli/index.ts +254 -0
  153. package/connectors/connect-miro/src/index.ts +103 -0
  154. package/connectors/connect-miro/src/types/index.ts +237 -0
  155. package/connectors/connect-miro/src/utils/auth.ts +274 -0
  156. package/connectors/connect-miro/src/utils/bulk.ts +212 -0
  157. package/connectors/connect-miro/src/utils/config.ts +326 -0
  158. package/connectors/connect-miro/src/utils/output.ts +175 -0
  159. package/connectors/connect-miro/src/utils/settings.ts +114 -0
  160. package/connectors/connect-miro/src/utils/storage.ts +198 -0
  161. package/connectors/connect-miro/tsconfig.json +16 -0
  162. package/connectors/connect-monday/.env.example +11 -0
  163. package/connectors/connect-monday/CLAUDE.md +128 -0
  164. package/connectors/connect-monday/README.md +193 -0
  165. package/connectors/connect-monday/package.json +52 -0
  166. package/connectors/connect-monday/src/api/client.ts +59 -0
  167. package/connectors/connect-monday/src/api/index.ts +539 -0
  168. package/connectors/connect-monday/src/cli/index.ts +479 -0
  169. package/connectors/connect-monday/src/index.ts +19 -0
  170. package/connectors/connect-monday/src/types/index.ts +274 -0
  171. package/connectors/connect-monday/src/utils/config.ts +197 -0
  172. package/connectors/connect-monday/src/utils/output.ts +119 -0
  173. package/connectors/connect-monday/tsconfig.json +16 -0
  174. package/connectors/connect-pipedrive/.env.example +11 -0
  175. package/connectors/connect-pipedrive/CLAUDE.md +128 -0
  176. package/connectors/connect-pipedrive/README.md +193 -0
  177. package/connectors/connect-pipedrive/package.json +52 -0
  178. package/connectors/connect-pipedrive/src/api/client.ts +121 -0
  179. package/connectors/connect-pipedrive/src/api/index.ts +306 -0
  180. package/connectors/connect-pipedrive/src/cli/index.ts +824 -0
  181. package/connectors/connect-pipedrive/src/index.ts +19 -0
  182. package/connectors/connect-pipedrive/src/types/index.ts +335 -0
  183. package/connectors/connect-pipedrive/src/utils/config.ts +171 -0
  184. package/connectors/connect-pipedrive/src/utils/output.ts +119 -0
  185. package/connectors/connect-pipedrive/tsconfig.json +16 -0
  186. package/connectors/connect-pusher/.env.example +11 -0
  187. package/connectors/connect-pusher/CLAUDE.md +272 -0
  188. package/connectors/connect-pusher/README.md +193 -0
  189. package/connectors/connect-pusher/package.json +51 -0
  190. package/connectors/connect-pusher/scripts/release.ts +179 -0
  191. package/connectors/connect-pusher/src/api/client.ts +213 -0
  192. package/connectors/connect-pusher/src/api/example.ts +48 -0
  193. package/connectors/connect-pusher/src/api/index.ts +51 -0
  194. package/connectors/connect-pusher/src/cli/index.ts +254 -0
  195. package/connectors/connect-pusher/src/index.ts +103 -0
  196. package/connectors/connect-pusher/src/types/index.ts +237 -0
  197. package/connectors/connect-pusher/src/utils/auth.ts +274 -0
  198. package/connectors/connect-pusher/src/utils/bulk.ts +212 -0
  199. package/connectors/connect-pusher/src/utils/config.ts +326 -0
  200. package/connectors/connect-pusher/src/utils/output.ts +175 -0
  201. package/connectors/connect-pusher/src/utils/settings.ts +114 -0
  202. package/connectors/connect-pusher/src/utils/storage.ts +198 -0
  203. package/connectors/connect-pusher/tsconfig.json +16 -0
  204. package/connectors/connect-vonage/.env.example +11 -0
  205. package/connectors/connect-vonage/CLAUDE.md +272 -0
  206. package/connectors/connect-vonage/README.md +193 -0
  207. package/connectors/connect-vonage/package.json +51 -0
  208. package/connectors/connect-vonage/scripts/release.ts +179 -0
  209. package/connectors/connect-vonage/src/api/client.ts +213 -0
  210. package/connectors/connect-vonage/src/api/example.ts +48 -0
  211. package/connectors/connect-vonage/src/api/index.ts +51 -0
  212. package/connectors/connect-vonage/src/cli/index.ts +254 -0
  213. package/connectors/connect-vonage/src/index.ts +103 -0
  214. package/connectors/connect-vonage/src/types/index.ts +237 -0
  215. package/connectors/connect-vonage/src/utils/auth.ts +274 -0
  216. package/connectors/connect-vonage/src/utils/bulk.ts +212 -0
  217. package/connectors/connect-vonage/src/utils/config.ts +326 -0
  218. package/connectors/connect-vonage/src/utils/output.ts +175 -0
  219. package/connectors/connect-vonage/src/utils/settings.ts +114 -0
  220. package/connectors/connect-vonage/src/utils/storage.ts +198 -0
  221. package/connectors/connect-vonage/tsconfig.json +16 -0
  222. package/dist/index.js +91 -0
  223. package/package.json +1 -1
package/bin/index.js CHANGED
@@ -2710,6 +2710,97 @@ var init_registry = __esm(() => {
2710
2710
  description: "AI video and 3D generation",
2711
2711
  category: "AI & ML",
2712
2712
  tags: ["ai", "video", "3d"]
2713
+ },
2714
+ {
2715
+ name: "linode",
2716
+ displayName: "Linode",
2717
+ description: "Cloud computing and hosting",
2718
+ category: "Developer Tools",
2719
+ tags: ["cloud", "hosting", "vps"]
2720
+ },
2721
+ {
2722
+ name: "mailgun",
2723
+ displayName: "Mailgun",
2724
+ description: "Email delivery API",
2725
+ category: "Communication",
2726
+ tags: ["email", "api", "transactional"]
2727
+ },
2728
+ {
2729
+ name: "pusher",
2730
+ displayName: "Pusher",
2731
+ description: "Realtime messaging and channels",
2732
+ category: "Communication",
2733
+ tags: ["realtime", "websockets", "messaging"]
2734
+ },
2735
+ {
2736
+ name: "ably",
2737
+ displayName: "Ably",
2738
+ description: "Realtime messaging infrastructure",
2739
+ category: "Communication",
2740
+ tags: ["realtime", "messaging", "pubsub"]
2741
+ },
2742
+ {
2743
+ name: "vonage",
2744
+ displayName: "Vonage",
2745
+ description: "SMS, voice, and messaging APIs",
2746
+ category: "Communication",
2747
+ tags: ["sms", "voice", "messaging"]
2748
+ },
2749
+ {
2750
+ name: "messagebird",
2751
+ displayName: "MessageBird",
2752
+ description: "Omnichannel messaging platform",
2753
+ category: "Communication",
2754
+ tags: ["sms", "messaging", "omnichannel"]
2755
+ },
2756
+ {
2757
+ name: "pipedrive",
2758
+ displayName: "Pipedrive",
2759
+ description: "Sales CRM and pipeline management",
2760
+ category: "Business Tools",
2761
+ tags: ["crm", "sales", "pipeline"]
2762
+ },
2763
+ {
2764
+ name: "clearbit",
2765
+ displayName: "Clearbit",
2766
+ description: "Business intelligence and data enrichment",
2767
+ category: "Data & Analytics",
2768
+ tags: ["enrichment", "data", "b2b"]
2769
+ },
2770
+ {
2771
+ name: "coda",
2772
+ displayName: "Coda",
2773
+ description: "Docs, tables, and automations",
2774
+ category: "Business Tools",
2775
+ tags: ["docs", "tables", "automation"]
2776
+ },
2777
+ {
2778
+ name: "monday",
2779
+ displayName: "Monday.com",
2780
+ description: "Work management and project tracking",
2781
+ category: "Business Tools",
2782
+ tags: ["project-management", "workflow"]
2783
+ },
2784
+ {
2785
+ name: "dropbox",
2786
+ displayName: "Dropbox",
2787
+ description: "Cloud file storage and sharing",
2788
+ category: "Business Tools",
2789
+ tags: ["storage", "files", "sharing"]
2790
+ },
2791
+ {
2792
+ name: "box",
2793
+ displayName: "Box",
2794
+ description: "Enterprise content management",
2795
+ category: "Business Tools",
2796
+ tags: ["storage", "enterprise", "content"]
2797
+ },
2798
+ {
2799
+ name: "miro",
2800
+ displayName: "Miro",
2801
+ description: "Visual collaboration and whiteboarding",
2802
+ category: "Business Tools",
2803
+ tags: ["whiteboard", "collaboration", "design"]
2713
2804
  }
2714
2805
  ];
2715
2806
  });
@@ -7190,7 +7281,7 @@ var PRESETS = {
7190
7281
  commerce: { description: "Commerce and finance", connectors: ["stripe", "shopify", "revolut", "mercury", "pandadoc"] }
7191
7282
  };
7192
7283
  var program2 = new Command;
7193
- program2.name("connectors").description("Install API connectors for your project").version("0.5.0").enablePositionalOptions();
7284
+ program2.name("connectors").description("Install API connectors for your project").version("0.5.2").enablePositionalOptions();
7194
7285
  program2.command("interactive", { isDefault: true }).alias("i").description("Interactive connector browser").action(() => {
7195
7286
  if (!isTTY) {
7196
7287
  console.log(`Non-interactive environment detected. Use a subcommand:
@@ -8653,7 +8744,9 @@ program2.command("whoami").option("--json", "Output as JSON", false).description
8653
8744
  let configured = 0;
8654
8745
  let unconfigured = 0;
8655
8746
  const connectorDetails = [];
8747
+ const seen = new Set;
8656
8748
  for (const name of installed) {
8749
+ seen.add(name);
8657
8750
  const auth = getAuthStatus(name);
8658
8751
  if (auth.configured)
8659
8752
  configured++;
@@ -8667,7 +8760,38 @@ program2.command("whoami").option("--json", "Output as JSON", false).description
8667
8760
  profile = readFileSync5(currentProfileFile, "utf-8").trim() || "default";
8668
8761
  } catch {}
8669
8762
  }
8670
- connectorDetails.push({ name, configured: auth.configured, authType: auth.type, profile });
8763
+ connectorDetails.push({ name, configured: auth.configured, authType: auth.type, profile, source: "project" });
8764
+ }
8765
+ if (existsSync6(configDir)) {
8766
+ try {
8767
+ const globalDirs = readdirSync4(configDir).filter((f) => {
8768
+ if (!f.startsWith("connect-"))
8769
+ return false;
8770
+ try {
8771
+ return statSync3(join6(configDir, f)).isDirectory();
8772
+ } catch {
8773
+ return false;
8774
+ }
8775
+ });
8776
+ for (const dir of globalDirs) {
8777
+ const name = dir.replace("connect-", "");
8778
+ if (seen.has(name))
8779
+ continue;
8780
+ const auth = getAuthStatus(name);
8781
+ if (!auth.configured)
8782
+ continue;
8783
+ seen.add(name);
8784
+ configured++;
8785
+ const currentProfileFile = join6(configDir, dir, "current_profile");
8786
+ let profile = "default";
8787
+ if (existsSync6(currentProfileFile)) {
8788
+ try {
8789
+ profile = readFileSync5(currentProfileFile, "utf-8").trim() || "default";
8790
+ } catch {}
8791
+ }
8792
+ connectorDetails.push({ name, configured: true, authType: auth.type, profile, source: "global" });
8793
+ }
8794
+ } catch {}
8671
8795
  }
8672
8796
  if (options.json) {
8673
8797
  console.log(JSON.stringify({
@@ -8688,17 +8812,34 @@ Connectors Setup
8688
8812
  console.log(` Config: ${configDir}${existsSync6(configDir) ? "" : chalk2.dim(" (not created yet)")}`);
8689
8813
  console.log(` Installed: ${installed.length} connector${installed.length !== 1 ? "s" : ""}`);
8690
8814
  console.log(` Configured: ${chalk2.green(String(configured))} ready, ${unconfigured > 0 ? chalk2.red(String(unconfigured)) : chalk2.dim("0")} need auth`);
8691
- if (connectorDetails.length > 0) {
8815
+ const projectConnectors = connectorDetails.filter((c) => c.source === "project");
8816
+ const globalConnectors = connectorDetails.filter((c) => c.source === "global");
8817
+ if (projectConnectors.length > 0) {
8818
+ console.log(chalk2.bold(`
8819
+ Project Connectors:
8820
+ `));
8821
+ const nameWidth = Math.max(10, ...projectConnectors.map((c) => c.name.length)) + 2;
8822
+ for (const c of projectConnectors) {
8823
+ const status = c.configured ? chalk2.green("\u2713") : chalk2.red("\u2717");
8824
+ const profileLabel = c.profile !== "default" ? chalk2.dim(` [${c.profile}]`) : "";
8825
+ console.log(` ${status} ${chalk2.cyan(c.name.padEnd(nameWidth))}${c.authType.padEnd(8)}${profileLabel}`);
8826
+ }
8827
+ }
8828
+ if (globalConnectors.length > 0) {
8692
8829
  console.log(chalk2.bold(`
8693
- Connectors:
8830
+ Global Connectors`) + chalk2.dim(" (~/.connectors)") + chalk2.bold(`:
8694
8831
  `));
8695
- const nameWidth = Math.max(10, ...connectorDetails.map((c) => c.name.length)) + 2;
8696
- for (const c of connectorDetails) {
8832
+ const nameWidth = Math.max(10, ...globalConnectors.map((c) => c.name.length)) + 2;
8833
+ for (const c of globalConnectors) {
8697
8834
  const status = c.configured ? chalk2.green("\u2713") : chalk2.red("\u2717");
8698
8835
  const profileLabel = c.profile !== "default" ? chalk2.dim(` [${c.profile}]`) : "";
8699
8836
  console.log(` ${status} ${chalk2.cyan(c.name.padEnd(nameWidth))}${c.authType.padEnd(8)}${profileLabel}`);
8700
8837
  }
8701
8838
  }
8839
+ if (connectorDetails.length === 0) {
8840
+ console.log(chalk2.dim(`
8841
+ No connectors installed or configured.`));
8842
+ }
8702
8843
  console.log();
8703
8844
  });
8704
8845
  program2.command("test").argument("[connector]", "Connector to test (default: all installed)").option("--json", "Output as JSON", false).option("--timeout <ms>", "Request timeout in milliseconds", "10000").description("Verify API credentials by making a real request to the connector's API").action(async (connector, options) => {
package/bin/mcp.js CHANGED
@@ -20198,6 +20198,97 @@ var CONNECTORS = [
20198
20198
  description: "AI video and 3D generation",
20199
20199
  category: "AI & ML",
20200
20200
  tags: ["ai", "video", "3d"]
20201
+ },
20202
+ {
20203
+ name: "linode",
20204
+ displayName: "Linode",
20205
+ description: "Cloud computing and hosting",
20206
+ category: "Developer Tools",
20207
+ tags: ["cloud", "hosting", "vps"]
20208
+ },
20209
+ {
20210
+ name: "mailgun",
20211
+ displayName: "Mailgun",
20212
+ description: "Email delivery API",
20213
+ category: "Communication",
20214
+ tags: ["email", "api", "transactional"]
20215
+ },
20216
+ {
20217
+ name: "pusher",
20218
+ displayName: "Pusher",
20219
+ description: "Realtime messaging and channels",
20220
+ category: "Communication",
20221
+ tags: ["realtime", "websockets", "messaging"]
20222
+ },
20223
+ {
20224
+ name: "ably",
20225
+ displayName: "Ably",
20226
+ description: "Realtime messaging infrastructure",
20227
+ category: "Communication",
20228
+ tags: ["realtime", "messaging", "pubsub"]
20229
+ },
20230
+ {
20231
+ name: "vonage",
20232
+ displayName: "Vonage",
20233
+ description: "SMS, voice, and messaging APIs",
20234
+ category: "Communication",
20235
+ tags: ["sms", "voice", "messaging"]
20236
+ },
20237
+ {
20238
+ name: "messagebird",
20239
+ displayName: "MessageBird",
20240
+ description: "Omnichannel messaging platform",
20241
+ category: "Communication",
20242
+ tags: ["sms", "messaging", "omnichannel"]
20243
+ },
20244
+ {
20245
+ name: "pipedrive",
20246
+ displayName: "Pipedrive",
20247
+ description: "Sales CRM and pipeline management",
20248
+ category: "Business Tools",
20249
+ tags: ["crm", "sales", "pipeline"]
20250
+ },
20251
+ {
20252
+ name: "clearbit",
20253
+ displayName: "Clearbit",
20254
+ description: "Business intelligence and data enrichment",
20255
+ category: "Data & Analytics",
20256
+ tags: ["enrichment", "data", "b2b"]
20257
+ },
20258
+ {
20259
+ name: "coda",
20260
+ displayName: "Coda",
20261
+ description: "Docs, tables, and automations",
20262
+ category: "Business Tools",
20263
+ tags: ["docs", "tables", "automation"]
20264
+ },
20265
+ {
20266
+ name: "monday",
20267
+ displayName: "Monday.com",
20268
+ description: "Work management and project tracking",
20269
+ category: "Business Tools",
20270
+ tags: ["project-management", "workflow"]
20271
+ },
20272
+ {
20273
+ name: "dropbox",
20274
+ displayName: "Dropbox",
20275
+ description: "Cloud file storage and sharing",
20276
+ category: "Business Tools",
20277
+ tags: ["storage", "files", "sharing"]
20278
+ },
20279
+ {
20280
+ name: "box",
20281
+ displayName: "Box",
20282
+ description: "Enterprise content management",
20283
+ category: "Business Tools",
20284
+ tags: ["storage", "enterprise", "content"]
20285
+ },
20286
+ {
20287
+ name: "miro",
20288
+ displayName: "Miro",
20289
+ description: "Visual collaboration and whiteboarding",
20290
+ category: "Business Tools",
20291
+ tags: ["whiteboard", "collaboration", "design"]
20201
20292
  }
20202
20293
  ];
20203
20294
  function getConnectorsByCategory(category) {
@@ -20672,7 +20763,7 @@ async function getConnectorCommandHelp(name, command) {
20672
20763
  loadConnectorVersions();
20673
20764
  var server = new McpServer({
20674
20765
  name: "connectors",
20675
- version: "0.5.0"
20766
+ version: "0.5.2"
20676
20767
  });
20677
20768
  server.registerTool("search_connectors", {
20678
20769
  title: "Search Connectors",
package/bin/serve.js CHANGED
@@ -803,6 +803,97 @@ var CONNECTORS = [
803
803
  description: "AI video and 3D generation",
804
804
  category: "AI & ML",
805
805
  tags: ["ai", "video", "3d"]
806
+ },
807
+ {
808
+ name: "linode",
809
+ displayName: "Linode",
810
+ description: "Cloud computing and hosting",
811
+ category: "Developer Tools",
812
+ tags: ["cloud", "hosting", "vps"]
813
+ },
814
+ {
815
+ name: "mailgun",
816
+ displayName: "Mailgun",
817
+ description: "Email delivery API",
818
+ category: "Communication",
819
+ tags: ["email", "api", "transactional"]
820
+ },
821
+ {
822
+ name: "pusher",
823
+ displayName: "Pusher",
824
+ description: "Realtime messaging and channels",
825
+ category: "Communication",
826
+ tags: ["realtime", "websockets", "messaging"]
827
+ },
828
+ {
829
+ name: "ably",
830
+ displayName: "Ably",
831
+ description: "Realtime messaging infrastructure",
832
+ category: "Communication",
833
+ tags: ["realtime", "messaging", "pubsub"]
834
+ },
835
+ {
836
+ name: "vonage",
837
+ displayName: "Vonage",
838
+ description: "SMS, voice, and messaging APIs",
839
+ category: "Communication",
840
+ tags: ["sms", "voice", "messaging"]
841
+ },
842
+ {
843
+ name: "messagebird",
844
+ displayName: "MessageBird",
845
+ description: "Omnichannel messaging platform",
846
+ category: "Communication",
847
+ tags: ["sms", "messaging", "omnichannel"]
848
+ },
849
+ {
850
+ name: "pipedrive",
851
+ displayName: "Pipedrive",
852
+ description: "Sales CRM and pipeline management",
853
+ category: "Business Tools",
854
+ tags: ["crm", "sales", "pipeline"]
855
+ },
856
+ {
857
+ name: "clearbit",
858
+ displayName: "Clearbit",
859
+ description: "Business intelligence and data enrichment",
860
+ category: "Data & Analytics",
861
+ tags: ["enrichment", "data", "b2b"]
862
+ },
863
+ {
864
+ name: "coda",
865
+ displayName: "Coda",
866
+ description: "Docs, tables, and automations",
867
+ category: "Business Tools",
868
+ tags: ["docs", "tables", "automation"]
869
+ },
870
+ {
871
+ name: "monday",
872
+ displayName: "Monday.com",
873
+ description: "Work management and project tracking",
874
+ category: "Business Tools",
875
+ tags: ["project-management", "workflow"]
876
+ },
877
+ {
878
+ name: "dropbox",
879
+ displayName: "Dropbox",
880
+ description: "Cloud file storage and sharing",
881
+ category: "Business Tools",
882
+ tags: ["storage", "files", "sharing"]
883
+ },
884
+ {
885
+ name: "box",
886
+ displayName: "Box",
887
+ description: "Enterprise content management",
888
+ category: "Business Tools",
889
+ tags: ["storage", "enterprise", "content"]
890
+ },
891
+ {
892
+ name: "miro",
893
+ displayName: "Miro",
894
+ description: "Visual collaboration and whiteboarding",
895
+ category: "Business Tools",
896
+ tags: ["whiteboard", "collaboration", "design"]
806
897
  }
807
898
  ];
808
899
  function getConnector(name) {
@@ -0,0 +1,11 @@
1
+ # API Credentials
2
+ # TODO: Update variable names and instructions for your API
3
+ # Example: PERPLEXITY_API_KEY, OPENAI_API_KEY, etc.
4
+
5
+ CONNECTOR_API_KEY=your-api-key-here
6
+
7
+ # Optional: API secret (if your API requires it)
8
+ # CONNECTOR_API_SECRET=your-api-secret-here
9
+
10
+ # Optional: Custom base URL (if needed)
11
+ # CONNECTOR_BASE_URL=https://api.example.com
@@ -0,0 +1,111 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ connect-ably is a TypeScript connector for the Ably REST API. It provides a CLI and library for publishing messages, managing channels, querying presence, and retrieving statistics via the Ably platform.
8
+
9
+ ## Build & Run Commands
10
+
11
+ ```bash
12
+ bun install # Install dependencies
13
+ bun run dev # Run CLI in development
14
+ bun run build # Build for distribution
15
+ bun run typecheck # Type check
16
+
17
+ # Run specific commands
18
+ bun run dev config show
19
+ bun run dev messages publish my-channel --name greeting --data '{"text":"hello"}'
20
+ bun run dev messages history my-channel
21
+ bun run dev channels list
22
+ bun run dev channels get my-channel
23
+ bun run dev presence get my-channel
24
+ bun run dev presence history my-channel
25
+ bun run dev stats get
26
+ bun run dev stats time
27
+ bun run dev profile list
28
+ ```
29
+
30
+ ## Code Style
31
+
32
+ - TypeScript with strict mode
33
+ - ESM modules (type: module)
34
+ - Use async/await for all async operations
35
+ - Minimal dependencies: commander, chalk only
36
+ - Type annotations required everywhere
37
+
38
+ ## Project Structure
39
+
40
+ ```
41
+ src/
42
+ ├── api/
43
+ │ ├── client.ts # HTTP client with Basic auth, retry, timeout
44
+ │ ├── messages.ts # Messages API (publish, history)
45
+ │ ├── channels.ts # Channels API (list, get)
46
+ │ ├── presence.ts # Presence API (get, history)
47
+ │ ├── stats.ts # Stats API (get, time)
48
+ │ └── index.ts # Main Connector class
49
+ ├── cli/
50
+ │ └── index.ts # CLI commands
51
+ ├── types/
52
+ │ └── index.ts # Type definitions
53
+ ├── utils/
54
+ │ ├── auth.ts # OAuth2 authentication
55
+ │ ├── bulk.ts # Bulk operation utilities
56
+ │ ├── config.ts # Multi-profile configuration
57
+ │ ├── output.ts # CLI output formatting
58
+ │ ├── settings.ts # User preferences storage
59
+ │ └── storage.ts # Local data storage
60
+ ├── index.ts # Library exports
61
+ scripts/
62
+ └── release.ts # Release automation
63
+ ```
64
+
65
+ ## API Details
66
+
67
+ - **Base URL**: `https://rest.ably.io`
68
+ - **Auth**: HTTP Basic Auth with API key (`Authorization: Basic base64(apiKey)`)
69
+ - **API Key Format**: `appId.keyId:keySecret`
70
+ - **Endpoints**:
71
+ - `POST /channels/{channelId}/messages` - Publish a message
72
+ - `GET /channels/{channelId}/messages` - Message history
73
+ - `GET /channels` - List active channels
74
+ - `GET /channels/{channelId}` - Get channel details
75
+ - `GET /channels/{channelId}/presence` - Current presence members
76
+ - `GET /channels/{channelId}/presence/history` - Presence history
77
+ - `GET /stats` - Application statistics
78
+ - `GET /time` - Server time
79
+
80
+ ## Environment Variables
81
+
82
+ | Variable | Description |
83
+ |----------|-------------|
84
+ | `ABLY_API_KEY` | API key (overrides profile) |
85
+ | `ABLY_TOKEN` | Token (alias for API key) |
86
+ | `ABLY_API_SECRET` | API secret (optional) |
87
+
88
+ ## CLI Global Flags
89
+
90
+ | Flag | Description |
91
+ |------|-------------|
92
+ | `-k, --api-key <key>` | Override API key for this command |
93
+ | `-p, --profile <name>` | Use specific profile |
94
+ | `-f, --format <format>` | Output format (json, pretty) |
95
+ | `-v, --verbose` | Enable debug output |
96
+
97
+ ## Data Storage
98
+
99
+ ```
100
+ ~/.connect/connect-ably/
101
+ ├── current_profile # Active profile name
102
+ ├── settings.json # User preferences
103
+ └── profiles/
104
+ ├── default.json # Default profile
105
+ └── {name}.json # Named profiles
106
+ ```
107
+
108
+ ## Dependencies
109
+
110
+ - commander: CLI framework
111
+ - chalk: Terminal styling