@transcend-io/mcp 1.2.2 → 1.4.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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **Beta** — this package is under active development. APIs may change without notice.
4
4
 
5
- Unified Transcend MCP Server that combines all domain tools into a single server. This is the "everything in one place" option — install this package when you want access to every Transcend MCP tool at once.
5
+ Unified Transcend MCP Server that combines all domain tools into a single server. This is the "everything in one place" option — install this package when you want access to all 93 Transcend tools at once.
6
6
 
7
7
  Requires **Node.js ≥ 22.12** (see `engines` in `package.json`).
8
8
 
@@ -118,19 +118,21 @@ See [CONTRIBUTING.md](../../../CONTRIBUTING.md#mcp-servers) for workspace layout
118
118
 
119
119
  This package composes all domain MCP packages via `ToolRegistry`, which aggregates tools from each domain (`getConsentTools`, `getDSRTools`, etc.) into a single tool namespace. A composed `TranscendGraphQLClient` mixes in all domain GraphQL capabilities so each tool has access to the API surface it needs.
120
120
 
121
- If the full tool set is too many for your AI agent, install individual domain packages instead — see the [MCP section of the root README](../../../README.md#mcp-servers).
121
+ If 93 tools is too many for your AI agent, install individual domain packages instead — see the [MCP section of the root README](../../../README.md#mcp-servers).
122
122
 
123
123
  ## Related packages
124
124
 
125
- | Package | Binary | Domain |
126
- | -------------------------------------- | --------------------------- | --------------------------------- |
127
- | `@transcend-io/mcp-server-admin` | `transcend-mcp-admin` | Organization, users, API keys |
128
- | `@transcend-io/mcp-server-assessment` | `transcend-mcp-assessment` | Privacy assessments |
129
- | `@transcend-io/mcp-server-consent` | `transcend-mcp-consent` | Consent management, cookie triage |
130
- | `@transcend-io/mcp-server-base` | — | Shared infrastructure |
131
- | `@transcend-io/mcp-server-discovery` | `transcend-mcp-discovery` | Data discovery, classification |
132
- | `@transcend-io/mcp-server-docs` | `transcend-mcp-docs` | Documentation lookup |
133
- | `@transcend-io/mcp-server-dsr` | `transcend-mcp-dsr` | Data subject requests |
134
- | `@transcend-io/mcp-server-inventory` | `transcend-mcp-inventory` | Data inventory, silos, vendors |
135
- | `@transcend-io/mcp-server-preferences` | `transcend-mcp-preferences` | Privacy preferences |
136
- | `@transcend-io/mcp-server-workflows` | `transcend-mcp-workflows` | Workflow configuration |
125
+ | Package | Binary | Domain |
126
+ | ------------------------------------------- | -------------------------------- | --------------------------------- |
127
+ | `@transcend-io/mcp-server-admin` | `transcend-mcp-admin` | Organization, users, API keys |
128
+ | `@transcend-io/mcp-server-assessment` | `transcend-mcp-assessment` | Privacy assessments |
129
+ | `@transcend-io/mcp-server-consent` | `transcend-mcp-consent` | Consent management, cookie triage |
130
+ | `@transcend-io/mcp-server-base` | — | Shared infrastructure |
131
+ | `@transcend-io/mcp-server-custom-functions` | `transcend-mcp-custom-functions` | Custom Function authoring |
132
+ | `@transcend-io/mcp-server-discovery` | `transcend-mcp-discovery` | Data discovery, classification |
133
+ | `@transcend-io/mcp-server-docs` | `transcend-mcp-docs` | Documentation lookup |
134
+ | `@transcend-io/mcp-server-dsr` | `transcend-mcp-dsr` | Data subject requests |
135
+ | `@transcend-io/mcp-server-inventory` | `transcend-mcp-inventory` | Data inventory, silos, vendors |
136
+ | `@transcend-io/mcp-server-preferences` | `transcend-mcp-preferences` | Privacy preferences |
137
+ | `@transcend-io/mcp-server-policy` | `transcend-mcp-policy` | Policy Engine (Rego bundles) |
138
+ | `@transcend-io/mcp-server-workflows` | `transcend-mcp-workflows` | Workflow configuration |
package/dist/cli.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { n as ToolRegistry, r as TranscendGraphQLClient, t as UMBRELLA_OAUTH_SCOPES } from "./oauth-scopes-DSvxpdpo.mjs";
2
+ import { n as ToolRegistry, r as TranscendGraphQLClient, t as UMBRELLA_OAUTH_SCOPES } from "./oauth-scopes-H8XtK3F6.mjs";
3
3
  import { SimpleLogger, buildMcpServer, configureOAuthScopes, createTranscendRestClient, isOAuthModeEnabled, parseTransportArgs, readSombraEnvConfig, resolveMcpDashboardUrl, resolveMcpGraphqlUrl, resolveStdioStartupAuthOptional, runMcpHttp } from "@transcend-io/mcp-server-base";
4
4
  import { getDsrPrompts } from "@transcend-io/mcp-server-dsr";
5
5
  import { getConsentPrompts } from "@transcend-io/mcp-server-consent";
6
6
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
7
7
  //#region package.json
8
- var version = "1.2.2";
8
+ var version = "1.4.0";
9
9
  //#endregion
10
10
  //#region src/server-instructions.ts
11
11
  /** MCP initialize instructions for the unified @transcend-io/mcp server. */
@@ -27,7 +27,9 @@ function createToolRegistry(auth, sombraUrl, sombraCustomerKey, graphqlUrl, dash
27
27
  sombraCustomerKey
28
28
  }),
29
29
  graphql: graphqlClient,
30
- dashboardUrl
30
+ dashboardUrl,
31
+ transcendApiUrl: graphqlUrl,
32
+ auth
31
33
  });
