@cqnce/mcp-server
Exposes cQnce human-in-the-loop authorization as MCP tools, letting AI agents request and await human approval for risky actions. Includes request submission, monitoring, and project/team management capabilities.
README
@cqnce/mcp-server
Official MCP server for cQnce — add human-in-the-loop authorization to any AI agent or workflow.
Connect Claude, Cursor, GitHub Copilot, or any MCP-compatible client to cQnce so the AI can request human approval before performing risky or irreversible actions.
Quick start
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %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
Add to .cursor/mcp.json in your project (or the global ~/.cursor/mcp.json):
{
"mcpServers": {
"cqnce": {
"command": "npx",
"args": ["-y", "@cqnce/mcp-server"],
"env": {
"CQNCE_API_KEY": "your-project-api-key"
}
}
}
}
Any MCP client (stdio transport)
CQNCE_API_KEY=your-project-api-key npx @cqnce/mcp-server
Cloud agents (Streamable HTTP / remote MCP)
For cloud-hosted agents that cannot run local processes, use the cQnce MCP Worker deployed on Cloudflare Workers. It speaks the MCP Streamable HTTP transport and is stateless — every request authenticates with your API key.
Configure your cloud agent framework to connect to:
https://mcp.cqnce.app/mcp
Authorization: Bearer <your-project-api-key>
Example (Claude API with MCP):
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"],
)
Self-hosting
The Worker source is in this repository. Deploy your own instance to Cloudflare Workers:
npm install
npx wrangler deploy
Set CQNCE_BASE_URL in the Cloudflare dashboard if you use a private cQnce deployment (defaults to https://api.cqnce.app).
Configuration
| Variable | Required | Description |
|---|---|---|
CQNCE_API_KEY |
Yes | Project API key from cqnce.app |
CQNCE_BASE_URL |
No | API base URL (default: https://api.cqnce.app) |
CQNCE_ADMIN_TOKEN |
No | Tenant admin JWT — enables project/agent/team management tools |
Tools
Core (requires CQNCE_API_KEY)
| Tool | Description |
|---|---|
wait_for_approval |
Submit a request and block until a human approves or rejects it. This is the primary tool for human-in-the-loop workflows. |
submit_authorization_request |
Submit a request and return the requestId immediately (non-blocking). |
poll_request_status |
Check the current status of a request by ID. |
cancel_request |
Cancel a pending request. |
list_requests |
List requests for this project (filterable by status, date, tags). |
get_request |
Get full details of a single request including agent responses. |
Admin (requires CQNCE_ADMIN_TOKEN)
Project management, routing rule configuration, agent/team management, and webhook callbacks.
Recommended system prompt
When integrating Claude via the Anthropic API, add this system prompt to enforce the authorization policy automatically — without relying on the user to request it each time:
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.
Example
Once configured, you can tell Claude:
"Before deleting the production database, ask for human approval via cQnce."
Claude will call wait_for_approval with the action details, pause until a human approves or rejects from the cQnce mobile app, and only proceed if the status is APPROVED. If rejected with a reason (e.g. "missing rollback plan"), Claude will gather that information and resubmit automatically.
Requirements
- Node.js 18+
- A cQnce account and project API key — sign up free
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。