@miraigent/free-ai-ops-mcp 0.1.15 → 0.1.16
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 +8 -0
- package/README.md +7 -0
- package/mcp/free-ai-ops-server.mjs +30 -1
- package/package.json +1 -1
- package/scripts/smoke-test.mjs +21 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.16] - 2026-06-19
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Added a public `--help` path for npm/npx users so package search visitors can
|
|
8
|
+
see the available MCP tools, one-command smoke test, safety boundary, and
|
|
9
|
+
feedback route before sending JSON-RPC input.
|
|
10
|
+
|
|
3
11
|
## [0.1.15] - 2026-06-18
|
|
4
12
|
|
|
5
13
|
### Fixed
|
package/README.md
CHANGED
|
@@ -40,6 +40,13 @@ the command, synthetic input shape, and returned status only.
|
|
|
40
40
|
The package also exposes `free-ai-ops-mcp` and `miraigent-free-ai-ops-mcp` as
|
|
41
41
|
bin aliases for npm exec environments that require an explicit command name.
|
|
42
42
|
|
|
43
|
+
If you are checking the package from npm search, run the public help first:
|
|
44
|
+
|
|
45
|
+
npx @miraigent/free-ai-ops-mcp --help
|
|
46
|
+
|
|
47
|
+
The help output lists the available MCP tools, the one-command smoke test, and
|
|
48
|
+
the public-safe boundary before you send any JSON-RPC input.
|
|
49
|
+
|
|
43
50
|
If the result is unclear, open a Tried It feedback issue with synthetic input
|
|
44
51
|
only. A useful issue can be as small as:
|
|
45
52
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const serverInfo = { name: 'miraigent-free-ai-ops-mcp', version: '0.1.
|
|
3
|
+
const serverInfo = { name: 'miraigent-free-ai-ops-mcp', version: '0.1.16' };
|
|
4
4
|
|
|
5
5
|
const tools = [
|
|
6
6
|
{
|
|
@@ -65,6 +65,30 @@ function textContent(value) {
|
|
|
65
65
|
return [{ type: 'text', text: JSON.stringify(value, null, 2) }];
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
function printHelp() {
|
|
69
|
+
process.stdout.write(`Miraigent Free AI Ops MCP ${serverInfo.version}
|
|
70
|
+
|
|
71
|
+
Run the public MCP server:
|
|
72
|
+
npx @miraigent/free-ai-ops-mcp
|
|
73
|
+
|
|
74
|
+
Run a copy-ready public smoke test:
|
|
75
|
+
npx -y @miraigent/free-ai-ops-mcp < examples/mcp-json-rpc-session/sample-session.jsonl
|
|
76
|
+
|
|
77
|
+
Available tools:
|
|
78
|
+
human_review_gate Stop/review/approve AI drafts before sending
|
|
79
|
+
faq_candidate_review Review repeated questions before FAQ publication
|
|
80
|
+
ai_safe_crm_note Separate facts, AI suggestions, human decisions, and next actions
|
|
81
|
+
prompt_risk_review Check customer-facing or sensitive prompts before AI use
|
|
82
|
+
|
|
83
|
+
Public-safe boundary:
|
|
84
|
+
Use synthetic examples only. Do not paste secrets, customer records,
|
|
85
|
+
internal policy text, paid product files, or private memory behavior.
|
|
86
|
+
|
|
87
|
+
Feedback:
|
|
88
|
+
https://github.com/Miraigent/miraigent-free-ai-ops-mcp/issues/new/choose
|
|
89
|
+
`);
|
|
90
|
+
}
|
|
91
|
+
|
|
68
92
|
function normalizeRisk(value) {
|
|
69
93
|
return String(value || 'medium').toLowerCase();
|
|
70
94
|
}
|
|
@@ -197,6 +221,11 @@ function handle(request) {
|
|
|
197
221
|
throw new Error('Unsupported method: ' + request.method);
|
|
198
222
|
}
|
|
199
223
|
|
|
224
|
+
if (process.argv.includes('--help') || process.argv.includes('-h')) {
|
|
225
|
+
printHelp();
|
|
226
|
+
process.exit(0);
|
|
227
|
+
}
|
|
228
|
+
|
|
200
229
|
let buffer = '';
|
|
201
230
|
process.stdin.setEncoding('utf8');
|
|
202
231
|
process.stdin.on('data', (chunk) => {
|
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.16",
|
|
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
|
@@ -4,6 +4,27 @@ 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
6
|
|
|
7
|
+
const helpChild = spawn(process.execPath, ['mcp/free-ai-ops-server.mjs', '--help'], {
|
|
8
|
+
stdio: ['ignore', 'pipe', 'inherit']
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
let helpStdout = '';
|
|
12
|
+
helpChild.stdout.on('data', (chunk) => {
|
|
13
|
+
helpStdout += chunk;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
await new Promise((resolve, reject) => {
|
|
17
|
+
helpChild.on('error', reject);
|
|
18
|
+
helpChild.on('close', (code) => {
|
|
19
|
+
if (code !== 0) reject(new Error('help exited with ' + code));
|
|
20
|
+
else resolve();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
assert.match(helpStdout, /npx @miraigent\/free-ai-ops-mcp/);
|
|
25
|
+
assert.match(helpStdout, /human_review_gate/);
|
|
26
|
+
assert.match(helpStdout, /Do not paste secrets/);
|
|
27
|
+
|
|
7
28
|
const child = spawn(process.execPath, ['mcp/free-ai-ops-server.mjs'], {
|
|
8
29
|
stdio: ['pipe', 'pipe', 'inherit']
|
|
9
30
|
});
|