Главная / Статьи / Практические замечания: Я протестировал 8 серверов MCP с помощью Claude Code. Это были на самом деле

Практические замечания: Я протестировал 8 серверов MCP с помощью Claude Code. Это были на самом деле

Пошаговое руководство по практическим заметкам: я протестировал 8 серверов MCP с помощью Claude Code. Это на самом деле были контракты, проверки и готовые блоки кода для команд, использующих эту схему.

1713 слов

В этом руководстве показано, как пройти путь от сырья до рабочей системы для статьи: Я протестировал 8 серверов MCP с помощью Claude Code. Эти действительно стоило сохранить. Основное внимание уделяется практическим шагам, четкой проверке и коду, который можно просто добавить в репозиторий без необходимости догадываться о его назначении. На этапе обзора необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь кодовый граф.

Context7 для динамической документации

При работе над этапом Context7 For Live Documentation сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Документируйте одновременно успешный и восстановительный сценарии работы. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не элементами последующей доработки. Фиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой информации отладка занимает часы.

# Add --scope project (or -s project) to write the entry into
# a committable .mcp.json instead of your personal ~/.claude.json.

# Context7 provides current, version-pinned library docs
# Canonical path is the installer (OAuth + generates an API key):
npx ctx7 setup

# Or wire the remote server manually (key from context7.com/dashboard):
claude mcp add --transport http context7 https://mcp.context7.com/mcp \
  --header "CONTEXT7_API_KEY: <YOUR_KEY>"

GitHub MCP For Source Control Context

При работе над этапом GitHub MCP For Source сначала запишите контракт: необходимые входные данные, сигнал о успешном выполнении и что происходит при частичной неудаче. Такой чек-лист помогает сохранять честность при последующих изменениях кода. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Когда какой-то шаг терпит неудачу, ошибка должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Фиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой информации отладка агента занимает часы.

# GitHub — OFFICIAL server (issues, PRs, repo search).
# For Claude Code 2.1.1+:
claude mcp add-json github '{"type":"http","url":"https://api.githubcopilot.com/mcp","headers":{"Authorization":"Bearer <YOUR_GITHUB_PAT>"}}'

# For Claude Code 2.1.0 or earlier (legacy flag form):
# claude mcp add --transport http github https://api.githubcopilot.com/mcp -H "Authorization: Bearer <YOUR_GITHUB_PAT>"

Postgres MCP Pro For Schema Awareness

При работе над этапом Postgres MCP Pro For сначала запишите контракт: необходимые входные данные, сигнал о успехе и что происходит при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными данными. Дайте названия результатам работы, определите критерии успеха и не допускайте безупречного завершения работы с частичными результатами. Фиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой записи отладка занимает часы. При работе над этапом Postgres MCP Pro For сначала запишите контракт: необходимые входные данные, сигнал о успехе и что происходит при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код.

# Postgres MCP Pro — schema-aware SQL, READ-ONLY restricted mode
pipx install postgres-mcp

# Add the server with the restricted access flag
claude mcp add postgres --env DATABASE_URI="postgresql://user:pass@localhost:5432/db" \
  -- postgres-mcp --access-mode=restricted

Playwright MCP для визуальной верификации

Инструмент Playwright MCP For Visual работает наилучшим образом, когда его рассматривают как измеримую поверхность для тестирования. Сначала необходимо зафиксировать один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию, прежде чем расширять объем тестирования. Необходимо документировать как успешный, так и восстановительный пути работы системы. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не этапом последующей доработки. Инструменты следует предоставлять с узкими схемами и четкими метками о побочных эффектах. Хостам необходимо знать, какие вызовы изменяют состояние системы, прежде чем они автоматически одобрят их выполнение.

# Playwright (Microsoft) — agent drives a real browser to verify its own change
claude mcp add playwright npx @playwright/mcp@latest

Sentry MCP для отладки в производственных условиях

Sentry MCP для этапа производства работает наилучшим образом, когда его рассматривают как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Когда происходит сбой, он должен указывать на конкретную ответственность, а не на запутанную цепочку операций. Используйте инструменты с узкими схемами и четкими метками побочных эффектов. Хостам необходимо знать, какие вызовы изменяют состояние, прежде чем они автоматически одобрят операцию.

# Sentry — OFFICIAL remote server; pulls live stack traces
# Triggers OAuth on first launch
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

Brave Search For External Context

