opsflow-mcp
Supports operational incident playbooks that escalate through PagerDuty paging, with safeguards to halt when retries are exhausted.
Generates weekly KPI variance digests as Slack Block Kit JSON for executive reporting and channel delivery.
Audits revenue event data for duplicate Stripe idempotency keys, helping detect overstated ARR and reconcile Stripe-sourced revenue records.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
opsflow-mcp
opsflow-mcp is a zero-dependency Model Context Protocol (MCP 2024-11-05) server in Node.js (node:sqlite, node:http, node:test). It exposes a read-only B2B SaaS SQL warehouse, dataset freshness and duplicate-key checks, weekly KPI variance digests, multi-step operational playbooks, and an 18-case JSON-RPC evaluation suite.

Quick start
Run opsflow-mcp on Node.js 22.5 or newer (including Node.js 24). No npm install step is needed because the server uses only built-in Node.js modules.
git clone https://github.com/Nasim-U/opsflow-mcp.git
cd opsflow-mcp
# Start the HTTP JSON-RPC server and browser workbench on port 8762
node src/cli.mjs serve-http --port 8762
# Run the 18-case evaluation suite
npm run eval
# Run the unit and integration test suite
npm test
# Run the terminal protocol trace
node src/cli.mjs demo
# Start the stdio transport for Claude Desktop, Antigravity, or Cursor
node src/cli.mjs serve-stdioWhen serve-http is active, open http://127.0.0.1:8762/ in a browser to run tools, inspect raw JSON-RPC 2.0 request and response payloads, and execute the evaluation suite.
Related MCP server: Enterprise MCP Knowledge Platform
Evaluation benchmark
src/evals.mjs (and GET /evals) executes 18 deterministic cases through mcp.handleRequest against the seeded SQLite warehouse. Every case checks exact numeric outputs or guardrail error codes and records execution time in milliseconds.

