thewardn-mcp
thewardn-mcp
WARDN MCP 服务器治理包装器 — 每一个 Claude 工具调用,皆受治理。
当 Claude Desktop 连接到 MCP 服务器(如 Google Drive、GitHub、Slack、文件系统等)时,它可以自主调用任何工具而无需监管。thewardn-mcp 位于 Claude 和您真实的 MCP 服务器之间。每一个工具调用在到达实际服务之前,都会先通过 TheWARDN 的治理引擎。BLOCKED(已拦截)的调用永远不会执行。HELD(已暂扣)的调用将进入托管状态,等待人工审核。CLEARED(已清除)的调用将被透明地转发。
工作原理
Claude Desktop
|
| (MCP protocol over stdio)
v
wardn-mcp governance server <-- this package
|
| POST /tool/govern → api.thewardn.ai
| verdict: CLEARED / HELD / BLOCKED
|
| (if CLEARED)
v
Real MCP server (Google Drive, GitHub, etc.)每一个工具调用都会通过 TheWARDN 的 CHAM(上下文危害评估模块)策略引擎。裁决结果会被密封、不可篡改,并记录在 WARDN 审计链中。托管的暂扣请求会出现在 console.thewardn.ai 的 WARDN 控制台中,供管理员审核。
安装
pip install thewardn-mcp需要 Python 3.10+。
快速入门
第 1 步:初始化您的配置
wardn-mcp init此步骤将引导您输入 WARDN API 密钥、代理 ID 以及您想要治理的下游 MCP 服务器。配置将保存至 ~/.wardn/mcp-config.json。
请从 console.thewardn.ai/settings 获取您的 API 密钥和代理 ID。
第 2 步:添加到 Claude Desktop
编辑 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"wardn-governed": {
"command": "wardn-mcp",
"args": ["start"],
"env": {
"WARDN_MCP_CONFIG": "~/.wardn/mcp-config.json"
}
}
}
}第 3 步:重启 Claude Desktop
来自您受治理的 MCP 服务器的所有工具现在都会出现在 Claude 中,并带有服务器名称前缀(例如 google-drive__create_file,github__create_repository)。每一个调用都受到治理。
配置
配置文件位置:~/.wardn/mcp-config.json(可通过 WARDN_MCP_CONFIG 环境变量或 --config 标志覆盖)。
{
"wardn_api_key": "wdn_live_...",
"wardn_base_url": "https://api.thewardn.ai",
"agent_id": "agt_...",
"servers": [
{
"name": "google-drive",
"command": ["npx", "-y", "@modelcontextprotocol/server-gdrive"],
"args": [],
"env": {
"GDRIVE_CREDENTIALS_FILE": "~/.wardn/gdrive-credentials.json"
}
},
{
"name": "github",
"command": ["npx", "-y", "@modelcontextprotocol/server-github"],
"args": [],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
}
}
],
"tool_overrides": {
"delete_repository": "always_block",
"list_files": "always_clear"
}
}字段
字段 | 必填 | 描述 |
| 是 | 您的 WARDN API 密钥 ( |
| 否 | 默认为 |
| 是 | 代表 Claude 的 WARDN 代理 ID |
| 是 | 需要治理的下游 MCP 服务器列表 |
| 否 | 特定工具的绕过规则(见下文) |
工具覆盖
无需往返 API 即可覆盖特定工具的治理规则:
"always_block"— 无论 WARDN 策略如何,永久拦截此工具"always_clear"— 绕过此工具的治理(用于只读或低风险工具)
覆盖规则匹配基础工具名称(不带服务器前缀)或完整的受治理名称 (server__tool)。
治理裁决
裁决 | 行为 |
| 工具调用被转发至真实的 MCP 服务器 |
| 工具调用被拦截,等待 WARDN 控制台中的管理员批准 |
| 工具调用被立即拒绝;Claude 收到拦截消息 |
当工具处于 HELD 状态时,Claude 会收到一个托管 ID 和一个指向 WARDN 控制台的链接。管理员可以在 console.thewardn.ai 批准或拒绝该操作。
CLI 参考
# Start the governance server
wardn-mcp start [--config PATH]
# Initialize config interactively
wardn-mcp init [--config PATH]
# Show current config and downstream server status
wardn-mcp status [--config PATH]工具命名
来自下游服务器的工具会被命名空间化以避免冲突:
{server_name}__{original_tool_name}
# Examples:
google-drive__list_files
google-drive__create_file
github__create_repository
github__search_code
slack__send_message向 Claude 展示的工具描述包含 [WARDN GOVERNED] 前缀,以便明确治理功能已激活。
故障开放行为
如果 WARDN API 无法访问(网络错误、超时、非 200 响应),治理客户端会记录警告并采取“故障开放”策略——即工具调用被视为 CLEARED。这可以防止治理基础设施中断导致所有 Claude 活动被阻塞。
若要将其更改为“故障关闭”,请在 WARDNGovernClient 的子类中覆盖 govern_tool。
以编程方式使用
import asyncio
from wardn_mcp import WARDNGovernanceMCPServer, WARDNMCPConfig, MCPServerConfig
config = WARDNMCPConfig(
wardn_api_key="wdn_live_...",
agent_id="agt_...",
servers=[
MCPServerConfig(
name="github",
command=["npx", "-y", "@modelcontextprotocol/server-github"],
env={"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."},
)
],
)
server = WARDNGovernanceMCPServer(config)
asyncio.run(server.run())治理流程图
Claude calls tool: google-drive__delete_file(path="/budget.xlsx")
|
v
wardn_mcp intercepts call
|
v
Check tool_overrides: no override for delete_file
|
v
POST api.thewardn.ai/tool/govern
{
agent_id: "agt_...",
tool_name: "delete_file",
tool_input: {path: "/budget.xlsx"},
integration: "google-drive"
}
|
v
WARDN CHAM evaluates:
- Policy rules for this agent
- Risk tier of delete_file
- Context: what files have been accessed this session
- Integration-level rules for google-drive
|
-------
| |
CLEARED BLOCKED / HELD
| |
v v
Forward to Return verdict message to Claude
Google Drive (+ escrow ID if HELD)
MCP server文档
完整文档:docs.thewardn.ai
WARDN 控制台(管理策略、审核托管请求、查看审计日志):console.thewardn.ai
许可证
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gtrotter13/thewardn-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server