cQnce MCP について
cQnce MCPサーバーは、AIエージェントやワークフローの操作に人による承認を加えます。判定まで待機する方式と即時応答する方式があり、監督下の利用や、ホスト側で機密操作を強制的に承認ゲートへ通す構成に対応します。
主な機能
- 01人の承認判定まで待機
- 02ブロックせずにリクエストを送信
- 03リクエストの確認・一覧・取消
- 04管理者権限でプロジェクトとエージェントを管理
- 05stdioまたはリモートHTTPで接続
活用シーン
- 01本番環境の変更前に承認を要求
- 02データ削除前にエージェントを停止
- 03ホスト側の承認ゲートで機密ツール呼び出しを制御
MCP 対応
MCPクライアントにcQnceの認可およびリクエスト管理ツールを提供します。stdioサーバーとリモートStreamable HTTP Workerに対応し、APIキーでリクエストを認証します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.cqnce.app/mcpclaude mcp add --transport http cqnce-app-cqnce https://mcp.cqnce.app/mcp{"mcpServers":{"cqnce-app-cqnce":{"type":"http","url":"https://mcp.cqnce.app/mcp"}}}Cursor で開く{"servers":{"cqnce-app-cqnce":{"type":"http","url":"https://mcp.cqnce.app/mcp"}}}VS Code で開く{"mcpServers":{"cqnce-app-cqnce":{"type":"http","url":"https://mcp.cqnce.app/mcp"}}}{"mcpServers":{"cqnce-app-cqnce":{"serverUrl":"https://mcp.cqnce.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.cqnce.app/mcp認証が必要ツール
詳細
@cqnce/mcp-server
cQnce の公式 MCP サーバーです。あらゆる AI エージェントやワークフローに、人間が介在する承認機能を追加します。
Claude、Cursor、GitHub Copilot、または MCP 互換のクライアントを cQnce に接続すると、リスクの高い操作や取り消せない操作を実行する前に、AI が人間の承認を求められるようになります。
クイックスタート
npx @cqnce/mcp-server
実行する前に、CQNCE_API_KEY 環境変数にプロジェクトの API キーを設定してください。
承認モード
モード 1 — エージェントが要求する承認
システムプロンプトの指示、またはツールの検出を通じて、エージェント自身が wait_for_approval または submit_authorization_request を呼び出します。最も簡単な統合方法であり、監督下のワークフローに適しています。
リスク: 侵害されたエージェントや設定に誤りのあるエージェントは、単にツールを呼び出さない可能性があります。
モード 2 — 強制承認ゲート(本番環境に推奨)
ホストアプリケーションまたは実行環境が、機密性の高いすべてのツール呼び出しを実行前にインターセプトし、エージェントの要求内容にかかわらず、事前の cQnce 承認を必須にします。ゲートはモデルコンテキストの外部にあるため、エージェントはこれを回避できません。
これは実際のセキュリティ境界です。エンタープライズ向けおよびコンプライアンス要件の厳しい統合には、このモードを使用してください。
# Example: host-side interception (framework-agnostic)
HIGH_RISK_TOOLS = {"send_payment", "deploy_production", "delete_customer"}
def execute_tool_call(tool_call):
if tool_call.name not in HIGH_RISK_TOOLS:
return run_tool(tool_call)
decision = cqnce.submit_and_wait(
payload={"action": tool_call.name, "parameters": tool_call.arguments},
timeout_seconds=300,
)
if decision["status"] != "APPROVED":
return {"error": "not_authorized", "status": decision["status"]}
return run_tool(tool_call)
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)に追加します。
{
"mcpServers": {
"cqnce": {
"command": "npx",
"args": ["-y", "@cqnce/mcp-server"],
"env": {
"CQNCE_API_KEY": "your-project-api-key"
}
}
}
}
Cursor
プロジェクト内の .cursor/mcp.json(またはグローバル設定の ~/.cursor/mcp.json)に追加します。
{
"mcpServers": {
"cqnce": {
"command": "npx",
"args": ["-y", "@cqnce/mcp-server"],
"env": {
"CQNCE_API_KEY": "your-project-api-key"
}
}
}
}
任意の MCP クライアント(stdio トランスポート)
CQNCE_API_KEY=your-project-api-key npx @cqnce/mcp-server
クラウドエージェント(Streamable HTTP/リモート MCP)
ローカルプロセスを実行できないクラウドホスト型エージェントには、Cloudflare Workers にデプロイする cQnce MCP Worker を使用してください。MCP Streamable HTTP トランスポートを使用し、ステートレスであるため、リクエストごとに API キーで認証されます。
クラウドエージェントのフレームワークが次の接続先に接続するよう設定してください。
https://mcp.cqnce.app/mcp
Authorization: Bearer <your-project-api-key>
例(MCP を使用する Claude API):
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-5",
max_tokens=1024,
mcp_servers=[
{
"type": "url",
"url": "https://mcp.cqnce.app/mcp",
"name": "cqnce",
"authorization_token": "your-project-api-key",
}
],
messages=[{"role": "user", "content": "..."}],
betas=["mcp-client-2025-04-04"],
)
セルフホスト
Worker のソースはこのリポジトリにあります。独自のインスタンスを Cloudflare Workers にデプロイしてください。
npm install
npx wrangler deploy
プライベートな cQnce デプロイを使用する場合は、Cloudflare ダッシュボードで CQNCE_BASE_URL を設定してください(デフォルトは https://api.cqnce.app です)。
設定
| 変数 | 必須 | 説明 |
|---|---|---|
CQNCE_API_KEY | はい | cqnce.app のプロジェクト API キー |
CQNCE_BASE_URL | いいえ | API のベース URL(デフォルト:https://api.cqnce.app) |
CQNCE_ADMIN_TOKEN | いいえ | テナント管理者 JWT。プロジェクト/エージェント/チーム管理ツールを有効にします |
ツール
コア(CQNCE_API_KEY が必要)
| ツール | 説明 |
|---|---|
wait_for_approval | リクエストを送信し、人間が承認または却下するまでブロックします。人間が介在するワークフローの主要なツールです。 |
submit_authorization_request | リクエストを送信し、すぐに requestId を返します(ノンブロッキング)。 |
poll_request_status | ID を指定して、リクエストの現在のステータスを確認します。 |
cancel_request | 保留中のリクエストをキャンセルします。 |
list_requests | このプロジェクトのリクエストを一覧表示します(ステータス、日付、タグで絞り込み可能)。 |
get_request | エージェントの応答を含む、単一のリクエストの詳細を取得します。 |
管理(CQNCE_ADMIN_TOKEN が必要)
プロジェクト管理、ルーティングルールの設定、エージェント/チーム管理、Webhook コールバックに対応します。
推奨システムプロンプト
Anthropic API 経由で Claude を統合する場合、毎回ユーザーが承認を求めなくても認可ポリシーを自動的に適用できるよう、次のシステムプロンプトを追加してください。
You have access to the cQnce tool for human-in-the-loop authorization.
ALWAYS call wait_for_approval BEFORE performing any action that is:
- Destructive or irreversible (deleting data, dropping tables, removing files)
- Affecting production systems (deployments, database migrations, config changes)
- Financial (payments, transfers, subscription changes)
- Involving credentials or access control (creating/revoking API keys, changing permissions)
In the approval payload, include:
- "action": what you are about to do
- "target": what resource is affected
- "reason": why this action is needed
- "risk": what happens if approved or rejected
- "attachments": (optional) list of supporting files as { name, contentType, data (base64) }
— include logs, diffs, screenshots, or any evidence that helps the reviewer decide
When the response status is "REJECTED":
- Read the rejection reason carefully.
- If the reason identifies missing information or context, gather that information,
enrich the payload (or attachments), and resubmit via wait_for_approval.
- Only give up if the rejection reason makes clear the action itself is not permitted.
Proceed ONLY if the returned status is "APPROVED".
If "EXPIRED" or the rejection reason leaves no actionable path forward, stop and explain.
例
設定が完了したら、Claude に次のように指示できます。
「本番データベースを削除する前に、cQnce 経由で人間の承認を求めてください。」
Claude は操作の詳細を指定して wait_for_approval を呼び出し、人間が cQnce モバイルアプリで承認または却下するまで待機します。ステータスが APPROVED の場合にのみ処理を続行します。理由(例:「ロールバック計画がありません」)を添えて却下された場合、Claude はその情報を収集し、自動的に再申請します。
必要条件
- Node.js 18+
- cQnce アカウントとプロジェクト API キー — 無料で登録
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。