mcp-judge
Built-in notifier adapter (channels.notifier: "[telegram](/mcp/servers/integrations/telegram)") that delivers notifications for action-requiring messages to a Telegram chat using a user-supplied bot token and chat id.
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., "@mcp-judgetriage my inbox: notify me about anything needing action, dismiss the rest"
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.
mcp-judge
Unpublished public-release candidate. See PUBLIC_RELEASE.md for license information, privacy boundaries, verification and known limitations.
A source-neutral message-triage MCP. It classifies incoming messages into a small, bounded set of action categories with a fast model, then routes each one: dismiss noise, notify what needs you, and (optionally) auto-register clear calendar events. You bring your own source, notifier, and calendar through small adapter interfaces.
It answers "does this need me to act?" — not the open-ended "is this useful?" — so it stays a filter, not a second inbox.
Why
A plain keyword/regex filter can miss action items that have no date token ("can you take this?", "please reply"). Model-based classification is an alternative; accuracy and cost depend on the selected provider and have not been benchmarked here.
Related MCP server: email-firewall
Install
pip install -e . # core (MCP + Claude CLI backend, no API key)
pip install -e ".[anthropic]" # optional: Anthropic SDK backend
pip install -e ".[dev]" # tests + lintThe default backend drives a logged-in Claude CLI (claude -p) — no API key to manage. Set backend: "anthropic" in config to use the Anthropic SDK with ANTHROPIC_API_KEY instead.
Quickstart (model service required; may incur charges)
mcp-judge --source examples/demo.jsonlThis reads a JSONL file source, classifies each line, prints notifications for action items, and dismisses the rest. State is stored in a local SQLite DB (judge.sqlite3).
This is not an offline demo: it invokes the configured model backend. A CLI login does not make inference free. Messages and context are sent to that provider. For offline checks with synthetic models, use the tests instead; see PUBLIC_RELEASE.md.
Configuration
A JSON file (see config.example.json), passed with --config:
key | meaning |
| category vocabulary + routing ( |
| model id (default |
|
|
| explicit path to the |
| SQLite path |
| allowlist of accepted source names (empty = any) |
| free-form config consumed by your adapters |
Presets
A preset is pure data: the category list, which categories are action (notify-worthy), which notify even when unsure (fail-safe), which may auto-register to a calendar, and the model instructions. schedule-en and schedule-ko ship built in; add your own in mcp_judge/config.py.
MCP server
MCP_JUDGE_CONFIG=./config.json mcp-judge-serverTools: judge_ingest(source, item_id, text, context?), judge_pending(limit?), judge_get(item_id, source?), judge_health(). The server records verdicts and sends notifications inline when a notifier is configured.
Identity and upgrades
Items are unique by (source, item_id). judge_get without source remains
compatible for unique IDs; ambiguous IDs return ambiguous_item_id rather than
selecting an arbitrary record. Store get/resolve accept keyword source and
raise AmbiguousItemError for ambiguous unqualified IDs.
Opening an old database migrates its single-column primary key transactionally,
preserving message text, status, verdict, notification and creation time. Back up
your database before upgrading; old versions cannot safely use the migrated schema.
New calendar idempotency keys are JSON arrays [source, item_id], not bare IDs.
Existing registered records remain terminal and are not replayed. Custom calendar
adapters must accept the new key format; historical external keys are not rewritten.
Bring your own adapters
The engine depends only on three Protocols in mcp_judge/adapters.py:
Source —
items()yields{item_id, text, context?}.Notifier —
send(text) -> delivery_id.Calendar —
create_event(title, date, time, idempotency_key) -> id(idempotent).
FileSource and StdoutNotifier are included as runnable demos, plus a built-in TelegramNotifier (set channels.notifier: "telegram" with your own bot token/token_env and chat_id — no extra infra). Implement the Protocols to wire any other source, notifier, or calendar.
License
MIT, Copyright (c) 2026 Bum-Boo. The owner confirmed rights to the code and samples and approved this notice.
Note: the ko/ja/zh translations are machine-made and not yet native-reviewed.
This server cannot be deployed
Maintenance
Related MCP Connectors
Email triage tool powered by AI: classifies your inbox, finds messages that need a reply, and…
Your unified inbox — everything that reaches you, understood and actionable from your AI assistant.
Connect inboxes to your AI, with built-in progress and optional owner-confirmed outgoing email.
Search and triage all your mailboxes; draft replies and campaigns; send only as you allow.
Related MCP Servers
- AlicenseAqualityCmaintenanceOne-pass agentic inbox triage as an MCP server: fetch unread Gmail → classify (action_needed/fyi/newsletter/noise) → summarize → extract tasks → draft replies as Gmail DRAFTS (never sends) → flag calendar → write a triage report. Four stdio tools (fetch_emails, save_gmail_draft, append_tasks, write_report); the host is the LLM, so it runs keyless in Claude Code. Gmail scopes: readonly + compose430 PyPI3MIT
- AlicenseNot gradedqualityBmaintenanceEnables deterministic email triage by classifying messages into P0–P3 or REVIEW and emitting the pif.event.v1 contract. Provides tools for rendering Feishu messages, recording feedback, and retrieving policies, while leaving mailbox actions to Hermes.MIT
- AlicenseAqualityDmaintenanceEnables automatic filing of notes, links, and meeting lines by classifying each item’s kind, project, urgency, and duplicates, while storing your original text unchanged in an append-only inbox.4MIT
- AlicenseNot gradedqualityBmaintenanceEnables personal AI agents to triage inbox items by classifying their actionability, effort duration, and urgency, producing a prioritized queue with elastic recommendations. It plugs into MCP-compliant clients such as Claude Desktop and Cursor to protect focus and reduce attention fragmentation.7MIT