Qorami

io.github.loicfontaine-max由 GitHub 帳號 loicfontaine-max 發布v1.0.0更新於 Oct 24, 2026

Check an email before an AI agent sends it: send / ask a human / block. Detects prompt injection.

已驗證STDIO僅桌面溝通與協作安全與監控

概覽

AI 產生的概覽

Qorami 是一個本機 MCP 伺服器,讓 AI 助理在寄出郵件前向 Qorami 檢查,並取得寄送、人工審核或封鎖的決定。

可以做什麼
透過 qorami_health 檢查 Qorami 防護服務的健康狀態與連線。透過 verify_email 提交收件者、主旨和內文,取得 send、request_human_confirmation 或 do_not_send 的決定。透過 check_action_status 輪詢待處理動作,直到人工審核給出結果。當風險僅來自可機械移除的內容(例如外洩的密鑰、可疑連結或卡號)時,回傳經過脫敏、可安全寄送的副本以及被移除內容的清單。
適用情境
適用於 AI 助理撰寫或寄送郵件、且希望在投遞前設置控制點的情境,可攔截有風險的郵件或轉交人工核准。適合關注提示注入和密鑰外洩的業務或一般外寄郵件政策。
執行需求
以本機 stdio 程序執行,從 npm 套件 qorami-mcp 安裝,供 Claude Desktop、Cursor 等桌面 MCP 用戶端使用。需要 Qorami 工作區 API 金鑰,透過環境變數 QORAMI_API_KEY 提供,可於 Qorami 儀表板取得。需要連線至 Qorami 服務的網路存取。
安裝前請注意
伺服器會將郵件內容(收件者、主旨和內文)傳送給第三方 Qorami 服務進行評估,請勿提交不希望被處理的敏感資料。需要密鑰 QORAMI_API_KEY。它只回傳決定,實際寄送、排入佇列或封鎖郵件由你自己的程式執行,因此只有助理遵守回傳的決定時防護才有效。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Qorami,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

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.

PathWhat
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-nodes-qorami/n8n community node (Settings → Community Nodes → n8n-nodes-qorami) — guard an email, usable as an AI-Agent tool.
n8n/No-code recipe: guard a workflow's email with a plain HTTP Request node (no install).
examples/Runnable Node & Python quickstarts.

JavaScript / TypeScript

js
import { QoramiClient } from './js/qorami.mjs'
const qorami = new QoramiClient({ apiKey: process.env.QORAMI_API_KEY })
await qorami.guard(  { recipient: '[email protected]', 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

python
from qorami import QoramiClientqorami = QoramiClient(api_key=os.environ["QORAMI_API_KEY"])
result = qorami.verify(recipient="[email protected]", 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:

FrameworkInstallImport
LangChainpip install qorami[langchain]from qorami_langchain import build_qorami_tool
CrewAIpip install qorami[crewai]from qorami_crewai import QoramiEmailGuard
LlamaIndexpip install qorami[llamaindex]from qorami_llamaindex import build_qorami_tool
OpenAI Agents SDKpip install qorami[openai-agents]from qorami_openai_agents import qorami_check_email
python
from qorami_langchain import build_qorami_tooltool = 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:

js
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}
python
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.

來源:README.md,提交 8cb2547

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分