@transcend-io/mcp 0.6.13 → 0.7.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/dist/cli.mjs +17 -12
- package/dist/cli.mjs.map +1 -1
- package/package.json +11 -11
package/dist/cli.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { n as ToolRegistry, r as TranscendGraphQLClient, t as UMBRELLA_OAUTH_SCOPES } from "./oauth-scopes-uzulgUw_.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { SimpleLogger, buildMcpServer, configureOAuthScopes, createTranscendRestClient, isOAuthModeEnabled, parseTransportArgs, readSombraEnvConfig, 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
|
+
var version = "0.7.0";
|
|
7
7
|
//#endregion
|
|
8
8
|
//#region src/server-instructions.ts
|
|
9
9
|
/** MCP initialize instructions for the unified @transcend-io/mcp server. */
|
|
@@ -16,10 +16,14 @@ const buildServerOptions = {
|
|
|
16
16
|
version: VERSION,
|
|
17
17
|
instructions: UMBRELLA_DOCS_SERVER_INSTRUCTIONS
|
|
18
18
|
};
|
|
19
|
-
function createToolRegistry(auth, sombraUrl, graphqlUrl, dashboardUrl) {
|
|
19
|
+
function createToolRegistry(auth, sombraUrl, sombraCustomerKey, graphqlUrl, dashboardUrl) {
|
|
20
|
+
const graphqlClient = new TranscendGraphQLClient(auth, graphqlUrl);
|
|
20
21
|
return new ToolRegistry({
|
|
21
|
-
rest:
|
|
22
|
-
|
|
22
|
+
rest: createTranscendRestClient(auth, graphqlClient, {
|
|
23
|
+
sombraUrl,
|
|
24
|
+
sombraCustomerKey
|
|
25
|
+
}),
|
|
26
|
+
graphql: graphqlClient,
|
|
23
27
|
dashboardUrl
|
|
24
28
|
});
|
|
25
29
|
}
|
|
@@ -28,7 +32,7 @@ async function main() {
|
|
|
28
32
|
const isHttpTransport = config.transport === "http";
|
|
29
33
|
SimpleLogger.setInfoToStdout(isHttpTransport);
|
|
30
34
|
const logger = new SimpleLogger();
|
|
31
|
-
const sombraUrl
|
|
35
|
+
const { sombraUrl, sombraCustomerKey } = readSombraEnvConfig();
|
|
32
36
|
const dashboardUrl = resolveMcpDashboardUrl();
|
|
33
37
|
const graphqlUrl = await resolveMcpGraphqlUrl(logger);
|
|
34
38
|
if (isHttpTransport) {
|
|
@@ -37,12 +41,13 @@ async function main() {
|
|
|
37
41
|
version: VERSION,
|
|
38
42
|
createServer: async (auth) => {
|
|
39
43
|
logger.info("Creating unified MCP server for new HTTP session...", {
|
|
40
|
-
sombraUrl,
|
|
44
|
+
sombraUrl: sombraUrl ?? "(lazy GraphQL resolve)",
|
|
41
45
|
graphqlUrl,
|
|
42
46
|
dashboardUrl,
|
|
43
|
-
authType: auth?.type ?? "none"
|
|
47
|
+
authType: auth?.type ?? "none",
|
|
48
|
+
hasSombraCustomerKey: Boolean(sombraCustomerKey)
|
|
44
49
|
});
|
|
45
|
-
const registry = createToolRegistry(auth, sombraUrl, graphqlUrl, dashboardUrl);
|
|
50
|
+
const registry = createToolRegistry(auth, sombraUrl, sombraCustomerKey, graphqlUrl, dashboardUrl);
|
|
46
51
|
return buildMcpServer({
|
|
47
52
|
...buildServerOptions,
|
|
48
53
|
tools: registry.getAllTools()
|
|
@@ -54,12 +59,12 @@ async function main() {
|
|
|
54
59
|
configureOAuthScopes(UMBRELLA_OAUTH_SCOPES);
|
|
55
60
|
const auth = resolveStdioStartupAuthOptional();
|
|
56
61
|
logger.info("Initializing Transcend API clients...", {
|
|
57
|
-
sombraUrl,
|
|
62
|
+
sombraUrl: sombraUrl ?? "(lazy GraphQL resolve)",
|
|
58
63
|
graphqlUrl,
|
|
59
64
|
dashboardUrl,
|
|
60
65
|
authType: auth?.type ?? (isOAuthModeEnabled() ? "oauth-pending" : "none")
|
|
61
66
|
});
|
|
62
|
-
const toolRegistry = createToolRegistry(auth, sombraUrl, graphqlUrl, dashboardUrl);
|
|
67
|
+
const toolRegistry = createToolRegistry(auth, sombraUrl, sombraCustomerKey, graphqlUrl, dashboardUrl);
|
|
63
68
|
logger.info(`Registered ${toolRegistry.getToolCount()} tools across ${toolRegistry.getCategories().length} categories`, {
|
|
64
69
|
categories: toolRegistry.getCategories(),
|
|
65
70
|
toolCount: toolRegistry.getToolCount()
|
|
@@ -75,7 +80,7 @@ async function main() {
|
|
|
75
80
|
const transport = new StdioServerTransport();
|
|
76
81
|
await server.connect(transport);
|
|
77
82
|
logger.info("Transcend MCP Server started successfully", {
|
|
78
|
-
sombraUrl,
|
|
83
|
+
sombraUrl: sombraUrl ?? "(lazy GraphQL resolve)",
|
|
79
84
|
graphqlUrl,
|
|
80
85
|
dashboardUrl,
|
|
81
86
|
tools: toolRegistry.getToolCount()
|
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 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
|
|
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 createTranscendRestClient,\n isOAuthModeEnabled,\n parseTransportArgs,\n resolveStdioStartupAuthOptional,\n configureOAuthScopes,\n resolveMcpDashboardUrl,\n resolveMcpGraphqlUrl,\n readSombraEnvConfig,\n runMcpHttp,\n SimpleLogger,\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 | undefined,\n sombraCustomerKey: string | undefined,\n graphqlUrl: string,\n dashboardUrl: string,\n): ToolRegistry {\n const graphqlClient = new TranscendGraphQLClient(auth, graphqlUrl);\n const restClient = createTranscendRestClient(auth, graphqlClient, {\n sombraUrl,\n sombraCustomerKey,\n });\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, sombraCustomerKey } = readSombraEnvConfig();\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: sombraUrl ?? '(lazy GraphQL resolve)',\n graphqlUrl,\n dashboardUrl,\n authType: auth?.type ?? 'none',\n hasSombraCustomerKey: Boolean(sombraCustomerKey),\n });\n const registry = createToolRegistry(\n auth,\n sombraUrl,\n sombraCustomerKey,\n graphqlUrl,\n dashboardUrl,\n );\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: sombraUrl ?? '(lazy GraphQL resolve)',\n graphqlUrl,\n dashboardUrl,\n authType: auth?.type ?? (isOAuthModeEnabled() ? 'oauth-pending' : 'none'),\n });\n\n const toolRegistry = createToolRegistry(\n auth,\n sombraUrl,\n sombraCustomerKey,\n graphqlUrl,\n dashboardUrl,\n );\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: sombraUrl ?? '(lazy GraphQL resolve)',\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,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;KAC9B,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;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,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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@transcend-io/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.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,16 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
34
34
|
"zod": "^4.3.6",
|
|
35
|
-
"@transcend-io/mcp-server-admin": "0.
|
|
36
|
-
"@transcend-io/mcp-server-assessment": "0.
|
|
37
|
-
"@transcend-io/mcp-server-base": "0.
|
|
38
|
-
"@transcend-io/mcp-server-consent": "0.
|
|
39
|
-
"@transcend-io/mcp-server-discovery": "0.
|
|
40
|
-
"@transcend-io/mcp-server-docs": "0.3.
|
|
41
|
-
"@transcend-io/mcp-server-dsr": "0.
|
|
42
|
-
"@transcend-io/mcp-server-inventory": "0.
|
|
43
|
-
"@transcend-io/mcp-server-preferences": "0.
|
|
44
|
-
"@transcend-io/mcp-server-workflows": "0.
|
|
35
|
+
"@transcend-io/mcp-server-admin": "0.5.0",
|
|
36
|
+
"@transcend-io/mcp-server-assessment": "0.5.0",
|
|
37
|
+
"@transcend-io/mcp-server-base": "0.8.0",
|
|
38
|
+
"@transcend-io/mcp-server-consent": "0.6.0",
|
|
39
|
+
"@transcend-io/mcp-server-discovery": "0.5.0",
|
|
40
|
+
"@transcend-io/mcp-server-docs": "0.3.5",
|
|
41
|
+
"@transcend-io/mcp-server-dsr": "0.5.0",
|
|
42
|
+
"@transcend-io/mcp-server-inventory": "0.5.0",
|
|
43
|
+
"@transcend-io/mcp-server-preferences": "0.5.0",
|
|
44
|
+
"@transcend-io/mcp-server-workflows": "0.5.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@arethetypeswrong/cli": "^0.18.2",
|