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 для проверки администратором.
Установка
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 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