@inspectr/mcplab-mcp-server 1.8.2 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-provider-library.test.d.ts +2 -0
- package/dist/browser-provider-library.test.d.ts.map +1 -0
- package/dist/browser-provider-library.test.js +129 -0
- package/dist/browser-provider-library.test.js.map +1 -0
- package/dist/http-handler.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/mcp-run-calculations.d.ts +35 -42
- package/dist/mcp-run-calculations.d.ts.map +1 -1
- package/dist/mcp-run-calculations.js +16 -7
- package/dist/mcp-run-calculations.js.map +1 -1
- package/dist/prompts.d.ts +1 -1
- package/dist/runtime.contracts.test.d.ts +1 -1
- package/dist/runtime.contracts.test.js +29 -1
- package/dist/runtime.contracts.test.js.map +1 -1
- package/dist/runtime.d.ts +15 -21
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +176 -28
- package/dist/runtime.js.map +1 -1
- package/dist/server-factory.d.ts +1 -1
- package/dist/skills/mcplab-assistant/SKILL.md +17 -2
- package/dist/skills/mcplab-assistant/references/browser-agents.md +122 -0
- package/dist/skills.d.ts +21 -29
- package/dist/skills.js.map +1 -1
- package/dist/skills.test.d.ts +1 -1
- package/dist/tools.d.ts +1 -1
- package/package.json +5 -5
package/dist/server-factory.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { createConfiguredServer } from './runtime.js';
|
|
2
|
-
//# sourceMappingURL=server-factory.d.ts.map
|
|
2
|
+
//# sourceMappingURL=server-factory.d.ts.map
|
|
@@ -133,8 +133,8 @@ When the request is about analyzing results, the assistant must:
|
|
|
133
133
|
- This keeps prompt/eval in library test-case and swaps only MCP target per eval.
|
|
134
134
|
|
|
135
135
|
6. Add optional `eval` and `extract` blocks after baseline run succeeds.
|
|
136
|
-
- The scenario authoring MCP tools also accept a
|
|
137
|
-
- Existing
|
|
136
|
+
- The scenario authoring MCP tools also accept a full `eval` object containing `tool_constraints`, flat `tool_sequence`, `response_assertions` (`regex`, `contains`, `not_contains`, `starts_with`, `ends_with`, `equals`, and JSONPath variants), `tool_input_assertions` (`contains`, `regex`, `jsonpath`), `agent_assertions`, and `agent_context`.
|
|
137
|
+
- Existing shorthand fields (`required_tools`, `forbidden_tools`, `tool_sequence`, and `response_regex_patterns`) remain supported for basic cases; do not provide a shorthand field and its equivalent `eval` field in the same request.
|
|
138
138
|
7. Prefer literal response assertions first (`contains`, `equals`, etc.), then `regex` only when variability requires it.
|
|
139
139
|
8. Add deterministic tool-input assertions when the requirement is structural:
|
|
140
140
|
|
|
@@ -157,6 +157,21 @@ When the request is about analyzing results, the assistant must:
|
|
|
157
157
|
14. For evaluation configs, pass the complete config object to the confirmation-required `mcplab_create_evaluation_config`; it writes under `mcplab/evals/` and normalizes collisions automatically.
|
|
158
158
|
15. Verify persistence by checking the returned `path`/`relative_path` and then validate the created config with `mcplab_validate_config` when a config path is available.
|
|
159
159
|
|
|
160
|
+
## Browser Agent Workflow
|
|
161
|
+
|
|
162
|
+
Use this workflow when an evaluation must run in a browser chat through MCPLab Rover.
|
|
163
|
+
|
|
164
|
+
1. Inspect the workspace library with `mcplab_list_library` using `kind: "agents"` and `kind: "browser_providers"`, with `includeContent: true` when the profile details are needed.
|
|
165
|
+
2. A browser agent is an execution target in `agents.yaml`. It has `type: browser`, a `provider` id, a browser `url`, and an optional `new_conversation_between_scenarios` setting.
|
|
166
|
+
3. A browser provider profile is the deterministic interaction contract in `browser-providers/<provider-id>.yaml`. It describes origin matching, composer input mode and locator, submit behavior, assistant message selection, completion signals and stability, optional new-conversation behavior, and learning metadata.
|
|
167
|
+
4. Do not invent selectors or copy provider-specific values from unrelated examples. If a matching provider profile does not exist, ask the user to capture it with Rover Learn, then inspect the resulting profile and interaction trace.
|
|
168
|
+
5. Use `mcplab_generate_browser_agent_entry` to draft a linked browser agent entry. Persist it only through the approved library workflow.
|
|
169
|
+
6. Create or update an evaluation config with the browser agent id in the scenario `agent` field. Queue it with `mcplab_queue_run`; Rover must be connected to the matching provider.
|
|
170
|
+
7. Treat browser runs as response-only unless Inspectr telemetry is explicitly present. Tool-dependent checks without observations are `not_evaluated`.
|
|
171
|
+
8. Keep the Evaluation Judge separate. It is an LLM agent selected in workspace settings and is used for semantic `agent_assertions` and optional AI-assisted provider refinement. A browser agent must never be used as the Evaluation Judge.
|
|
172
|
+
|
|
173
|
+
For the complete profile field reference and a generic complex example, load `references/browser-agents.md` with `mcplab_get_skill` when available.
|
|
174
|
+
|
|
160
175
|
## CLI Workflow
|
|
161
176
|
|
|
162
177
|
Use this workflow when MCP execution tools are not available or when the user explicitly asks for shell commands.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Browser Agents and Provider Profiles
|
|
2
|
+
|
|
3
|
+
Browser agents execute through MCPLab Rover. They are not LLM API clients and must not be selected as the Evaluation Judge.
|
|
4
|
+
|
|
5
|
+
## Workspace files
|
|
6
|
+
|
|
7
|
+
`agents.yaml` links a friendly agent id to a provider profile:
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
custom-research-chat-browser:
|
|
11
|
+
type: browser
|
|
12
|
+
name: Custom Research Chat browser
|
|
13
|
+
provider: custom-research-chat
|
|
14
|
+
url: https://chat.example.test
|
|
15
|
+
new_conversation_between_scenarios: true
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`browser-providers/<provider-id>.yaml` contains one deterministic interaction profile per file. The profile is provider-specific and must come from Rover capture, local validation, or an explicitly reviewed update. Do not copy the example values below into a real workspace.
|
|
19
|
+
|
|
20
|
+
MCP Lab includes the native Rover profiles for `claude` and `chatgpt-com` by default. They are available through the library API without workspace files and are not written to YAML automatically. A workspace profile with the same provider id overrides the bundled profile and is persisted under `browser-providers/`.
|
|
21
|
+
|
|
22
|
+
## Provider profile shape
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
schema_version: 1
|
|
26
|
+
name: Custom Research Chat
|
|
27
|
+
match:
|
|
28
|
+
origins:
|
|
29
|
+
- https://chat.example.test
|
|
30
|
+
- https://workspace.chat.example.test
|
|
31
|
+
composer:
|
|
32
|
+
locator:
|
|
33
|
+
segments:
|
|
34
|
+
- main[data-app="chat"]
|
|
35
|
+
- form[data-testid="composer-form"]
|
|
36
|
+
- textarea[data-testid="prompt-input"]
|
|
37
|
+
input_mode: textarea
|
|
38
|
+
submit:
|
|
39
|
+
action: click
|
|
40
|
+
locator:
|
|
41
|
+
segments:
|
|
42
|
+
- form[data-testid="composer-form"]
|
|
43
|
+
- button[data-testid="send-button"]
|
|
44
|
+
assistant_messages:
|
|
45
|
+
locator:
|
|
46
|
+
segments:
|
|
47
|
+
- main[data-app="chat"]
|
|
48
|
+
- '[data-role="message"][data-author="assistant"]'
|
|
49
|
+
text_locator:
|
|
50
|
+
segments:
|
|
51
|
+
- '[data-testid="message-content"]'
|
|
52
|
+
completion:
|
|
53
|
+
generating_locator:
|
|
54
|
+
segments:
|
|
55
|
+
- form[data-testid="composer-form"]
|
|
56
|
+
- button[data-testid="send-button"][disabled]
|
|
57
|
+
idle_locator:
|
|
58
|
+
segments:
|
|
59
|
+
- form[data-testid="composer-form"]
|
|
60
|
+
- button[data-testid="send-button"]:not([disabled])
|
|
61
|
+
stability_ms: 2500
|
|
62
|
+
new_conversation:
|
|
63
|
+
action: click
|
|
64
|
+
locator:
|
|
65
|
+
segments:
|
|
66
|
+
- nav[data-testid="conversation-nav"]
|
|
67
|
+
- button[data-testid="new-conversation"]
|
|
68
|
+
learned:
|
|
69
|
+
source_origin: https://chat.example.test
|
|
70
|
+
confidence:
|
|
71
|
+
composer: high
|
|
72
|
+
submit: high
|
|
73
|
+
assistant: high
|
|
74
|
+
completion: medium
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Field guidance
|
|
78
|
+
|
|
79
|
+
- `match.origins` contains origin-only URLs. Credentials, paths, query strings, and hashes are not valid profile origins.
|
|
80
|
+
- Locator `segments` are ordered CSS selectors from the document root toward the target. They must be syntactically valid and observed in the captured lifecycle trace.
|
|
81
|
+
- `composer.input_mode` is `input`, `textarea`, or `contenteditable`.
|
|
82
|
+
- `submit.action` is `click` or `enter`. Click submission requires a submit locator.
|
|
83
|
+
- `assistant_messages.locator` must select assistant-only messages, not user messages or the whole transcript.
|
|
84
|
+
- `assistant_messages.text_locator` is optional and narrows the text extraction inside each assistant message.
|
|
85
|
+
- `completion.generating_locator` should match an active generation state. `completion.idle_locator` should match a usable completion state. A stable response is accepted only after `stability_ms` has elapsed.
|
|
86
|
+
- `new_conversation` is optional. A navigation action requires a URL, while a click action requires a locator.
|
|
87
|
+
- `learned.confidence` contains only `high`, `medium`, or `low` values.
|
|
88
|
+
- Executable fields such as `script` and `script_source` are forbidden.
|
|
89
|
+
|
|
90
|
+
## AI-assisted provider refinement
|
|
91
|
+
|
|
92
|
+
The safe workflow is:
|
|
93
|
+
|
|
94
|
+
1. Rover captures a redacted interaction trace and proposes an initial profile.
|
|
95
|
+
2. MCPLab sends the profile and trace to the configured LLM Evaluation Judge when the user requests refinement.
|
|
96
|
+
3. The returned proposal is validated against the original trace by Rover before Save is enabled.
|
|
97
|
+
4. The validated profile is persisted to `browser-providers/<provider-id>.yaml` and linked to a browser agent.
|
|
98
|
+
|
|
99
|
+
The Evaluation Judge may suggest selectors, but it never bypasses Rover replay validation. Do not save a profile from model output alone.
|
|
100
|
+
|
|
101
|
+
## Evaluation config
|
|
102
|
+
|
|
103
|
+
Reference the browser agent, not the provider profile, from an evaluation:
|
|
104
|
+
|
|
105
|
+
```yaml
|
|
106
|
+
agents:
|
|
107
|
+
- ref: custom-research-chat-browser
|
|
108
|
+
|
|
109
|
+
scenarios:
|
|
110
|
+
- ref: research-summary
|
|
111
|
+
agent: custom-research-chat-browser
|
|
112
|
+
mcp_servers:
|
|
113
|
+
- ref: research-tools
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Before queueing, confirm that:
|
|
117
|
+
|
|
118
|
+
- the browser agent id exists in `agents.yaml`;
|
|
119
|
+
- its provider id has a matching file under `browser-providers/`;
|
|
120
|
+
- Rover is connected to a matching browser origin;
|
|
121
|
+
- response assertions are appropriate for browser output;
|
|
122
|
+
- tool assertions are expected to be `not_evaluated` unless telemetry is available.
|
package/dist/skills.d.ts
CHANGED
|
@@ -1,38 +1,33 @@
|
|
|
1
1
|
export type SkillManifestEntry = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
path: string;
|
|
3
|
+
bytes: number;
|
|
4
|
+
sha256: string;
|
|
5
5
|
};
|
|
6
6
|
export type SkillManifest = {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
name: string;
|
|
8
|
+
files: SkillManifestEntry[];
|
|
9
9
|
};
|
|
10
10
|
export type LoadedSkill = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
/** Relative file paths within the skill directory, SKILL.md always first. */
|
|
14
|
+
files: string[];
|
|
15
|
+
manifest: SkillManifest;
|
|
16
16
|
};
|
|
17
17
|
export declare function resolveSkillsDir(): string;
|
|
18
18
|
export declare function loadSkills(logger?: Pick<Console, 'error'>): LoadedSkill[];
|
|
19
19
|
export declare function readSkillFile(name: string, file: string): string;
|
|
20
20
|
export type MinimalResourceServer = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
uri: string,
|
|
24
|
-
config: {
|
|
25
|
-
title?: string;
|
|
26
|
-
mimeType?: string;
|
|
27
|
-
},
|
|
28
|
-
readCallback: (uri: URL) => Promise<{
|
|
29
|
-
contents: Array<{
|
|
30
|
-
uri: string;
|
|
21
|
+
registerResource: (name: string, uri: string, config: {
|
|
22
|
+
title?: string;
|
|
31
23
|
mimeType?: string;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
24
|
+
}, readCallback: (uri: URL) => Promise<{
|
|
25
|
+
contents: Array<{
|
|
26
|
+
uri: string;
|
|
27
|
+
mimeType?: string;
|
|
28
|
+
text: string;
|
|
29
|
+
}>;
|
|
30
|
+
}>) => unknown;
|
|
36
31
|
};
|
|
37
32
|
/**
|
|
38
33
|
* Registers each loaded skill's files (plus a `_manifest` resource with sha256 hashes) as
|
|
@@ -40,8 +35,5 @@ export type MinimalResourceServer = {
|
|
|
40
35
|
* content directly. Content is served via `readSkillFile`, which re-applies path-traversal
|
|
41
36
|
* and symlink-escape protections on every read (the file list here is only used to build URIs).
|
|
42
37
|
*/
|
|
43
|
-
export declare function registerSkills(
|
|
44
|
-
|
|
45
|
-
logger?: Pick<Console, 'error'>
|
|
46
|
-
): LoadedSkill[];
|
|
47
|
-
//# sourceMappingURL=skills.d.ts.map
|
|
38
|
+
export declare function registerSkills(server: MinimalResourceServer, logger?: Pick<Console, 'error'>): LoadedSkill[];
|
|
39
|
+
//# sourceMappingURL=skills.d.ts.map
|
package/dist/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAqB1C,MAAM,UAAU,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC;IACvD,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/skills.test.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=skills.test.d.ts.map
|
|
2
|
+
//# sourceMappingURL=skills.test.d.ts.map
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { registerTools } from './runtime.js';
|
|
2
|
-
//# sourceMappingURL=tools.d.ts.map
|
|
2
|
+
//# sourceMappingURL=tools.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inspectr/mcplab-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "MCP server that exposes MCPLab evaluation tools — query runs, results, and traces via the Model Context Protocol",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"server"
|
|
18
18
|
],
|
|
19
19
|
"engines": {
|
|
20
|
-
"node": ">=
|
|
20
|
+
"node": ">=22.12.0"
|
|
21
21
|
},
|
|
22
22
|
"publishConfig": {
|
|
23
23
|
"access": "public"
|
|
@@ -51,11 +51,11 @@
|
|
|
51
51
|
"test": "vitest run"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"vitest": "^
|
|
54
|
+
"vitest": "^5.0.1"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@inspectr/mcplab-core": "1.
|
|
58
|
-
"@inspectr/mcplab-reporting": "1.
|
|
57
|
+
"@inspectr/mcplab-core": "1.23.0",
|
|
58
|
+
"@inspectr/mcplab-reporting": "1.3.0",
|
|
59
59
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
60
60
|
"yaml": "^2.8.4",
|
|
61
61
|
"zod": "^3.25.0"
|