fa-mcp-sdk 0.11.12 → 0.12.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.
Files changed (30) hide show
  1. package/cli-template/.claude/skills/create-mcp-wizard/SKILL.md +1 -1
  2. package/cli-template/.claude/skills/create-mcp-wizard/scripts/gitlab-push.js +3 -3
  3. package/cli-template/FA-MCP-SDK-DOC/02-1-tools-and-api.md +31 -4
  4. package/cli-template/FA-MCP-SDK-DOC/03-configuration.md +5 -0
  5. package/cli-template/FA-MCP-SDK-DOC/11-public-contract.md +12 -3
  6. package/cli-template/FA-MCP-SDK-DOC/12-implementation-standard.md +15 -2
  7. package/cli-template/package.json +1 -1
  8. package/config/_local.yaml +3 -0
  9. package/config/custom-environment-variables.yaml +3 -0
  10. package/config/default.yaml +5 -0
  11. package/config/local.yaml +1 -0
  12. package/dist/core/_types_/config.d.ts +6 -0
  13. package/dist/core/_types_/config.d.ts.map +1 -1
  14. package/dist/core/mcp/create-mcp-server.d.ts.map +1 -1
  15. package/dist/core/mcp/create-mcp-server.js +18 -5
  16. package/dist/core/mcp/create-mcp-server.js.map +1 -1
  17. package/dist/core/mcp/validate-tool-args.d.ts +16 -8
  18. package/dist/core/mcp/validate-tool-args.d.ts.map +1 -1
  19. package/dist/core/mcp/validate-tool-args.js +88 -21
  20. package/dist/core/mcp/validate-tool-args.js.map +1 -1
  21. package/dist/core/web/static/agent-tester/script.js +17 -0
  22. package/dist/core/web/static/agent-tester/styles.css +16 -2
  23. package/package.json +1 -1
  24. package/cli-template/.gitlab-ci.yml +0 -135
  25. package/cli-template/deploy/gitlab-runner/.env.example +0 -16
  26. package/cli-template/deploy/gitlab-runner/README.md +0 -65
  27. package/cli-template/deploy/gitlab-runner/config/config.toml.template +0 -26
  28. package/cli-template/deploy/gitlab-runner/docker-compose.yml +0 -39
  29. package/cli-template/deploy/gitlab-runner/entrypoint.sh +0 -27
  30. package/cli-template/deploy/gitlab-runner/start.sh +0 -47
@@ -185,7 +185,7 @@ with an auth error, surface it to the user; do not attempt API-token workarounds
185
185
  Collect GitLab credentials — prefer values already in the accompanying text, ask only for what's
186
186
  missing:
187
187
 
188
- - `baseUrl` — e.g. `https://gitlab.finam.ru/api/v4`
188
+ - `baseUrl` — e.g. `https://gitlab.corp.com/api/v4`
189
189
  - `token` — GitLab private token with `api` scope
190
190
  - `group` — group name or full path (e.g. `mcp-servers` or `ai/mcp`), OR `groupId` numeric
191
191
 
@@ -7,7 +7,7 @@
7
7
  * Finally runs `git init / add / commit / remote add / push -u origin <branch>`.
8
8
  *
9
9
  * Environment / flags:
10
- * --base-url <url> (e.g. https://gitlab.finam.ru/api/v4) — required
10
+ * --base-url <url> (e.g. https://gitlab.corp.com/api/v4) — required
11
11
  * --token <tok> GitLab private token — required
12
12
  * --group <name> Group name or full path (e.g. "mcp-servers") — required unless --group-id is given
13
13
  * --group-id <n> Numeric group id — overrides --group lookup
@@ -54,7 +54,7 @@ function die (msg, code = 1) {
54
54
  process.exit(code);
55
55
  }
56
56
 
57
- if (!baseUrl) die('Missing --base-url (or GITLAB_BASE_URL). Example: https://gitlab.finam.ru/api/v4');
57
+ if (!baseUrl) die('Missing --base-url (or GITLAB_BASE_URL). Example: https://gitlab.corp.com/api/v4');
58
58
  if (!token) die('Missing --token (or GITLAB_TOKEN).');
59
59
  if (!projectName) die('Missing --name (project name).');
60
60
  if (!groupId && !groupArg) die('Missing --group or --group-id.');
@@ -154,4 +154,4 @@ function gitPush (remoteUrl) {
154
154
  } catch (e) {
155
155
  die(e.message);
156
156
  }
157
- })();
157
+ })();
@@ -34,10 +34,37 @@ violation throws with the offending name printed.
34
34
 
35
35
  **Standard §9.3 (MUST) — arguments are validated server-side.** Before `toolHandler` is
