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.
- package/cli-template/.claude/skills/create-mcp-wizard/SKILL.md +1 -1
- package/cli-template/.claude/skills/create-mcp-wizard/scripts/gitlab-push.js +3 -3
- package/cli-template/FA-MCP-SDK-DOC/02-1-tools-and-api.md +31 -4
- package/cli-template/FA-MCP-SDK-DOC/03-configuration.md +5 -0
- package/cli-template/FA-MCP-SDK-DOC/11-public-contract.md +12 -3
- package/cli-template/FA-MCP-SDK-DOC/12-implementation-standard.md +15 -2
- package/cli-template/package.json +1 -1
- package/config/_local.yaml +3 -0
- package/config/custom-environment-variables.yaml +3 -0
- package/config/default.yaml +5 -0
- package/config/local.yaml +1 -0
- package/dist/core/_types_/config.d.ts +6 -0
- package/dist/core/_types_/config.d.ts.map +1 -1
- package/dist/core/mcp/create-mcp-server.d.ts.map +1 -1
- package/dist/core/mcp/create-mcp-server.js +18 -5
- package/dist/core/mcp/create-mcp-server.js.map +1 -1
- package/dist/core/mcp/validate-tool-args.d.ts +16 -8
- package/dist/core/mcp/validate-tool-args.d.ts.map +1 -1
- package/dist/core/mcp/validate-tool-args.js +88 -21
- package/dist/core/mcp/validate-tool-args.js.map +1 -1
- package/dist/core/web/static/agent-tester/script.js +17 -0
- package/dist/core/web/static/agent-tester/styles.css +16 -2
- package/package.json +1 -1
- package/cli-template/.gitlab-ci.yml +0 -135
- package/cli-template/deploy/gitlab-runner/.env.example +0 -16
- package/cli-template/deploy/gitlab-runner/README.md +0 -65
- package/cli-template/deploy/gitlab-runner/config/config.toml.template +0 -26
- package/cli-template/deploy/gitlab-runner/docker-compose.yml +0 -39
- package/cli-template/deploy/gitlab-runner/entrypoint.sh +0 -27
- 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.
|
|
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.
|
|
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.
|
|
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`
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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": "
|
|
217
|
-
"retryAfter": 12
|
|
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": {
|
|
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
|
```
|
package/config/_local.yaml
CHANGED
|
@@ -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.
|
package/config/default.yaml
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AACpF,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,MAAM,CAAC;AAExD,UAAU,gBAAgB;IACxB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,IAAI,EAAE;YACJ,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,CAAC,EAAE;gBACN,QAAQ,EAAE,MAAM,CAAC;gBACjB,QAAQ,EAAE,MAAM,CAAC;aAClB,CAAC;YACF,QAAQ,EAAE;gBAMR,IAAI,CAAC,EAAE,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;gBAE/D,UAAU,EAAE,MAAM,CAAC;gBACnB,YAAY,EAAE,OAAO,CAAC;gBACtB,SAAS,EAAE,OAAO,CAAC;gBACnB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEhB,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;gBAG9B,cAAc,CAAC,EAAE,MAAM,CAAC;gBAExB,aAAa,CAAC,EAAE,MAAM,CAAC;gBAEvB,cAAc,CAAC,EAAE,MAAM,CAAC;gBAExB,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEjB,cAAc,CAAC,EAAE,MAAM,CAAC;gBAExB,gBAAgB,CAAC,EAAE,MAAM,CAAC;gBAE1B,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;aACrB,CAAC;YACF,qBAAqB,EAAE,MAAM,EAAE,CAAC;YAEhC,OAAO,CAAC,EAAE;gBAER,SAAS,CAAC,EAAE,KAAK,CAAC;oBAAE,KAAK,EAAE,MAAM,CAAC;oBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAC,CAAC;gBAEpD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;aAClB,CAAC;SACH,CAAC;QACF,eAAe,EAAE,OAAO,CAAC;QAEzB,UAAU,CAAC,EAAE;YACX,eAAe,CAAC,EAAE,OAAO,CAAC;SAC3B,CAAC;QAGF,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;QAGvC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,qBAAqB,CAAC,EAAE,OAAO,CAAC;SACjC,CAAC;KACH,CAAC;CACH;AAKD,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAAC;KAC7D,CAAC;CACH;AAGD,UAAU,aAAa;IACrB,MAAM,EAAE;QACN,KAAK,EAAE,aAAa,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC;QACvB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED,UAAU,UAAU;IAClB,GAAG,EAAE;QACH,SAAS,EAAE;YACT,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,EAAE,MAAM,CAAC;YAEjB,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;YAEzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;SAClC,CAAC;QACF;;;WAGG;QACH,MAAM,EAAE;YACN,qFAAqF;YACrF,eAAe,EAAE,MAAM,CAAC;YACxB,4FAA4F;YAC5F,kBAAkB,EAAE,MAAM,CAAC;YAC3B,gDAAgD;YAChD,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;QAChC,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAAC;YACvC,eAAe,EAAE,OAAO,CAAC;
|
|
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,
|
|
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,
|
|
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
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
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
|
|
10
|
+
export interface IValidationOk {
|
|
7
11
|
valid: true;
|
|
8
|
-
}
|
|
9
|
-
|
|
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
|
-
}
|
|
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;
|
|
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
|
-
|
|
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
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return { field: '', reason: 'schema_violation' };
|
|
30
|
+
function jsType(value) {
|
|
31
|
+
if (value === null) {
|
|
32
|
+
return 'null';
|
|
28
33
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AAAA,OAAO,OAA0C,MAAM,kBAAkB,CAAC;AAC1E,OAAO,UAAU,MAAM,aAAa,CAAC;AAGrC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"validate-tool-args.js","sourceRoot":"","sources":["../../../src/core/mcp/validate-tool-args.ts"],"names":[],"mappings":"AAAA,OAAO,OAA0C,MAAM,kBAAkB,CAAC;AAC1E,OAAO,UAAU,MAAM,aAAa,CAAC;AAGrC,kFAAkF;AAClF,8FAA8F;AAC9F,oGAAoG;AACpG,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/F,UAAU,CAAC,GAAU,CAAC,CAAC;AAEvB,8FAA8F;AAC9F,iFAAiF;AACjF,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,UAAU,GAAG,IAAI,OAAO,EAA4B,CAAC;AAC3D,MAAM,WAAW,GAAG,IAAI,OAAO,EAA4B,CAAC;AAE5D,SAAS,OAAO,CAAC,MAAc,EAAE,KAAwC;IACvE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAa,CAAC,CAAC;QAC5C,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAyBD,SAAS,MAAM,CAAC,KAAc;IAC5B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,KAAK,CAAC;AACtB,CAAC;AAED,+FAA+F;AAC/F,SAAS,OAAO,CAAC,CAAc;IAC7B,MAAM,CAAC,GAAI,CAAC,CAAC,MAAc,IAAI,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;IAC9E,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;IAClC,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,IAAI,MAAM,CAAC;AACxB,CAAC;AAED,qGAAqG;AACrG,SAAS,QAAQ,CAAC,CAAc;IAC9B,MAAM,CAAC,GAAI,CAAC,CAAC,MAAc,IAAI,EAAE,CAAC;IAClC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,8BAA8B,CAAC,CAAC,eAAe,GAAG,CAAC;QAC5D,KAAK,sBAAsB;YACzB,OAAO,wBAAwB,CAAC,CAAC,kBAAkB,GAAG,CAAC;QACzD,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,CAAC,IAAI,SAAS,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,KAAK,MAAM;YACT,OAAO,mBAAmB,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,KAAK,OAAO;YACV,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB;YACrB,OAAO,WAAW,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,KAAK,YAAY;YACf,OAAO,yBAAyB,CAAC,CAAC,UAAU,EAAE,CAAC;QACjD,KAAK,WAAW;YACd,OAAO,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/C,KAAK,WAAW;YACd,OAAO,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/C,KAAK,UAAU;YACb,OAAO,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,KAAK,UAAU;YACb,OAAO,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,KAAK,eAAe;YAClB,OAAO,uBAAuB,CAAC,CAAC,KAAK,aAAa,CAAC;QACrD,KAAK,eAAe;YAClB,OAAO,uBAAuB,CAAC,CAAC,KAAK,aAAa,CAAC;QACrD,KAAK,SAAS;YACZ,OAAO,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3C,KAAK,QAAQ;YACX,OAAO,4BAA4B,CAAC,CAAC,MAAM,EAAE,CAAC;QAChD,KAAK,aAAa;YAChB,OAAO,4BAA4B,CAAC;QACtC;YACE,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,kBAAkB,CAAC;IACxD,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAc;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,IAAI,kBAAkB,EAAE,OAAO,EAAE,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACjG,CAAC;AAED,SAAS,IAAI,CAAC,MAAwC;IACpD,MAAM,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IACpG,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrG,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,GAAG,CAAC,MAAM;QACtB,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAU,EAAE,IAAa;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAChC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAgB,EAAE,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAU,EAAE,iBAA0B;IACvE,MAAM,MAAM,GAAI,IAAY,CAAC,YAAY,CAAC;IAC1C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAgB,EAAE,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,QAAQ,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACvF,CAAC"}
|
|
@@ -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
|
|
1263
|
-
|
|
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.
|
|
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 "$@"
|