@kadoa/mcp 0.5.13 → 0.5.14

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.
package/README.md CHANGED
@@ -24,16 +24,17 @@ claude mcp add kadoa --transport http https://mcp.kadoa.com/mcp
24
24
  2. Enter the URL: `https://mcp.kadoa.com/mcp`
25
25
  3. Sign in with your Kadoa account via OAuth
26
26
 
27
- ### Claude organization shared workspace
27
+ ### Claude service connector
28
28
 
29
- A Kadoa workspace admin can generate organization connector credentials under **Workspace settings → Claude connector**. The generated OAuth client is fixed to that workspace's service account.
29
+ A Kadoa workspace admin can generate service connector credentials under **Workspace settings → MCP connector**. The generated OAuth client is fixed to that workspace's service account.
30
30
 
31
31
  1. In Kadoa, select **Generate credentials** and copy the MCP URL, OAuth Client ID, and OAuth Client Secret. The secret is shown once.
32
32
  2. In Claude organization **Admin settings → Connectors**, select **Add custom connector**.
33
- 3. Enter `https://mcp.kadoa.com/mcp` and paste the generated OAuth Client ID/Secret under Advanced settings.
34
- 4. Organization members find the custom connector under **Settings Connectors** and select **Connect**.
33
+ 3. Enter `https://service.mcp.kadoa.com/mcp` and paste the generated OAuth Client ID/Secret under Advanced settings.
34
+ 4. In the connector's tool settings, allow only the tools that organization members should use.
35
+ 5. Organization members find the custom connector under **Settings → Connectors** and select **Connect**.
35
36
 
36
- Members do not need Kadoa accounts. All actions are attributed to the shared Kadoa service account, and team switching is unavailable. To rotate access, rotate the secret in Kadoa, replace it in Claude, and reconnect. Revoking the connector stops access immediately.
37
+ The service connector uses a separate hostname from the personal connector at `https://mcp.kadoa.com/mcp`, so Claude users can configure both. Members do not need Kadoa accounts. All actions are attributed to the shared Kadoa service account, and team switching is unavailable. To rotate access, rotate the secret in Kadoa, replace it in Claude, and reconnect. Revoking the connector stops access immediately.
37
38
 
38
39
  Do not paste a Kadoa workspace API key into Claude.
39
40
 
package/dist/index.js CHANGED
@@ -53662,7 +53662,7 @@ var package_default;
53662
53662
  var init_package = __esm(() => {
53663
53663
  package_default = {
53664
53664
  name: "@kadoa/mcp",
53665
- version: "0.5.13",
53665
+ version: "0.5.14",
53666
53666
  description: "Kadoa MCP Server — manage workflows from Claude Desktop, Cursor, and other MCP clients",
53667
53667
  type: "module",
53668
53668
  main: "dist/index.js",
@@ -57695,6 +57695,15 @@ var init_bearerAuth = __esm(() => {
57695
57695
  init_errors4();
57696
57696
  });
57697
57697
 
57698
+ // src/managed-connector-client.ts
57699
+ function isManagedConnectorClientId(clientId) {
57700
+ return MANAGED_CONNECTOR_CLIENT_ID_PREFIXES.some((prefix) => clientId.startsWith(prefix));
57701
+ }
57702
+ var MANAGED_CONNECTOR_CLIENT_ID_PREFIXES;
57703
+ var init_managed_connector_client = __esm(() => {
57704
+ MANAGED_CONNECTOR_CLIENT_ID_PREFIXES = ["kadoa_mcp_", "kadoa_claude_"];
57705
+ });
57706
+
57698
57707
  // src/managed-connector-registry.ts
57699
57708
  class ManagedConnectorRegistry {
57700
57709
  baseUrl;
@@ -57894,7 +57903,7 @@ class KadoaOAuthProvider {
57894
57903
  const thisProvider = this;
57895
57904
  return {
57896
57905
  async getClient(clientId) {
57897
- if (clientId.startsWith("kadoa_claude_")) {
57906
+ if (isManagedConnectorClientId(clientId)) {
57898
57907
  const connector = await thisProvider.getManagedRegistry().get(clientId);
57899
57908
  if (!connector)
57900
57909
  return;
@@ -58834,6 +58843,7 @@ function escapeHtml(str) {
58834
58843
  var TEAM_SELECTION_TTL, ACCESS_TOKEN_TTL;
58835
58844
  var init_auth2 = __esm(() => {
58836
58845
  init_errors4();
58846
+ init_managed_connector_client();
58837
58847
  init_managed_connector_registry();
58838
58848
  TEAM_SELECTION_TTL = 10 * 60 * 1000;
58839
58849
  ACCESS_TOKEN_TTL = 7 * 24 * 3600;
@@ -58954,7 +58964,7 @@ function managedTokenHandler(options) {
58954
58964
  return async (req, res, next) => {
58955
58965
  const body = req.body ?? {};
58956
58966
  const clientId = typeof body.client_id === "string" ? body.client_id : "";
58957
- if (!clientId.startsWith("kadoa_claude_")) {
58967
+ if (!isManagedConnectorClientId(clientId)) {
58958
58968
  next();
58959
58969
  return;
58960
58970
  }
@@ -59001,6 +59011,7 @@ function managedTokenHandler(options) {
59001
59011
  }
59002
59012
  var init_managed_token_handler = __esm(() => {
59003
59013
  init_errors4();
59014
+ init_managed_connector_client();
59004
59015
  init_managed_connector_registry();
59005
59016
  });
59006
59017
 
@@ -59064,7 +59075,7 @@ async function startHttpServer(options) {
59064
59075
  limit: 50,
59065
59076
  standardHeaders: true,
59066
59077
  legacyHeaders: false,
59067
- skip: (req) => !String(req.body?.client_id ?? "").startsWith("kadoa_claude_"),
59078
+ skip: (req) => !isManagedConnectorClientId(String(req.body?.client_id ?? "")),
59068
59079
  message: {
59069
59080
  error: "too_many_requests",
59070
59081
  error_description: "Too many managed connector token requests"
@@ -59229,6 +59240,7 @@ var init_http2 = __esm(async () => {
59229
59240
  init_auth2();
59230
59241
  init_redis_store();
59231
59242
  init_client2();
59243
+ init_managed_connector_client();
59232
59244
  init_managed_connector_registry();
59233
59245
  init_managed_token_handler();
59234
59246
  await init_src();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kadoa/mcp",
3
- "version": "0.5.13",
3
+ "version": "0.5.14",
4
4
  "description": "Kadoa MCP Server — manage workflows from Claude Desktop, Cursor, and other MCP clients",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",