32
34
  }
33
35
  async function main() {
package/dist/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.mjs","names":["packageJson.version"],"sources":["../package.json","../src/server-instructions.ts","../src/cli.ts"],"mappings":";;;;;;;;;;;ACCA,MAAa,oCACX;;;ACwBF,MAAM,UAAUA;AAEhB,MAAM,qBAAqB;CACzB,MAAM;CACN,SAAS;CACT,cAAc;CACd,SAAS,CAAC,GAAG,mBAAmB,EAAE,GAAG,eAAe,CAAC;CACtD;AAED,SAAS,mBACP,MACA,WACA,mBACA,YACA,cACc;CACd,MAAM,gBAAgB,IAAI,uBAAuB,MAAM,WAAW;AAKlE,QAAO,IAAI,aAAa;EAAE,MAJP,0BAA0B,MAAM,eAAe;GAChE;GACA;GACD,CACyC;EAAE,SAAS;EAAe;EAAc,CAAC;;AAGrF,eAAe,OAAsB;CACnC,MAAM,SAAS,oBAAoB;CACnC,MAAM,kBAAkB,OAAO,cAAc;AAC7C,cAAa,gBAAgB,gBAAgB;CAC7C,MAAM,SAAS,IAAI,cAAc;CACjC,MAAM,EAAE,WAAW,sBAAsB,qBAAqB;CAC9D,MAAM,eAAe,wBAAwB;CAC7C,MAAM,aAAa,MAAM,qBAAqB,OAAO;AAErD,KAAI,iBAAiB;AACnB,QAAM,WACJ;GACE,MAAM;GACN,SAAS;GACT,cAAc,OAAO,SAAS;AAC5B,WAAO,KAAK,uDAAuD;KACjE,WAAW,aAAa;KACxB;KACA;KACA,UAAU,MAAM,QAAQ;KACxB,sBAAsB,QAAQ,kBAAkB;KACjD,CAAC;IACF,MAAM,WAAW,mBACf,MACA,WACA,mBACA,YACA,aACD;AACD,WAAO,eAAe;KACpB,GAAG;KACH,OAAO,SAAS,aAAa;KAC7B,WAAW;KACZ,CAAC;;GAEL,EACD,OACD;AACD;;AAIF,sBAAqB,sBAAsB;CAC3C,MAAM,OAAO,iCAAiC;AAC9C,QAAO,KAAK,yCAAyC;EACnD,WAAW,aAAa;EACxB;EACA;EACA,UAAU,MAAM,SAAS,oBAAoB,GAAG,kBAAkB;EACnE,CAAC;CAEF,MAAM,eAAe,mBACnB,MACA,WACA,mBACA,YACA,aACD;AAED,QAAO,KACL,cAAc,aAAa,cAAc,CAAC,gBAAgB,aAAa,eAAe,CAAC,OAAO,cAC9F;EACE,YAAY,aAAa,eAAe;EACxC,WAAW,aAAa,cAAc;EACvC,CACF;CAED,MAAM,SAAS,eAAe;EAC5B,GAAG;EACH,OAAO,aAAa,aAAa;EACjC,WAAW;EACZ,CAAC;AAEF,QAAO,KAAK,kCAAkC,QAAQ,MAAM;EAC1D,WAAW,aAAa,cAAc;EACtC,YAAY,aAAa,eAAe;EACzC,CAAC;CAEF,MAAM,YAAY,IAAI,sBAAsB;AAC5C,OAAM,OAAO,QAAQ,UAAU;AAE/B,QAAO,KAAK,6CAA6C;EACvD,WAAW,aAAa;EACxB;EACA;EACA,OAAO,aAAa,cAAc;EACnC,CAAC;;AAGJ,MAAM,CAAC,OAAO,UAAU;AAEtB,KADmB,cACb,CAAC,MAAM,2BAA2B,MAAM;AAC9C,SAAQ,KAAK,EAAE;EACf"}
1
+ {"version":3,"file":"cli.mjs","names":["packageJson.version"],"sources":["../package.json","../src/server-instructions.ts","../src/cli.ts"],"mappings":";;;;;;;;;;;ACCA,MAAa,oCACX;;;ACwBF,MAAM,UAAUA;AAEhB,MAAM,qBAAqB;CACzB,MAAM;CACN,SAAS;CACT,cAAc;CACd,SAAS,CAAC,GAAG,mBAAmB,EAAE,GAAG,eAAe,CAAC;CACtD;AAED,SAAS,mBACP,MACA,WACA,mBACA,YACA,cACc;CACd,MAAM,gBAAgB,IAAI,uBAAuB,MAAM,WAAW;AAKlE,QAAO,IAAI,aAAa;EACtB,MALiB,0BAA0B,MAAM,eAAe;GAChE;GACA;GACD,CAEiB;EAChB,SAAS;EACT;EACA,iBAAiB;EACjB;EACD,CAAC;;AAGJ,eAAe,OAAsB;CACnC,MAAM,SAAS,oBAAoB;CACnC,MAAM,kBAAkB,OAAO,cAAc;AAC7C,cAAa,gBAAgB,gBAAgB;CAC7C,MAAM,SAAS,IAAI,cAAc;CACjC,MAAM,EAAE,WAAW,sBAAsB,qBAAqB;CAC9D,MAAM,eAAe,wBAAwB;CAC7C,MAAM,aAAa,MAAM,qBAAqB,OAAO;AAErD,KAAI,iBAAiB;AACnB,QAAM,WACJ;GACE,MAAM;GACN,SAAS;GACT,cAAc,OAAO,SAAS;AAC5B,WAAO,KAAK,uDAAuD;KACjE,WAAW,aAAa;KACxB;KACA;KACA,UAAU,MAAM,QAAQ;KACxB,sBAAsB,QAAQ,kBAAkB;KACjD,CAAC;IACF,MAAM,WAAW,mBACf,MACA,WACA,mBACA,YACA,aACD;AACD,WAAO,eAAe;KACpB,GAAG;KACH,OAAO,SAAS,aAAa;KAC7B,WAAW;KACZ,CAAC;;GAEL,EACD,OACD;AACD;;AAIF,sBAAqB,sBAAsB;CAC3C,MAAM,OAAO,iCAAiC;AAC9C,QAAO,KAAK,yCAAyC;EACnD,WAAW,aAAa;EACxB;EACA;EACA,UAAU,MAAM,SAAS,oBAAoB,GAAG,kBAAkB;EACnE,CAAC;CAEF,MAAM,eAAe,mBACnB,MACA,WACA,mBACA,YACA,aACD;AAED,QAAO,KACL,cAAc,aAAa,cAAc,CAAC,gBAAgB,aAAa,eAAe,CAAC,OAAO,cAC9F;EACE,YAAY,aAAa,eAAe;EACxC,WAAW,aAAa,cAAc;EACvC,CACF;CAED,MAAM,SAAS,eAAe;EAC5B,GAAG;EACH,OAAO,aAAa,aAAa;EACjC,WAAW;EACZ,CAAC;AAEF,QAAO,KAAK,kCAAkC,QAAQ,MAAM;EAC1D,WAAW,aAAa,cAAc;EACtC,YAAY,aAAa,eAAe;EACzC,CAAC;CAEF,MAAM,YAAY,IAAI,sBAAsB;AAC5C,OAAM,OAAO,QAAQ,UAAU;AAE/B,QAAO,KAAK,6CAA6C;EACvD,WAAW,aAAa;EACxB;EACA;EACA,OAAO,aAAa,cAAc;EACnC,CAAC;;AAGJ,MAAM,CAAC,OAAO,UAAU;AAEtB,KADmB,cACb,CAAC,MAAM,2BAA2B,MAAM;AAC9C,SAAQ,KAAK,EAAE;EACf"}
package/dist/index.d.mts CHANGED
@@ -1,10 +1,12 @@
1
1
  import { AdminMixin } from "@transcend-io/mcp-server-admin";
2
2
  import { AssessmentsMixin } from "@transcend-io/mcp-server-assessment";
3
3
  import { AuthCredentials, ClientCapabilityReport, Logger, ToolDefinition, TranscendGraphQLBase, TranscendRestClient } from "@transcend-io/mcp-server-base";
4
+ import { CustomFunctionsMixin } from "@transcend-io/mcp-server-custom-functions";
4
5
  import { DiscoveryMixin } from "@transcend-io/mcp-server-discovery";
5
6
  import { DSRMixin } from "@transcend-io/mcp-server-dsr";
6
7
  import { InventoryMixin } from "@transcend-io/mcp-server-inventory";
7
8
  import { WorkflowsMixin } from "@transcend-io/mcp-server-workflows";
9
+ import { PolicyToolClients } from "@transcend-io/mcp-server-policy";
8
10
 
9
11
  //#region src/graphql-client.d.ts
10
12
  declare class TranscendGraphQLClient extends TranscendGraphQLBase {
@@ -56,10 +58,17 @@ declare class TranscendGraphQLClient extends TranscendGraphQLBase {
56
58
  listWorkflows: InstanceType<typeof WorkflowsMixin>['listWorkflows'];
57
59
  updateWorkflowConfig: InstanceType<typeof WorkflowsMixin>['updateWorkflowConfig'];
58
60
  listEmailTemplates: InstanceType<typeof WorkflowsMixin>['listEmailTemplates'];
61
+ listCustomFunctions: InstanceType<typeof CustomFunctionsMixin>['listCustomFunctions'];
62
+ getSignedCustomFunctionVersion: InstanceType<typeof CustomFunctionsMixin>['getSignedCustomFunctionVersion'];
63
+ createCustomFunction: InstanceType<typeof CustomFunctionsMixin>['createCustomFunction'];
64
+ updateCustomFunction: InstanceType<typeof CustomFunctionsMixin>['updateCustomFunction'];
65
+ promoteCustomFunctionVersion: InstanceType<typeof CustomFunctionsMixin>['promoteCustomFunctionVersion'];
66
+ testRunCustomFunction: InstanceType<typeof CustomFunctionsMixin>['testRunCustomFunction'];
67
+ listSombras: InstanceType<typeof CustomFunctionsMixin>['listSombras'];
59
68
  }
60
69
  //#endregion
61
70
  //#region src/registry.d.ts
62
- interface UmbrellaToolClients {
71
+ interface UmbrellaToolClients extends PolicyToolClients {
63
72
  /** REST client for Sombra API */
64
73
  rest: TranscendRestClient;
65
74
  /** Composed GraphQL client with all domain mixins */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/graphql-client.ts","../src/registry.ts","../src/oauth-scopes.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/graphql-client.ts","../src/registry.ts","../src/oauth-scopes.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { n as ToolRegistry, r as TranscendGraphQLClient, t as UMBRELLA_OAUTH_SCOPES } from "./oauth-scopes-DSvxpdpo.mjs";
1
+ import { n as ToolRegistry, r as TranscendGraphQLClient, t as UMBRELLA_OAUTH_SCOPES } from "./oauth-scopes-H8XtK3F6.mjs";
2
2
  export { ToolRegistry, TranscendGraphQLClient, UMBRELLA_OAUTH_SCOPES };
@@ -1,12 +1,14 @@
1
1
  import { ADMIN_OAUTH_SCOPES, AdminMixin, getAdminTools } from "@transcend-io/mcp-server-admin";
2
2
  import { ASSESSMENT_OAUTH_SCOPES, AssessmentsMixin, getAssessmentTools } from "@transcend-io/mcp-server-assessment";
3
3
  import { ConfirmationPolicy, EMPTY_CAPABILITY_REPORT, SimpleLogger, TranscendGraphQLBase, canObtainApproval, createErrorResult, expandToolsForClient, isVisibleToModel, mergeOAuthScopes, resolveToolVariant, shouldRegisterTool, toolInputSchema, withConfirmation } from "@transcend-io/mcp-server-base";
4
+ import { CUSTOM_FUNCTIONS_OAUTH_SCOPES, CustomFunctionsMixin, getCustomFunctionsTools } from "@transcend-io/mcp-server-custom-functions";
4
5
  import { DISCOVERY_OAUTH_SCOPES, DiscoveryMixin, getDiscoveryTools } from "@transcend-io/mcp-server-discovery";
5
6
  import { DSRMixin, DSR_OAUTH_SCOPES, getDSRTools } from "@transcend-io/mcp-server-dsr";
6
7
  import { INVENTORY_OAUTH_SCOPES, InventoryMixin, getInventoryTools } from "@transcend-io/mcp-server-inventory";
7
8
  import { WORKFLOW_OAUTH_SCOPES, WorkflowsMixin, getWorkflowTools } from "@transcend-io/mcp-server-workflows";
8
9
  import { CONSENT_OAUTH_SCOPES, getConsentTools } from "@transcend-io/mcp-server-consent";
9
10
  import { getDocsTools } from "@transcend-io/mcp-server-docs";
11
+ import { POLICY_OAUTH_SCOPES, getPolicyTools } from "@transcend-io/mcp-server-policy";
10
12
  import { PREFERENCE_OAUTH_SCOPES, getPreferenceTools } from "@transcend-io/mcp-server-preferences";
11
13
  //#region src/graphql-client.ts
12
14
  function applyMixin(target, mixin) {
@@ -27,6 +29,7 @@ applyMixin(TranscendGraphQLClient, InventoryMixin);
27
29
  applyMixin(TranscendGraphQLClient, DiscoveryMixin);
28
30
  applyMixin(TranscendGraphQLClient, AssessmentsMixin);
29
31
  applyMixin(TranscendGraphQLClient, WorkflowsMixin);
32
+ applyMixin(TranscendGraphQLClient, CustomFunctionsMixin);
30
33
  //#endregion
31
34
  //#region src/registry.ts
32
35
  /**
@@ -51,11 +54,13 @@ var ToolRegistry = class {
51
54
  this.registerToolsFromModule(getDocsTools(this.clients));
52
55
  this.registerToolsFromModule(getDSRTools(this.clients));
53
56
  this.registerToolsFromModule(getConsentTools(this.clients));
57
+ this.registerToolsFromModule(getCustomFunctionsTools(this.clients));
54
58
  this.registerToolsFromModule(getPreferenceTools(this.clients));
55
59
  this.registerToolsFromModule(getInventoryTools(this.clients));
56
60
  this.registerToolsFromModule(getDiscoveryTools(this.clients));
57
61
  this.registerToolsFromModule(getAssessmentTools(this.clients));
58
62
  this.registerToolsFromModule(getWorkflowTools(this.clients));
63
+ this.registerToolsFromModule(getPolicyTools(this.clients));
59
64
  this.registerToolsFromModule(getAdminTools(this.clients));
60
65
  }
61
66
  registerToolsFromModule(tools) {
@@ -133,8 +138,8 @@ var ToolRegistry = class {
133
138
  //#endregion
134
139
  //#region src/oauth-scopes.ts
135
140
  /** OAuth scopes for the unified MCP server (offline_access added by base). */
136
- const UMBRELLA_OAUTH_SCOPES = mergeOAuthScopes(ADMIN_OAUTH_SCOPES, ASSESSMENT_OAUTH_SCOPES, CONSENT_OAUTH_SCOPES, DISCOVERY_OAUTH_SCOPES, DSR_OAUTH_SCOPES, INVENTORY_OAUTH_SCOPES, PREFERENCE_OAUTH_SCOPES, WORKFLOW_OAUTH_SCOPES);
141
+ const UMBRELLA_OAUTH_SCOPES = mergeOAuthScopes(ADMIN_OAUTH_SCOPES, ASSESSMENT_OAUTH_SCOPES, CONSENT_OAUTH_SCOPES, CUSTOM_FUNCTIONS_OAUTH_SCOPES, DISCOVERY_OAUTH_SCOPES, DSR_OAUTH_SCOPES, INVENTORY_OAUTH_SCOPES, PREFERENCE_OAUTH_SCOPES, POLICY_OAUTH_SCOPES, WORKFLOW_OAUTH_SCOPES);
137
142
  //#endregion
138
143
  export { ToolRegistry as n, TranscendGraphQLClient as r, UMBRELLA_OAUTH_SCOPES as t };
139
144
 
140
- //# sourceMappingURL=oauth-scopes-DSvxpdpo.mjs.map
145
+ //# sourceMappingURL=oauth-scopes-H8XtK3F6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-scopes-H8XtK3F6.mjs","names":[],"sources":["../src/graphql-client.ts","../src/registry.ts","../src/oauth-scopes.ts"],"mappings":";;;;;;;;;;;;;AAeA,SAAS,WAAW,QAAqB,OAA0B;AACjE,QAAO,oBAAoB,MAAM,UAAU,CAAC,SAAS,SAAS;AAC5D,MAAI,SAAS,cAAe;EAC5B,MAAM,aAAa,OAAO,yBAAyB,MAAM,WAAW,KAAK;AACzE,MAAI,WACF,QAAO,eAAe,OAAO,WAAW,MAAM,WAAW;GAE3D;;AAGJ,IAAa,yBAAb,cAA4C,qBAAqB;CAC/D,YAAY,MAA8B,SAAkB,QAAiB;AAC3E,QAAM,MAAM,SAAS,OAAO;;;AA0FhC,WAAW,wBAAwB,WAAW;AAC9C,WAAW,wBAAwB,SAAS;AAC5C,WAAW,wBAAwB,eAAe;AAClD,WAAW,wBAAwB,eAAe;AAClD,WAAW,wBAAwB,iBAAiB;AACpD,WAAW,wBAAwB,eAAe;AAClD,WAAW,wBAAwB,qBAAqB;;;;;;;;;;;AC3ExD,MAAM,gBAAkC,EAAE,QAAQ,mBAAmB,QAAQ;AAE7E,IAAa,eAAb,MAA0B;CACxB,wBAA6C,IAAI,KAAK;CACtD,kCAAgE,IAAI,KAAK;CACzE;CACA,SAAiB,IAAI,cAAc;CAEnC,YAAY,SAA8B;AACxC,OAAK,UAAU;AACf,OAAK,kBAAkB;;CAGzB,mBAAiC;AAC/B,OAAK,wBAAwB,aAAa,KAAK,QAAQ,CAAC;AACxD,OAAK,wBAAwB,YAAY,KAAK,QAAQ,CAAC;AACvD,OAAK,wBAAwB,gBAAgB,KAAK,QAAQ,CAAC;AAC3D,OAAK,wBAAwB,wBAAwB,KAAK,QAAQ,CAAC;AACnE,OAAK,wBAAwB,mBAAmB,KAAK,QAAQ,CAAC;AAC9D,OAAK,wBAAwB,kBAAkB,KAAK,QAAQ,CAAC;AAC7D,OAAK,wBAAwB,kBAAkB,KAAK,QAAQ,CAAC;AAC7D,OAAK,wBAAwB,mBAAmB,KAAK,QAAQ,CAAC;AAC9D,OAAK,wBAAwB,iBAAiB,KAAK,QAAQ,CAAC;AAC5D,OAAK,wBAAwB,eAAe,KAAK,QAAQ,CAAC;AAC1D,OAAK,wBAAwB,cAAc,KAAK,QAAQ,CAAC;;CAG3D,wBAAgC,OAA+B;AAC7D,OAAK,MAAM,QAAQ,OAAO;AACxB,OAAI,CAAC,mBAAmB,KAAK,CAC3B;AAEF,OAAI,KAAK,MAAM,IAAI,KAAK,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,kCAAkC,EAAE,UAAU,KAAK,MAAM,CAAC;AAC3E;;AAEF,QAAK,MAAM,IAAI,KAAK,MAAM,KAAK;AAC/B,QAAK,gBAAgB,IAAI,KAAK,MAAM,gBAAgB,KAAK,UAAU,CAAC;;;;;;;;;;;;CAaxE,YAEE,SAAiC,yBAWhC;EAGD,MAAM,aAAa,kBAAkB,eAAe,OAAO;AAE3D,SAAO,qBAAqB,MAAM,KAAK,KAAK,MAAM,QAAQ,CAAC,EAAE,QAAQ,cAAc,CAChF,QAAQ,SAAS,iBAAiB,KAAK,CAAC,CACxC,QAAQ,SAAS,cAAc,CAAC,KAAK,aAAa,CAClD,KAAK,SAAS;GACb,MAAM,cAAc,KAAK,IAAI,SAAS;AACtC,UAAO;IACL,MAAM,KAAK;IACX,aAAa,KAAK;IAClB,aAAa,KAAK,gBAAgB,IAAI,KAAK,KAAK,IAAI;KAAE,MAAM;KAAU,YAAY,EAAE;KAAE;IACtF,aAAa,KAAK;IAClB,GAAI,eAAe,EACjB,OAAO;KAAE,IAAI,EAAE,aAAa;KAAE,kBAAkB;KAAa,EAC9D;IACF;IACD;;CAGN,QAAQ,MAA0C;AAChD,SAAO,KAAK,MAAM,IAAI,KAAK;;CAG7B,MAAM,YACJ,MACA,MAEA,SAAiC,yBACf;EAClB,MAAM,aAAa,KAAK,MAAM,IAAI,KAAK;AACvC,MAAI,CAAC,WACH,OAAM,IAAI,MAAM,iBAAiB,OAAO;EAM1C,MAAM,OAAO,iBAAiB,mBAAmB,YAAY,OAAO,EAAE,cAAc;EAEpF,MAAM,cAAc,KAAK,UAAU,UAAU,KAAK;AAClD,MAAI,CAAC,YAAY,SAAS;GACxB,MAAM,SAAS,YAAY,MAAM,OAC9B,KAAK,MAAW,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,QAAQ,IAAI,EAAE,UAAU,CAC/D,KAAK,KAAK;AACb,SAAM,IAAI,MAAM,kBAAkB,SAAS;;AAG7C,MAAI;AACF,UAAO,MAAM,KAAK,QAAQ,YAAY,KAAK;WACpC,OAAO;AACd,UAAO,kBAAkB,MAAM;;;CAInC,mBAAmB,UAAoC;AACrD,SAAO,MAAM,KAAK,KAAK,MAAM,QAAQ,CAAC,CAAC,QAAQ,SAAS,KAAK,aAAa,SAAS;;CAGrF,gBAA0B;EACxB,MAAM,6BAAa,IAAI,KAAa;AACpC,OAAK,MAAM,QAAQ,KAAK,MAAM,QAAQ,CACpC,YAAW,IAAI,KAAK,SAAS;AAE/B,SAAO,MAAM,KAAK,WAAW;;CAG/B,cAAgC;AAC9B,SAAO,MAAM,KAAK,KAAK,MAAM,QAAQ,CAAC;;CAGxC,eAAuB;AACrB,SAAO,KAAK,MAAM;;;;;;AC5KtB,MAAa,wBAAwB,iBACnC,oBACA,yBACA,sBACA,+BACA,wBACA,kBACA,wBACA,yBACA,qBACA,sBACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transcend-io/mcp",
3
- "version": "1.2.2",
3
+ "version": "1.4.0",
4
4
  "description": "Transcend MCP Server — unified server with all domain tools.",
5
5
  "homepage": "https://github.com/transcend-io/tools/tree/main/packages/mcp/mcp",
6
6
  "license": "Apache-2.0",
@@ -32,16 +32,18 @@
32
32
  "dependencies": {
33
33
  "@modelcontextprotocol/sdk": "^1.29.0",
34
34
  "zod": "^4.3.6",
35
- "@transcend-io/mcp-server-admin": "1.0.10",
36
- "@transcend-io/mcp-server-assessment": "2.1.7",
37
- "@transcend-io/mcp-server-base": "2.4.0",
38
- "@transcend-io/mcp-server-consent": "1.2.2",
39
- "@transcend-io/mcp-server-discovery": "1.0.10",
40
- "@transcend-io/mcp-server-docs": "0.4.10",
41
- "@transcend-io/mcp-server-dsr": "2.0.7",
42
- "@transcend-io/mcp-server-inventory": "1.0.10",
43
- "@transcend-io/mcp-server-preferences": "0.7.14",
44
- "@transcend-io/mcp-server-workflows": "1.0.10"
35
+ "@transcend-io/mcp-server-admin": "1.0.12",
36
+ "@transcend-io/mcp-server-assessment": "2.1.9",
37
+ "@transcend-io/mcp-server-base": "2.5.1",
38
+ "@transcend-io/mcp-server-consent": "1.2.4",
39
+ "@transcend-io/mcp-server-custom-functions": "0.2.1",
40
+ "@transcend-io/mcp-server-discovery": "1.0.12",
41
+ "@transcend-io/mcp-server-docs": "0.4.12",
42
+ "@transcend-io/mcp-server-dsr": "2.0.9",
43
+ "@transcend-io/mcp-server-inventory": "1.0.12",
44
+ "@transcend-io/mcp-server-policy": "0.2.0",
45
+ "@transcend-io/mcp-server-preferences": "0.7.16",
46
+ "@transcend-io/mcp-server-workflows": "1.0.12"
45
47
  },
46
48
  "devDependencies": {
47
49
  "@arethetypeswrong/cli": "^0.18.2",
@@ -51,8 +53,8 @@
51
53
  "tsdown": "^0.21.2",
52
54
  "tsx": "4.22.4",
53
55
  "typescript": "^6.0.0",
54
- "vitest": "^4.0.18",
55
- "@transcend-io/privacy-types": "6.0.0"
56
+ "vitest": "^4.1.11",
57
+ "@transcend-io/privacy-types": "6.1.0"
56
58
  },
57
59
  "engines": {
58
60
  "node": ">=22.12.0"
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-scopes-DSvxpdpo.mjs","names":[],"sources":["../src/graphql-client.ts","../src/registry.ts","../src/oauth-scopes.ts"],"mappings":"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"}