Token导航 LogoToken导航

MCP Server · 安全风控

MCP Witness

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

stdio官方级别未说明来源级核验工具 17
PythonClaude安全

快速开始

作者 / 组织
edwiniac
提供方
edwiniac

工具数量

17

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Witness 属于安全风控类 MCP Server,公开资料标注 17 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前要先准备 API Key。

分类

安全风控

传输方式

stdio

认证方式

API Key

部署方式

公开资料未说明

安装与配置

安装命令

pip install mcp-witness

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 17 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

🔐 MCP见证

每个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日志格式: text 或 json
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工程师\ · 电子邮件

工具与能力

工具数量

17

资源数量

0

提示词数量

0

能力标签

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

支持客户端

Claude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

  • 工具数量 17 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备API Key,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到API Key的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Witness

MCP World · 本页

17stdio有1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Witness 怎么安装?

公开资料给出的安装命令是 pip install mcp-witness,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Witness 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

MCP Witness 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Witness 需要 API Key 吗?

公开资料标注的认证方式是API Key,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

MCP Witness 支持哪些客户端?

公开资料标注支持 Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP