@miraigent/free-ai-ops-mcp 0.1.40 → 0.1.42

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.42] - 2026-07-18
4
+
5
+ ### Changed
6
+
7
+ - Clarified that the public help header prints the package version and added
8
+ smoke-test coverage for that header so npm users can spot stale `npx` cache
9
+ behavior before editing MCP client configuration.
10
+
11
+ ## [0.1.41] - 2026-07-17
12
+
13
+ ### Changed
14
+
15
+ - Added an initialize response check to the public smoke-test path so MCP users
16
+ can confirm the protocol version, capabilities, and package version before
17
+ debugging desktop client configuration.
18
+
3
19
  ## [0.1.40] - 2026-07-16
4
20
 
5
21
  ### Changed
package/README.md CHANGED
@@ -53,7 +53,10 @@ If you are checking the package from npm search, run the public help first:
53
53
  npx -y free-ai-ops-mcp@npm:@miraigent/free-ai-ops-mcp --help
54
54
 
55
55
  The help output lists the available MCP tools, the one-command smoke test, and
56
- the public-safe boundary before you send any JSON-RPC input.
56
+ the public-safe boundary before you send any JSON-RPC input. The first line
57
+ also prints `Miraigent Free AI Ops MCP <version>`, which is the quickest way to
58
+ confirm whether `npx` is using the current public package or a stale local
59
+ cache.
57
60
 
58
61
  If a local npx cache or desktop MCP client appears stale, compare it with the
59
62
  public registry version before changing private client configuration:
@@ -75,6 +78,15 @@ If only the desktop MCP client shows an older version after those checks pass,
75
78
  restart the client and re-check its `command` and `args` path before changing
76
79
  any private workflow data.
77
80
 
81
+ Quick initialize response check:
82
+
83
+ npx -y free-ai-ops-mcp@npm:@miraigent/free-ai-ops-mcp < examples/mcp-json-rpc-session/sample-session.jsonl | head -n 1
84
+
85
+ That first response should include `protocolVersion: "2024-11-05"`,
86
+ `capabilities.tools`, and `serverInfo.version`. If those fields appear in the
87
+ terminal but not in a desktop MCP client, debug the client restart/config path
88
+ before changing private workflow data.
89
+
78
90
  If the result is unclear, open a Tried It feedback issue with synthetic input
79
91
  only. A useful issue can be as small as:
80
92
 
@@ -350,6 +362,10 @@ The session sends three JSON-RPC messages:
350
362
  - tools/list: confirms the four public alpha tools are visible.
351
363
  - tools/call: runs human_review_gate with synthetic support-reply data.
352
364
 
365
+ The first response should include `protocolVersion: "2024-11-05"`,
366
+ `capabilities.tools`, and a `serverInfo.version` value that matches
367
+ `package.json` and the public npm registry version.
368
+
353
369
  If you open a GitHub issue, copy only synthetic input shapes and returned status
354
370
  fields. Do not paste private customer records, secrets, tokens, internal policy
355
371
  text, or MIRAI Memory behavior.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miraigent/free-ai-ops-mcp",
3
- "version": "0.1.40",
3
+ "version": "0.1.42",
4
4
  "description": "Free MCP server for developers adding human review gates, prompt risk checks, FAQ review, and CRM note safety to AI tools.",
5
5
  "homepage": "https://github.com/Miraigent/miraigent-free-ai-ops-mcp",
6
6
  "type": "module",
@@ -22,6 +22,7 @@ await new Promise((resolve, reject) => {
22
22
  });
23
23
 
24
24
  assert.match(helpStdout, /npx -y free-ai-ops-mcp@npm:@miraigent\/free-ai-ops-mcp/);
25
+ assert.match(helpStdout, new RegExp(`Miraigent Free AI Ops MCP ${packageJson.version.replaceAll('.', '\\.')}`));
25
26
  assert.match(helpStdout, /human_review_gate/);
26
27
  assert.match(helpStdout, /Do not paste secrets/);
27
28
  assert.match(helpStdout, /private memory behavior/);
@@ -119,6 +120,8 @@ async function runServerWithRequests(requestLines) {
119
120
 
120
121
  const responses = await runServerWithRequests(requests.map((request) => JSON.stringify(request)));
121
122
  assert.equal(responses.length, requests.length);
123
+ assert.equal(responses[0].result.protocolVersion, '2024-11-05');
124
+ assert.deepEqual(responses[0].result.capabilities, { tools: {} });
122
125
  assert.equal(responses[0].result.serverInfo.name, 'miraigent-free-ai-ops-mcp');
123
126
  assert.equal(responses[0].result.serverInfo.version, packageJson.version);
124
127
  assert.equal(responses[1].result.tools.length, 4);
@@ -166,6 +169,8 @@ const sampleSession = await readFile(
166
169
  const sampleLines = sampleSession.trim().split('\n');
167
170
  const sampleResponses = await runServerWithRequests(sampleLines);
168
171
  assert.equal(sampleResponses.length, 3);
172
+ assert.equal(sampleResponses[0].result.protocolVersion, '2024-11-05');
173
+ assert.deepEqual(sampleResponses[0].result.capabilities, { tools: {} });
169
174
  assert.equal(sampleResponses[0].result.serverInfo.name, 'miraigent-free-ai-ops-mcp');
170
175
  assert.equal(sampleResponses[0].result.serverInfo.version, packageJson.version);
171
176
  assert.equal(sampleResponses[1].result.tools.length, 4);
@@ -188,6 +193,8 @@ const promptRiskSession = await readFile(
188
193
  );
189
194
  const promptRiskResponses = await runServerWithRequests(promptRiskSession.trim().split('\n'));
190
195
  assert.equal(promptRiskResponses.length, 3);
196
+ assert.equal(promptRiskResponses[0].result.protocolVersion, '2024-11-05');
197
+ assert.deepEqual(promptRiskResponses[0].result.capabilities, { tools: {} });
191
198
  assert.equal(promptRiskResponses[0].result.serverInfo.name, 'miraigent-free-ai-ops-mcp');
192
199
  assert.equal(promptRiskResponses[0].result.serverInfo.version, packageJson.version);
193
200
  assert.equal(promptRiskResponses[1].result.tools.length, 4);