mcprigor 1.2.0 → 1.3.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.
Files changed (47) hide show
  1. package/README.md +5 -1
  2. package/dist/cli.js +98 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/flaky.d.ts +34 -0
  5. package/dist/flaky.d.ts.map +1 -0
  6. package/dist/flaky.js +80 -0
  7. package/dist/flaky.js.map +1 -0
  8. package/dist/project-config.d.ts +16 -0
  9. package/dist/project-config.d.ts.map +1 -0
  10. package/dist/project-config.js +91 -0
  11. package/dist/project-config.js.map +1 -0
  12. package/dist/qa-language.d.ts.map +1 -1
  13. package/dist/qa-language.js +25 -2
  14. package/dist/qa-language.js.map +1 -1
  15. package/dist/record.d.ts +16 -0
  16. package/dist/record.d.ts.map +1 -0
  17. package/dist/record.js +124 -0
  18. package/dist/record.js.map +1 -0
  19. package/dist/runner.d.ts +6 -0
  20. package/dist/runner.d.ts.map +1 -1
  21. package/dist/runner.js +28 -4
  22. package/dist/runner.js.map +1 -1
  23. package/dist/schema.d.ts +3 -0
  24. package/dist/schema.d.ts.map +1 -1
  25. package/dist/schema.js +1 -0
  26. package/dist/schema.js.map +1 -1
  27. package/dist/session.d.ts +2 -0
  28. package/dist/session.d.ts.map +1 -1
  29. package/dist/session.js +29 -2
  30. package/dist/session.js.map +1 -1
  31. package/dist/types.d.ts +5 -1
  32. package/dist/types.d.ts.map +1 -1
  33. package/dist/version.d.ts +1 -1
  34. package/dist/version.js +1 -1
  35. package/docs/CLI-REFERENCE.md +59 -0
  36. package/docs/ENGINEER-SETUP.md +1 -1
  37. package/docs/LANGUAGE-SPEC.md +10 -0
  38. package/docs/PLAIN-LANGUAGE-COOKBOOK.md +44 -0
  39. package/docs/TROUBLESHOOTING.md +4 -0
  40. package/editors/mcpr-language.json +39 -10
  41. package/editors/vscode/.vscodeignore +1 -0
  42. package/editors/vscode/README.md +25 -0
  43. package/editors/vscode/extension.js +61 -0
  44. package/editors/vscode/language-configuration.json +11 -0
  45. package/editors/vscode/package.json +34 -0
  46. package/editors/vscode/syntaxes/mcpr.tmLanguage.json +45 -0
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -9,6 +9,8 @@ export interface HttpTarget {
9
9
  transport: "streamable-http";
10
10
  url: string;
11
11
  headers?: Record<string, string>;
12
+ /** Command executed before connect; its trimmed stdout becomes the Authorization bearer token. Keeps secrets out of suite files. */
13
+ tokenFrom?: string;
12
14
  }
13
15
  export type Target = StdioTarget | HttpTarget;
