radar-brief
Optional free/local LLM provider for AI narration, routing, and drafting suggested next steps; configured via LLM_PROVIDER=ollama.
Optional LLM provider for AI narration, routing, and drafting suggested next steps; configured via LLM_PROVIDER=openai.
Delivers the daily or weekly brief to a Slack channel via a webhook, enabling scheduled notifications of flagged signals and suggested next steps.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@radar-briefrun today's brief and show only what crossed a threshold"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Radar Brief
It does the analysis before your daily or weekly review, so the few things that need a decision are ready when you are. A rule, not the AI, decides what makes the brief.
Radar Brief runs on a schedule, checks the things you care about (business metrics, service health, an inbox) against rules you set, and hands you a short brief: "all clear," or "2 of 6 things crossed a line, here's what and why." It's management-by-exception, automated. The noise stays quiet, and the decisions come to you. You point each watcher at your own data with one config file (a CSV or an HTTP endpoint); there are no integrations to wire up (first-class connectors are on the roadmap).
The catch with always-on AI is trust. Will it cry wolf, or miss the fire? Radar Brief answers that by design: a deterministic rule decides what surfaces; the AI only proposes what to do; you approve; the log learns. Same inputs, same brief, every time, and every finding shows the number that tripped it.
Who it's for
Built for early-stage B2B SaaS founders and operators without a dedicated data or ops team — the people who tend to learn about the problems that matter (creeping churn, failed-payment bleed, a degraded service, an enterprise deal going cold) about a week too late. Radar Brief gives you a daily or weekly brief of only the few things that need a decision, each with the number that tripped it and a suggested next step. Unlike a dashboard you have to remember to open, or alerting tools that cry wolf, a rule (not the AI) decides what surfaces, you approve each suggestion, and it learns your playbook.
Related MCP server: gnt MCP Server
See it first (no install)
Live demo, nothing to set up: https://vnieto.com/skills/radar-brief — run the check, switch between a SaaS startup and a coffee-shop chain, edit a rule and watch the verdict recompute.
Get started (4 steps)
Prerequisites: Python 3.10+ . That's it — the engine needs no API keys and no other services.
1. Clone and install (only pyyaml + pytest):
git clone https://github.com/viviana-nieto/radar-brief.git
cd radar-brief
python3 -m pip install -r requirements.txt2. Run it — prints today's brief from bundled sample data, with zero keys:
python3 -m core.briefATTENTION: 9 of 21 signals need your attention.
!! #1 [Reliability] auth-api is degraded (expected ok)
!! #2 [Retention] Churn rate crossed its 5.0% ceiling
! [Payments] Failed-payment recovery fell below 40.0%
! [Revenue] Net revenue retention fell below 100.0%
...
engine flagged 9 of 21 signals; the AI only wrote the narration.3. Point it at your own data — copy the example config and edit it (no code):
cp config.example.yaml config.yamlSet any watcher's source to your data and write your rules:
radar:
watchers:
- name: metrics
type: metrics
source: { kind: csv, path: metrics.csv } # columns: name,value,history,label,unit
rules:
- { name: Churn ceiling, entity: churn, signal: value, op: above, threshold: 0.05, severity: critical, area: Retention }Sources: sample, csv (a local file), or http (a JSON array of rows). Operators:
above, below, pct_change_above/below, breaches_floor/ceiling, equals,
not_equals, latency_above, count_above. Run python3 -m core.brief again — it
now reads config.yaml.
4. Make it a teammate — get suggested next steps, then put it on a schedule:
python3 -m orchestration.advise # the brief + 2-3 next steps per flagThen copy a runner from adapters/schedulers/ — launchd
(macOS), cron (Linux), GitHub Actions, or Cloudflare Cron — and read
reliability.md first.
How it runs: scheduled checks, not a live stream. Each run pulls the current values, applies your rules, and delivers the brief, so it catches things within one cadence. Running
python3 -m core.briefonce is a single check — the scheduler is what makes it recurring and unattended (and you have to install it; nothing is registered for you). Pick your cadence: daily/weekly for a review, or an interval (e.g.*/15 * * * *) for something closer to continuous.
Install (pick how you'll use it)
As a Claude Code skill — copy the adapter into your commands and call it:
cp adapters/claude-code/skill.md ~/.claude/commands/radar-brief.md
# then, in Claude Code: /radar-briefAs a CLI on any LLM (or none):
python3 -m core.brief # no LLM at all
export LLM_PROVIDER=ollama # free + local; or anthropic / openai (your key)
python3 -m orchestration.ask "what needs me today?"As an MCP server (drops into Claude Desktop / Cursor):
python3 -m pip install mcp
python3 adapters/mcp/server.pyThen add it to your client (see adapters/mcp/README.md):
{
"mcpServers": {
"radar-brief": {
"command": "python3",
"args": ["/absolute/path/to/radar-brief/adapters/mcp/server.py"]
}
}
}The 4 pillars
Trust — every finding shows its evidence (the value, the rule, the threshold). No black-box alerts.
Governance — a deterministic engine decides what crosses a line; the LLM only narrates, routes, or drafts suggestions. It runs with no LLM at all.
Access — ask in plain language (
python3 -m orchestration.ask "…") and an MCP server for the tools you already use.Adaptability — point it at your data and rules via
config.yaml— no code.
It brings the fix, not just the problem (human-in-the-loop)
Every flag comes with 2-3 suggested next steps, each labelled by where it came from:
learned — what you did last time this flag tripped (from your
decisions.json)draft, review — an AI-drafted or playbook suggestion to check before you rely on it
an honest "not enough information to advise" note when there's nothing solid to say
You accept, reject, or edit each one, and that feedback folds back into the log so the next brief reflects your playbook:
python3 -m orchestration.advise feedback "Churn ceiling" accepted "Call the top churned accounts"The engine decides what's flagged, the AI only proposes, you approve, the log learns.
AI drafting uses your own LLM_PROVIDER; with none set, it falls back to your learned
actions plus the config playbook.
Bring your own credentials
This skill ships with zero credentials. The engine and the brief need no keys.
Optional AI uses your provider (LLM_PROVIDER = ollama free-local / anthropic /
openai); Slack delivery reads your own SLACK_WEBHOOK_URL. Nothing is bundled.
How it works (three layers)
core/— pure Python, zero LLM: watchers (Watch), the rules engine (Decide), the brief assembler, and the decision log. Deterministic and fully tested.orchestration/— a portable, any-LLM runner (LLM_PROVIDER= anthropic / openai / ollama / mock); the AI narrates, routes, and drafts — it never decides.adapters/— the Claude Code skill, an MCP server, delivery channels, and scheduler configs.
Develop
python3 -m pip install -r requirements.txt
python3 -m pytest # offline, no keys (uses the mock provider)MIT License. Copyright (c) 2026 Viviana Nieto. Sample data is illustrative, not real.
This server cannot be deployed
Maintenance
Related MCP Connectors
Author rules from policy docs, then decide: a Rete engine gives the verdict, an LLM explains why.
The Decision Operations Platform for engineering teams
The system of record for AI agent authority: playbooks, routed policy questions, reusable rules.
Create, manage, and test business rules directly from your AI agent via the DecisionRules platform.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI agents with queryable, version-controlled project rules and coding standards. Enables validation, rule-based guidance, and task summaries to keep AI work aligned with your project's conventions without repeating context.2MIT

gnt MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI agents to query live, human-approved rules before taking actions, ensuring compliance and reducing errors.30Apache 2.0- AlicenseNot gradedqualityAmaintenanceDeterministic policy enforcement for AI agent tool calls. It evaluates every tool call against user-defined rules before execution, with no LLM in the authorization path.3MIT
- AlicenseAqualityAmaintenanceAuthor rules from policy docs, then decide: a Rete engine gives the verdict, an LLM explains why.8MIT