qorami について
Qoramiは、AIエージェントがメールを送信する前に内容を確認し、送信・人の確認を要求・送信禁止の判断を返す制御レイヤーです。SDK、ツール定義、MCPサーバー、n8nノードを提供し、一部のリスクについては修正済み本文も返します。
主な機能
- 01送信前のメール検査
- 02送信・人の確認・ブロック判定
- 03リスク内容の除去と安全な本文
- 04JavaScript・Pythonクライアント
- 05複数のエージェントフレームワーク用ツール
活用シーン
- 01エージェントのメール送信前にポリシーを確認
- 02リスクのあるメールを人の承認に回す
- 03メールから機密情報や不審なリンクを除去
MCP 対応
stdioのMCPサーバーは、Claude DesktopやCursorなどのMCPクライアントに qorami_health、verify_email、check_action_status を公開します。修正用の本文と削除対象の情報も返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| body | string | はい | メール本文全体 |
| subject | string | はい | メールの件名 |
| recipient | string | はい | 受信者のメールアドレス |
| policyProfile | enum | いいえ | リスクプロファイル(デフォルトは general)general | sales | support | legal-finance |
詳細
Qorami SDK
Qorami の公式クライアント、ツールスキーマ、MCP サーバーです。Qorami は AI エージェントと実際のメール送信の間に介在する制御ポイントです。送信する前に、エージェントは Qorami に問い合わせ、send、request_human_confirmation、do_not_send のいずれかの応答を受け取ります。
API キーはダッシュボードで取得できます。 API リファレンス全文:https://qorami.fr/docs。
| パス | 内容 |
|---|---|
js/ | 依存関係のない JavaScript / TypeScript クライアント(fetch、Node 18 以降またはブラウザー)。 |
python/ | 依存関係のない Python クライアント(標準ライブラリのみ)と、LangChain、CrewAI、LlamaIndex、OpenAI-Agents 用ツール。 |
tools/ | qorami_check_email 用の、OpenAI の関数呼び出しおよび Anthropic のツール使用に対応した、すぐに使えるスキーマ。 |
mcp/ | Claude Desktop、Cursor、その他の MCP クライアント向けの、stdio MCP サーバー(qorami_health、verify_email、check_action_status)。 |
n8n-nodes-qorami/ | n8n コミュニティノード(Settings → Community Nodes → n8n-nodes-qorami)— メールをガードし、AI エージェントのツールとして使用できます。 |
n8n/ | ノーコードのレシピ:通常の HTTP Request ノードでワークフローのメールをガードします(インストール不要)。 |
examples/ | 実行可能な Node および Python のクイックスタート。 |
JavaScript / TypeScript
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
},
)
または、qorami.verify(...) を使って手順ごとに進め、確認後に nextAction.type === 'send' になるまで qorami.status(actionId) をポーリングします。
Python
from qorami import QoramiClient
qorami = 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
エージェントフレームワーク用ツール
pip install qorami[<framework>] で、すぐに使える qorami_check_email ラッパーがインストールされます。各ラッパーは ALLOWED / NEEDS HUMAN APPROVAL / BLOCKED を返し、クライアントを再利用します。
| フレームワーク | インストール | インポート |
|---|---|---|
| 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
ノーコードのワークフロー(n8n)では、通常の HTTP Request ノードを使用します。詳しくは n8n/ を参照してください。
MCP サーバー
Qorami を Claude Desktop / Cursor / その他の MCP クライアントでネイティブツールとして登録できます。詳しくは mcp/ を参照してください。stdio 経由で qorami_health、verify_email、check_action_status を公開します。
契約
すべてのクライアントは、エージェントが nextAction.type に従って実行する必要がある同じ判定を返します。
send、request_human_confirmation(先に人間が承認します。アクションをポーリングしてください)、または do_not_send です。https://qorami.fr/docs を参照してください。
サニタイズ済みバージョン(自動修復)
メールが、機械的に除去可能な内容(漏えいしたシークレット、不審なリンク、IBAN/カード番号/SSN)のみを理由にリスクありと判定された場合、検証結果には送信可能なクリーン版が含まれます。送信をブロックするのではなく、remediation.safeBody を送信してください。
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 には、除去された項目が一覧表示されます(例:["secret", "link"])。MCP サーバーも同じフィールドを公開します。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。