@transcend-io/mcp 0.2.0 → 0.3.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
@@ -39,15 +39,15 @@ This starts a Streamable HTTP server at `http://127.0.0.1:3000/mcp` with a healt
39
39
 
40
40
  ### Environment variables
41
41
 
42
- | Variable | Required | Default | Description |
43
- | ------------------------------ | ----------- | ------------------------------------------ | ----------------------------------------------- |
44
- | `TRANSCEND_API_KEY` | Yes (stdio) | — | Transcend API key (HTTP: fallback if no header) |
45
- | `TRANSCEND_API_URL` | No | `https://multi-tenant.sombra.transcend.io` | Sombra API URL |
46
- | `TRANSCEND_GRAPHQL_URL` | No | `https://api.transcend.io` | GraphQL API URL |
47
- | `TRANSCEND_HTTP_PORT` | No | `3000` | HTTP listen port |
48
- | `TRANSCEND_HTTP_HOST` | No | `127.0.0.1` | HTTP listen host |
49
- | `TRANSCEND_MCP_CORS_ORIGINS` | No | — | Comma-separated allowed CORS origins |
50
- | `TRANSCEND_MCP_SESSION_TTL_MS` | No | `1800000` | Idle session timeout (ms) |
42
+ | Variable | Required | Default | Description |
43
+ | ------------------------------ | ----------- | ------------------------------------------ | -------------------------------------------------- |
44
+ | `TRANSCEND_API_KEY` | Yes (stdio) | — | Transcend API key (HTTP: fallback if no header) |
45
+ | `TRANSCEND_API_URL` | No | `https://api.transcend.io` | GraphQL backend API URL (matches CLI convention) |
46
+ | `SOMBRA_URL` | No | `https://multi-tenant.sombra.transcend.io` | Sombra REST API URL (matches CLI / SDK convention) |
47
+ | `TRANSCEND_HTTP_PORT` | No | `3000` | HTTP listen port |
48
+ | `TRANSCEND_HTTP_HOST` | No | `127.0.0.1` | HTTP listen host |
49
+ | `TRANSCEND_MCP_CORS_ORIGINS` | No | — | Comma-separated allowed CORS origins |
50
+ | `TRANSCEND_MCP_SESSION_TTL_MS` | No | `1800000` | Idle session timeout (ms) |
51
51
 
52
52
  ### MCP client configuration (stdio)
53
53
 