14
16
  export interface JsonAssertion {
@@ -80,7 +82,7 @@ export interface UtilityStep extends StepLifecycle {
80
82
  export interface NativeStep extends StepLifecycle {
81
83
  name?: string;
82
84
  native: {
83
- action: "request" | "await-notification" | "subscribe" | "unsubscribe" | "set-log-level" | "list-all" | "task-get" | "task-list" | "task-cancel";
85
+ action: "request" | "await-notification" | "subscribe" | "unsubscribe" | "set-log-level" | "list-all" | "task-get" | "task-list" | "task-cancel" | "configure-client";
84
86
  behavior?: ClientBehavior;
85
87
  method?: string;
86
88
  params?: unknown;
@@ -154,6 +156,8 @@ export interface TestResult {
154
156
  steps: StepResult[];
155
157
  outputs?: Record<string, unknown>;
156
158
  error?: string;
159
+ /** True when the test passed only after one or more retries (flakiness signal). */
160
+ retried?: boolean;
157
161
  }
158
162
  export interface ServerEvidence {
159
163
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the framework version; keep in sync with package.json. */
2
- export declare const FRAMEWORK_VERSION = "1.2.0";
2
+ export declare const FRAMEWORK_VERSION = "1.3.0";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the framework version; keep in sync with package.json. */
2
- export const FRAMEWORK_VERSION = "1.2.0";
2
+ export const FRAMEWORK_VERSION = "1.3.0";
3
3
  //# sourceMappingURL=version.js.map
@@ -131,6 +131,65 @@ mcprigor contract-update mcp.lock.yaml --target server.mcpr
131
131
 
132
132
  Review the printed changes before committing the updated lock.
133
133
 
134
+ ## Record a session
135
+
136
+ ```bash
137
+ mcprigor record --out draft.mcpr -- node dist/server.js
138
+ ```
139
+
140
+ Proxies a live MCP stdio session: your client (an agent, MCP Inspector's CLI mode, or any harness) talks to `mcprigor record` on stdin/stdout, and Rigor forwards everything to the real server while logging each `tools/call` exchange. When the session ends it writes a reviewable `.mcpr` draft — one test per call, with deterministic assertions picked from the actual responses (up to three scalar `structuredContent` leaves, falling back to short text content). No AI: the draft is a literal transcription. Review it, prune it, and run it.
141
+
142
+ ## Project environments
143
+
144
+ Define shared targets once in `mcprigor.config.yaml` (found in the working directory or any parent):
145
+
146
+ ```yaml
147
+ default: dev
148
+ environments:
149
+ dev: node dist/server.js
150
+ qa:
151
+ url: https://qa.example.com/mcp
152
+ token from: node scripts/get-token.mjs
153
+ prod:
154
+ url: https://api.example.com/mcp
155
+ headers:
156
+ Authorization: "Bearer ${env.PROD_TOKEN}"
157
+ ```
158
+
159
+ Then select one per run:
160
+
161
+ ```bash
162
+ mcprigor test suite.mcpr --env qa
163
+ mcprigor drift suite.mcpr --against mcp.lock.yaml --env prod
164
+ ```
165
+
166
+ The selected environment replaces the suite's declared target and is announced in the output. With a `default:` set, plain `mcprigor test suite.mcpr` uses it automatically. `--command`/`--url` overrides still win over the environment when both are given. An environment value can be a command string, a URL string, or a mapping with `server`/`cwd`/`env` (stdio) or `url`/`headers`/`token from` (HTTP).
167
+
168
+ ## Drift gate and flakiness
169
+
170
+ CI gate for contract drift:
171
+
172
+ ```bash
173
+ mcprigor drift suite.mcpr --against mcp.lock.yaml --fail-on breaking
174
+ ```
175
+
176
+ Compares the lock file against the live server the suite declares and classifies every change as breaking, potentially breaking, or non-breaking. `--fail-on` controls the gate: `breaking` (default), `potentially-breaking`, `any`, or `none` (report only). `--json out.json` writes the structured diff; `--markdown` renders for PR comments. In GitHub Actions each change becomes an `::error`/`::warning`/`::notice` annotation automatically.
177
+
178
+ Detect flaky tests from recorded run history:
179
+
180
+ ```bash
181
+ mcprigor flaky [DIRECTORY] [--window 200] [--json out.json]
182
+ ```
183
+
184
+ A test is flaky when its pass/fail outcome flips between runs of the same suite. CLI runs, the QA workspace, and `mcprigor serve` all record history under `.mcprigor/workspace-history.jsonl`. Exit code 1 when flaky tests are found. Pair with:
185
+
186
+ ```bash
187
+ mcprigor test suite.mcpr --retries 2 # retry failures up to 2 times
188
+ mcprigor test suite.mcpr --quarantine # skip tests listed in .mcprigor/quarantine.txt
189
+ ```
190
+
191
+ Quarantine file format: one `suite.mcpr :: test name` per line, `#` comments allowed. Tests that pass only on retry are marked `retried` in JSON reports so hidden flakiness stays visible.
192
+
134
193
  ## Evidence
135
194
 
136
195
  ```bash
@@ -13,7 +13,7 @@ npm install --save-dev mcprigor
13
13
  For reproducible CI runs, pin an exact version in `package.json` and update it deliberately:
14
14
 
15
15
  ```json
16
- { "devDependencies": { "mcprigor": "1.2.0" } }
16
+ { "devDependencies": { "mcprigor": "1.3.0" } }
17
17
  ```
18
18
 
19
19
  Release notes and tarball checksums for each version are on the [GitHub releases page](https://github.com/FusionOnePlatform/mcprigor/releases).
@@ -96,7 +96,17 @@ Client behavior:
96
96
 
97
97
  ## Imports
98
98
 
99
+ ```
100
+
101
+ Per-test scripted responses (override `Client behavior:` for one test):
102
+
99
103
  ```text
104
+ When the server asks for input, respond "accept" with:
105
+ field: value
106
+ When the server asks for input, respond "decline"
107
+ When the server requests sampling, respond "scripted text"
108
+ ```
109
+ text
100
110
  Import flows from "./shared/customer-flows.mcpr"
101
111
  ```
102
112
 
@@ -258,6 +258,50 @@ In CI, do the same in the workflow:
258
258
 
259
259
  Interactive browser-redirect OAuth is out of scope by design: an acceptance run must be repeatable without a human in the loop.
260
260
 
261
+ ## Fetch an OAuth token before connecting
262
+
263
+ When the token is short-lived (OAuth client credentials), let the suite fetch it at run time instead of storing it anywhere:
264
+
265
+ ```text
266
+ MCP URL: https://qa.example.com/mcp
267
+ Server options:
268
+ Token from: node scripts/get-token.mjs
269
+ ```
270
+
271
+ The command runs once before the suite connects; its output (a single token on stdout) becomes the `Authorization: Bearer …` header. The fetched token is auto-redacted from every report and evidence bundle. The command can do anything — call your identity provider, read a keychain, exchange client credentials — as long as it prints exactly one token. If it fails or prints nothing, the run stops with `MCP-AUTH-002` before any test executes.
272
+
273
+ ## Script the user's answer to elicitation
274
+
275
+ When a tool asks the user for input (MCP elicitation), script the answer inside the test so the run stays deterministic:
276
+
277
+ ```text
278
+ Test: "deletion is confirmed when the user accepts"
279
+ When the server asks for input, respond "accept" with:
280
+ confirm: true
281
+ Call tool "delete_order"
282
+ Expect "structuredContent.deleted" equals true
283
+
284
+ Test: "deletion is aborted when the user declines"
285
+ When the server asks for input, respond "decline"
286
+ Call tool "delete_order"
287
+ Expect "structuredContent.deleted" equals false
288
+ ```
289
+
290
+ `accept` may carry a `with:` block of field values matching the server's requested schema; `decline` and `cancel` may not. The scripted answer applies from that line onward within the test.
291
+
292
+ ## Script the LLM's answer to sampling
293
+
294
+ When a tool asks the client for a completion (MCP sampling), give it a fixed response — no real model, no flakiness:
295
+
296
+ ```text
297
+ Test: "summaries embed the sampled text"
298
+ When the server requests sampling, respond "A concise deterministic summary."
299
+ Call tool "summarize"
300
+ Expect "structuredContent.summary" equals "A concise deterministic summary."
301
+ ```
302
+
303
+ Suite-wide defaults live in a `Client behavior:` block; these per-test lines override them for one test.
304
+
261
305
  ## Match a snapshot
262
306
 
263
307
  ```text
@@ -203,3 +203,7 @@ Include:
203
203
  - sanitized evidence or result JSON.
204
204
 
205
205
  Do not include credentials or regulated data.
206
+
207
+ ## `MCP-AUTH-002 Token from command failed`
208
+
209
+ The `Token from:` command exited non-zero, timed out (15 s cap), printed nothing, or printed more than a single token. Run the command by hand and confirm it prints exactly one token on stdout with no extra logging. Send diagnostics to stderr instead — Rigor only reads stdout.
@@ -3,14 +3,43 @@
3
3
  "name": "MCP Rigor Language",
4
4
  "scopeName": "source.mcpr",
5
5
  "patterns": [
6
- { "match": "^\\s*#.*$", "name": "comment.line.number-sign.mcpr" },
7
- { "match": "^MCP Test 1$", "name": "keyword.control.version.mcpr" },
8
- { "match": "^\\s*(Suite|Server|Server options|MCP URL|Compare target|Target options for|Default timeout|Redact|Snapshots|Ignore snapshot paths|Client behavior|Import flows from|Flow|Inputs|Outputs|Test|Scenario|Id|Depends on|Require|Require protocol|Variables|Skip|Setup|Steps|Cleanup|Data source):?", "name": "keyword.control.mcpr" },
9
- { "match": "^\\s*(Call tool|Read resource|Get prompt|Send|Expect|Save|Export|Set|Use flow|For each row|Wait up to|Wait for notification|Subscribe to resource|Unsubscribe from resource|Set log level|List all|Get task|List tasks|Cancel task|From CSV|From JSON|From YAML|From Excel|From REST|Column|Derive|Keep rows where|Sample|Cache this source)\\b", "name": "keyword.other.mcpr" },
10
- { "begin": "\"", "end": "\"", "name": "string.quoted.double.mcpr" },
11
- { "begin": "'", "end": "'", "name": "string.quoted.single.mcpr" },
12
- { "match": "\\$\\{[^}]+\\}", "name": "variable.other.mcpr" },
13
- { "match": "\\b(true|false|null)\\b", "name": "constant.language.mcpr" },
14
- { "match": "\\b-?[0-9]+(?:\\.[0-9]+)?\\b", "name": "constant.numeric.mcpr" }
6
+ {
7
+ "match": "^\\s*#.*$",
8
+ "name": "comment.line.number-sign.mcpr"
9
+ },
10
+ {
11
+ "match": "^MCP Test 1$",
12
+ "name": "keyword.control.version.mcpr"
13
+ },
14
+ {
15
+ "match": "^\\s*(Suite|Server|Server options|MCP URL|Compare target|Target options for|Default timeout|Redact|Snapshots|Ignore snapshot paths|Client behavior|Import flows from|Flow|Inputs|Outputs|Test|Scenario|Id|Depends on|Require|Require protocol|Variables|Skip|Setup|Steps|Cleanup|Data source):?",
16
+ "name": "keyword.control.mcpr"
17
+ },
18
+ {
19
+ "match": "^\\s*(Call tool|When the server asks for input|When the server requests sampling|Read resource|Get prompt|Send|Expect|Save|Export|Set|Use flow|For each row|Wait up to|Wait for notification|Subscribe to resource|Unsubscribe from resource|Set log level|List all|Get task|List tasks|Cancel task|From CSV|From JSON|From YAML|From Excel|From REST|Column|Derive|Keep rows where|Sample|Cache this source)\\b",
20
+ "name": "keyword.other.mcpr"
21
+ },
22
+ {
23
+ "begin": "\"",
24
+ "end": "\"",
25
+ "name": "string.quoted.double.mcpr"
26
+ },
27
+ {
28
+ "begin": "'",
29
+ "end": "'",
30
+ "name": "string.quoted.single.mcpr"
31
+ },
32
+ {
33
+ "match": "\\$\\{[^}]+\\}",
34
+ "name": "variable.other.mcpr"
35
+ },
36
+ {
37
+ "match": "\\b(true|false|null)\\b",
38
+ "name": "constant.language.mcpr"
39
+ },
40
+ {
41
+ "match": "\\b-?[0-9]+(?:\\.[0-9]+)?\\b",
42
+ "name": "constant.numeric.mcpr"
43
+ }
15
44
  ]
16
- }
45
+ }
@@ -0,0 +1 @@
1
+ .vscodeignore
@@ -0,0 +1,25 @@
1
+ # MCP Rigor for VS Code
2
+
3
+ Syntax highlighting and inline validation for `.mcpr` files — natural-language acceptance tests for MCP servers, compiled deterministically (no AI interprets the wording).
4
+
5
+ ## Features
6
+
7
+ - Syntax highlighting for the full MCP Rigor language, including data engineering, flows, snapshots, parity targets, and scripted elicitation/sampling responses
8
+ - Inline diagnostics on open and save, powered by `mcprigor check` — the same compiler CI runs, so the editor never disagrees with the pipeline
9
+ - Comment toggling, bracket/quote auto-closing
10
+
11
+ ## Requirements
12
+
13
+ `mcprigor` available via `npx` (default) or configure `mcprigor.command` to point at a global install.
14
+
15
+ ## Settings
16
+
17
+ | Setting | Default | Description |
18
+ | --- | --- | --- |
19
+ | `mcprigor.validateOnSave` | `true` | Run `mcprigor check` on save |
20
+ | `mcprigor.command` | `npx mcprigor` | How to invoke the CLI |
21
+
22
+ ## Learn more
23
+
24
+ - [MCP Rigor documentation](https://mcprigor.com)
25
+ - [GitHub](https://github.com/FusionOnePlatform/mcprigor)
@@ -0,0 +1,61 @@
1
+ // MCP Rigor VS Code extension: on-save validation via the mcprigor CLI.
2
+ // Plain CommonJS, zero dependencies beyond the vscode API.
3
+ const vscode = require("vscode");
4
+ const { exec } = require("node:child_process");
5
+
6
+ let diagnostics;
7
+
8
+ function activate(context) {
9
+ diagnostics = vscode.languages.createDiagnosticCollection("mcprigor");
10
+ context.subscriptions.push(diagnostics);
11
+ context.subscriptions.push(vscode.workspace.onDidSaveTextDocument((document) => {
12
+ if (document.languageId !== "mcpr") return;
13
+ if (!vscode.workspace.getConfiguration("mcprigor").get("validateOnSave", true)) return;
14
+ validate(document);
15
+ }));
16
+ context.subscriptions.push(vscode.workspace.onDidOpenTextDocument((document) => {
17
+ if (document.languageId === "mcpr") validate(document);
18
+ }));
19
+ for (const document of vscode.workspace.textDocuments) if (document.languageId === "mcpr") validate(document);
20
+ }
21
+
22
+ function validate(document) {
23
+ const command = vscode.workspace.getConfiguration("mcprigor").get("command", "npx mcprigor");
24
+ const folder = vscode.workspace.getWorkspaceFolder(document.uri);
25
+ const cwd = folder ? folder.uri.fsPath : undefined;
26
+ exec(`${command} check "${document.uri.fsPath}"`, { cwd, timeout: 30000 }, (_error, _stdout, stderr) => {
27
+ const items = [];
28
+ // Errors look like: QA-LANG-001 [category] /path/file.mcpr:12 Message text
29
+ const pattern = /^([A-Z]+-[A-Z]+-\d+)\s+\[[^\]]+\]\s+(.+?):(\d+)\s+(.*)$/gm;
30
+ let match;
31
+ while ((match = pattern.exec(stderr)) !== null) {
32
+ const [, code, file, lineText, message] = match;
33
+ if (!document.uri.fsPath.endsWith(file) && !file.endsWith(document.uri.fsPath)) {
34
+ if (!sameFile(file, document.uri.fsPath)) continue;
35
+ }
36
+ const line = Math.max(0, Number(lineText) - 1);
37
+ const range = document.lineAt(Math.min(line, document.lineCount - 1)).range;
38
+ const item = new vscode.Diagnostic(range, `${code} ${message}`, vscode.DiagnosticSeverity.Error);
39
+ item.source = "mcprigor";
40
+ items.push(item);
41
+ }
42
+ // Fallback: a failure with no parseable location goes on line 1
43
+ if (!items.length && stderr.includes("MCP Rigor could not continue")) {
44
+ const firstLine = stderr.split("\n").find((entry) => /^[A-Z]+-[A-Z]+-\d+/.test(entry.trim()));
45
+ if (firstLine) {
46
+ const item = new vscode.Diagnostic(document.lineAt(0).range, firstLine.trim(), vscode.DiagnosticSeverity.Error);
47
+ item.source = "mcprigor";
48
+ items.push(item);
49
+ }
50
+ }
51
+ diagnostics.set(document.uri, items);
52
+ });
53
+ }
54
+
55
+ function sameFile(a, b) {
56
+ try { return require("node:fs").realpathSync(a) === require("node:fs").realpathSync(b); } catch { return false; }
57
+ }
58
+
59
+ function deactivate() { if (diagnostics) diagnostics.dispose(); }
60
+
61
+ module.exports = { activate, deactivate };
@@ -0,0 +1,11 @@
1
+ {
2
+ "comments": { "lineComment": "#" },
3
+ "brackets": [["{", "}"], ["[", "]"]],
4
+ "autoClosingPairs": [
5
+ { "open": "\"", "close": "\"", "notIn": ["string"] },
6
+ { "open": "'", "close": "'", "notIn": ["string"] },
7
+ { "open": "{", "close": "}" },
8
+ { "open": "[", "close": "]" }
9
+ ],
10
+ "surroundingPairs": [["\"", "\""], ["'", "'"], ["{", "}"], ["[", "]"]]
11
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "mcprigor",
3
+ "displayName": "MCP Rigor",
4
+ "description": "Syntax highlighting and inline validation for MCP Rigor (.mcpr) natural-language MCP test suites.",
5
+ "version": "1.3.0",
6
+ "publisher": "fusionone",
7
+ "license": "Apache-2.0",
8
+ "repository": { "type": "git", "url": "https://github.com/FusionOnePlatform/mcprigor" },
9
+ "engines": { "vscode": "^1.85.0" },
10
+ "categories": ["Programming Languages", "Testing", "Linters"],
11
+ "keywords": ["mcp", "model context protocol", "testing", "qa"],
12
+ "main": "./extension.js",
13
+ "activationEvents": ["onLanguage:mcpr"],
14
+ "contributes": {
15
+ "languages": [{
16
+ "id": "mcpr",
17
+ "aliases": ["MCP Rigor", "mcpr"],
18
+ "extensions": [".mcpr"],
19
+ "configuration": "./language-configuration.json"
20
+ }],
21
+ "grammars": [{
22
+ "language": "mcpr",
23
+ "scopeName": "source.mcpr",
24
+ "path": "./syntaxes/mcpr.tmLanguage.json"
25
+ }],
26
+ "configuration": {
27
+ "title": "MCP Rigor",
28
+ "properties": {
29
+ "mcprigor.validateOnSave": { "type": "boolean", "default": true, "description": "Run 'mcprigor check' when a .mcpr file is saved and surface diagnostics inline." },
30
+ "mcprigor.command": { "type": "string", "default": "npx mcprigor", "description": "Command used to invoke the MCP Rigor CLI." }
31
+ }
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
3
+ "name": "MCP Rigor Language",
4
+ "scopeName": "source.mcpr",
5
+ "patterns": [
6
+ {
7
+ "match": "^\\s*#.*$",
8
+ "name": "comment.line.number-sign.mcpr"
9
+ },
10
+ {
11
+ "match": "^MCP Test 1$",
12
+ "name": "keyword.control.version.mcpr"
13
+ },
14
+ {
15
+ "match": "^\\s*(Suite|Server|Server options|MCP URL|Compare target|Target options for|Default timeout|Redact|Snapshots|Ignore snapshot paths|Client behavior|Import flows from|Flow|Inputs|Outputs|Test|Scenario|Id|Depends on|Require|Require protocol|Variables|Skip|Setup|Steps|Cleanup|Data source):?",
16
+ "name": "keyword.control.mcpr"
17
+ },
18
+ {
19
+ "match": "^\\s*(Call tool|When the server asks for input|When the server requests sampling|Read resource|Get prompt|Send|Expect|Save|Export|Set|Use flow|For each row|Wait up to|Wait for notification|Subscribe to resource|Unsubscribe from resource|Set log level|List all|Get task|List tasks|Cancel task|From CSV|From JSON|From YAML|From Excel|From REST|Column|Derive|Keep rows where|Sample|Cache this source)\\b",
20
+ "name": "keyword.other.mcpr"
21
+ },
22
+ {
23
+ "begin": "\"",
24
+ "end": "\"",
25
+ "name": "string.quoted.double.mcpr"
26
+ },
27
+ {
28
+ "begin": "'",
29
+ "end": "'",
30
+ "name": "string.quoted.single.mcpr"
31
+ },
32
+ {
33
+ "match": "\\$\\{[^}]+\\}",
34
+ "name": "variable.other.mcpr"
35
+ },
36
+ {
37
+ "match": "\\b(true|false|null)\\b",
38
+ "name": "constant.language.mcpr"
39
+ },
40
+ {
41
+ "match": "\\b-?[0-9]+(?:\\.[0-9]+)?\\b",
42
+ "name": "constant.numeric.mcpr"
43
+ }
44
+ ]
45
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcprigor",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Plain-language MCP testing with isolated extensions and a local QA workspace",
5
5
  "type": "module",
6
6
  "bin": {