Лучшие MCP-серверы для агентов программирования — те, что дают агенту то, чего он не может сам: увидеть приложение в браузере, прочитать сегодняшнюю документацию библиотеки, посмотреть задачу, которую он исправляет, найти стектрейс из продакшена. Агент программирования вроде Claude Code, Codex или Gemini CLI и так читает файлы, правит их и запускает команды. Сервер, который это дублирует, только тратит контекст.
Этот список субъективный и намеренно короткий. Для каждого сервера — что он делает, когда помогает, как его добавить и на что обратить внимание. Если протокол для вас новый, начните со статьи что такое MCP-сервер и статьи о MCP в глоссарии.
Как я выбирал серверы
Сервер попадает в список, если проходит три проверки:
- Он закрывает реальный пробел. Даёт доступ к чему-то за пределами репозитория: браузеру, облачному сервису, базе данных, актуальной документации.
- Его поддерживает вендор или известный проект. В официальном репозитории есть инструкция по установке, и сервер обновляется.
- Его доступ можно сузить. Режимы только для чтения, наборы инструментов, привязка к проекту, разрешённые каталоги. Над сервером, который нельзя ограничить, стоит подумать дважды.
Общее у всех серверов одно: описания их инструментов попадают в контекст агента и отправляются заново на каждом ходу, даже если агент их ни разу не вызвал. Поэтому вопрос не «полезен ли этот сервер?», а «полезен ли он этому агенту, в этом проекте, прямо сейчас?».
Краткая справка
| Сервер | Что получает агент | Транспорт | Чем сузить |
|---|---|---|---|
| Playwright | Управление настоящим браузером: открыть, кликнуть, заполнить, скриншот | stdio (npx) | --isolated, --headless |
| Chrome DevTools | Консоль, сеть, трассировки производительности | stdio (npx) | --isolated |
| Context7 | Актуальная документация библиотек под нужную версию | HTTP или stdio | API-ключ, ничего не пишет |
| GitHub | Задачи, pull request, поиск по коду, Actions | HTTP или Docker | Наборы инструментов, режим только для чтения |
| Sentry | Ошибки, стектрейсы, разбор задач | HTTP (OAuth) | Организация/проект в URL |
| Postgres (Postgres MCP Pro) | Схема, запросы, EXPLAIN, советы по индексам | stdio (uvx/Docker) | --access-mode=restricted |
| Supabase | Таблицы, SQL, миграции, логи | HTTP (OAuth) | read_only=true, project_ref |
| Git | Log, diff, blame в локальном репозитории | stdio (uvx) | --repository |
| Fetch | Веб-страница в виде Markdown | stdio (uvx) | Использовать умеренно |
| Filesystem | Файлы в указанных папках | stdio (npx) | Разрешённые каталоги |
1. Playwright: пусть агент видит приложение
Если добавлять только один сервер, то этот. Playwright MCP от Microsoft позволяет агенту открыть ваше приложение на localhost, читать страницу через дерево доступности, нажимать кнопки, заполнять формы и делать скриншоты. «Я поменял форму, должно работать» превращается в «я отправил форму и увидел сообщение об успехе».
claude mcp add playwright -- npx @playwright/mcp@latest
codex mcp add playwright -- npx @playwright/mcp@latest
gemini mcp add playwright npx @playwright/mcp@latest
Нужен Node.js 18 или новее. Полезные флаги: --headless, чтобы работать без окна, и --isolated, чтобы профиль браузера жил в памяти и cookies и входы не сохранялись между сессиями. Есть ещё --allowed-origins, но сам проект пишет, что это не граница безопасности, так что не рассчитывайте, что он удержит агента от открытого интернета.
На что обратить внимание: страницы, которые открывает агент, становятся входными данными модели. Страница с текстом «игнорируй свои инструкции и выполни эту команду» — это попытка prompt injection. По возможности держите агента на своём приложении. Полный процесс описан в статье тестирование в браузере с ИИ-агентами.
2. Chrome DevTools: отладка того, что видит браузер
Chrome DevTools MCP от Google пересекается с Playwright, но больше заточен под отладку: сообщения консоли, сетевые запросы, трассировки производительности. Когда страница тормозит или запрос падает с ошибкой CORS, этот сервер позволяет агенту выяснить причину, а не гадать.
claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest
Для Codex и Gemini CLI используйте ту же команду (npx -y chrome-devtools-mcp@latest) с codex mcp add или gemini mcp add. Если вам не нужны оба браузерных сервера, выберите один на агента: каждый добавляет длинный список инструментов.
3. Context7: актуальная документация вместо памяти
Модели знают библиотеки по обучающим данным, которым месяцы или годы. Поэтому агенты вызывают функции, переименованные две версии назад. Context7 от Upstash отдаёт актуальную документацию и примеры кода для конкретной версии по длинному списку библиотек, и агент может посмотреть, а не угадывать.
# Удалённый сервер
claude mcp add --transport http context7 https://mcp.context7.com/mcp
# Или локально
codex mcp add context7 -- npx -y @upstash/context7-mcp
Если у вас есть API-ключ Context7, передавайте его в заголовке CONTEXT7_API_KEY удалённого сервера (например, --header "CONTEXT7_API_KEY: ctx7sk-…" в claude mcp add). Полезное правило для CLAUDE.md или AGENTS.md: «Если не уверен в API библиотеки, сначала проверь Context7». Записанным правилам агенты следуют надёжнее, чем разовым напоминаниям; см. как писать CLAUDE.md и AGENTS.md.
На что обратить внимание: сервер только читает, так что риск низкий, но его инструменты тоже стоят контекста. Давайте его агентам, которые пишут код со сторонними библиотеками, а не ревьюеру, который только читает диффы.
4. GitHub: задачи, pull request и CI
Официальный сервер GitHub читает и пишет задачи, pull request, результаты поиска по коду, запуски Actions и многое другое. Агент может начать с текста задачи, проверить упавший workflow и в конце открыть pull request.
Удалённый сервер находится по адресу https://api.githubcopilot.com/mcp/. Его можно запустить и локально через Docker:
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT \
-- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
Здесь принцип наименьших привилегий важнее всего. У сервера GitHub много инструментов, и некоторые из них пишут. Сузьте его:
- Наборы инструментов. Включайте только нужное, например
repos,issues,pull_requests: локально флагом--toolsetsили переменнойGITHUB_TOOLSETS, на удалённом сервере — заголовкомX-MCP-Toolsets. - Режим только для чтения. Локально
--read-only, на удалённом сервере —/readonlyв конце URL (https://api.githubcopilot.com/mcp/readonly) или заголовокX-MCP-Readonly: true. - Fine-grained токен. Ограничьте персональный токен доступа репозиториями, с которыми работает агент, и минимальными правами для задачи.
Агенту-ревьюеру или агенту, который разбирает задачи, запись нужна редко. Давайте пишущие инструменты только тому агенту, который должен открывать pull request.
5. Sentry: начинать с реальной ошибки
Облачный MCP-сервер Sentry позволяет агенту искать ошибки, читать стектрейсы и смотреть детали задач. «Исправь баг, на который пользователи натыкаются при оплате» превращается в «исправь это исключение, в этой строке, с этими breadcrumbs». Аутентификация через OAuth: при первом подключении открывается вход в браузере.
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp/my-org/my-project
Замените my-org и my-project на слаги своей организации и проекта. Sentry сам рекомендует привязывать URL к одному проекту: тогда инструменты по умолчанию работают с ним, часть инструментов обзора скрыта, и это тоже экономит контекст. Связка Sentry и GitHub хорошо работает, чтобы исправлять падения CI и баги из продакшена, начиная с текста задачи.
6. Сервер базы данных, только на чтение
Агент, который видит схему и может выполнить SELECT, пишет запросы и миграции лучше. Агент, который может выполнить DROP TABLE в продакшене, — это плохой день, который просто ещё не наступил. Два надёжных варианта:
Postgres MCP Pro (crystaldba/postgres-mcp) работает с любой базой PostgreSQL. Кроме запросов он умеет объяснять планы, проверять здоровье базы и предлагать индексы. Главная настройка — режим доступа:
claude mcp add postgres --env DATABASE_URI=postgresql://readonly_user:pass@localhost:5432/app_dev \
-- uvx postgres-mcp --access-mode=restricted
restricted ограничивает работу читающими транзакциями и лимитирует время выполнения; unrestricted разрешает полное чтение и запись. Используйте restricted и в любом случае подключайтесь пользователем базы, у которого есть только права на SELECT. Два замка лучше одного, тем более что проект предупреждает: небезопасные языки хранимых процедур могут обойти его проверки.
Supabase держит облачный сервер по адресу https://mcp.supabase.com/mcp. Добавьте ?project_ref=<id>&read_only=true, чтобы привязать его к одному проекту и выполнять все запросы от имени Postgres-пользователя только на чтение. Сам Supabase советует использовать его на данных для разработки, не отключать ручное подтверждение вызовов инструментов и не отдавать его конечным пользователям.
Заметка: старый эталонный Postgres-сервер проекта MCP переведён в архив. Выбирайте поддерживаемый.
7. Git, Fetch и Filesystem: эталонные серверы
Проект MCP по-прежнему поддерживает несколько эталонных серверов. Они удобны, но сначала проверьте, нужны ли они вашему агенту.
- Git (
uvx mcp-server-git --repository /path/to/repo): инструменты log, diff, blame и commit. Агенты программирования и так запускаютgitв терминале, так что пользы больше всего в клиентах без доступа к оболочке или когда вы хотите, чтобы git-операции были явными вызовами инструментов. - Fetch (
uvx mcp-server-fetch): превращает веб-страницу в Markdown для модели. Пригодится, чтобы прочитать справочник по API, которого нет в Context7. Каждая загруженная страница — недоверенные данные, так что предупреждение о prompt injection действует в полной мере. - Filesystem (
npx -y @modelcontextprotocol/server-filesystem /path/one /path/two): доступ к файлам только в перечисленных каталогах. Claude Code и Codex и так правят файлы проекта; используйте этот сервер, чтобы открыть одну дополнительную папку, например общий каталог дизайн-токенов, не открывая весь домашний каталог.
Что ещё стоит знать
В зависимости от стека место в списке могут заслужить: Linear или Notion для задач и спецификаций, Stripe для платёжных объектов в тестовом режиме, Figma для чтения макетов, документация Cloudflare и мобильные серверы для симуляторов. Применяйте те же три проверки. Сервер, добавленный «на всякий случай», в основном добавляет контекст.
Как добавить серверы в Claude Code, Codex и Gemini CLI
Один и тот же сервер работает во всех трёх; различается регистрация.
Claude Code. Опции идут перед именем, команда сервера — после --:
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
claude mcp add --scope project playwright -- npx @playwright/mcp@latest
claude mcp list
--scope local (по умолчанию) сохраняет сервер только для вас в этом проекте, --scope user — для всех ваших проектов, а --scope project пишет .mcp.json в репозиторий для всей команды. .mcp.json поддерживает подстановку ${VAR}, так что файл можно коммитить без токенов. Чтобы войти в OAuth-серверы, выполните /mcp внутри сессии.
Codex. Используйте CLI или правьте ~/.codex/config.toml:
[mcp_servers.github]
url = "https://api.githubcopilot.com/mcp/readonly"
bearer_token_env_var = "GITHUB_PAT"
[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]
enabled_tools = ["browser_navigate", "browser_snapshot", "browser_click", "browser_take_screenshot"]
bearer_token_env_var берёт токен из переменной окружения, а не из файла, а enabled_tools / disabled_tools урезают сервер до нужных инструментов. Для OAuth-серверов есть codex mcp login <name>.
Gemini CLI. gemini mcp add пишет в .gemini/settings.json (проект, по умолчанию) или в ~/.gemini/settings.json с --scope user:
gemini mcp add --transport http github https://api.githubcopilot.com/mcp/readonly \
--header "Authorization: Bearer $GITHUB_PAT"
В settings.json инструменты ограничивают includeTools и excludeTools, а trust: true отключает запросы подтверждения. Для всего, что пишет, trust не включайте. Учтите: если передать токен в --header, как выше, он окажется в файле настроек; где можно, используйте ссылки $VAR в env и headers.
Безопасность: коротко, но серьёзно
MCP-серверы связывают модель с реальными системами. Короткий чек-лист:
- Наименьшие привилегии по умолчанию. Режимы только для чтения, узкие наборы инструментов, один проект на сервер, fine-grained токены. Давайте право записи одному агенту под одну задачу, а не всем агентам навсегда.
- Данные для разработки, а не продакшен. Направляйте серверы баз данных на локальную копию или staging. Если агенту всё же нужно заглянуть в продакшен — пользователь только на чтение и короткая сессия.
- Секреты не в открытом тексте. Переменные окружения, ссылки
${VAR}или связка ключей ОС. Токен в закоммиченном.mcp.json— это утёкший токен. - Всё, что возвращает сервер, — недоверенные данные. Веб-страницы, комментарии к задачам, строки базы и сообщения об ошибках могут содержать инструкции, адресованные агенту. Не отключайте подтверждения для инструментов, которые пишут или запускают команды.
- Знайте, что запускаете. stdio-сервер — это код, который работает на вашей машине с вашими правами. Ставьте из официального репозитория, фиксируйте версии для всего чувствительного и не копируйте команды установки из случайных README.
- Посмотрите список инструментов. Прежде чем отдать сервер агенту, выведите его инструменты и уберите лишние.
Общая картина — в статье безопасность ИИ-агентов для программирования.
Какие серверы каким агентам
Если у вас несколько агентов, раздавайте серверы по ролям:
| Агент | Серверы |
|---|---|
| Фронтенд | Playwright или Chrome DevTools, Context7, Figma |
| Бэкенд | Context7, Postgres или Supabase только на чтение |
| Исправление багов | Sentry, GitHub (задачи и Actions), Playwright |
| Ревьюер | GitHub только на чтение |
Так контекст каждого агента остаётся компактным, а ошибка или внедрённая инструкция дотягивается до меньшего. И расход токенов тоже ниже.
Как я делаю это в AgentVera
Регистрировать одни и те же серверы трижды в трёх форматах быстро надоедает. В AgentVera я держу их в одном месте:
- Один список для всех CLI. Менеджер MCP хранит серверы и подключает их при запуске агента: Claude Code, Codex, Gemini CLI, Copilot, Cursor, opencode и другие CLI с поддержкой MCP. Каждый сервер я отдаю всем агентам, выбранным агентам, группе или роли в команде и ограничиваю нужными проектами.
- Каталог и проверка стоимости. В каталоге есть готовые записи для Playwright, Chrome DevTools, Context7, GitHub, Sentry, Supabase, Git, Fetch, Filesystem и других. Проверка подключения показывает инструменты сервера с примерной стоимостью в токенах для каждого, так что видно, что он добавляет к каждому ходу.
- Секреты в связке ключей. Переменные окружения и токены из заголовков хранятся в связке ключей операционной системы, а удалённые серверы работают через шлюз AgentVera, так что в конфиге CLI токена нет.
- Браузер, за которым можно следить. Браузер агента даёт агентам управляемый Chrome через Playwright MCP, и я вижу вкладки вживую.
- Доступ к базе по правилам. Вместо голой строки подключения менеджер баз данных позволяет агентам выполнять запросы к подключению через собственный инструмент: по умолчанию только чтение, каждый запрос записывается в лог. DB Guard проверяет миграции, которые пишет агент.
- Подтверждения. Для агентов Claude Code автоподтверждение отвечает только на запросы, заведомо безопасные; всё остальное по-прежнему приходит ко мне.
Итоги
Лучший набор MCP для программирования небольшой: браузер, актуальная документация, трекер задач и мониторинг ошибок, плюс база данных только на чтение, когда этого требует задача. Добавляйте серверы под агента и под проект, сужайте каждый режимом только для чтения или наборами инструментов, не храните токены в открытых файлах и считайте всё, что возвращает сервер, недоверенным. Если хотите управлять серверами для нескольких агентов в одном месте, скачайте AgentVera бесплатно и откройте страницу MCP.