Category | Cases | What the suite verifies |
SQL analytics | 4 |
|
SQL guardrails | 6 | Blocks stacked |
Data trust gates | 4 | Flags |
Workflow playbooks | 4 | Confirms |
Run node src/evals.mjs from the command line to print the per-case table and exit non-zero on any regression.
MCP tools, resources, and prompts
Tools (tools/list and tools/call)
Tool | Inputs | Behavior |
|
| Runs a single |
|
| Checks pipeline freshness lag, column NULL rates, duplicate |
|
| Computes week-over-week Net New ARR, Expansion ARR, Contraction and Churn ARR, pipeline coverage, p95 API latency, segment variance shares, renewal watchlist accounts, Markdown output, and Slack Block Kit JSON. |
|
| Executes |
Resources (resources/list and resources/read)
opsflow://schema/catalogreturns table grains, primary keys, business keys, PII classifications, and column types foraccounts,revenue_events,weekly_kpi_snapshots,pipeline_runs, andsupport_escalations.opsflow://sla/latestreturns Tier-0, Tier-1, and Tier-2 freshness targets and live pipeline compliance calculated frompipeline_runs.opsflow://audit/recentreturns the latest 50 JSON-RPC tool calls, guardrail verdicts, query hashes, and latencies from the in-memory ring buffer.
Prompts and agent skills
MCP prompts (
prompts/get):executive-variance-brief,incident-root-cause-triage, andchurn-save-plan.skills/warehouse-analyst/SKILL.mddefines the schema lookup,idempotency_keydeduplication CTE, and citation sequence for ad-hoc SQL questions.skills/weekly-ops-digest/SKILL.mdgates weekly executive reporting onaudit_dataset_healthbefore compiling variances or stagingdryRunplaybook runs.
Read-only SQL controls
executeGuardrailedQuery in src/sql-guardrails.mjs and createOpsWarehouse in src/warehouse.mjs enforce five checks on every query:
Comment and literal scanner. Strips
--line comments and/* ... */block comments, rejects unclosed comments or string literals, replaces'...'string contents with placeholders before tokenizing, and collapses inline/*...*/sequences inside identifiers to catch split keywords such asDR/**/OP.Single-statement check (
MULTI_STATEMENT_BLOCKED). Allows one optional trailing semicolon and rejects any interior semicolon.Root and keyword allowlist (
NON_SELECT_ROOT_BLOCKEDandFORBIDDEN_SQL_KEYWORD). Requires aSELECTorWITH ... SELECTstatement and blocksINSERT,UPDATE,DELETE,DROP,ALTER,TRUNCATE,CREATE,REPLACE,ATTACH,DETACH,PRAGMA,VACUUM,REINDEX,LOAD_EXTENSION, and transaction statements.Catalog block and cursor row cap (
SYSTEM_CATALOG_BLOCKED). Blockssqlite_masterandsqlite_schemaqueries and stepsstmt.iterate()up toeffectiveMaxRows(hard cap500).SQLite engine lock. Sets
PRAGMA trusted_schema = OFFandPRAGMA query_only = ONafter seeding the in-memory database so SQLite rejects writes even if called directly.
Host configuration and HTTP API
To register opsflow-mcp in Claude Desktop, Google Antigravity, or Cursor, add the stdio command to mcpServers:
{
"mcpServers": {
"opsflow-mcp": {
"command": "node",
"args": ["/absolute/path/to/opsflow-mcp/src/cli.mjs", "serve-stdio"]
}
}
}When running node src/cli.mjs serve-http --port 8762, the HTTP server exposes four routes on 127.0.0.1:
GET /serves the browser protocol inspector and evaluation workbench.GET /evalsruns the 18-case benchmark suite and returns the JSON report.GET /healthreturns server status, MCP protocol version, and registered capability counts.POST /mcpaccepts single or batch JSON-RPC 2.0 requests (up to 1 MB).
curl -s http://127.0.0.1:8762/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "audit_dataset_health",
"arguments": { "dataset": "all" }
}
}'Repository layout
opsflow-mcp/
├── .github/workflows/ci.yml # Node 24 CI: PNG check, tests, evals, CLI demo
├── docs/
│ ├── eval-suite.png # 2x screenshot of the 18-case benchmark view
│ └── mcp-inspector.png # 2x screenshot of the JSON-RPC 2.0 workbench
├── skills/
│ ├── warehouse-analyst/SKILL.md # Ad-hoc SQL and deduplication workflow skill
│ └── weekly-ops-digest/SKILL.md # Weekly KPI brief and SLA gate skill
├── src/
│ ├── ui/
│ │ └── workbench.mjs # Browser protocol inspector HTML and client JS
│ ├── cli.mjs # CLI entrypoint (demo, eval, serve-stdio, serve-http)
│ ├── evals.mjs # 18-case deterministic MCP benchmark runner
│ ├── exec-digest.mjs # WoW KPI variance and Slack Block Kit compiler
│ ├── health-audit.mjs # Freshness, NULL drift, dup-key, and z-score checks
│ ├── mcp-server.mjs # JSON-RPC 2.0 server for stdio and HTTP transports
│ ├── playbooks.mjs # Multi-step workflow runner with retry backoff
│ ├── sql-guardrails.mjs # Lexical SQL scanner and row-capped query runner
│ └── warehouse.mjs # Seeded B2B SaaS node:sqlite warehouse
├── tests/
│ └── opsflow.test.mjs # Protocol, security, HTTP workbench, and eval tests
├── LICENSE # MIT License
└── package.json # Native ESM package configurationAuthor
Nasim Uddin (@Nasim-U)
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only SaaS business intelligence from GA4, Stripe, and Google Search Console.
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
Read-only analytics for all your apps: users, AI traffic, revenue, with the SQL behind every number.
Define, ship & query your analytics tracking from one source of truth, trusted by humans and agents.
Related MCP Servers
FlicenseNot gradedqualityCmaintenanceEnables AI assistants to query unified commerce data from Amazon, Google Ads, GA4, and other selling systems using read-only SQL tools, with managed sync, freshness, and schema discovery.1-- FlicenseNot gradedqualityCmaintenanceEnables governed, read-only SQL analytics, hybrid RAG knowledge search, financial metric calculation, and database schema introspection through MCP, with role-based access control, audit logging, and AI observability.-
- AlicenseNot gradedqualityCmaintenanceEnables analytics agents to run validated read-only SQL against a warehouse API with enforced row limits, required JSON responses, and secret-safe audit metadata.MIT

Vitrusofficial
AlicenseNot gradedqualityBmaintenanceRead-only analytics for every app you ship over MCP: users and lifecycle across all your apps, traffic, AI referrals vs crawlers, revenue, goals, funnels — every number comes back with the SQL that produced it.38 npm6Apache 2.0