36
36
  called, the SDK validates `request.params.arguments` against `inputSchema` via ajv (draft
37
- 2020-12). On failure the response is JSON-RPC `-32602` with
38
- `error.data = { field, reason }`; the handler is **not** invoked. This means tool code
39
- no longer needs to repeat shape checks — by the time the handler runs, `args` already
40
- matches the schema.
37
+ 2020-12). On failure the response is JSON-RPC `-32602` and the handler is **not** invoked.
38
+ This means tool code no longer needs to repeat shape checks by the time the handler runs,
39
+ `args` already matches the schema.
40
+
41
+ The error carries a precise, English diagnostic. The `message` reads
42
+ `Invalid params: <field>: <reason>; …` and `error.data` lists every violation:
43
+
44
+ ```jsonc
45
+ {
46
+ "code": -32602,
47
+ "message": "Invalid params: /amount: expected number, got string; root: missing required property \"currency\"",
48
+ "data": {
49
+ "field": "/amount", // first offending location (JSON Pointer or property name)
50
+ "reason": "type", // stable ajv keyword: type | required | enum | pattern | …
51
+ "errorCount": 2, // total violations before truncation
52
+ "errors": [ // up to 8 individual failures
53
+ { "field": "/amount", "reason": "type", "message": "/amount: expected number, got string" },
54
+ { "field": "/currency", "reason": "required", "message": "root: missing required property \"currency\"" }
55
+ ]
56
+ }
57
+ }
58
+ ```
59
+
60
+ Diagnostics name the field, the violated constraint, and (for type errors) the actual JS type — never
61
+ the offending value itself, so no caller-supplied data leaks outward (standard §13.3). At most 8
62
+ failures are reported; the remainder are summarised as `(+N more)` in `message` and counted in
63
+ `errorCount`.
64
+
65
+ Input validation is on by default. It can be disabled with `mcp.tools.validateInput: false`
66
+ (or the `MCP_TOOLS_VALIDATE_INPUT` environment variable) — useful when tools validate their own
67
+ arguments or in a trusted internal deployment. The toggle does not affect `outputSchema` validation.
41
68
 
42
69
  ### Output schema and `structuredContent` (standard §9.4 / §12.4)
43
70
 
@@ -132,6 +132,11 @@ mcp:
132
132
  tools:
133
133
  answerAs: text # text | structuredContent
134
134
  hideAnnotations: false # true — strip `annotations` from tool listings
135
+ # Standard §8.3/§9.3 — validate tools/call arguments against each tool's inputSchema before
136
+ # dispatch. Default true. On failure the call is rejected with -32602 and a per-field diagnostic
137
+ # in error.data (field, reason, errors[]). Set false to skip input validation (tools self-validate,
138
+ # or trusted internal deployment); does not affect outputSchema checks. ENV: MCP_TOOLS_VALIDATE_INPUT.
139
+ validateInput: true
135
140
  # Standard §8.4 — server-side pagination for tools/list, prompts/list, resources/list.
136
141
  pagination:
137
142
  pageSize: 100 # items per page (cursor is opaque base64(offset))
@@ -212,13 +212,22 @@ class above) keep their message verbatim.
212
212
  ```jsonc
213
213
  {
214
214
  "requestId": "uuid…", // §15.1, always set by the SDK if absent
215
- "field": "name", // input validation diagnostics
216
- "reason": "invalid_type", // machine-readable hint
217
- "retryAfter": 12 // seconds, for -32003
215
+ "field": "name", // first offending field (input validation diagnostics)
216
+ "reason": "required", // machine-readable hint — stable ajv keyword for schema violations
217
+ "retryAfter": 12, // seconds, for -32003
218
+ // input-schema violations (-32602) additionally include (implementation-specific, not contractual):
219
+ "errorCount": 2, // total violations before truncation
220
+ "errors": [ // up to 8 per-field failures: { field, reason, message }
221
+ { "field": "name", "reason": "required", "message": "root: missing required property \"name\"" }
222
+ ]
218
223
  // …implementation-specific keys are allowed but not part of the contract
219
224
  }
220
225
  ```
221
226
 
227
+ Input-argument validation against `inputSchema` is on by default and can be disabled per deployment
228
+ via `mcp.tools.validateInput: false` (env `MCP_TOOLS_VALIDATE_INPUT`). When off, malformed arguments
229
+ reach the tool handler unchecked — only the JSON-RPC envelope shape is still enforced.
230
+
222
231
  ---
223
232
 
224
233
  ## 7. Limits and headers
@@ -486,6 +486,14 @@ to the shape of the JSON-RPC request are returned as a JSON-RPC error. Tool exec
486
486
  errors are returned as a tool execution result with `isError: true` if that helps the model adjust the
487
487
  request.
488
488
 
489
+ A schema violation produces `-32602` with a precise diagnostic: `error.message` reads
490
+ `Invalid params: <field>: <reason>; …` and `error.data` carries `field`, `reason` (a stable ajv keyword
491
+ such as `type` / `required` / `enum`), `errorCount`, and an `errors[]` array of up to 8 individual
492
+ failures (`{ field, reason, message }`). Diagnostics report the field and the violated constraint, plus
493
+ the actual JS type for type mismatches, but never the offending value (§13.3). The SDK enforces this
494
+ validation by default; it MAY be disabled per deployment via `mcp.tools.validateInput: false` when tools
495
+ self-validate their arguments.
496
+
489
497
  Example of a tool execution error:
490
498
 
491
499
  ```json
@@ -728,8 +736,13 @@ Protocol error example:
728
736
  "id": "<request-id>",
729
737
  "error": {
730
738
  "code": -32602,
731
- "message": "Invalid params",
732
- "data": { "field": "name", "reason": "required" }
739
+ "message": "Invalid params: root: missing required property \"name\"",
740
+ "data": {
741
+ "field": "name",
742
+ "reason": "required",
743
+ "errorCount": 1,
744
+ "errors": [{ "field": "name", "reason": "required", "message": "root: missing required property \"name\"" }]
745
+ }
733
746
  }
734
747
  }
735
748
  ```
