@transcend-io/mcp 0.6.0 → 0.6.1

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/dist/cli.mjs CHANGED
@@ -3,11 +3,11 @@ import { n as ToolRegistry, r as TranscendGraphQLClient, t as UMBRELLA_OAUTH_SCO
3
3
  import { DEFAULT_SOMBRA_URL, SimpleLogger, TranscendRestClient, buildMcpServer, configureOAuthScopes, isOAuthModeEnabled, parseTransportArgs, resolveMcpDashboardUrl, resolveMcpGraphqlUrl, resolveStdioStartupAuthOptional, runMcpHttp } from "@transcend-io/mcp-server-base";
4
4
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
5
  //#region package.json
6
- var version = "0.6.0";
6
+ var version = "0.6.1";
7
7
  //#endregion
8
8
  //#region src/server-instructions.ts
9
9
  /** MCP initialize instructions for the unified @transcend-io/mcp server. */
10
- const UMBRELLA_DOCS_SERVER_INSTRUCTIONS = "For how-to, product concepts, setup guides, or \"what is X\" questions about Transcend (e.g. airgap, consent, DSR): (1) call transcend_docs_list with a keyword, (2) call transcend_docs_fetch on the best matching URL, (3) answer from that content. API tools return data from the signed-in organization; they do not replace product documentation.";
10
+ const UMBRELLA_DOCS_SERVER_INSTRUCTIONS = "For how-to, product concepts, setup guides, or \"what is X\" questions about Transcend (e.g. airgap, consent, DSR): (1) call docs_list with a keyword, (2) call docs_fetch on the best matching URL, (3) answer from that content. API tools return data from the signed-in organization; they do not replace product documentation.";
11
11
  //#endregion
12
12
  //#region src/cli.ts
13
13
  const VERSION = version;
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"],"sourcesContent":["","/** MCP initialize instructions for the unified @transcend-io/mcp server. */\nexport const UMBRELLA_DOCS_SERVER_INSTRUCTIONS =\n 'For how-to, product concepts, setup guides, or \"what is X\" questions about Transcend ' +\n '(e.g. airgap, consent, DSR): (1) call transcend_docs_list with a keyword, ' +\n '(2) call transcend_docs_fetch on the best matching URL, (3) answer from that content. ' +\n 'API tools return data from the signed-in organization; they do not replace product documentation.';\n","#!/usr/bin/env node\n\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport {\n buildMcpServer,\n DEFAULT_SOMBRA_URL,\n isOAuthModeEnabled,\n parseTransportArgs,\n resolveStdioStartupAuthOptional,\n configureOAuthScopes,\n resolveMcpDashboardUrl,\n resolveMcpGraphqlUrl,\n runMcpHttp,\n SimpleLogger,\n TranscendRestClient,\n type AuthCredentials,\n} from '@transcend-io/mcp-server-base';\n\nimport packageJson from '../package.json' with { type: 'json' };\nimport { TranscendGraphQLClient } from './graphql-client.js';\nimport { UMBRELLA_OAUTH_SCOPES } from './oauth-scopes.js';\nimport { ToolRegistry } from './registry.js';\nimport { UMBRELLA_DOCS_SERVER_INSTRUCTIONS } from './server-instructions.js';\n\nconst VERSION = packageJson.version;\n\nconst buildServerOptions = {\n name: 'transcend-mcp',\n version: VERSION,\n instructions: UMBRELLA_DOCS_SERVER_INSTRUCTIONS,\n} as const;\n\nfunction createToolRegistry(\n auth: AuthCredentials | null,\n sombraUrl: string,\n graphqlUrl: string,\n dashboardUrl: string,\n): ToolRegistry {\n const restClient = new TranscendRestClient(auth, sombraUrl);\n const graphqlClient = new TranscendGraphQLClient(auth, graphqlUrl);\n return new ToolRegistry({ rest: restClient, graphql: graphqlClient, dashboardUrl });\n}\n\nasync function main(): Promise<void> {\n const config = parseTransportArgs();\n const isHttpTransport = config.transport === 'http';\n SimpleLogger.setInfoToStdout(isHttpTransport);\n const logger = new SimpleLogger();\n const sombraUrl = process.env.SOMBRA_URL || DEFAULT_SOMBRA_URL;\n const dashboardUrl = resolveMcpDashboardUrl();\n const graphqlUrl = await resolveMcpGraphqlUrl(logger);\n\n if (isHttpTransport) {\n await runMcpHttp(\n {\n name: 'transcend-mcp',\n version: VERSION,\n createServer: async (auth) => {\n logger.info('Creating unified MCP server for new HTTP session...', {\n sombraUrl,\n graphqlUrl,\n dashboardUrl,\n authType: auth?.type ?? 'none',\n });\n const registry = createToolRegistry(auth, sombraUrl, graphqlUrl, dashboardUrl);\n return buildMcpServer({\n ...buildServerOptions,\n tools: registry.getAllTools(),\n });\n },\n },\n config,\n );\n return;\n }\n\n // stdio mode\n configureOAuthScopes(UMBRELLA_OAUTH_SCOPES);\n const auth = resolveStdioStartupAuthOptional();\n logger.info('Initializing Transcend API clients...', {\n sombraUrl,\n graphqlUrl,\n dashboardUrl,\n authType: auth?.type ?? (isOAuthModeEnabled() ? 'oauth-pending' : 'none'),\n });\n\n const toolRegistry = createToolRegistry(auth, sombraUrl, graphqlUrl, dashboardUrl);\n\n logger.info(\n `Registered ${toolRegistry.getToolCount()} tools across ${toolRegistry.getCategories().length} categories`,\n {\n categories: toolRegistry.getCategories(),\n toolCount: toolRegistry.getToolCount(),\n },\n );\n\n const server = buildMcpServer({\n ...buildServerOptions,\n tools: toolRegistry.getAllTools(),\n });\n\n logger.info(`Starting Transcend MCP Server v${VERSION}...`, {\n toolCount: toolRegistry.getToolCount(),\n categories: toolRegistry.getCategories(),\n });\n\n const transport = new StdioServerTransport();\n await server.connect(transport);\n\n logger.info('Transcend MCP Server started successfully', {\n sombraUrl,\n graphqlUrl,\n dashboardUrl,\n tools: toolRegistry.getToolCount(),\n });\n}\n\nmain().catch((error) => {\n const logger = new SimpleLogger();\n logger.error('Failed to start server:', error);\n process.exit(1);\n});\n"],"mappings":";;;;;;;;;ACCA,MAAa,oCACX;;;ACsBF,MAAM,UAAUA;AAEhB,MAAM,qBAAqB;CACzB,MAAM;CACN,SAAS;CACT,cAAc;CACf;AAED,SAAS,mBACP,MACA,WACA,YACA,cACc;AAGd,QAAO,IAAI,aAAa;EAAE,MAAM,IAFT,oBAAoB,MAAM,UAEP;EAAE,SAAS,IAD3B,uBAAuB,MAAM,WACW;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,YAAY,QAAQ,IAAI,cAAc;CAC5C,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;KACA;KACA;KACA,UAAU,MAAM,QAAQ;KACzB,CAAC;IACF,MAAM,WAAW,mBAAmB,MAAM,WAAW,YAAY,aAAa;AAC9E,WAAO,eAAe;KACpB,GAAG;KACH,OAAO,SAAS,aAAa;KAC9B,CAAC;;GAEL,EACD,OACD;AACD;;AAIF,sBAAqB,sBAAsB;CAC3C,MAAM,OAAO,iCAAiC;AAC9C,QAAO,KAAK,yCAAyC;EACnD;EACA;EACA;EACA,UAAU,MAAM,SAAS,oBAAoB,GAAG,kBAAkB;EACnE,CAAC;CAEF,MAAM,eAAe,mBAAmB,MAAM,WAAW,YAAY,aAAa;AAElF,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;EAClC,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;EACA;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"],"sourcesContent":["","/** MCP initialize instructions for the unified @transcend-io/mcp server. */\nexport const UMBRELLA_DOCS_SERVER_INSTRUCTIONS =\n 'For how-to, product concepts, setup guides, or \"what is X\" questions about Transcend ' +\n '(e.g. airgap, consent, DSR): (1) call docs_list with a keyword, ' +\n '(2) call docs_fetch on the best matching URL, (3) answer from that content. ' +\n 'API tools return data from the signed-in organization; they do not replace product documentation.';\n","#!/usr/bin/env node\n\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport {\n buildMcpServer,\n DEFAULT_SOMBRA_URL,\n isOAuthModeEnabled,\n parseTransportArgs,\n resolveStdioStartupAuthOptional,\n configureOAuthScopes,\n resolveMcpDashboardUrl,\n resolveMcpGraphqlUrl,\n runMcpHttp,\n SimpleLogger,\n TranscendRestClient,\n type AuthCredentials,\n} from '@transcend-io/mcp-server-base';\n\nimport packageJson from '../package.json' with { type: 'json' };\nimport { TranscendGraphQLClient } from './graphql-client.js';\nimport { UMBRELLA_OAUTH_SCOPES } from './oauth-scopes.js';\nimport { ToolRegistry } from './registry.js';\nimport { UMBRELLA_DOCS_SERVER_INSTRUCTIONS } from './server-instructions.js';\n\nconst VERSION = packageJson.version;\n\nconst buildServerOptions = {\n name: 'transcend-mcp',\n version: VERSION,\n instructions: UMBRELLA_DOCS_SERVER_INSTRUCTIONS,\n} as const;\n\nfunction createToolRegistry(\n auth: AuthCredentials | null,\n sombraUrl: string,\n graphqlUrl: string,\n dashboardUrl: string,\n): ToolRegistry {\n const restClient = new TranscendRestClient(auth, sombraUrl);\n const graphqlClient = new TranscendGraphQLClient(auth, graphqlUrl);\n return new ToolRegistry({ rest: restClient, graphql: graphqlClient, dashboardUrl });\n}\n\nasync function main(): Promise<void> {\n const config = parseTransportArgs();\n const isHttpTransport = config.transport === 'http';\n SimpleLogger.setInfoToStdout(isHttpTransport);\n const logger = new SimpleLogger();\n const sombraUrl = process.env.SOMBRA_URL || DEFAULT_SOMBRA_URL;\n const dashboardUrl = resolveMcpDashboardUrl();\n const graphqlUrl = await resolveMcpGraphqlUrl(logger);\n\n if (isHttpTransport) {\n await runMcpHttp(\n {\n name: 'transcend-mcp',\n version: VERSION,\n createServer: async (auth) => {\n logger.info('Creating unified MCP server for new HTTP session...', {\n sombraUrl,\n graphqlUrl,\n dashboardUrl,\n authType: auth?.type ?? 'none',\n });\n const registry = createToolRegistry(auth, sombraUrl, graphqlUrl, dashboardUrl);\n return buildMcpServer({\n ...buildServerOptions,\n tools: registry.getAllTools(),\n });\n },\n },\n config,\n );\n return;\n }\n\n // stdio mode\n configureOAuthScopes(UMBRELLA_OAUTH_SCOPES);\n const auth = resolveStdioStartupAuthOptional();\n logger.info('Initializing Transcend API clients...', {\n sombraUrl,\n graphqlUrl,\n dashboardUrl,\n authType: auth?.type ?? (isOAuthModeEnabled() ? 'oauth-pending' : 'none'),\n });\n\n const toolRegistry = createToolRegistry(auth, sombraUrl, graphqlUrl, dashboardUrl);\n\n logger.info(\n `Registered ${toolRegistry.getToolCount()} tools across ${toolRegistry.getCategories().length} categories`,\n {\n categories: toolRegistry.getCategories(),\n toolCount: toolRegistry.getToolCount(),\n },\n );\n\n const server = buildMcpServer({\n ...buildServerOptions,\n tools: toolRegistry.getAllTools(),\n });\n\n logger.info(`Starting Transcend MCP Server v${VERSION}...`, {\n toolCount: toolRegistry.getToolCount(),\n categories: toolRegistry.getCategories(),\n });\n\n const transport = new StdioServerTransport();\n await server.connect(transport);\n\n logger.info('Transcend MCP Server started successfully', {\n sombraUrl,\n graphqlUrl,\n dashboardUrl,\n tools: toolRegistry.getToolCount(),\n });\n}\n\nmain().catch((error) => {\n const logger = new SimpleLogger();\n logger.error('Failed to start server:', error);\n process.exit(1);\n});\n"],"mappings":";;;;;;;;;ACCA,MAAa,oCACX;;;ACsBF,MAAM,UAAUA;AAEhB,MAAM,qBAAqB;CACzB,MAAM;CACN,SAAS;CACT,cAAc;CACf;AAED,SAAS,mBACP,MACA,WACA,YACA,cACc;AAGd,QAAO,IAAI,aAAa;EAAE,MAAM,IAFT,oBAAoB,MAAM,UAEP;EAAE,SAAS,IAD3B,uBAAuB,MAAM,WACW;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,YAAY,QAAQ,IAAI,cAAc;CAC5C,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;KACA;KACA;KACA,UAAU,MAAM,QAAQ;KACzB,CAAC;IACF,MAAM,WAAW,mBAAmB,MAAM,WAAW,YAAY,aAAa;AAC9E,WAAO,eAAe;KACpB,GAAG;KACH,OAAO,SAAS,aAAa;KAC9B,CAAC;;GAEL,EACD,OACD;AACD;;AAIF,sBAAqB,sBAAsB;CAC3C,MAAM,OAAO,iCAAiC;AAC9C,QAAO,KAAK,yCAAyC;EACnD;EACA;EACA;EACA,UAAU,MAAM,SAAS,oBAAoB,GAAG,kBAAkB;EACnE,CAAC;CAEF,MAAM,eAAe,mBAAmB,MAAM,WAAW,YAAY,aAAa;AAElF,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;EAClC,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;EACA;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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transcend-io/mcp",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
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",
@@ -35,9 +35,9 @@
35
35
  "@transcend-io/mcp-server-admin": "0.4.2",
36
36
  "@transcend-io/mcp-server-assessment": "0.4.2",
37
37
  "@transcend-io/mcp-server-base": "0.6.0",
38
- "@transcend-io/mcp-server-consent": "0.4.2",
39
38
  "@transcend-io/mcp-server-discovery": "0.4.2",
40
- "@transcend-io/mcp-server-docs": "0.2.2",
39
+ "@transcend-io/mcp-server-consent": "0.4.2",
40
+ "@transcend-io/mcp-server-docs": "0.3.0",
41
41
  "@transcend-io/mcp-server-dsr": "0.4.2",
42
42
  "@transcend-io/mcp-server-inventory": "0.4.2",
43
43
  "@transcend-io/mcp-server-preferences": "0.4.2",