@@ -88,11 +88,11 @@ See [CONTRIBUTING.md](../../../CONTRIBUTING.md#mcp-servers) for workspace layout
88
88
 
89
89
  ### Environment variables
90
90
 
91
- | Variable | Required | Default | Description |
92
- | ----------------------- | -------- | ------------------------------------------ | ----------------- |
93
- | `TRANSCEND_API_KEY` | Yes | — | Transcend API key |
94
- | `TRANSCEND_API_URL` | No | `https://multi-tenant.sombra.transcend.io` | Sombra API URL |
95
- | `TRANSCEND_GRAPHQL_URL` | No | `https://api.transcend.io` | GraphQL API URL |
91
+ | Variable | Required | Default | Description |
92
+ | ------------------- | -------- | ------------------------------------------ | -------------------------------------------------- |
93
+ | `TRANSCEND_API_KEY` | Yes | — | Transcend API key |
94
+ | `TRANSCEND_API_URL` | No | `https://api.transcend.io` | GraphQL backend API URL (matches CLI convention) |
95
+ | `SOMBRA_URL` | No | `https://multi-tenant.sombra.transcend.io` | Sombra REST API URL (matches CLI / SDK convention) |
96
96
 
97
97
  **Monorepo:** keep these in root **`secret.env`** (from [`secret.env.example`](../../../secret.env.example)); see **Run from the monorepo**.
98
98
 
package/dist/cli.mjs CHANGED
@@ -13,8 +13,8 @@ function createToolRegistry(auth, sombraUrl, graphqlUrl) {
13
13
  async function main() {
14
14
  const logger = new SimpleLogger();
15
15
  const config = parseTransportArgs();
16
- const sombraUrl = process.env.TRANSCEND_API_URL || "https://multi-tenant.sombra.transcend.io";
17
- const graphqlUrl = process.env.TRANSCEND_GRAPHQL_URL || "https://api.transcend.io";
16
+ const sombraUrl = process.env.SOMBRA_URL || "https://multi-tenant.sombra.transcend.io";
17
+ const graphqlUrl = process.env.TRANSCEND_API_URL || "https://api.transcend.io";
18
18
  if (config.transport === "http") {
19
19
  await runMcpHttp({
20
20
  name: "transcend-mcp",
package/dist/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.mjs","names":[],"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport {\n buildMcpServer,\n parseTransportArgs,\n resolveAuth,\n runMcpHttp,\n SimpleLogger,\n TranscendRestClient,\n type AuthCredentials,\n} from '@transcend-io/mcp-server-base';\n\nimport { TranscendGraphQLClient } from './graphql-client.js';\nimport { ToolRegistry } from './registry.js';\n\nconst VERSION = '3.0.2';\n\nfunction createToolRegistry(\n auth: AuthCredentials | null,\n sombraUrl: string,\n graphqlUrl: 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 });\n}\n\nasync function main(): Promise<void> {\n const logger = new SimpleLogger();\n const config = parseTransportArgs();\n const sombraUrl = process.env.TRANSCEND_API_URL || 'https://multi-tenant.sombra.transcend.io';\n const graphqlUrl = process.env.TRANSCEND_GRAPHQL_URL || 'https://api.transcend.io';\n\n if (config.transport === 'http') {\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 authType: auth?.type ?? 'none',\n });\n const registry = createToolRegistry(auth, sombraUrl, graphqlUrl);\n return buildMcpServer({\n name: 'transcend-mcp',\n version: VERSION,\n tools: registry.getAllTools(),\n });\n },\n },\n config,\n );\n return;\n }\n\n // stdio mode\n const auth = resolveAuth();\n logger.info('Initializing Transcend API clients...', { sombraUrl, graphqlUrl });\n\n const toolRegistry = createToolRegistry(auth, sombraUrl, graphqlUrl);\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 name: 'transcend-mcp',\n version: VERSION,\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 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":";;;;;AAgBA,MAAM,UAAU;AAEhB,SAAS,mBACP,MACA,WACA,YACc;AAGd,QAAO,IAAI,aAAa;EAAE,MAFP,IAAI,oBAAoB,MAAM,UAAU;EAEf,SADtB,IAAI,uBAAuB,MAAM,WAAW;EACE,CAAC;;AAGvE,eAAe,OAAsB;CACnC,MAAM,SAAS,IAAI,cAAc;CACjC,MAAM,SAAS,oBAAoB;CACnC,MAAM,YAAY,QAAQ,IAAI,qBAAqB;CACnD,MAAM,aAAa,QAAQ,IAAI,yBAAyB;AAExD,KAAI,OAAO,cAAc,QAAQ;AAC/B,QAAM,WACJ;GACE,MAAM;GACN,SAAS;GACT,cAAc,OAAO,SAAS;AAC5B,WAAO,KAAK,uDAAuD;KACjE;KACA;KACA,UAAU,MAAM,QAAQ;KACzB,CAAC;AAEF,WAAO,eAAe;KACpB,MAAM;KACN,SAAS;KACT,OAJe,mBAAmB,MAAM,WAAW,WAAW,CAI9C,aAAa;KAC9B,CAAC;;GAEL,EACD,OACD;AACD;;CAIF,MAAM,OAAO,aAAa;AAC1B,QAAO,KAAK,yCAAyC;EAAE;EAAW;EAAY,CAAC;CAE/E,MAAM,eAAe,mBAAmB,MAAM,WAAW,WAAW;AAEpE,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,MAAM;EACN,SAAS;EACT,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,OAAO,aAAa,cAAc;EACnC,CAAC;;AAGJ,MAAM,CAAC,OAAO,UAAU;AACP,KAAI,cAAc,CAC1B,MAAM,2BAA2B,MAAM;AAC9C,SAAQ,KAAK,EAAE;EACf"}
1
+ {"version":3,"file":"cli.mjs","names":[],"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport {\n buildMcpServer,\n parseTransportArgs,\n resolveAuth,\n runMcpHttp,\n SimpleLogger,\n TranscendRestClient,\n type AuthCredentials,\n} from '@transcend-io/mcp-server-base';\n\nimport { TranscendGraphQLClient } from './graphql-client.js';\nimport { ToolRegistry } from './registry.js';\n\nconst VERSION = '3.0.2';\n\nfunction createToolRegistry(\n auth: AuthCredentials | null,\n sombraUrl: string,\n graphqlUrl: 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 });\n}\n\nasync function main(): Promise<void> {\n const logger = new SimpleLogger();\n const config = parseTransportArgs();\n const sombraUrl = process.env.SOMBRA_URL || 'https://multi-tenant.sombra.transcend.io';\n const graphqlUrl = process.env.TRANSCEND_API_URL || 'https://api.transcend.io';\n\n if (config.transport === 'http') {\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 authType: auth?.type ?? 'none',\n });\n const registry = createToolRegistry(auth, sombraUrl, graphqlUrl);\n return buildMcpServer({\n name: 'transcend-mcp',\n version: VERSION,\n tools: registry.getAllTools(),\n });\n },\n },\n config,\n );\n return;\n }\n\n // stdio mode\n const auth = resolveAuth();\n logger.info('Initializing Transcend API clients...', { sombraUrl, graphqlUrl });\n\n const toolRegistry = createToolRegistry(auth, sombraUrl, graphqlUrl);\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 name: 'transcend-mcp',\n version: VERSION,\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 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":";;;;;AAgBA,MAAM,UAAU;AAEhB,SAAS,mBACP,MACA,WACA,YACc;AAGd,QAAO,IAAI,aAAa;EAAE,MAFP,IAAI,oBAAoB,MAAM,UAAU;EAEf,SADtB,IAAI,uBAAuB,MAAM,WAAW;EACE,CAAC;;AAGvE,eAAe,OAAsB;CACnC,MAAM,SAAS,IAAI,cAAc;CACjC,MAAM,SAAS,oBAAoB;CACnC,MAAM,YAAY,QAAQ,IAAI,cAAc;CAC5C,MAAM,aAAa,QAAQ,IAAI,qBAAqB;AAEpD,KAAI,OAAO,cAAc,QAAQ;AAC/B,QAAM,WACJ;GACE,MAAM;GACN,SAAS;GACT,cAAc,OAAO,SAAS;AAC5B,WAAO,KAAK,uDAAuD;KACjE;KACA;KACA,UAAU,MAAM,QAAQ;KACzB,CAAC;AAEF,WAAO,eAAe;KACpB,MAAM;KACN,SAAS;KACT,OAJe,mBAAmB,MAAM,WAAW,WAAW,CAI9C,aAAa;KAC9B,CAAC;;GAEL,EACD,OACD;AACD;;CAIF,MAAM,OAAO,aAAa;AAC1B,QAAO,KAAK,yCAAyC;EAAE;EAAW;EAAY,CAAC;CAE/E,MAAM,eAAe,mBAAmB,MAAM,WAAW,WAAW;AAEpE,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,MAAM;EACN,SAAS;EACT,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,OAAO,aAAa,cAAc;EACnC,CAAC;;AAGJ,MAAM,CAAC,OAAO,UAAU;AACP,KAAI,cAAc,CAC1B,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.2.0",
3
+ "version": "0.3.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,15 +32,15 @@
32
32
  "dependencies": {
33
33
  "@modelcontextprotocol/sdk": "^1.29.0",
34
34
  "zod": "^4.3.6",
35
- "@transcend-io/mcp-server-admin": "0.2.0",
36
- "@transcend-io/mcp-server-assessment": "0.2.0",
37
- "@transcend-io/mcp-server-base": "0.2.0",
38
- "@transcend-io/mcp-server-consent": "0.1.2",
39
- "@transcend-io/mcp-server-discovery": "0.2.0",
40
- "@transcend-io/mcp-server-dsr": "0.2.0",
41
- "@transcend-io/mcp-server-inventory": "0.2.0",
42
- "@transcend-io/mcp-server-preferences": "0.2.0",
43
- "@transcend-io/mcp-server-workflows": "0.2.0"
35
+ "@transcend-io/mcp-server-admin": "0.3.0",
36
+ "@transcend-io/mcp-server-assessment": "0.3.0",
37
+ "@transcend-io/mcp-server-base": "0.3.0",
38
+ "@transcend-io/mcp-server-consent": "0.2.0",
39
+ "@transcend-io/mcp-server-discovery": "0.3.0",
40
+ "@transcend-io/mcp-server-dsr": "0.3.0",
41
+ "@transcend-io/mcp-server-inventory": "0.3.0",
42
+ "@transcend-io/mcp-server-preferences": "0.3.0",
43
+ "@transcend-io/mcp-server-workflows": "0.3.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@arethetypeswrong/cli": "^0.18.2",