@miraigent/free-ai-ops-mcp 0.1.42 → 0.1.44
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.44] - 2026-07-20
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Added a tools-list-only JSON-RPC session example and smoke-test coverage so
|
|
8
|
+
MCP client users can confirm the four public tools before sending any sample
|
|
9
|
+
tool-call input.
|
|
10
|
+
|
|
11
|
+
## [0.1.43] - 2026-07-19
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Added a README command that extracts and parses the bundled JSON-RPC smoke-test
|
|
16
|
+
result without copy-pasting response lines, plus smoke-test coverage so the
|
|
17
|
+
public proof path stays visible for npm users.
|
|
18
|
+
|
|
3
19
|
## [0.1.42] - 2026-07-18
|
|
4
20
|
|
|
5
21
|
### Changed
|
package/README.md
CHANGED
|
@@ -19,6 +19,9 @@ examples/human-review-gate/.
|
|
|
19
19
|
For a complete public-safe MCP session that covers initialize, tools/list, and
|
|
20
20
|
one tool call, see examples/mcp-json-rpc-session/.
|
|
21
21
|
|
|
22
|
+
If you only want to confirm which tools the server exposes before sending any
|
|
23
|
+
sample tool-call input, use examples/tools-list-json-rpc-session/.
|
|
24
|
+
|
|
22
25
|
If your first concern is whether a customer-facing prompt should be stopped
|
|
23
26
|
before AI use, use examples/prompt-risk-json-rpc-session/ for a copy-ready
|
|
24
27
|
prompt_risk_review session.
|
|
@@ -44,6 +47,13 @@ This is the fastest public proof path for npm and GitHub users. If the command
|
|
|
44
47
|
starts but the returned status is confusing, open a Tried It feedback issue with
|
|
45
48
|
the command, synthetic input shape, and returned status only.
|
|
46
49
|
|
|
50
|
+
To inspect the public tool list without running any tool call:
|
|
51
|
+
|
|
52
|
+
npx -y free-ai-ops-mcp@npm:@miraigent/free-ai-ops-mcp < examples/tools-list-json-rpc-session/sample-session.jsonl
|
|
53
|
+
|
|
54
|
+
That response should include `human_review_gate`, `faq_candidate_review`,
|
|
55
|
+
`ai_safe_crm_note`, and `prompt_risk_review`.
|
|
56
|
+
|
|
47
57
|
For maintainers and contributors, `npm test` replays the same public
|
|
48
58
|
`examples/mcp-json-rpc-session/sample-session.jsonl` file and checks the
|
|
49
59
|
returned server name, version, tool count, and review-gate fields.
|
|
@@ -200,6 +210,15 @@ smoke-test output and inspect the wrapped text field with Node:
|
|
|
200
210
|
|
|
201
211
|
node -e 'const r=JSON.parse(process.argv[1]); console.log(JSON.parse(r.result.content[0].text));' '<paste one response line here>'
|
|
202
212
|
|
|
213
|
+
To avoid copying any response text at all, run the bundled public sample and
|
|
214
|
+
parse only its final synthetic tool-call response:
|
|
215
|
+
|
|
216
|
+
npx -y free-ai-ops-mcp@npm:@miraigent/free-ai-ops-mcp < examples/mcp-json-rpc-session/sample-session.jsonl | tail -n 1 | node -e 'process.stdin.on("data", c => { const r = JSON.parse(c); console.log(JSON.parse(r.result.content[0].text).gateStatus); })'
|
|
217
|
+
|
|
218
|
+
That prints `stop` for the bundled support-reply example. If it does, the
|
|
219
|
+
package is returning the expected MCP result shape and you can debug client
|
|
220
|
+
configuration separately from tool behavior.
|
|
221
|
+
|
|
203
222
|
Paste only the synthetic response from the public example. Do not paste private
|
|
204
223
|
customer records or desktop client logs into shell history, screenshots, or
|
|
205
224
|
GitHub issues.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Tools List JSON-RPC Session Example
|
|
2
|
+
|
|
3
|
+
This example lets MCP client users confirm the public tool list before sending
|
|
4
|
+
any sample tool-call input.
|
|
5
|
+
|
|
6
|
+
Use it when a desktop MCP client starts the server but does not show the tools
|
|
7
|
+
you expected.
|
|
8
|
+
|
|
9
|
+
## Run
|
|
10
|
+
|
|
11
|
+
From the repository root:
|
|
12
|
+
|
|
13
|
+
npm run mcp < examples/tools-list-json-rpc-session/sample-session.jsonl
|
|
14
|
+
|
|
15
|
+
From the public npm package:
|
|
16
|
+
|
|
17
|
+
npx -y free-ai-ops-mcp@npm:@miraigent/free-ai-ops-mcp < examples/tools-list-json-rpc-session/sample-session.jsonl
|
|
18
|
+
|
|
19
|
+
You should receive two JSON-RPC response lines. The second response should list:
|
|
20
|
+
|
|
21
|
+
- human_review_gate
|
|
22
|
+
- faq_candidate_review
|
|
23
|
+
- ai_safe_crm_note
|
|
24
|
+
- prompt_risk_review
|
|
25
|
+
|
|
26
|
+
If those tools appear in the terminal but not in your desktop MCP client,
|
|
27
|
+
restart the client and re-check the configured command and args before changing
|
|
28
|
+
private workflow data.
|
|
29
|
+
|
|
30
|
+
Do not include secrets, credentials, private customer records, internal policy
|
|
31
|
+
text, paid product files, or private memory behavior in public issues.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miraigent/free-ai-ops-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.44",
|
|
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",
|
package/scripts/smoke-test.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import assert from 'node:assert';
|
|
|
3
3
|
import { readFile } from 'node:fs/promises';
|
|
4
4
|
|
|
5
5
|
const packageJson = JSON.parse(await readFile(new URL('../package.json', import.meta.url), 'utf8'));
|
|
6
|
+
const rootReadme = await readFile(new URL('../README.md', import.meta.url), 'utf8');
|
|
6
7
|
|
|
7
8
|
const helpChild = spawn(process.execPath, ['mcp/free-ai-ops-server.mjs', '--help'], {
|
|
8
9
|
stdio: ['ignore', 'pipe', 'inherit']
|
|
@@ -27,6 +28,8 @@ assert.match(helpStdout, /human_review_gate/);
|
|
|
27
28
|
assert.match(helpStdout, /Do not paste secrets/);
|
|
28
29
|
assert.match(helpStdout, /private memory behavior/);
|
|
29
30
|
assert.match(helpStdout, /github\.com\/Miraigent\/miraigent-free-ai-ops-mcp\/issues\/new\/choose/);
|
|
31
|
+
assert.match(rootReadme, /tail -n 1 \| node -e/);
|
|
32
|
+
assert.match(rootReadme, /console\.log\(JSON\.parse\(r\.result\.content\[0\]\.text\)\.gateStatus\)/);
|
|
30
33
|
|
|
31
34
|
const requests = [
|
|
32
35
|
{ jsonrpc: '2.0', id: 1, method: 'initialize', params: {} },
|
|
@@ -187,6 +190,21 @@ assert.equal(sampleToolResult.gateStatus, 'stop');
|
|
|
187
190
|
assert.equal(sampleToolResult.nextLogRow.gate_status, 'stop');
|
|
188
191
|
assert.equal(sampleToolResult.boundary, 'This tool is a review helper. It does not send messages.');
|
|
189
192
|
|
|
193
|
+
const toolsListSession = await readFile(
|
|
194
|
+
new URL('../examples/tools-list-json-rpc-session/sample-session.jsonl', import.meta.url),
|
|
195
|
+
'utf8'
|
|
196
|
+
);
|
|
197
|
+
const toolsListResponses = await runServerWithRequests(toolsListSession.trim().split('\n'));
|
|
198
|
+
assert.equal(toolsListResponses.length, 2);
|
|
199
|
+
assert.equal(toolsListResponses[0].result.protocolVersion, '2024-11-05');
|
|
200
|
+
assert.equal(toolsListResponses[0].result.serverInfo.name, 'miraigent-free-ai-ops-mcp');
|
|
201
|
+
assert.equal(toolsListResponses[0].result.serverInfo.version, packageJson.version);
|
|
202
|
+
assert.deepEqual(
|
|
203
|
+
toolsListResponses[1].result.tools.map((tool) => tool.name),
|
|
204
|
+
['human_review_gate', 'faq_candidate_review', 'ai_safe_crm_note', 'prompt_risk_review']
|
|
205
|
+
);
|
|
206
|
+
assert.match(rootReadme, /examples\/tools-list-json-rpc-session\/sample-session\.jsonl/);
|
|
207
|
+
|
|
190
208
|
const promptRiskSession = await readFile(
|
|
191
209
|
new URL('../examples/prompt-risk-json-rpc-session/sample-session.jsonl', import.meta.url),
|
|
192
210
|
'utf8'
|