Skip to main content
Glama

agent-guard-mcp

CI License: MIT Go Reference

MCP Guard Server — контроль бюджета, рабочие процессы утверждения и аудит-логирование для ИИ-агентов.

Работает с Claude Code, Cursor, ChatGPT и любым ИИ-агентом, поддерживающим протокол MCP.

Возможности

  • Контроль бюджета — жесткий лимит ежедневных кредитов предотвращает перерасход средств агентом

  • Утверждение операций с высоким риском — операции, превышающие пороговую сумму или содержащие ключевые слова чувствительных ресурсов, требуют подтверждения человеком

  • Рабочий процесс утверждения — запрос агента → генерация токена → утверждение человеком через дашборд или Telegram

  • Аудит-лог — все действия по расходам, утверждению и отклонению записываются с постраничной навигацией на основе курсора

  • Веб-дашборд — дашборд в реальном времени на базе Gin + HTMX + Tailwind

  • Уведомления в Telegram — мгновенные ссылки для утверждения операций с высоким риском

  • Мульти-транспорт — stdio / SSE / StreamableHTTP с автоматическим определением

Инструменты MCP

Инструмент

Описание

check_budget

Запрос текущего состояния бюджета

spend

Выполнение расхода (автоматическое обнаружение высокого риска)

request_approval

Явный запрос утверждения человеком

approve

Утверждение ожидающего токена

reject

Отклонение ожидающего токена

check_approval

Опрос статуса утверждения

get_audit_log

Запрос аудит-лога с фильтрацией и постраничной навигацией

get_pending_approvals

Список всех ожидающих запросов на утверждение

Быстрый старт

Требования

  • Go 1.24+

  • CGO не требуется (чистый Go-драйвер SQLite)

Сборка из исходного кода

git clone https://github.com/dygogogo/agent-guard-mcp.git
cd agent-guard-mcp
go build -o mcp-guard main.go

Загрузка готового бинарного файла

Загрузите последний релиз для вашей платформы:

Или посетите страницу последнего релиза.

Конфигурация

Настройка через переменные окружения или файл .env:

Переменная

Описание

По умолчанию

MCP_TRANSPORT

Транспорт: stdio / sse / http

Автоопределение (TTY → http)

BUDGET_LIMIT

Дневной лимит бюджета (кредиты)

10.0

HIGH_RISK_THRESHOLD

Порог суммы высокого риска

2.0

HIGH_RISK_RESOURCES

Ключевые слова ресурсов высокого риска (через запятую)

delete,send

DB_PATH

Путь к базе данных SQLite

./mcp-guard.db

DASHBOARD_PORT

HTTP-порт дашборда

8080

APPROVAL_BASE_URL

Базовый URL для ссылок утверждения

http://localhost:8080

LOG_LEVEL

Уровень логирования: debug/info/warn/error

info

PAYER_ID

Идентификатор плательщика

hostname

TELEGRAM_BOT_TOKEN

Токен Telegram-бота (опционально)

-

TELEGRAM_CHAT_ID

ID чата Telegram (опционально)

-

Запуск

# HTTP mode (auto-detected, with Dashboard)
./mcp-guard
# Dashboard: http://localhost:8080/dashboard
# MCP endpoint: http://localhost:8080/mcp

# stdio mode (for MCP clients)
MCP_TRANSPORT=stdio ./mcp-guard

# SSE mode
MCP_TRANSPORT=sse ./mcp-guard
# SSE endpoint: http://localhost:8080/sse

Интеграция с Claude Code

Добавьте в конфигурацию MCP для Claude Code:

{
  "mcpServers": {
    "agent-guard-mcp": {
      "command": "mcp-guard",
      "env": {
        "MCP_TRANSPORT": "stdio",
        "BUDGET_LIMIT": "10"
      }
    }
  }
}

Архитектура

┌─────────────┐     MCP Protocol     ┌────────────────┐
│  AI Agent   │ ◄──────────────────► │  MCP Guard      │
│ (Claude,    │   stdio / HTTP       │  Server         │
│  Cursor...) │                      │                  │
└─────────────┘                      │  ┌────────────┐ │
                                     │  │  BudgetStore │ │
┌─────────────┐    HTTP              │  │  (SQLite)    │ │
│  Dashboard  │ ◄──────────────────► │  └────────────┘ │
│  (Gin+HTMX) │                      └────────────────┘
└─────────────┘

┌─────────────┐    Webhook
│  Telegram   │ ◄────── Approval notifications
└─────────────┘

Основные файлы

Файл

Описание

main.go

Точка входа, выбор транспорта, корректное завершение работы

server.go

MCP-сервер с 8 зарегистрированными инструментами

store.go

Интерфейс BudgetStore + реализация SQLite

approval.go

Обнаружение высокого риска, рабочий процесс утверждения, Telegram

config.go

Конфигурация окружения, автоопределение транспорта

logger.go

Логирование zap (режим stdio: только файл)

dashboard.go

Веб-дашборд на Gin

Рабочий процесс утверждения

1. Agent calls spend(amount=5.0, resource="/api/delete")
2. MCP Guard detects high-risk (amount > threshold OR resource keyword matched)
3. Returns {status: "pending_approval", token: "xxx"}
4. Agent polls check_approval(token) for status
5. Human approves/rejects via Dashboard or Telegram
6. Agent receives final result (approved/rejected/budget_exceeded)

Тестирование

# All tests with race detection
go test -race -count=1 ./...

# Integration tests only
go test -race -run TestIntegration -v ./...

# Coverage
go test -race -cover ./...

Технологический стек

  • Go 1.24 — Язык

  • mcp-go — Go SDK для протокола MCP

  • Gin — Веб-фреймворк (дашборд)

  • modernc.org/sqlite — Чистый Go SQLite (без CGO)

  • zap — Структурированное логирование

  • HTMX + Tailwind CSS — Фронтенд дашборда

Лицензия

MIT


中文

-
security - not tested
A
license - permissive license
-
quality - not tested

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/dygogogo/agent-guard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server