fa-mcp-sdk 0.4.142 → 0.11.2
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 +5 -0
- package/cli-template/.dockerignore +16 -0
- package/cli-template/.gitlab-ci.yml +135 -0
- package/cli-template/AGENTS.md +1 -0
- package/cli-template/CHANGELOG.md +64 -0
- package/cli-template/FA-MCP-SDK-DOC/00-FA-MCP-SDK-index.md +27 -4
- package/cli-template/FA-MCP-SDK-DOC/02-1-tools-and-api.md +195 -0
- package/cli-template/FA-MCP-SDK-DOC/02-2-prompts-and-resources.md +172 -9
- package/cli-template/FA-MCP-SDK-DOC/03-configuration.md +170 -12
- package/cli-template/FA-MCP-SDK-DOC/04-authentication.md +158 -8
- package/cli-template/FA-MCP-SDK-DOC/06-utilities.md +67 -6
- package/cli-template/FA-MCP-SDK-DOC/07-testing-and-operations.md +31 -15
- package/cli-template/FA-MCP-SDK-DOC/10-mcp-apps.md +1 -1
- package/cli-template/FA-MCP-SDK-DOC/11-public-contract.md +342 -0
- package/cli-template/README.md +37 -0
- package/cli-template/deploy/docker/.env.example +10 -0
- package/cli-template/deploy/docker/Dockerfile +44 -0
- package/cli-template/deploy/docker/Dockerfile.local +29 -0
- package/cli-template/deploy/docker/README.md +94 -0
- package/cli-template/deploy/docker/config/local.docker.yaml +14 -0
- package/cli-template/deploy/docker/docker-compose.yml +31 -0
- package/cli-template/deploy/gitlab-runner/.env.example +16 -0
- package/cli-template/deploy/gitlab-runner/README.md +65 -0
- package/cli-template/deploy/gitlab-runner/config/config.toml.template +26 -0
- package/cli-template/deploy/gitlab-runner/docker-compose.yml +39 -0
- package/cli-template/deploy/gitlab-runner/entrypoint.sh +27 -0
- package/cli-template/deploy/gitlab-runner/start.sh +47 -0
- package/cli-template/gitignore +96 -95
- package/cli-template/package.json +1 -1
- package/config/_local.yaml +73 -11
- package/config/custom-environment-variables.yaml +102 -0
- package/config/default.yaml +164 -11
- package/config/local.yaml +20 -19
- package/dist/core/_types_/config.d.ts +119 -0
- package/dist/core/_types_/config.d.ts.map +1 -1
- package/dist/core/_types_/types.d.ts +137 -4
- package/dist/core/_types_/types.d.ts.map +1 -1
- package/dist/core/agent-tester/agent-tester-router.d.ts.map +1 -1
- package/dist/core/agent-tester/agent-tester-router.js +25 -11
- package/dist/core/agent-tester/agent-tester-router.js.map +1 -1
- package/dist/core/agent-tester/services/TesterMcpClientService.d.ts.map +1 -1
- package/dist/core/agent-tester/services/TesterMcpClientService.js +6 -4
- package/dist/core/agent-tester/services/TesterMcpClientService.js.map +1 -1
- package/dist/core/auth/admin-auth.js +4 -4
- package/dist/core/auth/admin-auth.js.map +1 -1
- package/dist/core/auth/agent-tester-auth.d.ts +1 -1
- package/dist/core/auth/agent-tester-auth.d.ts.map +1 -1
- package/dist/core/auth/agent-tester-auth.js +8 -4
- package/dist/core/auth/agent-tester-auth.js.map +1 -1
- package/dist/core/auth/auth-profile.d.ts +38 -0
- package/dist/core/auth/auth-profile.d.ts.map +1 -0
- package/dist/core/auth/auth-profile.js +101 -0
- package/dist/core/auth/auth-profile.js.map +1 -0
- package/dist/core/auth/jwt-v2.d.ts +27 -0
- package/dist/core/auth/jwt-v2.d.ts.map +1 -0
- package/dist/core/auth/jwt-v2.js +180 -0
- package/dist/core/auth/jwt-v2.js.map +1 -0
- package/dist/core/auth/jwt.d.ts +27 -13
- package/dist/core/auth/jwt.d.ts.map +1 -1
- package/dist/core/auth/jwt.js +36 -13
- package/dist/core/auth/jwt.js.map +1 -1
- package/dist/core/auth/key-resolver.d.ts +74 -0
- package/dist/core/auth/key-resolver.d.ts.map +1 -0
- package/dist/core/auth/key-resolver.js +330 -0
- package/dist/core/auth/key-resolver.js.map +1 -0
- package/dist/core/auth/middleware.d.ts.map +1 -1
- package/dist/core/auth/middleware.js +66 -0
- package/dist/core/auth/middleware.js.map +1 -1
- package/dist/core/auth/multi-auth.d.ts +1 -1
- package/dist/core/auth/multi-auth.d.ts.map +1 -1
- package/dist/core/auth/multi-auth.js +7 -7
- package/dist/core/auth/multi-auth.js.map +1 -1
- package/dist/core/auth/token-generator/server.js +4 -4
- package/dist/core/auth/token-generator/server.js.map +1 -1
- package/dist/core/auth/types.d.ts +5 -0
- package/dist/core/auth/types.d.ts.map +1 -1
- package/dist/core/db/pg-db.d.ts +7 -0
- package/dist/core/db/pg-db.d.ts.map +1 -1
- package/dist/core/db/pg-db.js +54 -3
- package/dist/core/db/pg-db.js.map +1 -1
- package/dist/core/errors/BaseMcpError.d.ts +21 -1
- package/dist/core/errors/BaseMcpError.d.ts.map +1 -1
- package/dist/core/errors/BaseMcpError.js +20 -1
- package/dist/core/errors/BaseMcpError.js.map +1 -1
- package/dist/core/errors/ValidationError.d.ts +5 -0
- package/dist/core/errors/ValidationError.d.ts.map +1 -1
- package/dist/core/errors/ValidationError.js +6 -1
- package/dist/core/errors/ValidationError.js.map +1 -1
- package/dist/core/errors/errors.d.ts +31 -3
- package/dist/core/errors/errors.d.ts.map +1 -1
- package/dist/core/errors/errors.js +86 -6
- package/dist/core/errors/errors.js.map +1 -1
- package/dist/core/errors/specific-errors.d.ts +54 -0
- package/dist/core/errors/specific-errors.d.ts.map +1 -0
- package/dist/core/errors/specific-errors.js +82 -0
- package/dist/core/errors/specific-errors.js.map +1 -0
- package/dist/core/index.d.ts +10 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +9 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/init-mcp-server.d.ts.map +1 -1
- package/dist/core/init-mcp-server.js +39 -0
- package/dist/core/init-mcp-server.js.map +1 -1
- package/dist/core/mcp/create-mcp-server.d.ts +12 -6
- package/dist/core/mcp/create-mcp-server.d.ts.map +1 -1
- package/dist/core/mcp/create-mcp-server.js +592 -33
- package/dist/core/mcp/create-mcp-server.js.map +1 -1
- package/dist/core/mcp/debug-trace.d.ts +3 -1
- package/dist/core/mcp/debug-trace.d.ts.map +1 -1
- package/dist/core/mcp/debug-trace.js +17 -2
- package/dist/core/mcp/debug-trace.js.map +1 -1
- package/dist/core/mcp/deprecation.d.ts +31 -0
- package/dist/core/mcp/deprecation.d.ts.map +1 -0
- package/dist/core/mcp/deprecation.js +96 -0
- package/dist/core/mcp/deprecation.js.map +1 -0
- package/dist/core/mcp/mcp-logging.d.ts +32 -0
- package/dist/core/mcp/mcp-logging.d.ts.map +1 -0
- package/dist/core/mcp/mcp-logging.js +97 -0
- package/dist/core/mcp/mcp-logging.js.map +1 -0
- package/dist/core/mcp/pagination.d.ts +13 -0
- package/dist/core/mcp/pagination.d.ts.map +1 -0
- package/dist/core/mcp/pagination.js +50 -0
- package/dist/core/mcp/pagination.js.map +1 -0
- package/dist/core/mcp/prompts.d.ts +5 -1
- package/dist/core/mcp/prompts.d.ts.map +1 -1
- package/dist/core/mcp/prompts.js +3 -1
- package/dist/core/mcp/prompts.js.map +1 -1
- package/dist/core/mcp/resources.d.ts +9 -0
- package/dist/core/mcp/resources.d.ts.map +1 -1
- package/dist/core/mcp/resources.js +158 -11
- package/dist/core/mcp/resources.js.map +1 -1
- package/dist/core/mcp/server-stdio.d.ts +7 -1
- package/dist/core/mcp/server-stdio.d.ts.map +1 -1
- package/dist/core/mcp/server-stdio.js +8 -3
- package/dist/core/mcp/server-stdio.js.map +1 -1
- package/dist/core/mcp/task-store.d.ts +97 -0
- package/dist/core/mcp/task-store.d.ts.map +1 -0
- package/dist/core/mcp/task-store.js +175 -0
- package/dist/core/mcp/task-store.js.map +1 -0
- package/dist/core/mcp/tool-limits.d.ts +22 -0
- package/dist/core/mcp/tool-limits.d.ts.map +1 -0
- package/dist/core/mcp/tool-limits.js +115 -0
- package/dist/core/mcp/tool-limits.js.map +1 -0
- package/dist/core/mcp/validate-tool-args.d.ts +16 -0
- package/dist/core/mcp/validate-tool-args.d.ts.map +1 -0
- package/dist/core/mcp/validate-tool-args.js +67 -0
- package/dist/core/mcp/validate-tool-args.js.map +1 -0
- package/dist/core/mcp/validate-tool-names.d.ts +11 -0
- package/dist/core/mcp/validate-tool-names.d.ts.map +1 -0
- package/dist/core/mcp/validate-tool-names.js +23 -0
- package/dist/core/mcp/validate-tool-names.js.map +1 -0
- package/dist/core/metrics/metrics.d.ts +45 -0
- package/dist/core/metrics/metrics.d.ts.map +1 -0
- package/dist/core/metrics/metrics.js +119 -0
- package/dist/core/metrics/metrics.js.map +1 -0
- package/dist/core/utils/mask-sensitive.d.ts +44 -0
- package/dist/core/utils/mask-sensitive.d.ts.map +1 -0
- package/dist/core/utils/mask-sensitive.js +64 -0
- package/dist/core/utils/mask-sensitive.js.map +1 -0
- package/dist/core/utils/testing/McpHttpClient.d.ts +8 -33
- package/dist/core/utils/testing/McpHttpClient.d.ts.map +1 -1
- package/dist/core/utils/testing/McpHttpClient.js +8 -74
- package/dist/core/utils/testing/McpHttpClient.js.map +1 -1
- package/dist/core/utils/testing/McpStreamableHttpClient.d.ts +24 -30
- package/dist/core/utils/testing/McpStreamableHttpClient.d.ts.map +1 -1
- package/dist/core/utils/testing/McpStreamableHttpClient.js +36 -198
- package/dist/core/utils/testing/McpStreamableHttpClient.js.map +1 -1
- package/dist/core/utils/utils.d.ts.map +1 -1
- package/dist/core/utils/utils.js +2 -0
- package/dist/core/utils/utils.js.map +1 -1
- package/dist/core/web/admin-router.js +3 -3
- package/dist/core/web/admin-router.js.map +1 -1
- package/dist/core/web/cors.d.ts +9 -1
- package/dist/core/web/cors.d.ts.map +1 -1
- package/dist/core/web/cors.js +26 -5
- package/dist/core/web/cors.js.map +1 -1
- package/dist/core/web/event-store.d.ts +33 -0
- package/dist/core/web/event-store.d.ts.map +1 -0
- package/dist/core/web/event-store.js +65 -0
- package/dist/core/web/event-store.js.map +1 -0
- package/dist/core/web/oauth-router.d.ts +37 -0
- package/dist/core/web/oauth-router.d.ts.map +1 -0
- package/dist/core/web/oauth-router.js +207 -0
- package/dist/core/web/oauth-router.js.map +1 -0
- package/dist/core/web/request-id.d.ts +44 -0
- package/dist/core/web/request-id.d.ts.map +1 -0
- package/dist/core/web/request-id.js +82 -0
- package/dist/core/web/request-id.js.map +1 -0
- package/dist/core/web/server-http.d.ts.map +1 -1
- package/dist/core/web/server-http.js +322 -182
- package/dist/core/web/server-http.js.map +1 -1
- package/package.json +15 -2
- package/scripts/claude-2-agents-symlink.js +10 -1
- package/scripts/generate-jwt.js +129 -51
- package/src/template/custom-resources.ts +14 -0
- package/src/template/prompts/custom-prompts.ts +4 -0
- package/src/template/tools/handle-tool-call.ts +59 -3
- package/src/template/tools/tools.ts +92 -31
- package/src/tests/mcp/test-http.js +1 -1
- package/src/tests/mcp/test-sse.js +1 -1
|
@@ -1,7 +1,66 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Centralized error handling system for the MCP server
|
|
3
3
|
*/
|
|
4
|
+
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import { logger } from '../logger.js';
|
|
6
|
+
import { getCurrentRequestId } from '../web/request-id.js';
|
|
4
7
|
import { BaseMcpError } from './BaseMcpError.js';
|
|
8
|
+
/**
|
|
9
|
+
* Absolute filesystem paths that may leak into a raw error message. We scrub them from any
|
|
10
|
+
* outward-facing text as a belt-and-suspenders measure on top of the code-based decision in
|
|
11
|
+
* {@link sanitizeOutwardMessage} — covers the case where a developer accidentally embeds a path
|
|
12
|
+
* inside an otherwise "safe" domain error. Standard §13.3 / Appendix C.3.
|
|
13
|
+
*/
|
|
14
|
+
const ABSOLUTE_PATH_RE = /(?:[A-Za-z]:\\[^\s'"]+|\/(?:home|usr|var|etc|root|opt|tmp|mnt|srv|Users|proc)\/[^\s'"]*)/g;
|
|
15
|
+
function stripSensitive(message) {
|
|
16
|
+
return message.replace(ABSOLUTE_PATH_RE, '[path]');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Standard §13.3 / Appendix C.3 — decide what error text is safe to send to the client.
|
|
20
|
+
*
|
|
21
|
+
* A {@link BaseMcpError} carrying an explicit, developer-assigned `jsonRpcCode` (every class in
|
|
22
|
+
* `specific-errors.ts`, plus domain tool errors) is intentional: its message was written to be
|
|
23
|
+
* shown, so it is returned verbatim (with absolute paths still scrubbed). Anything else — an
|
|
24
|
+
* unknown throw, a generic `Error`, or a `BaseMcpError` without an explicit code (becomes the
|
|
25
|
+
* generic `-32603` / `-32000`) — may carry a stack frame, SQL fragment, internal module name or
|
|
26
|
+
* connection string, so the outward message collapses to the opaque `Internal error` and the full
|
|
27
|
+
* original text is written to the internal log keyed by the current `requestId` for correlation.
|
|
28
|
+
*/
|
|
29
|
+
export function sanitizeOutwardMessage(error) {
|
|
30
|
+
if (error instanceof BaseMcpError && typeof error.jsonRpcCode === 'number') {
|
|
31
|
+
return stripSensitive(error.message);
|
|
32
|
+
}
|
|
33
|
+
const requestId = getCurrentRequestId();
|
|
34
|
+
const detail = error instanceof Error ? (error.stack ?? error.message) : String(error);
|
|
35
|
+
logger.error(`[${requestId ?? 'no-request-id'}] internal error: ${detail}`);
|
|
36
|
+
return 'Internal error';
|
|
37
|
+
}
|
|
38
|
+
function buildErrorData(error) {
|
|
39
|
+
let data = error.data ?? error.details;
|
|
40
|
+
const requestId = getCurrentRequestId();
|
|
41
|
+
if (requestId && !data?.requestId) {
|
|
42
|
+
data = { ...data, requestId };
|
|
43
|
+
}
|
|
44
|
+
return data;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Convert any value thrown inside an MCP request handler into an SDK {@link McpError} with the
|
|
48
|
+
* correct numeric JSON-RPC code and a sanitized message. The SDK serializes a thrown error by its
|
|
49
|
+
* numeric `.code` (falling back to `-32603`), but {@link BaseMcpError}'s `.code` is a string — so
|
|
50
|
+
* without this bridge a `ResourceNotFoundError` or `UpstreamUnavailableError` would reach the wire
|
|
51
|
+
* as `-32603`. Already-`McpError` values pass through untouched.
|
|
52
|
+
*/
|
|
53
|
+
export function toMcpError(error) {
|
|
54
|
+
if (error instanceof McpError) {
|
|
55
|
+
return error;
|
|
56
|
+
}
|
|
57
|
+
const message = sanitizeOutwardMessage(error);
|
|
58
|
+
if (error instanceof BaseMcpError && typeof error.jsonRpcCode === 'number') {
|
|
59
|
+
return new McpError(error.jsonRpcCode, message, buildErrorData(error));
|
|
60
|
+
}
|
|
61
|
+
const requestId = getCurrentRequestId();
|
|
62
|
+
return new McpError(-32603, message, requestId ? { requestId } : undefined);
|
|
63
|
+
}
|
|
5
64
|
export class ToolExecutionError extends BaseMcpError {
|
|
6
65
|
constructor(toolName, message, printed) {
|
|
7
66
|
super('TOOL_EXECUTION_ERROR', `Failed to execute tool '${toolName}': ${message}`, undefined, 400, printed);
|
|
@@ -16,17 +75,38 @@ export class ServerError extends BaseMcpError {
|
|
|
16
75
|
}
|
|
17
76
|
}
|
|
18
77
|
/**
|
|
19
|
-
* Create JSON-RPC 2.0 error response
|
|
78
|
+
* Create JSON-RPC 2.0 error response.
|
|
79
|
+
*
|
|
80
|
+
* `error.data` follows the canonical Appendix B.3 shape — `requestId`, `field`, `reason`,
|
|
81
|
+
* `retryAfter` (plus implementation-specific keys). The JSON-RPC numeric code is taken from
|
|
82
|
+
* `error.jsonRpcCode` when present (set by specific-errors), otherwise falls back to `-32000`
|
|
83
|
+
* for any `BaseMcpError` without an explicit code, and `-32603` for unknown errors.
|
|
84
|
+
*
|
|
85
|
+
* Internal stack traces and file paths are NEVER copied into `error.data` — standard §13.3.
|
|
20
86
|
*/
|
|
21
|
-
export function createJsonRpcErrorResponse(error, requestId) {
|
|
22
|
-
const
|
|
87
|
+
export function createJsonRpcErrorResponse(error, requestId, extraData) {
|
|
88
|
+
const isMcpError = error instanceof BaseMcpError;
|
|
89
|
+
const jsonRpcCode = isMcpError ? (typeof error.jsonRpcCode === 'number' ? error.jsonRpcCode : -32000) : -32603;
|
|
90
|
+
// Prefer the structured `data` field (Appendix B.3). Fall back to the legacy `details` payload
|
|
91
|
+
// only when no `data` was supplied — keeps older callers working without leaking arbitrary
|
|
92
|
+
// shape into the canonical slot.
|
|
93
|
+
const baseData = isMcpError ? (error.data ?? error.details) : undefined;
|
|
94
|
+
let mergedData = baseData || extraData ? { ...baseData, ...extraData } : undefined;
|
|
95
|
+
// Standard §15.1 — surface the correlation id on every error response, but never
|
|
96
|
+
// overwrite one that the caller already supplied (e.g. cross-process bridges).
|
|
97
|
+
const currentRequestId = getCurrentRequestId();
|
|
98
|
+
if (currentRequestId && !mergedData?.requestId) {
|
|
99
|
+
mergedData = { ...mergedData, requestId: currentRequestId };
|
|
100
|
+
}
|
|
23
101
|
return {
|
|
24
102
|
jsonrpc: '2.0',
|
|
25
103
|
id: requestId ?? 1,
|
|
26
104
|
error: {
|
|
27
|
-
code:
|
|
28
|
-
|
|
29
|
-
|
|
105
|
+
code: jsonRpcCode,
|
|
106
|
+
// Standard §13.3 — never copy raw internal text outward; collapse unknown errors to a
|
|
107
|
+
// generic message and keep the detail in the internal log keyed by requestId.
|
|
108
|
+
message: sanitizeOutwardMessage(error),
|
|
109
|
+
...(mergedData ? { data: mergedData } : {}),
|
|
30
110
|
},
|
|
31
111
|
};
|
|
32
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/errors/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/errors/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { BaseMcpError, IMcpErrorData } from './BaseMcpError.js';
|
|
2
|
+
/**
|
|
3
|
+
* MCP standard JSON-RPC error codes (Appendix B). These complement the generic JSON-RPC 2.0
|
|
4
|
+
* codes (`-32600`, `-32601`, `-32602`, `-32603`) and identify MCP-specific failures.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MCP_ERROR_CODES: {
|
|
7
|
+
readonly RATE_LIMITED: -32003;
|
|
8
|
+
readonly RESOURCE_NOT_FOUND: -32002;
|
|
9
|
+
readonly TIMEOUT: -32004;
|
|
10
|
+
readonly PAYLOAD_TOO_LARGE: -32005;
|
|
11
|
+
readonly UPSTREAM_UNAVAILABLE: -32006;
|
|
12
|
+
readonly CONFLICT: -32007;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Body exceeds `mcp.limits.maxPayloadBytes`. Standard §14 / Appendix B.
|
|
16
|
+
*/
|
|
17
|
+
export declare class PayloadTooLargeError extends BaseMcpError {
|
|
18
|
+
constructor(reason?: string, data?: IMcpErrorData);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Tool execution exceeded `mcp.limits.toolTimeoutMs`. Standard §14 / Appendix B.
|
|
22
|
+
*/
|
|
23
|
+
export declare class TimeoutError extends BaseMcpError {
|
|
24
|
+
constructor(reason?: string, data?: IMcpErrorData);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Per-client rate limit exceeded. Standard §14 / Appendix B.
|
|
28
|
+
* The `retryAfter` value (seconds) MUST be mirrored in the HTTP `Retry-After` header.
|
|
29
|
+
*/
|
|
30
|
+
export declare class RateLimitedError extends BaseMcpError {
|
|
31
|
+
constructor(reason: string, retryAfter: number, data?: IMcpErrorData);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Session / resource not found. Standard §13 / Appendix B.
|
|
35
|
+
*/
|
|
36
|
+
export declare class ResourceNotFoundError extends BaseMcpError {
|
|
37
|
+
constructor(reason?: string, data?: IMcpErrorData);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A dependency this server relies on (database pool, downstream HTTP service, message broker)
|
|
41
|
+
* is unreachable or refused the connection. Standard Appendix B.2 — JSON-RPC `-32006`, HTTP 503.
|
|
42
|
+
* Clients MAY retry after a back-off. The human-readable `reason` is safe to surface.
|
|
43
|
+
*/
|
|
44
|
+
export declare class UpstreamUnavailableError extends BaseMcpError {
|
|
45
|
+
constructor(reason?: string, data?: IMcpErrorData);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The request collides with the current state of a resource (optimistic-locking failure,
|
|
49
|
+
* duplicate key, concurrent edit). Standard Appendix B.2 — JSON-RPC `-32007`, HTTP 409.
|
|
50
|
+
*/
|
|
51
|
+
export declare class ConflictError extends BaseMcpError {
|
|
52
|
+
constructor(reason?: string, data?: IMcpErrorData);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=specific-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specific-errors.d.ts","sourceRoot":"","sources":["../../../src/core/errors/specific-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAC;AAEX;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;gBACxC,MAAM,GAAE,MAAoC,EAAE,IAAI,CAAC,EAAE,aAAa;CAM/E;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;gBAChC,MAAM,GAAE,MAA8B,EAAE,IAAI,CAAC,EAAE,aAAa;CAGzE;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;gBACpC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa;CAOrE;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;gBACzC,MAAM,GAAE,MAA6B,EAAE,IAAI,CAAC,EAAE,aAAa;CAMxE;AAED;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,YAAY;gBAC5C,MAAM,GAAE,MAA0C,EAAE,IAAI,CAAC,EAAE,aAAa;CAMrF;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,YAAY;gBACjC,MAAM,GAAE,MAAyB,EAAE,IAAI,CAAC,EAAE,aAAa;CAMpE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { BaseMcpError } from './BaseMcpError.js';
|
|
2
|
+
/**
|
|
3
|
+
* MCP standard JSON-RPC error codes (Appendix B). These complement the generic JSON-RPC 2.0
|
|
4
|
+
* codes (`-32600`, `-32601`, `-32602`, `-32603`) and identify MCP-specific failures.
|
|
5
|
+
*/
|
|
6
|
+
export const MCP_ERROR_CODES = {
|
|
7
|
+
RATE_LIMITED: -32003,
|
|
8
|
+
RESOURCE_NOT_FOUND: -32002,
|
|
9
|
+
TIMEOUT: -32004,
|
|
10
|
+
PAYLOAD_TOO_LARGE: -32005,
|
|
11
|
+
UPSTREAM_UNAVAILABLE: -32006,
|
|
12
|
+
CONFLICT: -32007,
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Body exceeds `mcp.limits.maxPayloadBytes`. Standard §14 / Appendix B.
|
|
16
|
+
*/
|
|
17
|
+
export class PayloadTooLargeError extends BaseMcpError {
|
|
18
|
+
constructor(reason = 'Request body is too large', data) {
|
|
19
|
+
super('PAYLOAD_TOO_LARGE', reason, undefined, 413, undefined, MCP_ERROR_CODES.PAYLOAD_TOO_LARGE, {
|
|
20
|
+
reason,
|
|
21
|
+
...data,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Tool execution exceeded `mcp.limits.toolTimeoutMs`. Standard §14 / Appendix B.
|
|
27
|
+
*/
|
|
28
|
+
export class TimeoutError extends BaseMcpError {
|
|
29
|
+
constructor(reason = 'Operation timed out', data) {
|
|
30
|
+
super('TIMEOUT', reason, undefined, 504, undefined, MCP_ERROR_CODES.TIMEOUT, { reason, ...data });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Per-client rate limit exceeded. Standard §14 / Appendix B.
|
|
35
|
+
* The `retryAfter` value (seconds) MUST be mirrored in the HTTP `Retry-After` header.
|
|
36
|
+
*/
|
|
37
|
+
export class RateLimitedError extends BaseMcpError {
|
|
38
|
+
constructor(reason, retryAfter, data) {
|
|
39
|
+
super('RATE_LIMITED', reason, undefined, 429, undefined, MCP_ERROR_CODES.RATE_LIMITED, {
|
|
40
|
+
reason,
|
|
41
|
+
retryAfter,
|
|
42
|
+
...data,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Session / resource not found. Standard §13 / Appendix B.
|
|
48
|
+
*/
|
|
49
|
+
export class ResourceNotFoundError extends BaseMcpError {
|
|
50
|
+
constructor(reason = 'Resource not found', data) {
|
|
51
|
+
super('RESOURCE_NOT_FOUND', reason, undefined, 404, undefined, MCP_ERROR_CODES.RESOURCE_NOT_FOUND, {
|
|
52
|
+
reason,
|
|
53
|
+
...data,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A dependency this server relies on (database pool, downstream HTTP service, message broker)
|
|
59
|
+
* is unreachable or refused the connection. Standard Appendix B.2 — JSON-RPC `-32006`, HTTP 503.
|
|
60
|
+
* Clients MAY retry after a back-off. The human-readable `reason` is safe to surface.
|
|
61
|
+
*/
|
|
62
|
+
export class UpstreamUnavailableError extends BaseMcpError {
|
|
63
|
+
constructor(reason = 'Upstream dependency unavailable', data) {
|
|
64
|
+
super('UPSTREAM_UNAVAILABLE', reason, undefined, 503, undefined, MCP_ERROR_CODES.UPSTREAM_UNAVAILABLE, {
|
|
65
|
+
reason,
|
|
66
|
+
...data,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The request collides with the current state of a resource (optimistic-locking failure,
|
|
72
|
+
* duplicate key, concurrent edit). Standard Appendix B.2 — JSON-RPC `-32007`, HTTP 409.
|
|
73
|
+
*/
|
|
74
|
+
export class ConflictError extends BaseMcpError {
|
|
75
|
+
constructor(reason = 'State conflict', data) {
|
|
76
|
+
super('CONFLICT', reason, undefined, 409, undefined, MCP_ERROR_CODES.CONFLICT, {
|
|
77
|
+
reason,
|
|
78
|
+
...data,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=specific-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specific-errors.js","sourceRoot":"","sources":["../../../src/core/errors/specific-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,mBAAmB,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,CAAC,KAAK;IACpB,kBAAkB,EAAE,CAAC,KAAK;IAC1B,OAAO,EAAE,CAAC,KAAK;IACf,iBAAiB,EAAE,CAAC,KAAK;IACzB,oBAAoB,EAAE,CAAC,KAAK;IAC5B,QAAQ,EAAE,CAAC,KAAK;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD,YAAY,SAAiB,2BAA2B,EAAE,IAAoB;QAC5E,KAAK,CAAC,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,iBAAiB,EAAE;YAC/F,MAAM;YACN,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IAC5C,YAAY,SAAiB,qBAAqB,EAAE,IAAoB;QACtE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACpG,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,YAAY,MAAc,EAAE,UAAkB,EAAE,IAAoB;QAClE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,YAAY,EAAE;YACrF,MAAM;YACN,UAAU;YACV,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACrD,YAAY,SAAiB,oBAAoB,EAAE,IAAoB;QACrE,KAAK,CAAC,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,kBAAkB,EAAE;YACjG,MAAM;YACN,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,wBAAyB,SAAQ,YAAY;IACxD,YAAY,SAAiB,iCAAiC,EAAE,IAAoB;QAClF,KAAK,CAAC,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,oBAAoB,EAAE;YACrG,MAAM;YACN,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC7C,YAAY,SAAiB,gBAAgB,EAAE,IAAoB;QACjE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;YAC7E,MAAM;YACN,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
export type { AppConfig } from './_types_/config.js';
|
|
3
3
|
export type { IADConfig, IDcConfig } from './_types_/active-directory-config.js';
|
|
4
|
-
export type { IClientCapabilities, McpServerData, IToolHandlerParams, ITransportContext, TTransportType, IGetPromptParams, IGetPromptRequest, IPromptContent, IPromptData, TPromptContentFunction, IResource, TResourceContentFunction, IResourceContent, IReadResourceRequest, IResourceInfo, IResourceData, IUiResourceMeta, IEndpointsOn404, IUsedHttpHeader, IToolProperties, IToolInputSchema, CustomAuthValidator, TokenGenAuthHandler, TokenGenAuthInput, TToolHandlerResponse, IToolHandlerTextResponse, IToolHandlerStructuredResponse, } from './_types_/types.js';
|
|
4
|
+
export type { IClientCapabilities, McpServerData, IToolHandlerParams, ITransportContext, TTransportType, IGetPromptParams, IGetPromptRequest, IIcon, IPromptArgument, IPromptContent, IPromptData, TPromptContentFunction, IResource, TResourceContentFunction, TResourceBinaryContentFunction, IResourceBinaryContent, IResourceContent, IReadResourceRequest, IResourceInfo, IResourceData, IResourceTemplateInfo, IUiResourceMeta, IEndpointsOn404, IUsedHttpHeader, IToolProperties, IToolInputSchema, CustomAuthValidator, TokenGenAuthHandler, TokenGenAuthInput, TToolHandlerResponse, IToolHandlerTextResponse, IToolHandlerStructuredResponse, } from './_types_/types.js';
|
|
5
5
|
export { appConfig, getProjectData, getSafeAppConfig } from './bootstrap/init-config.js';
|
|
6
6
|
export { getUiCapability, hostSupportsMcpApps, MCP_APPS_EXTENSION_ID, MCP_APPS_RESOURCE_MIME_TYPE, } from './mcp/mcp-apps.js';
|
|
7
7
|
export type { IMcpUiClientCapabilities } from './mcp/mcp-apps.js';
|
|
@@ -11,7 +11,9 @@ export { getConsulAPI } from './consul/get-consul-api.js';
|
|
|
11
11
|
export { execMAIN, queryRsMAIN, queryMAIN, checkMainDB, getInsertSqlMAIN, getMainDBConnectionStatus, getMergeSqlMAIN, mergeByBatch, oneRowMAIN, } from './db/pg-db.js';
|
|
12
12
|
export type { IQueryPgArgsCOptional } from './db/pg-db.js';
|
|
13
13
|
export { BaseMcpError } from './errors/BaseMcpError.js';
|
|
14
|
-
export {
|
|
14
|
+
export type { IMcpErrorData } from './errors/BaseMcpError.js';
|
|
15
|
+
export { addErrorMessage, createJsonRpcErrorResponse, sanitizeOutwardMessage, toError, toMcpError, toStr, ToolExecutionError, ServerError, } from './errors/errors.js';
|
|
16
|
+
export { MCP_ERROR_CODES, PayloadTooLargeError, TimeoutError, RateLimitedError, ResourceNotFoundError, UpstreamUnavailableError, ConflictError, } from './errors/specific-errors.js';
|
|
15
17
|
export { ValidationError } from './errors/ValidationError.js';
|
|
16
18
|
export { generateToken } from './auth/jwt.js';
|
|
17
19
|
export declare function generateTokenApp(...args: any[]): Promise<import("node:http").Server<typeof import("node:http").IncomingMessage, typeof import("node:http").ServerResponse>>;
|
|
@@ -20,6 +22,9 @@ getMultiAuthError, } from './auth/middleware.js';
|
|
|
20
22
|
export { checkMultiAuth, detectAuthConfiguration, logAuthConfiguration, getAuthHeadersForTests, } from './auth/multi-auth.js';
|
|
21
23
|
export type { AuthDetectionResult, AuthResult, AuthType, ICheckTokenResult, ITokenPayload, TTokenType, } from './auth/types.js';
|
|
22
24
|
export { initMcpServer, gracefulShutdown } from './init-mcp-server.js';
|
|
25
|
+
export { notifyResourceUpdated } from './mcp/resources.js';
|
|
26
|
+
export { getTaskStore, resetTaskStore, InMemoryTaskStore, toTaskDto, isTerminalTaskStatus } from './mcp/task-store.js';
|
|
27
|
+
export type { ITaskStore, ITaskRecord, ITaskCreateInput, ITaskStoreOptions, TTaskStatus, TTaskPatch, } from './mcp/task-store.js';
|
|
23
28
|
export { formatToolResult, formatToolError, getJsonFromResult, asJson, asJsonError, asTextContent, asTextError, } from './utils/formatToolResult.js';
|
|
24
29
|
export { trim, isMainModule, isNonEmptyObject, isObject, ppj, encodeSvgForDataUri, getAsset, normalizeHeaders, getTools, } from './utils/utils.js';
|
|
25
30
|
export { isPortAvailable, checkPortAvailability } from './utils/port-checker.js';
|
|
@@ -27,6 +32,9 @@ export { ROOT_PROJECT_DIR } from './constants.js';
|
|
|
27
32
|
export { eventEmitter } from './ee.js';
|
|
28
33
|
export { logger, fileLogger, applyLoggerSettings } from './logger.js';
|
|
29
34
|
export { getCache, CacheManager } from './cache/cache.js';
|
|
35
|
+
export { InMemoryEventStore } from './web/event-store.js';
|
|
36
|
+
export { maskSensitive } from './utils/mask-sensitive.js';
|
|
37
|
+
export type { IMaskRules } from './utils/mask-sensitive.js';
|
|
30
38
|
export { McpHttpClient } from './utils/testing/McpHttpClient.js';
|
|
31
39
|
export { McpSseClient } from './utils/testing/McpSseClient.js';
|
|
32
40
|
export { McpStdioClient } from './utils/testing/McpStdioClient.js';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjF,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,SAAS,EACT,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEzF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.js
CHANGED
|
@@ -5,7 +5,8 @@ export { deregisterServiceFromConsul } from './consul/deregister.js';
|
|
|
5
5
|
export { getConsulAPI } from './consul/get-consul-api.js';
|
|
6
6
|
export { execMAIN, queryRsMAIN, queryMAIN, checkMainDB, getInsertSqlMAIN, getMainDBConnectionStatus, getMergeSqlMAIN, mergeByBatch, oneRowMAIN, } from './db/pg-db.js';
|
|
7
7
|
export { BaseMcpError } from './errors/BaseMcpError.js';
|
|
8
|
-
export { addErrorMessage, createJsonRpcErrorResponse, toError, toStr, ToolExecutionError, ServerError, } from './errors/errors.js';
|
|
8
|
+
export { addErrorMessage, createJsonRpcErrorResponse, sanitizeOutwardMessage, toError, toMcpError, toStr, ToolExecutionError, ServerError, } from './errors/errors.js';
|
|
9
|
+
export { MCP_ERROR_CODES, PayloadTooLargeError, TimeoutError, RateLimitedError, ResourceNotFoundError, UpstreamUnavailableError, ConflictError, } from './errors/specific-errors.js';
|
|
9
10
|
export { ValidationError } from './errors/ValidationError.js';
|
|
10
11
|
export { generateToken } from './auth/jwt.js';
|
|
11
12
|
export async function generateTokenApp(...args) {
|
|
@@ -17,6 +18,9 @@ getMultiAuthError, // Programmatic authentication checking
|
|
|
17
18
|
} from './auth/middleware.js';
|
|
18
19
|
export { checkMultiAuth, detectAuthConfiguration, logAuthConfiguration, getAuthHeadersForTests, } from './auth/multi-auth.js';
|
|
19
20
|
export { initMcpServer, gracefulShutdown } from './init-mcp-server.js';
|
|
21
|
+
export { notifyResourceUpdated } from './mcp/resources.js';
|
|
22
|
+
// Standard §8.7 — task-augmented execution storage (opt-in via mcp.tasks.enabled).
|
|
23
|
+
export { getTaskStore, resetTaskStore, InMemoryTaskStore, toTaskDto, isTerminalTaskStatus } from './mcp/task-store.js';
|
|
20
24
|
export { formatToolResult, formatToolError, getJsonFromResult, asJson, asJsonError, asTextContent, asTextError, } from './utils/formatToolResult.js';
|
|
21
25
|
export { trim, isMainModule, isNonEmptyObject, isObject, ppj, encodeSvgForDataUri, getAsset, normalizeHeaders, getTools, } from './utils/utils.js';
|
|
22
26
|
export { isPortAvailable, checkPortAvailability } from './utils/port-checker.js';
|
|
@@ -24,6 +28,10 @@ export { ROOT_PROJECT_DIR } from './constants.js';
|
|
|
24
28
|
export { eventEmitter } from './ee.js';
|
|
25
29
|
export { logger, fileLogger, applyLoggerSettings } from './logger.js';
|
|
26
30
|
export { getCache, CacheManager } from './cache/cache.js';
|
|
31
|
+
// Standard §6 (MAY) — in-memory EventStore for SSE resumability (opt-in via mcp.sse.resumability).
|
|
32
|
+
export { InMemoryEventStore } from './web/event-store.js';
|
|
33
|
+
// Standard §12.2 — optional helper to mask sensitive fields/values in tool results before returning.
|
|
34
|
+
export { maskSensitive } from './utils/mask-sensitive.js';
|
|
27
35
|
export { McpHttpClient } from './utils/testing/McpHttpClient.js';
|
|
28
36
|
export { McpSseClient } from './utils/testing/McpSseClient.js';
|
|
29
37
|
export { McpStdioClient } from './utils/testing/McpStdioClient.js';
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-mcp-server.d.ts","sourceRoot":"","sources":["../../src/core/init-mcp-server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAyC,aAAa,EAAwB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"init-mcp-server.d.ts","sourceRoot":"","sources":["../../src/core/init-mcp-server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAyC,aAAa,EAAwB,MAAM,oBAAoB,CAAC;AA2HhH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,iBA6B1E;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGtE"}
|
|
@@ -13,6 +13,7 @@ import { applyLoggerSettings, fileLogger, logger as lgr } from './logger.js';
|
|
|
13
13
|
import { BUILTIN_MCP_DEBUG_TOOLS, handleBuiltinDebugTool, isBuiltinDebugTool } from './mcp/builtin-debug-tools.js';
|
|
14
14
|
import { emitTrace, initDebugTraceFromConfig, makeCorr } from './mcp/debug-trace.js';
|
|
15
15
|
import { startStdioServer } from './mcp/server-stdio.js';
|
|
16
|
+
import { assertToolNames } from './mcp/validate-tool-names.js';
|
|
16
17
|
import { checkPortAvailability } from './utils/port-checker.js';
|
|
17
18
|
import { DEBUG_TOOL, DEBUG_TOOL_NAME, handleDebugTool } from './utils/testing/debug-tool.js';
|
|
18
19
|
import { isNonEmptyObject } from './utils/utils.js';
|
|
@@ -165,6 +166,11 @@ export async function initMcpServer(data) {
|
|
|
165
166
|
process.on('SIGTERM', () => gracefulShutdown('SIGTERM'));
|
|
166
167
|
// Open the JSON-lines debug sink before any traffic flows (no-op when unset)
|
|
167
168
|
initDebugTraceFromConfig();
|
|
169
|
+
// Standard §9.1 — eagerly validate static tool names so a misconfigured project fails fast.
|
|
170
|
+
// Dynamic (function-form) tools are validated lazily in getTools() on first call.
|
|
171
|
+
if (Array.isArray(data.tools)) {
|
|
172
|
+
assertToolNames(data.tools);
|
|
173
|
+
}
|
|
168
174
|
// Temporarily store data in a global context for access from _core functions
|
|
169
175
|
global.__MCP_PROJECT_DATA__ = wrapProjectDataWithDebug(data);
|
|
170
176
|
const { transportType } = appConfig.mcp;
|
|
@@ -178,6 +184,39 @@ export async function initMcpServer(data) {
|
|
|
178
184
|
break;
|
|
179
185
|
case 'http': {
|
|
180
186
|
await startupInfo({ dotEnvResult, customStartupInfo: data.customStartupInfo });
|
|
187
|
+
// Standard §6: production refuses an empty `originHosts` (which would degrade CORS to
|
|
188
|
+
// "allow everything"). Dev / test workflows keep working — the check fires only when
|
|
189
|
+
// NODE_ENV resolves to `production`.
|
|
190
|
+
const isProd = (process.env.NODE_CONSUL_ENV || process.env.NODE_ENV) === 'production';
|
|
191
|
+
const { originHosts } = appConfig.webServer;
|
|
192
|
+
if (isProd && (!Array.isArray(originHosts) || originHosts.length === 0)) {
|
|
193
|
+
throw new Error('webServer.originHosts must list at least one allowed host in production. ' +
|
|
194
|
+
'Refusing to start with an empty CORS allow-list.');
|
|
195
|
+
}
|
|
196
|
+
if (!isProd && (!Array.isArray(originHosts) || originHosts.length === 0)) {
|
|
197
|
+
lgr.warn('webServer.originHosts is empty — CORS will reject every cross-origin request.');
|
|
198
|
+
}
|
|
199
|
+
// Standard Прил. A.1 / §7.2 — JWT mode pre-flight checks.
|
|
200
|
+
// Fail fast on misconfigured non-legacy modes so a server with broken auth never starts.
|
|
201
|
+
const jwt = appConfig.webServer?.auth?.jwtToken;
|
|
202
|
+
const jwtMode = jwt?.mode ?? 'legacyAesCtr';
|
|
203
|
+
const skewLimit = 60;
|
|
204
|
+
if (typeof jwt?.clockSkew === 'number' && jwt.clockSkew > skewLimit) {
|
|
205
|
+
throw new Error(`webServer.auth.jwtToken.clockSkew=${jwt.clockSkew}s exceeds the ${skewLimit}s limit (standard Прил. A.1).`);
|
|
206
|
+
}
|
|
207
|
+
if (jwtMode === 'remoteJwks' && !(jwt?.jwksUri || '').trim()) {
|
|
208
|
+
throw new Error('webServer.auth.jwtToken.jwksUri is required for mode=remoteJwks (стандарт Прил. A.1).');
|
|
209
|
+
}
|
|
210
|
+
if (jwtMode === 'localKey' && !(jwt?.publicKeyPath || '').trim()) {
|
|
211
|
+
throw new Error('webServer.auth.jwtToken.publicKeyPath is required for mode=localKey.');
|
|
212
|
+
}
|
|
213
|
+
if ((jwtMode === 'remoteJwks' || jwtMode === 'localKey') && !(jwt?.expectedIssuer || '').trim()) {
|
|
214
|
+
throw new Error(`webServer.auth.jwtToken.expectedIssuer is required for mode=${jwtMode} (стандарт §7.2 / Прил. A.2).`);
|
|
215
|
+
}
|
|
216
|
+
if (jwtMode === 'legacyAesCtr' && isProd && appConfig.webServer?.auth?.enabled) {
|
|
217
|
+
lgr.warn('Auth profile=legacyAesCtr (HS256) is enabled in production. ' +
|
|
218
|
+
'Standard Прил. A.1 requires RS256/ES256 — migrate to mode=remoteJwks or mode=localKey.');
|
|
219
|
+
}
|
|
181
220
|
// Check if port is available before proceeding
|
|
182
221
|
await checkPortAvailability(appConfig.webServer.port, appConfig.webServer.host, true);
|
|
183
222
|
if (needCheckDb) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-mcp-server.js","sourceRoot":"","sources":["../../src/core/init-mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init-mcp-server.js","sourceRoot":"","sources":["../../src/core/init-mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
|
+
import { TTransportType } from '../_types_/types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Create MCP Server instance with registered tool and prompt handlers.
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* `
|
|
6
|
+
* The same `Server` is driven by every SDK transport (stdio + Streamable HTTP), so handlers build
|
|
7
|
+
* their {@link ITransportContext} from the per-request `extra` (`RequestHandlerExtra`) that the SDK
|
|
8
|
+
* passes as the second argument:
|
|
9
|
+
* - `extra.requestInfo.headers` — full request headers (HTTP only; absent on stdio);
|
|
10
|
+
* - `extra.authInfo` — whatever the transport read from `req.auth` (HTTP auth middleware bridge);
|
|
11
|
+
* - `server.getClientCapabilities()` — capabilities reported during the `initialize` handshake,
|
|
12
|
+
* reliable because each HTTP session owns its own `Server` instance (stateful transport).
|
|
13
|
+
*
|
|
14
|
+
* @param transportType — transport that owns this server instance, surfaced to handlers as
|
|
15
|
+
* `ITransportContext.transport`.
|
|
10
16
|
*/
|
|
11
|
-
export declare function createMcpServer(): Server;
|
|
17
|
+
export declare function createMcpServer(transportType: TTransportType): Server;
|
|
12
18
|
//# sourceMappingURL=create-mcp-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-mcp-server.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/create-mcp-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-mcp-server.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/create-mcp-server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAmBnE,OAAO,EAKL,cAAc,EACf,MAAM,qBAAqB,CAAC;AAqE7B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,cAAc,GAAG,MAAM,CAsoBrE"}
|