Этап «Смелый поиск во внешних источниках» работает наилучшим образом, когда его рассматривают как измеримую среду. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия всем элементам, определите критерии успеха и не допускайте молчаливого частичного выполнения задач. Используйте инструменты с узкими схемами и чёткими метками о побочных эффектах. У операторов должна быть возможность узнать, какие вызовы изменяют состояние, прежде чем они автоматически одобрят их. Этап «Смелый поиск во внешних источниках» работает наилучшим образом, когда его рассматривают как измеримую среду. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь кодовый граф.

# Brave Search — OFFICIAL server from Brave (the @modelcontextprotocol/*
# package was archived May 2025)
# Requires a free API key from api-dashboard.search.brave.com
claude mcp add brave-search --env BRAVE_API_KEY="<YOUR_KEY>" \
  -- npx -y @brave/brave-search-mcp-server --transport stdio

Проверка бюджета инструментов и начальной конфигурации

На этапе планирования бюджета инструментов для аудита необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии системы. Необходимо документировать как успешный, так и аварийный сценарии работы. Повторные попытки, проверки со стороны человека и обработка неработоспособных сообщений являются частью продукта, а не элементами последующей доработки. Аутентификация происходит на шлюзе, а повторная авторизация — на уровне данных. Один только токен-носитель не является границей между тенантами.

{
  "mcpServers": {
    "context7": {
      "type": "http",
      "url": "https://mcp.context7.com/mcp",
      "headers": { "CONTEXT7_API_KEY": "${CONTEXT7_API_KEY}" }
    },
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp",
      "headers": { "Authorization": "Bearer ${GITHUB_PAT}" }
    },
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp"
    },
    "postgres": {
      "command": "postgres-mcp",
      "args": ["--access-mode=restricted"],
      "env": { "DATABASE_URI": "${DATABASE_URI}" }
    },
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    },
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@brave/brave-search-mcp-server", "--transport", "stdio"],
      "env": { "BRAVE_API_KEY": "${BRAVE_API_KEY}" }
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "${HOME}/projects"]
    },
    "sequential-thinking": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
    }
  }
}
# List every configured server and its connection status
claude mcp list

# Inside a Claude Code session, inspect connected servers and their tools:
# Type /mcp
# This shows each server, its tool count, and lets you toggle tools.

Список элементов

На этапе составления списка операций необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние системы. Лучше использовать небольшие, тестируемые модули вместо обширных скриптов. При сбое шага причина должна быть связана с конкретной функцией, а не с запутанной структурой обработки данных. Аутентификация должна происходить на уровне входа, а повторная авторизация — на уровне обработки данных. Одного только токена не достаточно для определения границ использования ресурсов.

Текущая конфигурация

На этапе текущей настройки необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия элементам, определите критерии успеха и не допускайте молчаливого частичного завершения работы. Аутентифицируйтесь у шлюза и повторно авторизуйтесь на уровне данных. Одного лишь токена-носителя недостаточно для обозначения границы тенантности. На этапе текущей настройки необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь кодовый граф.

Продолжить чтение

При работе над этапом «Продолжить чтение» сначала запишите условия контракта: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой чек-лист помогает сохранять честность при последующих изменениях кода. Документируйте одновременно успешный сценарий работы и сценарий восстановления. Повторные попытки, проверки со стороны оператора и обработка некорректных сообщений являются частью продукта, а не элементами последующей доработки. Фиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой записи отладка занимает часы.

Чек-лист операционной деятельности

Этап чек-листа операционной деятельности работает наилучшим образом, когда его рассматривают как измеримую основу. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ.

Записывайте временные показатели, стоимость токена или запроса вместе с функциональными результатами. Отслеживание затрат на раннем этапе предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам.

Обеспечьте доступ к инструментам с узкими схемами и четкими метками побочных эффектов. Хостам необходимо знать, какие вызовы изменяют состояние, прежде чем они смогут автоматически одобрить их.

При наличии бюджета добавьте тест на работоспособность, который проверяет критический путь в процессе CI с использованием фикстчеров, а не реальных платных API.

Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код.

Обеспечьте доступ к инструментам с узкими схемами и четкими метками побочных эффектов. Хостам необходимо знать, какие вызовы изменяют состояние, прежде чем они смогут автоматически одобрить их.

Перед переходом на новую версию стека заморозьте существующие версии, сохраните эталонный отчет для критического пути и убедитесь в наличии шагов для отката. В совместных средах необходимы ограничения на частоту запросов, проверки принадлежности и четко определенный ответственный за обновление секретов. Лучше выбирать надежность, чем красивые одноразовые демонстрации.

Примечание к заданию fac76ac7d013: не включать ключи поставщиков в репозиторий, установить лимит токенов на сессию и хранить транскрипции рядом с фиксами для оценки, чтобы последующие замены моделей оставались сопоставимыми.