Token导航 LogoToken导航TokenDH.com
MCP Witness logo
安全风控stdio官方级别未说明来源级核验

MCP Witness

MCP Server

MCP Witness 是一款为AI决策提供加密证明的不可篡改审计跟踪服务,支持哈希链完整性、Merkle树验证、Ed25519签名等功能,适用于HIPAA、GDPR、SOC2等合规场景。

工具数

17

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude安全Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

edwiniac

提供方

edwiniac

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp-witness

详细介绍

🔐 MCP见证

![CI](https://github.com/edwiniac/mcp-witness/actions/workflows/ci.yml) ![Python 3.10+](https://www.python.org/downloads/) ![License: MIT](https://opensource.org/licenses/MIT) ![MCP](https://modelcontextprotocol.io) ](https://pypi.org/project/mcp-witness/) ![Code Style](https://github.com/psf/black)

每个AI决策的加密证明。 一个不可变、可验证的审计跟踪MCP服务器——因为“相信我兄弟”不符合SOC2。

pip install mcp-witness
mcp-witness quickstart

✨ 为什么是mcp证人?

AI代理做出决策。监管机构会提出问题。mcp证人提供 密码证明 关于发生了什么、何时发生以及为什么发生的事情,包括哈希链完整性、Merkle树验证、Ed25519签名、外部信任锚定(RFC 3161 TSA严格模式,可选本地证明,结构验证的开放时间戳,IPFS),以及HIPAA、GDPR、SOC2等的合规预设。

功能mcp见证标准日志记录
篡改检测✅ SHA-256哈希链+默克尔树❌ 文本文件,易于编辑
O(log n)验证✅ 带有自动回填功能的Merkle检查点❌ 仅线性扫描
不可否认性⚠️ Ed25519记录签名(需要持久密钥)❌ 没有
外部锚固✅ TSA、比特币(OTS)、IPFS❌ 没有
合规预设✅ HIPAA、GDPR、SOX、PCI DSS、FedRAMP、SOC2❌ 手动配置
PII/PHI编辑✅ 加密哈希❌ 纯文本或手册
GDPR删除权✅ witness_delete 带链条保护❌ 破坏性删除
法律等级证明⚠️ RFC 3161时间戳(严格模式默认值;降级模式下的本地证明)❌ 没有
链条故障警报✅ Webhook通知❌ 无声的失败
多租户✅ org_id隔离❌ 没有
报告✅ HTML+PDF合规报告❌ 手册
仪表板✅ 带有实时API的Web仪表板❌ 没有
结构化日志记录✅ JSON日志格式选项❌ 非结构化

🔒 保证水平

级别描述当前
ASSURANCE-1尽力记录,无加密保证--
ASSURANCE-2哈希链+默克尔树,篡改EVIDENT,可配置锚定v0.6.0
保证-3不可否认性(Ed25519)、严格锚定、静态加密、正式威胁模型目标:v1.0

⚠️ 电流限制(v0.6.0→ v1.0)

锚定是异步的。 首先创建记录,然后在以下情况下锚定 检查点触发器 AnchorService在记录创建和检查点锚定之间, 记录存在时没有外部信任证明。使用 witness_attest 锚定个人 立即记录。

单节点存储。 SQLite(默认)和PostgreSQL后端是单实例。 没有内置的复制、集群或HA。定期备份数据库。 看 docs/backup.md.

静态加密需要配置。 合规预设参考AES-256-GCM 但默认情况下加密不处于活动状态。集 MCP_WITNESS_DEK 启用 字段级信封加密。没有它,敏感字段将以明文形式存储 JSON。

不可否认性需要持久密钥。 Ed25519签名已实现,但默认为 转换为临时(每个进程)密钥。集 MCP_WITNESS_SIGNING_KEY 固定为32字节 用于跨会话验证不可否认性的十六进制密钥。

安全.md 对于完整的威胁模型。

🚀 30秒快速入门

# Install
pip install mcp-witness

# One command: init + serve
mcp-witness quickstart
# ✅ Database ready: ~/.mcp-witness/witness.db
# 📋 Next Steps:
#    1. Configure signing:  export MCP_WITNESS_SIGNING_KEY=$(openssl rand -hex 32)
#    2. Configure HMAC:     export MCP_WITNESS_HMAC_KEY=$(openssl rand -hex 32)
#    3. Start dashboard:    mcp-witness dashboard
#    4. Add to Claude:      claude mcp add witness -- mcp-witness serve

# Or go step-by-step:
mcp-witness init        # Initialize database
mcp-witness serve       # Start MCP server

# Check system health
mcp-witness stats       # Chain statistics
mcp-witness verify      # Chain integrity check
mcp-witness dashboard   # Web dashboard on :9090
mcp-witness report      # Generate compliance report

Claude桌面集成

{
  "mcpServers": {
    "witness": {
      "command": "mcp-witness",
      "args": ["serve"],
      "env": {
        "MCP_WITNESS_DB": "~/.mcp-witness/witness.db",
        "MCP_WITNESS_HMAC_KEY": "",
        "MCP_WITNESS_SIGNING_KEY": "",
        "MCP_WITNESS_CHECKPOINT_INTERVAL": "1000",
        "MCP_WITNESS_AUTO_ANCHOR": "false",
        "MCP_WITNESS_WEBHOOK_URL": "https://alerts.example.com/witness",
        "MCP_WITNESS_LOG_FORMAT": "json"
      }
    }
  }
}

🛠️ CLI参考

mcp-witness quickstart           One-command init + serve with next steps
mcp-witness serve                Start the MCP server
mcp-witness init                 Initialize database
mcp-witness verify [--fast]      Verify hash chain integrity
mcp-witness stats                Chain health dashboard
mcp-witness export [--output]    Export audit report
mcp-witness report [--format]    Generate HTML/PDF compliance report
mcp-witness proof SEQUENCE       Merkle proof for a record
mcp-witness search QUERY         Full-text search across audit records
mcp-witness checkpoints          List Merkle checkpoints
mcp-witness dashboard            Start web dashboard (default :9090)
mcp-witness anchors create ID    Anchor to TSA/Bitcoin/IPFS
mcp-witness anchors verify ID    Verify external anchor receipts

🛠️ MCP工具(共17个)

工具说明
witness_record将AI操作记录到不可变的审计跟踪中
witness_verify验证哈希链完整性(检测篡改)
witness_verify_fast使用Merkle检查点进行O(logn)验证
witness_query按会话、演员、工具、时间搜索记录
witness_chain获取会话的完整决策链
witness_stats获取审计跟踪统计数据和运行状况
witness_health检查数据库连接、签名状态、锚点、版本
witness_attest来自外部权威机构的RFC 3161时间戳
witness_export导出合规报告记录
witness_deleteGDPR删除权(数据编辑,链保留)
witness_search跨推理/输入/输出数据的全文搜索
witness_checkpoints列出Merkle检查点
witness_anchor将检查点锚定到TSA/比特币/IPFS
witness_verify_anchors验证外部锚收据
witness_proof获得单个记录的Merkle证明
witness_backfill为现有记录创建检查点
witness_configure_compliance应用HIPAA/GDSGVO/SOX/FedRAMP/SOC2/PCI DSS预设

🏛️ 合规预设

一个命令。完全合规基线。

# Via MCP tool:
witness_configure_compliance(preset="hipaa")
# → 6-year retention, auto-redacts 12 PHI fields, requires attestation

witness_configure_compliance(preset="gdpr")
# → Right-to-erasure support, consent records, 12 PII fields redacted

witness_configure_compliance(preset="soc2")
# → 1-year retention, API key redaction, quarterly audit schedule
预设保留自动重置证明不可变
HIPAA6年12个PHI字段✅ 必填--
GDPR按目的12个PII字段✅ 必需删除权
SOX7年7个金融领域✅ 必填✅ 是的
FedRAMP3年6个CUI领域✅ 必填--
SOC 21年7个字段✅ 必填--
PCI DSS1年7个卡字段✅ 必填--

📊 运作原理

哈希链+默克尔树+Ed25519签名

Records:    [R0] → [R1] → [R2] → ... → [R999] → [R1000] → ...
           ✍️🔑    ✍️🔑    ✍️🔑              ✍️🔑       ✍️🔑
           Ed25519 Ed25519 Ed25519          Ed25519     Ed25519
                                                   ↓
                                           [Checkpoint #1]
                                           Merkle Root: abc123
                                           Covers: records 0-999
                                                   ↓
                                           [External Anchors]
                                           🕐 TSA (RFC 3161)
                                           ₿  OpenTimestamps
                                           🌐 IPFS

Merkle Tree:         root_hash
                    /         \
               hash_01        hash_23
               /    \         /    \
            h_0    h_1      h_2    h_3
             ↓      ↓        ↓      ↓
          R0:R0h  R1:R1h  R2:R2h  R3:R3h

每条记录 使用Ed25519进行不可否认性签名(如果未配置,则自动生成签名密钥)。

篡改检测: 更改任何记录→ 其哈希值发生了变化→ 签名无效→ 默克尔根变化→ 检查点无效→ 外部锚点证明了真正的根何时存在。

GDPR删除权: witness_delete 为空数据字段,但保留哈希链——记录可以在不破坏完整性验证的情况下进行编辑。

验证性能

记录全链带检查点
1000~100ms~100ms
10000~1s~100ms
100000~10s~1s
1000000~100秒~10秒

单个记录: O(对数n) 具有Merkle证明(vs O(n)线性扫描)。

🔒 安全

  • SHA-256哈希链 使用空字节分隔符以防止冲突攻击
  • Ed25519记录签名 --自动生成的临时密钥,可通过env-var配置
  • HMAC密钥保护 --可选的服务器端机密使哈希值不可重新计算
  • RFC 3161 TSA锚定 --法定等级时间戳(严格模式;降级模式下的本地认证)
  • 开放时间戳 --结构验证(完整的比特币确认需要外部OTS客户端)
  • IPFS内容寻址 --带网关验证的CIDv0/CIDv1计算
  • 域分离的Merkle树 --防止第二次预映像攻击
  • 原子事务BEGIN IMMEDIATE 防止比赛条件和链叉
  • 速率限制 --可配置令牌桶(数据库支持)
  • 基于角色的访问控制 --基于角色的只读审计部署访问控制
  • 错误清理 --堆栈跟踪永远不会泄露给客户端
  • 路径遍历保护 --导出仅限于允许的目录
  • 幂等性 --基于nonce的重放攻击防御,每行TTL清理
  • Webhook警报 --POST到链上可配置URL的完整性失败
  • 结构化日志记录 --用于生产监控的可选JSON日志格式

贡献.md 安全披露政策。

环境变量

变量默认值描述
MCP_WITNESS_DB~/.mcp-witness/witness.dbSQLite数据库的路径
MCP_WITNESS_DATABASE_URL--PostgreSQL URL;启用PG后端
MCP_WITNESS_DEK临时32字节十六进制AES-256-GCM数据加密密钥
MCP_WITNESS_HMAC_KEY--32字节十六进制HMAC密钥,用于哈希链保护
MCP_WITNESS_SIGNING_KEY临时用于记录签名的32字节十六进制Ed25519种子
MCP_WITNESS_REQUIRE_PERSISTENT_KEYfalse签名密钥短暂时拒绝启动
MCP_WITNESS_JWT_PUBLIC_KEY--JWT身份验证的十六进制编码Ed25519公钥
MCP_WITNESS_JWT_MAX_AGE3600JWT令牌最长使用时间(秒)
MCP_WITNESS_API_KEYS--逗号分隔 key:role 成对(管理员/审计员/作家)
MCP_WITNESS_ALLOW_ANON_WRITESfalse设置API密钥时允许未经验证的写入访问
MCP_WITNESS_RATE_LIMIT1000令牌桶大小和充值率(记录/秒)
MCP_WITNESS_EXPORT_DIRcwd目录导出仅限于
MCP_WITNESS_WEBHOOK_URL--POST链完整性警报的URL
MCP_WITNESS_CHECKPOINT_INTERVAL1000每个Merkle检查点的记录
MCP_WITNESS_AUTO_ANCHORfalse自动锚定每个检查点
MCP_WITNESS_ANCHOR_STRICTtrue将锚定提供程序故障视为错误
MCP_WITNESS_SHUTDOWN_TIMEOUT30等待SIGTERM上的飞行中写入的秒数
MCP_WITNESS_METRICS_HOST127.0.0.1Prometheus指标服务器的绑定地址
MCP_WITNESS_METRICS_PORT9091Prometheus度量服务器端口
MCP_WITNESS_LOG_FORMATtext日志格式: textjson
MCP_WITNESS_ORG_ID--每条记录上印有组织标识符
TSA_URLFreeTSARFC 3161时间戳授权URL
PINATA_API_KEY / PINATA_API_SECRET--IPFS锚定的Pinata证书
OTS_SERVER--打开时间戳服务器URL
PG_MIN_CONNECTIONS / PG_MAX_CONNECTIONS2 / 10asyncpg池大小

🧪 发展

git clone https://github.com/edwiniac/mcp-witness.git
cd mcp-witness
pip install -e ".[dev]"
pytest -v                    # 251 unit tests
pytest --ignore=tests/test_storage_pg.py  # Skip PG (needs PostgreSQL)

CI/CD管道

职位描述
棉绒ruff+黑色格式检查
测试Python 3.10、3.11、3.12中的251个测试,覆盖率≥65%
测试postgresPostgres 16上的12个PostgreSQL集成测试
安全pip审计漏洞扫描
建造包装构建+烟雾测试

🗺️ 路线图

  • \[x\] 核心哈希链(v0.1.0)
  • \[x\] Merkle检查点+外部锚定(v0.2.0)
  • \[x\] CLI+合规预设+安全强化(v0.3.0)
  • \[x\] PostgreSQL后端(v0.5.0)
  • \[x\] Ed25519记录签名+不可否认性(v0.6.0)
  • \[x\] GDPR删除权+模式迁移(v0.6.0)
  • \[x\] 带有实时API(v0.6.0)的Web仪表板
  • \[x\] HTML+PDF合规报告(v0.6.0)
  • \[x\] 结构化JSON日志记录(v0.6.0)
  • \[x\] 多租户(v0.6.0)
  • \[x\] 链故障时的Webhook警报(v0.6.0)
  • \[x\] 全文搜索(v0.6.0)
  • \[\]流媒体架构(Kafka/NATS)
  • \[\]AWS KMS/云HSM签名
  • \[\]Grafana/Prometheus指标端点
  • \[\]自定义锚点提供者的插件系统

📄 许可证

麻省理工学院——见 许可证

👤 作者

埃德温·伊萨克 --AI工程师\ · 电子邮件

目录标签

目录标签

PythonClaude安全加密验证本地部署审计跟踪合规性AI决策不可篡改

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

17

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP