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.)Каждый вызов инструмента проходит через механизм политик CHAM (Contextual Harm Assessment Module — модуль оценки контекстуального вреда) от TheWARDN. Вердикты запечатываются, являются неизменяемыми и регистрируются в цепочке аудита WARDN. Удержанные вызовы отображаются в консоли WARDN по адресу console.thewardn.ai для проверки администратором.
Related MCP server: mcp-boundary
Установка
pip install thewardn-mcpТребуется Python 3.10+.
Быстрый старт
Шаг 1: Инициализация конфигурации
wardn-mcp initЭтот процесс поможет вам ввести ваш API-ключ WARDN, ID агента и нижестоящие MCP-серверы, которыми вы хотите управлять. Конфигурация сохраняется в ~/.wardn/mcp-config.json.
Получите свой API-ключ и ID агента на странице console.thewardn.ai/settings.
Шаг 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"
}
}Поля
Поле | Обязательно | Описание |
| Да | Ваш API-ключ WARDN ( |
| Нет | По умолчанию |
| Да | ID агента WARDN, представляющего Claude |
| Да | Список нижестоящих 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], чтобы было понятно, что управление активно.
Поведение при сбоях (Fail-open)
Если API WARDN недоступен (ошибка сети, тайм-аут, ответ, отличный от 200), клиент управления записывает предупреждение и переходит в режим fail-open — вызов инструмента обрабатывается как CLEARED. Это предотвращает блокировку всей активности Claude из-за сбоев в инфраструктуре управления.
Чтобы изменить это на fail-closed, переопределите govern_tool в подклассе WARDNGovernClient.
Программное использование
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 deployed
Maintenance
Related MCP Connectors
MCP enforcement layer that intercepts AI agent actions and blocks rule violations before execution.
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
AlicenseNot gradedqualityCmaintenancePolicy enforcement gateway for MCP tool calls, evaluating every tool invocation against declarative YAML policies (allow/deny/escalate-to-human), generating cryptographic hash-chained audit receipts, and including built-in content safety scanning.2MIT- FlicenseNot gradedqualityDmaintenanceWraps your existing MCP servers and checks each tool call against policy and live state before it runs. Allow, block, or require a refresh, with a reason the agent can act on.5-
- AlicenseAqualityBmaintenanceProvides advisory AI-governance checks for MCP hosts and coding agents, enabling policy verdicts, PII masking, and audit traces before executing tool calls.357 npmMIT
- AlicenseNot gradedqualityAmaintenanceProvides a governance proxy layer for MCP servers, enforcing per-tool allowlists, human approval for write operations, quotas, secret redaction, and a hash-chained audit log of all calls.MIT