Перейти к содержанию

MCP Proxy — проксирование upstream серверов

PII Anonymizer подключается к внешним MCP серверам и проксирует их инструменты. Перед проксированием аргументы анонимизируются.

Подключение внешнего сервера

# config/settings.yaml
proxy:
  upstream_servers:
    github:
      transport: stdio
      command: docker
      args: ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"]
      env:
        GITHUB_PERSONAL_ACCESS_TOKEN: ""  # подставится из окружения
      enabled: true

Пустые значения в env автоматически подставляются из переменных окружения процесса (удобно для .env в docker-compose).

Выборочная анонимизация

По умолчанию анонимизируются все строковые значения. Можно настроить конкретно:

proxy:
  upstream_servers:
    searxng:
      transport: stdio
      command: docker
      args: ["run", "-i", "--rm", "-e", "SEARXNG_URL", "isokoliuk/mcp-searxng:latest"]
      env:
        SEARXNG_URL: "http://searxng:8080"
      enabled: true
      anonymize_fields:
        searxng_web_search: ["query"]   # анонимизировать только запрос
        web_url_read: []                 # [] = не анонимизировать

Правила anonymize_fields

Значение Поведение
Не указано Анонимизировать все строки (обратная совместимость)
[] Отключить анонимизацию для инструмента
["query", "body"] Анонимизировать только указанные поля

Пример: GitHub

proxy:
  upstream_servers:
    github:
      transport: stdio
      command: docker
      args: ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"]
      env:
        GITHUB_PERSONAL_ACCESS_TOKEN: ""
      enabled: true
      anonymize_fields:
        create_issue: ["body", "title"]
        create_pull_request: ["body", "title"]
        search_code: []                 # не анонимизировать поисковый запрос