@miraigent/free-ai-ops-mcp 0.1.19 → 0.1.20

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,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.20] - 2026-06-20
4
+
5
+ ### Added
6
+
7
+ - Added a copy-ready ai_safe_crm_note example so developers can test separating
8
+ customer facts, AI suggestions, human decisions, and next actions before
9
+ connecting private CRM notes.
10
+
3
11
  ## [0.1.19] - 2026-06-19
4
12
 
5
13
  ### Fixed
package/README.md CHANGED
@@ -144,6 +144,7 @@ Copy-ready examples:
144
144
 
145
145
  - Human review gate: `npm run example:human-review-gate`
146
146
  - FAQ candidate review: `npm run example:faq-candidate-review`
147
+ - AI-safe CRM note: `npm run example:ai-safe-crm-note`
147
148
  - Prompt risk review: `npm run example:prompt-risk-review`
148
149
 
149
150
  All examples use synthetic data. Keep private customer records, secrets,
@@ -295,6 +296,10 @@ Run the FAQ candidate review example:
295
296
 
296
297
  npm run example:faq-candidate-review
297
298
 
299
+ Run the AI-safe CRM note example:
300
+
301
+ npm run example:ai-safe-crm-note
302
+
298
303
  ## npm Package
299
304
 
300
305
  Package name: @miraigent/free-ai-ops-mcp
@@ -0,0 +1,33 @@
1
+ # AI-Safe CRM Note Example
2
+
3
+ This example shows how to call the public ai_safe_crm_note MCP tool before a
4
+ support, sales, or onboarding note is copied into a CRM.
5
+
6
+ Use it when a note mixes customer facts, AI suggestions, human decisions, and
7
+ next actions in one paragraph.
8
+
9
+ ## Run
10
+
11
+ From the repository root:
12
+
13
+ npm run example:ai-safe-crm-note
14
+
15
+ The example sends sample-request.jsonl to the MCP server and prints the
16
+ ai_safe_crm_note result.
17
+
18
+ ## What To Look For
19
+
20
+ The sample uses a public-safe setup-timing note, so the tool should return:
21
+
22
+ - crmNote.customerFacts: the factual summary only
23
+ - crmNote.aiSuggestion: a separate AI suggestion placeholder
24
+ - crmNote.humanDecision: a separate human decision placeholder
25
+ - crmNote.nextAction: the next support or sales action
26
+
27
+ ## Safe Use
28
+
29
+ Use synthetic examples only. Do not paste private customer records, names,
30
+ emails, phone numbers, account IDs, contracts, payment details, internal policy
31
+ text, or CRM exports into public issues, examples, or screenshots.
32
+
33
+ This is an operations note helper. It does not write to a CRM or call an AI API.
@@ -0,0 +1,28 @@
1
+ import { spawn } from 'node:child_process';
2
+ import fs from 'node:fs';
3
+
4
+ const child = spawn(process.execPath, ['mcp/free-ai-ops-server.mjs'], {
5
+ stdio: ['pipe', 'pipe', 'inherit']
6
+ });
7
+
8
+ const request = fs.readFileSync('examples/ai-safe-crm-note/sample-request.jsonl', 'utf8');
9
+ let stdout = '';
10
+
11
+ child.stdout.on('data', (chunk) => {
12
+ stdout += chunk;
13
+ });
14
+
15
+ child.stdin.write(request.trim() + '\n');
16
+ child.stdin.end();
17
+
18
+ await new Promise((resolve, reject) => {
19
+ child.on('error', reject);
20
+ child.on('close', (code) => {
21
+ if (code !== 0) reject(new Error('server exited with ' + code));
22
+ else resolve();
23
+ });
24
+ });
25
+
26
+ const response = JSON.parse(stdout.trim());
27
+ const payload = JSON.parse(response.result.content[0].text);
28
+ console.log(JSON.stringify(payload, null, 2));
@@ -0,0 +1 @@
1
+ {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ai_safe_crm_note","arguments":{"rawNoteSummary":"Customer asked whether setup can start this week and wants the checklist before the kickoff call.","channel":"contact form","containsPersonalData":false,"nextAction":"send setup checklist and confirm kickoff date","owner":"sales operations"}}}
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const serverInfo = { name: 'miraigent-free-ai-ops-mcp', version: '0.1.19' };
3
+ const serverInfo = { name: 'miraigent-free-ai-ops-mcp', version: '0.1.20' };
4
4
 
5
5
  const tools = [
6
6
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miraigent/free-ai-ops-mcp",
3
- "version": "0.1.19",
3
+ "version": "0.1.20",
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",
@@ -26,6 +26,7 @@
26
26
  "example:human-review-gate": "node examples/human-review-gate/run-example.mjs",
27
27
  "example:prompt-risk-review": "node examples/prompt-risk-review/run-example.mjs",
28
28
  "example:faq-candidate-review": "node examples/faq-candidate-review/run-example.mjs",
29
+ "example:ai-safe-crm-note": "node examples/ai-safe-crm-note/run-example.mjs",
29
30
  "mcp": "node mcp/free-ai-ops-server.mjs"
30
31
  },
31
32
  "keywords": [