内容
# 否认-sh-mcp
否认协议(Model Context Protocol)服务器,适用于 [否认.sh](https://deny.sh),提供可否认基础设施。允许任何兼容MCP的AI代理调用否认.sh工具,确保真实凭证不会进入代理的上下文窗口。当代理受到提示注入时,交出的内容是诱饵。
该软件包封装了 **操作支柱** (Operate pillar) 和 **加密支柱** (Encrypt pillar) ,提供十一项MCP工具。
**[否认.sh](https://deny.sh)** · [代理文档](https://deny.sh/agents) · [白皮书](https://deny.sh/whitepaper) · [自行验证](https://deny.sh/verify) · [TypeScript SDK](https://github.com/deny-sh-crypto/deny-js)
## 这是什么
一个独立的MCP服务器,通过工具暴露否认.sh的可否认加密原语,任何代理都可以调用。
```bash
npx deny-sh-mcp
```
单文件服务器(约25KB)。一个运行时依赖项(`hash-wasm`,用于便携式Argon2id,由本地模式工具使用)。通过stdio JSON-RPC通信,通过HTTPS与用户提供的Bearer密钥与否认.sh公共API通信。
## 工具
两种模式下的10种工具。本地模式工具完全在您的机器上运行,无需网络往返,无需API密钥。
### API模式(需要 `DENY_API_KEY`)
| 工具 | 目的 |
|---------------------|----------------------------------------------------------------------------------|
| `deny_encrypt` | 通过否认.sh API加密文本 |
| `deny_decrypt` | 使用控制数据和密码解密 |
| `deny_create_decoy` | 创建诱饵(新的控制数据,不同的明文,相同的密文) |
| `deny_vault_store` | 在否认.sh保险库中存储加密数据 |
| `deny_vault_list` | 列出保险库项目 |
| `deny_vault_get` | 按ID检索保险库项目 |
| `deny_usage` | 检查当前API使用情况是否超过计划限制 |
### 本地模式(无需网络,无需密钥)
| 工具 | 目的 |
|----------------------------|------------------------------------------------------------------------|
| `deny_local_encrypt` | 使用与API相同的算法进行本地加密 |
| `deny_local_decrypt` | 本地解密 |
| `deny_local_create_decoy` | 本地创建诱饵控制数据 |
## 设置
1. 在 https://deny.sh/register 获取API密钥(免费层:500次调用/月)。
2. 在代理的MCP服务器环境块中设置 `DENY_API_KEY`。
3. 添加到代理的MCP配置中。
### Claude Desktop / OpenClaw
```json
{
"mcpServers": {
"deny": {
"command": "npx",
"args": ["deny-sh-mcp"],
"env": { "DENY_API_KEY": "dk_your_key" }
}
}
}
```
### Anthropic API / Codex CLI / 其他MCP兼容代理
格式相同。大多数代理接受上述标准MCP服务器配置块。请查看代理文档以获取确切的路径(Claude Desktop on macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`)。
## 环境
| 变量 | 默认值 | 备注 |
|-----------------|--------------------------|----------------------------------------------|
| `DENY_API_KEY` | (可选) | Bearer密钥,从 https://deny.sh/register 获取。仅API模式工具需要;本地模式工具无需密钥。 |
| `DENY_API_URL` | `https://deny.sh/api` | 覆盖 staging / 私有部署 |
## 威胁模型
**API模式工具** (`deny_encrypt`,`deny_decrypt`,`deny_create_decoy`,`deny_vault_*`,`deny_usage`)通过否认.sh公共API进行往返。当您希望跨设备同步保险库或代理的主机机器不受信任时,请使用这些工具。
**本地模式工具** (`deny_local_*`)在代理的主机机器上完全运行算法。无需网络调用,明文不会离开进程。当您希望仅限离线加密时,请使用这些工具。
无论哪种模式,加密原语都是相同的:AES-256-CTR + Argon2id + XOR组合,在TypeScript / Python / Go / Rust SDK中按字节兼容。完整的线路格式:[否认.sh/sdks](https://deny.sh/sdks)。完整的威胁模型:[否认.sh/threat-model](https://deny.sh/threat-model)。加密论证:[否认.sh/白皮书](https://deny.sh/whitepaper) §5。
通过 `deny_create_decoy` / `deny_local_create_decoy`,代理可以派生的诱饵数量在每个密文上没有限制。每次新鲜调用都会生成一个新的控制文件,该文件将相同的密文打开到不同的掩护故事,直到内部有效载荷信封(密文长度减去48字节标头减去4字节长度前缀)。
## 许可证
**Apache License 2.0**。参见 [LICENSE](LICENSE)。
MCP服务器是围绕否认.sh原语的薄包装。Apache 2.0因为原语本身是Apache 2.0。免费用于商业和专有用途。参见 [否认.sh/许可](https://deny.sh/licensing)。
## 源代码
此文件镜像了私有否认.sh monorepo中的规范源代码。版本从那里标记。
## 报告漏洞
在MCP服务器或底层加密中发现漏洞?请发送电子邮件至 security@deny.sh(PGP指纹和披露政策见 [否认.sh/披露](https://deny.sh/disclosure))。请给我们一个合理的窗口期,以便在公开披露前进行修复。