Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
loicfontaine-max avatar

Qorami

  • 2 repo stars
  • Updated July 3, 2026
  • loicfontaine-max/qorami-sdk

Qorami is a MCP server that reviews agent outbound email with send, human-review, or block outcomes and prompt-injection detection.

About

Qorami MCP gives developers a pre-send checkpoint when AI agents draft customer, support, or lifecycle email. Instead of letting the model fire SES or SMTP directly, you register qorami-mcp with a workspace API key so each message can be approved to send, escalated to a human, or blocked, with additional prompt-injection awareness called out in the server description. That fits shipping and operating agentic products where one hallucinated refund promise or injected instruction could harm users. Use it when you automate outreach during ship security hardening and keep it registered while you iterate support templates in operate. It is an email safety MCP, not a full CRM or inbox client; you still own provider credentials and recipient lists. French-hosted Qorami dashboard onboarding applies for API keys at qorami.fr.

  • NPM package qorami-mcp v1.0.0 with stdio MCP transport
  • Requires QORAMI_API_KEY from the Qorami dashboard
  • Tri-state decisions: send, ask a human, or block outbound email
  • Prompt injection detection on agent-composed mail content
  • GitHub qorami-sdk repository backing the published MCP server

Qorami by the numbers

  • Data as of Jul 7, 2026 (Skillselion catalog sync)
terminal
claude mcp add --env QORAMI_API_KEY=YOUR_QORAMI_API_KEY qorami-mcp -- npx -y qorami-mcp

Add your badge

Show developers this MCP server is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars2
Packageqorami-mcp
TransportSTDIO
AuthRequired
Last updatedJuly 3, 2026
Repositoryloicfontaine-max/qorami-sdk

What it does

Gate outbound emails from AI agents with send, human-approval, or block decisions plus prompt-injection detection before recipients see mistakes.

Who is it for?

Best when you're running support or lifecycle email through agents and need injection-aware gating without building a custom approval UI.

Skip if: Skip if you never let agents send email, bulk cold outreach without review requirements, or pure in-app chat with no mail channel.

What you get

After you configure QORAMI_API_KEY, each agent email draft can be scored and routed to send, human review, or block before delivery.

  • Pre-send email policy outcomes: send, ask human, or block
  • Prompt-injection signal on agent-drafted mail content
  • Safer automated customer and support email from MCP agents

By the numbers

  • Version 1.0.0 npm identifier qorami-mcp with stdio transport
  • Required secret QORAMI_API_KEY per MCP server schema
  • Three decision paths and injection detection stated in server description
README.md

Qorami SDK

Official clients, tool schemas and an MCP server for Qorami — a control point between your AI agents and actually sending email. Before each send, the agent asks Qorami, which replies send, request_human_confirmation, or do_not_send.

Get an API key in the dashboard. Full API reference: https://qorami.fr/docs.

Path What
js/ Zero-dependency JavaScript / TypeScript client (fetch, Node 18+ or browser).
python/ Zero-dependency Python client (stdlib only) + LangChain, CrewAI, LlamaIndex & OpenAI-Agents tools.
tools/ Drop-in OpenAI function-calling & Anthropic tool-use schemas for qorami_check_email.
mcp/ Stdio MCP server (qorami_health, verify_email, check_action_status) for Claude Desktop, Cursor, any MCP client.
n8n/ No-code recipe: guard a workflow's email with an HTTP Request node.
examples/ Runnable Node & Python quickstarts.

JavaScript / TypeScript

import { QoramiClient } from './js/qorami.mjs'

const qorami = new QoramiClient({ apiKey: process.env.QORAMI_API_KEY })

await qorami.guard(
  { recipient: 'client@example.com', subject: 'Our offer', body, policyProfile: 'sales' },
  {
    send: () => mailer.send(),                            // allowed
    requestHumanConfirmation: (r) => queue(r.action.id), // a human was notified
    doNotSend: (r) => log('blocked', r.decision),        // do not send
  },
)

Or step by step with qorami.verify(...) and, after a review, poll qorami.status(actionId) until nextAction.type === 'send'.

Python

from qorami import QoramiClient
qorami = QoramiClient(api_key=os.environ["QORAMI_API_KEY"])

result = qorami.verify(recipient="client@example.com", subject="Our offer",
                       body=email_body, policy_profile="sales")
if result.next_action_type == "send":
    send_email()
elif result.next_action_type == "request_human_confirmation":
    queue_for_review(result.action_id)   # a human was notified by email
# else: do_not_send

Agent framework tools

pip install qorami[<framework>] ships a drop-in qorami_check_email wrapper — each returns ALLOWED / NEEDS HUMAN APPROVAL / BLOCKED and reuses the client:

Framework Install Import
LangChain pip install qorami[langchain] from qorami_langchain import build_qorami_tool
CrewAI pip install qorami[crewai] from qorami_crewai import QoramiEmailGuard
LlamaIndex pip install qorami[llamaindex] from qorami_llamaindex import build_qorami_tool
OpenAI Agents SDK pip install qorami[openai-agents] from qorami_openai_agents import qorami_check_email
from qorami_langchain import build_qorami_tool
tool = build_qorami_tool()        # reads QORAMI_API_KEY

No-code workflows (n8n) use a plain HTTP Request node — see n8n/.

MCP server

Register Qorami as a native tool in Claude Desktop / Cursor / any MCP client — see mcp/. It exposes qorami_health, verify_email and check_action_status over stdio.

The contract

Every client returns the same decision the agent must obey via nextAction.type: send, request_human_confirmation (a human approves first — poll the action), or do_not_send. See https://qorami.fr/docs.

Cleaned version (auto-remediation)

When an email is risky only because of mechanically-removable content (a leaked secret, a suspicious link, an IBAN/card/SSN), the verify result carries a cleaned, sendable copy — send remediation.safeBody instead of blocking outright:

const r = await qorami.verify({ recipient, subject, body, policyProfile: 'general' })
if (r.nextAction.type === 'do_not_send' && r.remediation?.safeToSend) {
  mailer.send({ ...email, body: r.remediation.safeBody })   // safe, redacted copy
}
r = qorami.verify(recipient=..., subject=..., body=email_body)
if r.next_action_type == "do_not_send" and (r.remediation or {}).get("safeToSend"):
    send_email(body=r.remediation["safeBody"])   # safe, redacted copy

remediation.removed lists what was stripped (e.g. ["secret", "link"]). The MCP server surfaces the same field.

License

MIT — see LICENSE.

Recommended MCP Servers

How it compares

Email safety and injection MCP, not a marketing automation skill or generic SMTP library.

FAQ

Who is Qorami for?

It is for developers and small teams using AI agents to compose outbound email who need send, human, or block decisions and injection checks via MCP.

When should I use Qorami?

Use it in ship security when enabling agent-sent mail, and keep it during operate iterate when you refine automated support or notification content.

How do I add Qorami to my agent?

Obtain a QORAMI_API_KEY from https://qorami.fr/dashboard/, install qorami-mcp from npm, add stdio MCP settings, and route agent email tools through Qorami checks first.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.