Skip to main content
Glama
gtrotter13

thewardn-mcp

by gtrotter13

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"
  }
}

Поля

Поле

Обязательно

Описание

wardn_api_key

Да

Ваш API-ключ WARDN (wdn_live_...)

wardn_base_url

Нет

По умолчанию https://api.thewardn.ai

agent_id

Да

ID агента WARDN, представляющего Claude

servers

Да

Список нижестоящих MCP-серверов для управления

tool_overrides

Нет

Правила обхода для отдельных инструментов (см. ниже)

Переопределения инструментов

Переопределите управление для конкретных инструментов без обращения к API:

  • "always_block" — постоянно блокировать этот инструмент независимо от политики WARDN

  • "always_clear" — обходить управление для этого инструмента (используйте для инструментов только для чтения или инструментов с низким уровнем риска)

Переопределения сопоставляются по базовому имени инструмента (без префикса сервера) или полному управляемому имени (server__tool).


Вердикты управления

Вердикт

Поведение

CLEARED

Вызов инструмента пересылается на реальный MCP-сервер

HELD

Вызов инструмента заблокирован до одобрения администратором в консоли WARDN

BLOCKED

Вызов инструмента немедленно отклонен; 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

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Policy 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.
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Wraps 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
    -
  • A
    license
    A
    quality
    B
    maintenance
    Provides advisory AI-governance checks for MCP hosts and coding agents, enabling policy verdicts, PII masking, and audit traces before executing tool calls.
    3
    57 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides 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