@@ -58,7 +58,7 @@
58
58
  "dependencies": {
59
59
  "@modelcontextprotocol/sdk": "^1.29.0",
60
60
  "dotenv": "^17.4.1",
61
- "fa-mcp-sdk": "^0.11.12"
61
+ "fa-mcp-sdk": "^0.12.1"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@types/express": "^5.0.6",
@@ -271,6 +271,9 @@ mcp:
271
271
  #> When true, strips `annotations` from tool listings returned to clients
272
272
  #> (hides hints like readOnlyHint / destructiveHint). Default: false.
273
273
  hideAnnotations: false
274
+ #> Standard §8.3 — validate tools/call arguments against each tool's inputSchema. Default true.
275
+ #> Set false to skip input validation. See default.yaml for full documentation.
276
+ validateInput: true
274
277
  #> Debug & diagnostics. See default.yaml for full documentation.
275
278
  debug:
276
279
  #> Absolute path to a JSON-lines log file. Empty = file logging disabled.
@@ -60,6 +60,9 @@ mcp:
60
60
  tools:
61
61
  answerAs: MCP_TOOLS_ANSWER_AS
62
62
  hideAnnotations: MCP_TOOLS_HIDE_ANNOTATIONS
63
+ validateInput:
64
+ __name: MCP_TOOLS_VALIDATE_INPUT
65
+ __format: boolean
63
66
  debug:
64
67
  logFile: MCP_DEBUG_LOG_FILE
65
68
  builtinTools:
@@ -275,6 +275,11 @@ mcp:
275
275
  #> When true, strips `annotations` from tool listings returned to clients
276
276
  #> (hides hints like readOnlyHint / destructiveHint). Default: false.
277
277
  hideAnnotations: false
278
+ #> Standard §8.3 — validate tools/call arguments against each tool's inputSchema before dispatch.
279
+ #> On invalid input the call is rejected with JSON-RPC code -32602 (Invalid params) and an
280
+ #> `error.data` payload listing the offending fields. Set false to skip input validation (tools
281
+ #> validate their own args, or trusted internal deployment). Does not affect outputSchema checks.
282
+ validateInput: true
278
283
  #> Debug & diagnostics. All keys optional. The stderr `DEBUG=mcp:*` stream
279
284
  #> is independent of this section — these flags only add file logging and
280
285
  #> built-in helper tools.
package/config/local.yaml CHANGED
@@ -87,6 +87,7 @@ mcp:
87
87
  transportType: http # 'stdio' or 'http'
88
88
  tools:
89
89
  answerAs: text # text | structuredContent
90
+ validateInput: true # validate tools/call args against inputSchema (§8.3); false to skip
90
91
 
91
92
  swagger:
92
93
  servers: # An array of servers that will be added to swagger docs
@@ -92,6 +92,12 @@ interface IMCPConfig {
92
92
  tools: {
93
93
  answerAs: 'text' | 'structuredContent';
94
94
  hideAnnotations: boolean;
95
+ /**
96
+ * Standard §8.3 — validate `tools/call` arguments against the tool's `inputSchema` before
97
+ * dispatch. Default true. Set false to skip input validation (tools self-validate, or trusted
98
+ * internal deployment). Does not affect `outputSchema` validation.
99
+ */
100
+ validateInput?: boolean;
95
101
  };
96
102
  /**
97
103
  * Standard §8.4 — server-side pagination for `tools/list`, `prompts/list`, `resources/list`.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/_types_/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/_types_/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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"}
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,CAopBrE"}
@@ -98,6 +98,10 @@ export function createMcpServer(transportType) {
98
98
  // requires for a server that does not support tasks. When on, the server advertises that it can
99
99
  // list and cancel tasks, and that task creation is supported for `tools/call`.
100
100
  const tasksEnabled = appConfig.mcp.tasks?.enabled === true;
101
+ // Standard §8.3 — validate tools/call arguments against the tool's inputSchema before dispatch.
102
+ // On by default; set `mcp.tools.validateInput: false` to skip it (e.g. when tools validate their
103
+ // own arguments, or to shave latency in trusted internal deployments).
104
+ const validateInput = appConfig.mcp.tools?.validateInput !== false;
101
105
  const server = new Server({
102
106
  name: appConfig.name,
103
107
  version: appConfig.version,
@@ -222,9 +226,11 @@ export function createMcpServer(transportType) {
222
226
  if (response && typeof response === 'object' && 'structuredContent' in response) {
223
227
  const outputCheck = validateToolOutput(tool, response.structuredContent);
224
228
  if (!outputCheck.valid) {
225
- throw new McpError(-32603, 'Tool produced result that violates outputSchema', {
229
+ throw new McpError(-32603, `Tool produced result that violates outputSchema: ${outputCheck.summary}`, {
226
230
  field: outputCheck.field,
227
231
  reason: outputCheck.reason,
232
+ errors: outputCheck.errors,
233
+ errorCount: outputCheck.errorCount,
228
234
  });
229
235
  }
230
236
  // §12.4 — mirror structuredContent in content[0] as JSON text for legacy clients.
@@ -363,10 +369,17 @@ export function createMcpServer(transportType) {
363
369
  });
364
370
  }
365
371
  }
366
- const inputCheck = validateToolInput(tool, args);
367
- if (!inputCheck.valid) {
368
- getMetrics()?.toolCalls.inc({ tool: toolName, status: 'invalid_params' });
369
- throw new McpError(-32602, 'Invalid params', { field: inputCheck.field, reason: inputCheck.reason });
372
+ if (validateInput) {
373
+ const inputCheck = validateToolInput(tool, args);
374
+ if (!inputCheck.valid) {
375
+ getMetrics()?.toolCalls.inc({ tool: toolName, status: 'invalid_params' });
376
+ throw new McpError(-32602, `Invalid params: ${inputCheck.summary}`, {
377
+ field: inputCheck.field,
378
+ reason: inputCheck.reason,
379
+ errors: inputCheck.errors,
380
+ errorCount: inputCheck.errorCount,
381
+ });
382
+ }
370
383
  }
371
384
  // Standard §14 — per-subject concurrent in-flight cap.
372
385
  const maxConcurrent = appConfig.mcp.rateLimit?.maxConcurrentPerSubject ?? 16;
@@ -1 +1 @@
1
- {"version":3,"file":"create-mcp-server.js","sourceRoot":"","sources":["../../../src/core/mcp/create-mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-mcp-server.js","sourceRoot":"","sources":["../../../src/core/mcp/create-mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,24 @@
1
1
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
2
  export interface IValidationFailure {
3
+ /** JSON Pointer to the offending location, e.g. `/items/0/price`, or the property name. */
3
4
  field: string;
5
+ /** Stable Ajv keyword: `required` | `type` | `enum` | `pattern` | … — safe for machine routing. */
4
6
  reason: string;
7
+ /** Human-readable explanation (English). Never echoes the offending value, only its type. */
8
+ message: string;
5
9
  }
6
- export declare function validateToolInput(tool: Tool, args: unknown): {
10
+ export interface IValidationOk {
7
11
  valid: true;
8
- } | ({
9
- valid: false;
10
- } & IValidationFailure);
11
- export declare function validateToolOutput(tool: Tool, structuredContent: unknown): {
12
- valid: true;
13
- } | ({
12
+ }
13
+ export interface IValidationErr extends IValidationFailure {
14
14
  valid: false;
15
- } & IValidationFailure);
15
+ /** Up to {@link MAX_FAILURES} individual failures. */
16
+ errors: IValidationFailure[];
17
+ /** Total number of violations Ajv reported, before truncation to {@link MAX_FAILURES}. */
18
+ errorCount: number;
19
+ /** Combined one-line summary of the reported failures, suitable for an error message. */
20
+ summary: string;
21
+ }
22
+ export declare function validateToolInput(tool: Tool, args: unknown): IValidationOk | IValidationErr;
23
+ export declare function validateToolOutput(tool: Tool, structuredContent: unknown): IValidationOk | IValidationErr;
16
24
  //# sourceMappingURL=validate-tool-args.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-tool-args.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/validate-tool-args.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAyB1D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAiBD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,OAAO,GACZ;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG,CAAC;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG,kBAAkB,CAAC,CAc3D;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,iBAAiB,EAAE,OAAO,GACzB;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG,CAAC;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG,kBAAkB,CAAC,CAc3D"}
1
+ {"version":3,"file":"validate-tool-args.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/validate-tool-args.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAgC1D,MAAM,WAAW,kBAAkB;IACjC,2FAA2F;IAC3F,KAAK,EAAE,MAAM,CAAC;IACd,mGAAmG;IACnG,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,KAAK,EAAE,KAAK,CAAC;IACb,sDAAsD;IACtD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,0FAA0F;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,OAAO,EAAE,MAAM,CAAC;CACjB;AAyFD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,CAU3F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,CAUzG"}
@@ -1,7 +1,13 @@
1
1
  import Ajv2020 from 'ajv/dist/2020.js';
2
2
  import addFormats from 'ajv-formats';
3
- const ajv = new Ajv2020({ allErrors: false, strict: false, useDefaults: false });
3
+ // allErrors:true collect every violation in one pass instead of only the first.
4
+ // verbose:true — attach the offending value to each error so `type` failures can report the
5
+ // actual JS type (only the type name is surfaced, never the value itself — §13.3).
6
+ const ajv = new Ajv2020({ allErrors: true, verbose: true, strict: false, useDefaults: false });
4
7
  addFormats(ajv);
8
+ // Upper bound on the number of failures echoed back to the client. A badly-shaped payload can
9
+ // produce hundreds of errors; we report at most this many and flag the overflow.
10
+ const MAX_FAILURES = 8;
5
11
  const inputCache = new WeakMap();
6
12
  const outputCache = new WeakMap();
7
13
  function compile(schema, cache) {
@@ -21,18 +27,87 @@ function compile(schema, cache) {
21
27
  return undefined;
22
28
  }
23
29
  }
24
- function firstError(errors) {
25
- const e = errors?.[0];
26
- if (!e) {
27
- return { field: '', reason: 'schema_violation' };
30
+ function jsType(value) {
31
+ if (value === null) {
32
+ return 'null';
28
33
  }
29
- const fieldFromParams = e.params?.missingProperty ||
30
- e.params?.additionalProperty ||
31
- e.params?.propertyName ||
32
- '';
34
+ if (Array.isArray(value)) {
35
+ return 'array';
36
+ }
37
+ return typeof value;
38
+ }
39
+ /** Field path: instance path plus the specific offending property for keyword-level errors. */
40
+ function fieldOf(e) {
41
+ const p = e.params ?? {};
42
+ const sub = p.missingProperty || p.additionalProperty || p.propertyName || '';
33
43
  const path = e.instancePath || '';
34
- const field = fieldFromParams ? (path ? `${path}/${fieldFromParams}` : fieldFromParams) : path || 'root';
35
- return { field, reason: e.message || e.keyword || 'schema_violation' };
44
+ if (sub) {
45
+ return path ? `${path}/${sub}` : sub;
46
+ }
47
+ return path || 'root';
48
+ }
49
+ /** Map a raw Ajv error to a concise English reason that names the constraint and the actual type. */
50
+ function reasonOf(e) {
51
+ const p = e.params ?? {};
52
+ switch (e.keyword) {
53
+ case 'required':
54
+ return `missing required property "${p.missingProperty}"`;
55
+ case 'additionalProperties':
56
+ return `unexpected property "${p.additionalProperty}"`;
57
+ case 'type':
58
+ return `expected ${p.type}, got ${jsType(e.data)}`;
59
+ case 'enum':
60
+ return `must be one of: ${(p.allowedValues ?? []).join(', ')}`;
61
+ case 'const':
62
+ return `must equal ${JSON.stringify(p.allowedValue)}`;
63
+ case 'minimum':
64
+ case 'maximum':
65
+ case 'exclusiveMinimum':
66
+ case 'exclusiveMaximum':
67
+ return `must be ${p.comparison} ${p.limit}`;
68
+ case 'multipleOf':
69
+ return `must be a multiple of ${p.multipleOf}`;
70
+ case 'minLength':
71
+ return `string length must be >= ${p.limit}`;
72
+ case 'maxLength':
73
+ return `string length must be <= ${p.limit}`;
74
+ case 'minItems':
75
+ return `array length must be >= ${p.limit}`;
76
+ case 'maxItems':
77
+ return `array length must be <= ${p.limit}`;
78
+ case 'minProperties':
79
+ return `object must have >= ${p.limit} properties`;
80
+ case 'maxProperties':
81
+ return `object must have <= ${p.limit} properties`;
82
+ case 'pattern':
83
+ return `must match pattern ${p.pattern}`;
84
+ case 'format':
85
+ return `invalid format, expected ${p.format}`;
86
+ case 'uniqueItems':
87
+ return 'array items must be unique';
88
+ default:
89
+ return e.message || e.keyword || 'schema violation';
90
+ }
91
+ }
92
+ function toFailure(e) {
93
+ const field = fieldOf(e);
94
+ return { field, reason: e.keyword || 'schema_violation', message: `${field}: ${reasonOf(e)}` };
95
+ }
96
+ function fail(errors) {
97
+ const all = errors ?? [];
98
+ const list = all.slice(0, MAX_FAILURES).map(toFailure);
99
+ const first = list[0] ?? { field: 'root', reason: 'schema_violation', message: 'schema violation' };
100
+ const overflow = all.length - list.length;
101
+ const summary = list.map((f) => f.message).join('; ') + (overflow > 0 ? ` (+${overflow} more)` : '');
102
+ return {
103
+ valid: false,
104
+ field: first.field,
105
+ reason: first.reason,
106
+ message: first.message,
107
+ errors: list,
108
+ errorCount: all.length,
109
+ summary,
110
+ };
36
111
  }
37
112
  export function validateToolInput(tool, args) {
38
113
  const schema = tool.inputSchema;
@@ -43,11 +118,7 @@ export function validateToolInput(tool, args) {
43
118
  if (!validate) {
44
119
  return { valid: true };
45
120
  }
46
- const ok = validate(args ?? {});
47
- if (ok) {
48
- return { valid: true };
49
- }
50
- return { valid: false, ...firstError(validate.errors) };
121
+ return validate(args ?? {}) ? { valid: true } : fail(validate.errors);
51
122
  }
52
123
  export function validateToolOutput(tool, structuredContent) {
53
124
  const schema = tool.outputSchema;
@@ -58,10 +129,6 @@ export function validateToolOutput(tool, structuredContent) {
58
129
  if (!validate) {
59
130
  return { valid: true };
60
131
  }
61
- const ok = validate(structuredContent ?? null);
62
- if (ok) {
63
- return { valid: true };
64
- }
65
- return { valid: false, ...firstError(validate.errors) };
132
+ return validate(structuredContent ?? null) ? { valid: true } : fail(validate.errors);
66
133
  }
67
134
  //# sourceMappingURL=validate-tool-args.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-tool-args.js","sourceRoot":"","sources":["../../../src/core/mcp/validate-tool-args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-tool-args.js","sourceRoot":"","sources":["../../../src/core/mcp/validate-tool-args.ts"],"names":[],"mappings":"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"}
@@ -800,6 +800,22 @@ class McpAgentTester {
800
800
  }
801
801
 
802
802
  this.refreshToolListAppIcons();
803
+ this.applyAppModeVisibility();
804
+ }
805
+
806
+ /**
807
+ * Show the Inspector tab only while MCP Apps mode is ON. When the mode is
808
+ * turned off while the Inspector tab is active, fall back to the Chat tab so
809
+ * the user is not left on a hidden pane.
810
+ */
811
+ applyAppModeVisibility() {
812
+ const appEl = document.querySelector('.app');
813
+ if (appEl) {
814
+ appEl.classList.toggle('apps-mode-on', !!this.appMode);
815
+ }
816
+ if (!this.appMode && this.activeTab === 'inspector') {
817
+ this.switchTab('chat');
818
+ }
803
819
  }
804
820
 
805
821
  /**
@@ -1395,6 +1411,7 @@ class McpAgentTester {
1395
1411
  this.appModeToggle.addEventListener('change', () => this.handleAppModeToggle());
1396
1412
  this.updateAppModeToggleAvailability();
1397
1413
  }
1414
+ this.applyAppModeVisibility();
1398
1415
 
1399
1416
  this.mcpConnectionForm.addEventListener('submit', (e) => this.handleMcpConnection(e));
1400
1417
 
@@ -1110,6 +1110,17 @@ body {
1110
1110
  .inspector-section {
1111
1111
  padding: 8px 14px 14px;
1112
1112
  border-bottom: 1px solid var(--border);
1113
+ min-height: 0;
1114
+ overflow-y: auto;
1115
+ }
1116
+
1117
+ /* App Tools list gets the larger share; UI Resources the smaller. Both scroll. */
1118
+ .inspector-tools .inspector-section:nth-of-type(1) {
1119
+ flex: 2 1 0;
1120
+ }
1121
+
1122
+ .inspector-tools .inspector-section:nth-of-type(2) {
1123
+ flex: 1 1 0;
1113
1124
  }
1114
1125
 
1115
1126
  .inspector-section h4 {
@@ -1259,8 +1270,11 @@ body {
1259
1270
  }
1260
1271
 
1261
1272
  /* Inspector tab visibility tied to MCP Apps mode */
1262
- .app:not([data-active-tab]) .app-only-tab,
1263
- .tabs-bar .app-only-tab {
1273
+ .app-only-tab {
1274
+ display: none;
1275
+ }
1276
+
1277
+ .app.apps-mode-on .app-only-tab {
1264
1278
  display: inline-flex;
1265
1279
  }
1266
1280
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fa-mcp-sdk",
3
3
  "productName": "FA MCP SDK",
4
- "version": "0.11.12",
4
+ "version": "0.12.1",
5
5
  "description": "Core infrastructure and templates for building Model Context Protocol (MCP) servers with TypeScript",
6
6
  "type": "module",
7
7
  "main": "dist/core/index.js",
@@ -1,135 +0,0 @@
1
- stages:
2
- - lint
3
- - test-build
4
- - build-image
5
- - deploy
6
-
7
- # ── CI: Merge Request checks ──────────────────────────────────────
8
-
9
- .node-template: &node-template
10
- image: node:22-alpine
11
- tags:
12
- - docker
13
- before_script:
14
- - yarn install --frozen-lockfile
15
- cache:
16
- key:
17
- files:
18
- - yarn.lock
19
- paths:
20
- - node_modules/
21
- rules:
22
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
23
-
24
- lint:
25
- <<: *node-template
26
- stage: lint
27
- script:
28
- - yarn lint
29
-
30
- test-build:
31
- <<: *node-template
32
- stage: test-build
33
- script:
34
- - yarn build
35
-
36
- # ── CD: Build Docker Image ────────────────────────────────────────
37
-
38
- build-image:
39
- stage: build-image
40
- image: docker:27
41
- services:
42
- - docker:27-dind
43
- tags:
44
- - docker
45
- script:
46
- - docker compose -f deploy/docker/docker-compose.yml up -d --build --force-recreate app
47
- rules:
48
- - if: '$CI_COMMIT_BRANCH == "master"'
49
- when: manual
50
-
51
- # ── CD: Deploy ────────────────────────────────────────────────────
52
- # Замените <SERVER_TAG> на тег вашего сервера, <BRANCH> на целевую ветку,
53
- # <DEPLOY_DIR> на путь к проекту на сервере.
54
-
55
- # deploy_<instance>:
56
- # stage: deploy
57
- # tags:
58
- # - <SERVER_TAG>
59
- # variables:
60
- # HOST_PORT: {{port}}
61
- # environment:
62
- # name: <instance>
63
- # script:
64
- # - docker compose -f deploy/docker/docker-compose.yml --env-file .env up -d --build --force-recreate app
65
- # - |
66
- # echo "Waiting for health check..."
67
- # for i in $(seq 1 60); do
68
- # if docker compose -f deploy/docker/docker-compose.yml exec -T app wget -q -O /dev/null http://localhost:{{port}}/health 2>/dev/null; then
69
- # echo "Health check passed after ${i}s"
70
- # break
71
- # fi
72
- # if [ "$i" -eq 60 ]; then
73
- # echo "Health check failed after 60s"
74
- # docker compose -f deploy/docker/docker-compose.yml logs --tail=50 app
75
- # exit 1
76
- # fi
77
- # sleep 1
78
- # done
79
- # - docker compose -f deploy/docker/docker-compose.yml logs --tail=50 app
80
- # rules:
81
- # - if: '$CI_COMMIT_BRANCH == "<BRANCH>"'
82
- # when: manual
83
-
84
- # stop_<instance>:
85
- # stage: deploy
86
- # tags:
87
- # - <SERVER_TAG>
88
- # environment:
89
- # name: <instance>
90
- # script:
91
- # - docker compose -f deploy/docker/docker-compose.yml down
92
- # rules:
93
- # - if: '$CI_COMMIT_BRANCH == "<BRANCH>"'
94
- # when: manual
95
-
96
- # restart_<instance>:
97
- # stage: deploy
98
- # tags:
99
- # - <SERVER_TAG>
100
- # variables:
101
- # HOST_PORT: {{port}}
102
- # environment:
103
- # name: <instance>
104
- # script:
105
- # - docker compose -f deploy/docker/docker-compose.yml --env-file .env restart app
106
- # - |
107
- # echo "Waiting for health check..."
108
- # for i in $(seq 1 60); do
109
- # if docker compose -f deploy/docker/docker-compose.yml exec -T app wget -q -O /dev/null http://localhost:{{port}}/health 2>/dev/null; then
110
- # echo "Health check passed after ${i}s"
111
- # break
112
- # fi
113
- # if [ "$i" -eq 60 ]; then
114
- # echo "Health check failed after 60s"
115
- # docker compose -f deploy/docker/docker-compose.yml logs --tail=100 app
116
- # exit 1
117
- # fi
118
- # sleep 1
119
- # done
120
- # - docker compose -f deploy/docker/docker-compose.yml logs --tail=100 app
121
- # rules:
122
- # - if: '$CI_COMMIT_BRANCH == "<BRANCH>"'
123
- # when: manual
124
-
125
- # logs_<instance>:
126
- # stage: deploy
127
- # tags:
128
- # - <SERVER_TAG>
129
- # environment:
130
- # name: <instance>
131
- # script:
132
- # - docker compose -f deploy/docker/docker-compose.yml logs --tail=100 app
133
- # rules:
134
- # - if: '$CI_COMMIT_BRANCH == "<BRANCH>"'
135
- # when: manual
@@ -1,16 +0,0 @@
1
- # ── GitLab Runner version ─────────────────────────────────
2
- GITLAB_VERSION=v18.10.3
3
- HELPER_VERSION=v18.10.3
4
-
5
- # ── GitLab connection ─────────────────────────────────────
6
- GITLAB_URL=https://gitlab.finam.ru/
7
- RUNNER_TAGS={{project.name}},docker
8
-
9
- # ── Runner identity ──────────────────────────────────────
10
- RUNNER_NAME={{project.name}}
11
- RUNNER_TOKEN=
12
-
13
- # ── Project directory on host ─────────────────────────────
14
- # Absolute or relative path to the project root on the server.
15
- # Defaults to ../../ (two levels up from this directory).
16
- # PROJECT_DIR=/var/opt/node/{{project.name}}
@@ -1,65 +0,0 @@
1
- # GitLab Runner Setup
2
-
3
- Docker-based GitLab Runner for CI/CD pipelines. Uses Docker executor with Docker-out-of-Docker (DooD) pattern.
4
-
5
- ## How It Works
6
-
7
- 1. `start.sh` validates `.env`, resolves `PROJECT_DIR`, starts the runner container
8
- 2. `entrypoint.sh` substitutes variables in `config.toml.template` → `config.toml`, starts `gitlab-runner run`
9
- 3. Runner registers with GitLab, listens for CI jobs matching its tags
10
-
11
- ## Setup
12
-
13
- ```bash
14
- # 1. Copy environment template
15
- cp .env.example .env
16
-
17
- # 2. Get runner token from GitLab UI:
18
- # Settings → CI/CD → Runners → New project runner
19
- # Set tags, then copy the token
20
-
21
- # 3. Fill .env with your token and settings
22
- # Required: GITLAB_URL, RUNNER_NAME, RUNNER_TOKEN
23
-
24
- # 4. Start the runner
25
- bash start.sh
26
- ```
27
-
28
- ## Environment Variables
29
-
30
- | Variable | Required | Default | Description |
31
- |----------|----------|---------|-------------|
32
- | `GITLAB_VERSION` | yes | v18.10.3 | GitLab Runner Docker image version |
33
- | `HELPER_VERSION` | yes | v18.10.3 | GitLab Runner Helper image version |
34
- | `GITLAB_URL` | yes | — | GitLab instance URL |
35
- | `RUNNER_TAGS` | no | {{project.name}},docker | Comma-separated tags for job matching |
36
- | `RUNNER_NAME` | yes | — | Runner hostname and container name |
37
- | `RUNNER_TOKEN` | yes | — | Authentication token from GitLab UI |
38
- | `PROJECT_DIR` | no | ../../ | Absolute path to project on host |
39
-
40
- ## Management Commands
41
-
42
- ```bash
43
- # Start
44
- bash start.sh
45
-
46
- # View logs
47
- docker compose logs -f
48
-
49
- # Check status
50
- docker compose exec gitlab-runner gitlab-runner status
51
-
52
- # Stop
53
- docker compose down
54
-
55
- # Restart
56
- docker compose restart
57
- ```
58
-
59
- ## Infrastructure
60
-
61
- - **Network:** `gitlab-network` (bridge)
62
- - **DNS:** Corporate DNS servers (10.77.96.10, 10.77.196.10)
63
- - **Executor:** Docker with `docker:27` default image
64
- - **Volumes:** Docker socket, daemon.json, project directory, /cache
65
- - **Healthcheck:** `gitlab-runner status` every 60s
@@ -1,26 +0,0 @@
1
- concurrent = 2
2
- check_interval = 0
3
- shutdown_timeout = 0
4
- sentry_dsn = ""
5
-
6
- [session_server]
7
- session_timeout = 1800
8
-
9
- [[runners]]
10
- name = "__RUNNER_NAME__"
11
- url = "__GITLAB_URL__"
12
- token = "__RUNNER_TOKEN__"
13
- executor = "docker"
14
- tag_list = "__RUNNER_TAGS__"
15
- [runners.docker]
16
- tls_verify = false
17
- image = "docker:27"
18
- privileged = true
19
- disable_entrypoint_overwrite = false
20
- oom_kill_disable = false
21
- disable_cache = false
22
- volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/etc/docker/daemon.json:/etc/docker/daemon.json", "__PROJECT_DIR__:__PROJECT_DIR__", "/cache"]
23
- shm_size = 0
24
- network_mtu = 0
25
- pull_policy = ["if-not-present"]
26
- helper_image = "gitlab/gitlab-runner-helper:__HELPER_VERSION__"
@@ -1,39 +0,0 @@
1
- name: {{project.name}}-runner
2
-
3
- services:
4
- gitlab-runner:
5
- image: gitlab/gitlab-runner:${GITLAB_VERSION}
6
- hostname: ${RUNNER_NAME}
7
- container_name: ${RUNNER_NAME}
8
- environment:
9
- - TZ=Europe/Moscow
10
- - RUNNER_NAME=${RUNNER_NAME}
11
- - RUNNER_TOKEN=${RUNNER_TOKEN}
12
- - PROJECT_DIR=${PROJECT_DIR}
13
- - GITLAB_URL=${GITLAB_URL}
14
- - GITLAB_VERSION=${GITLAB_VERSION}
15
- - RUNNER_TAGS=${RUNNER_TAGS}
16
- - HELPER_VERSION=${HELPER_VERSION}
17
- dns:
18
- - 10.77.96.10
19
- - 10.77.196.10
20
- restart: always
21
- entrypoint: ["/bin/sh", "/entrypoint.sh"]
22
- volumes:
23
- - './config:/etc/gitlab-runner'
24
- - './entrypoint.sh:/entrypoint.sh:ro'
25
- - '/var/run/docker.sock:/var/run/docker.sock'
26
- - '/etc/docker/daemon.json:/etc/docker/daemon.json'
27
- healthcheck:
28
- test: ["CMD", "gitlab-runner", "status"]
29
- interval: 1m
30
- timeout: 10s
31
- retries: 3
32
- start_period: 30s
33
- networks:
34
- - gitlab
35
-
36
- networks:
37
- gitlab:
38
- name: gitlab-network
39
- driver: bridge
@@ -1,27 +0,0 @@
1
- #!/bin/sh
2
- set -e
3
-
4
- TEMPLATE="/etc/gitlab-runner/config.toml.template"
5
- CONFIG="/etc/gitlab-runner/config.toml"
6
-
7
- if [ -z "$RUNNER_TOKEN" ]; then
8
- echo "ERROR: RUNNER_TOKEN is required" >&2
9
- exit 1
10
- fi
11
-
12
- if [ -z "$PROJECT_DIR" ]; then
13
- echo "ERROR: PROJECT_DIR is required" >&2
14
- exit 1
15
- fi
16
-
17
- sed \
18
- -e "s|__RUNNER_NAME__|${RUNNER_NAME}|g" \
19
- -e "s|__RUNNER_TOKEN__|${RUNNER_TOKEN}|g" \
20
- -e "s|__PROJECT_DIR__|${PROJECT_DIR}|g" \
21
- -e "s|__RUNNER_TAGS__|${RUNNER_TAGS}|g" \
22
- -e "s|__GITLAB_URL__|${GITLAB_URL}|g" \
23
- -e "s|__GITLAB_VERSION__|${GITLAB_VERSION}|g" \
24
- -e "s|__HELPER_VERSION__|${HELPER_VERSION}|g" \
25
- "$TEMPLATE" > "$CONFIG"
26
-
27
- exec gitlab-runner run
@@ -1,47 +0,0 @@
1
- #!/bin/bash
2
- set -e
3
- cd "$(dirname "$0")"
4
-
5
- # Проверка наличия .env файла
6
- if [ ! -f .env ]; then
7
- echo "ERROR: .env file not found in $(pwd)"
8
- echo "Copy .env.example to .env and fill in the values:"
9
- echo " cp .env.example .env"
10
- exit 1
11
- fi
12
-
13
- # Загружаем .env в текущий shell
14
- set -a
15
- . .env
16
- set +a
17
-
18
- # Проверка обязательных переменных
19
- required_vars=(
20
- "GITLAB_URL"
21
- "RUNNER_NAME"
22
- "RUNNER_TOKEN"
23
- )
24
- missing=()
25
- for var in "${required_vars[@]}"; do
26
- if [ -z "${!var}" ]; then
27
- missing+=("$var")
28
- fi
29
- done
30
- if [ ${#missing[@]} -gt 0 ]; then
31
- echo "ERROR: Required variables not set in .env:"
32
- for var in "${missing[@]}"; do
33
- echo " - $var"
34
- done
35
- exit 1
36
- fi
37
-
38
- # PROJECT_DIR: если не задан — два уровня вверх (корень проекта)
39
- if [ -z "$PROJECT_DIR" ]; then
40
- PROJECT_DIR="../.."
41
- fi
42
-
43
- # Резолвим в абсолютный путь
44
- PROJECT_DIR=$(cd "$PROJECT_DIR" && pwd)
45
- export PROJECT_DIR
46
-
47
- exec docker compose up -d "$@"