Модуль 2.7 · Урок 3
Урок 3: Топ MCP-серверов
Чему вы научитесь
После этого урока вы будете знать:
- Какие MCP-серверы есть и для чего каждый нужен
- Как быстро установить нужный вам сервер
- Как использовать каждый сервер на практике
- Какой сервер выбрать для конкретной задачи
Содержание
Топ 10 MCP-серверов для разработчика
1. Filesystem — работа с файлами
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["@modelcontextprotocol/server-filesystem", "/Users/yourname"]
}
}
}
Инструменты:
read_file(path)— прочитать файлwrite_file(path, content)— написать файлdelete_file(path)— удалить файлlist_directory(path)— список файловsearch_files(pattern)— поиск по файлам
Пример использования:
Прочитай все .py файлы в папке src/ и расскажи, что там написано
Для чего: базовый инструмент, нужен практически всегда
2. GitHub — работа с репозиториями
Официальный сервер: github/github-mcp-server. Пакет npx @github/github-mcp-server не существует. Старый @modelcontextprotocol/server-github deprecated.
Удалённый HTTP (OAuth или PAT Bearer):
{
"mcpServers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ghp_your_token_here"
}
}
}
}
Локальный Docker:
{
"mcpServers": {
"github": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
}
}
}
}
Инструменты:
search_repositories(query)— поиск репозиториевget_repository(owner, repo)— информация о репоlist_issues(owner, repo)— список issuesget_issue(owner, repo, number)— информация об issuecreate_issue(owner, repo, title, body)— создать issuecreate_pull_request()— создать PRlist_commits(owner, repo)— список коммитовget_commit(owner, repo, sha)— информация о коммите
Пример использования:
Создай issue в моём репо user/project с названием "Fix bug in auth"
и описанием "Функция login не работает с email"
Как получить токен:
- Откройте https://github.com/settings/tokens
- “Generate new token”
- Нужны scope:
repo,workflow - Скопируйте токен в settings.json
Для чего: автоматизация работы с GitHub, создание issues и PRs
3. PostgreSQL — работа с БД
Старый npm @modelcontextprotocol/server-postgres deprecated. Живой вариант — postgres-mcp (Crystal DBA), запуск uvx postgres-mcp. Версию не зашиваем: сверяйте README crystaldba/postgres-mcp.
{
"mcpServers": {
"postgres": {
"command": "uvx",
"args": ["postgres-mcp"],
"env": {
"DATABASE_URI": "postgresql://user:password@localhost:5432/mydb"
}
}
}
}
Инструменты:
query(sql)— выполнить SQL-запросlist_tables()— список таблицdescribe_table(name)— структура таблицыexecute_query(sql, params)— запрос с параметрами
Пример использования:
Сколько пользователей в таблице users?
Покажи top 5 по дате регистрации
Для чего: аналитика БД, проверка данных, отладка
4. Slack — отправка сообщений
Официальный удалённый сервер Slack: https://mcp.slack.com/mcp (документация). Подключение по OAuth, не через выдуманный npm @slack/mcp-server.
{
"mcpServers": {
"slack": {
"type": "http",
"url": "https://mcp.slack.com/mcp"
}
}
}
Инструменты:
send_message(channel, text)— отправить сообщениеlist_channels()— список каналовget_channel_messages(channel, limit)— история сообщенийupload_file(channel, file, comment)— залить файл
Пример использования:
Отправь сообщение в канал #dev-alerts: "Запущена новая версия приложения v1.2.0"
Как подключить: в клиенте с OAuth откройте URL сервера и подтвердите workspace. Админ Slack должен разрешить MCP-клиент.
Для чего: уведомления, поиск по каналам, интеграция с командой
5. Google Drive — документы и файлы
{
"mcpServers": {
"google-drive": {
"command": "npx",
"args": ["-y", "@isaacphi/mcp-gdrive"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your-secret"
}
}
}
}
Инструменты:
list_files()— список файловread_file(file_id)— прочитать документcreate_file(name, content)— создать документupdate_file(file_id, content)— обновить документshare_file(file_id, email)— поделиться файлом
Пример использования:
Создай Google Doc с названием "Отчёт по проекту" и напиши туда...
Для чего: работа с документами, отчёты, спецификации
6. Brave Search — веб-поиск
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": ["-y", "@brave/brave-search-mcp-server"],
"env": {
"BRAVE_API_KEY": "your-api-key"
}
}
}
}
Инструменты:
search_web(query)— поиск в интернетеsearch_news(query)— поиск новостейsearch_images(query)— поиск изображений
Пример использования:
Найди последние статьи про WebAssembly
Как получить ключ:
- Откройте https://brave.com/search/api/
- Зарегистрируйтесь
- Скопируйте API key
Для чего: поиск информации в интернете
7. Браузер — Playwright MCP (предпочтительнее Puppeteer)
Для автоматизации браузера берите официальный @playwright/mcp, не случайный community-пакет Puppeteer.
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp"]
}
}
}
Инструменты:
navigate(url)— открыть страницуscreenshot()— сделать скриншотget_content()— получить HTMLclick(selector)— клик по элементуtype_text(selector, text)— ввести текстwait_for_selector(selector)— ждать элемента
Пример использования:
Открой https://example.com, найди кнопку "Sign Up",
кликни на неё и сделай скриншот
Для чего: веб-скрейпинг, тестирование, автоматизация браузера
8. Docker — управление контейнерами
Пакета @modelcontextprotocol/server-docker нет (и не ставьте «похожие» имена наугад). Готовый конфиг в урок не зашиваем: актуальный сервер ищите в официальном реестре MCP.
Инструменты:
list_containers()— список контейнеровlist_images()— список образовrun_container(image, options)— запустить контейнерstop_container(container_id)— остановить контейнерget_logs(container_id)— получить логиexecute(container_id, command)— выполнить команду
Пример использования:
Запусти контейнер postgres:14 с именем my-db
и переменной окружения POSTGRES_PASSWORD=secret
Для чего: управление контейнерами и образами
9. Sentry — мониторинг ошибок
{
"mcpServers": {
"sentry": {
"command": "npx",
"args": ["-y", "@sentry/mcp-server"],
"env": {
"SENTRY_AUTH_TOKEN": "your-auth-token"
}
}
}
}
Инструменты:
list_issues(project)— список ошибокget_issue(project, issue_id)— информация об ошибкеget_event(project, event_id)— информация о событииcreate_issue(project, title)— создать issueupdate_issue_status(project, issue_id, status)— обновить статус
Пример использования:
Покажи мне все критические ошибки в проекте за сегодня
Для чего: анализ ошибок, мониторинг приложения
10. Linear / Jira — таск-трекеры
Linear — официальный удалённый сервер:
{
"mcpServers": {
"linear": {
"type": "http",
"url": "https://mcp.linear.app/mcp"
}
}
}
Jira: пакета @modelcontextprotocol/server-jira нет. Не копируйте его в конфиг. Актуальный коннектор Atlassian ищите в документации Atlassian / реестре MCP, без выдуманного npm.
Инструменты:
list_issues()— список задачget_issue(issue_key)— информация о задачеcreate_issue(project, title, description)— создать задачуupdate_issue(issue_key, fields)— обновить задачуadd_comment(issue_key, comment)— добавить комментарий
Пример использования:
Создай задачу в проекте ENG с названием "Рефакторинг auth модуля"
и прилинкуй её к существующей задаче ENG-123
Для чего: управление задачами, синхронизация с командой
Таблица: все 10 серверов сразу
| № | Сервер | Как подключать | Секреты | Основной инструмент |
|---|---|---|---|---|
| 1 | filesystem | npx @modelcontextprotocol/server-filesystem | Путь в args | read_file() |
| 2 | github | HTTP https://api.githubcopilot.com/mcp/ или Docker ghcr.io/github/github-mcp-server | PAT Bearer / OAuth | create_issue() |
| 3 | postgres | uvx postgres-mcp (Crystal DBA; старый npm deprecated) | DATABASE_URI | query() |
| 4 | slack | HTTP https://mcp.slack.com/mcp | OAuth workspace | send_message() |
| 5 | google-drive | community, сверяйте реестр | Google OAuth | create_file() |
| 6 | brave-search | @brave/brave-search-mcp-server | BRAVE_API_KEY | search_web() |
| 7 | browser | npx @playwright/mcp | — | navigate() |
| 8 | docker | нет @modelcontextprotocol/server-docker — ищите в реестре | — | run_container() |
| 9 | sentry | сверяйте пакет в реестре | SENTRY_AUTH_TOKEN | list_issues() |
| 10 | linear | HTTP https://mcp.linear.app/mcp | OAuth | create_issue() |
Как выбрать нужный сервер?
Для разработчика, который:
- Работает с файлами → filesystem
- Работает в GitHub → github
- Управляет БД → postgres или sqlite
- Работает с командой в Slack → slack
- Создаёт документы → google-drive
- Ищет информацию → brave-search
- Делает веб-скрейпинг → playwright (
@playwright/mcp) - Работает с Docker → docker
- Отслеживает ошибки → sentry
- Управляет задачами → linear или jira
Минимальный набор для джуниора:
{
"mcpServers": {
"filesystem": {...},
"github": {...},
"brave-search": {...}
}
}
Полный набор для backend-разработчика:
{
"mcpServers": {
"filesystem": {...},
"github": {...},
"postgres": {...},
"docker": {...},
"sentry": {...},
"slack": {...}
}
}
Попробуйте сами
-
Выберите 3 сервера, которые вам нужны
-
Получите нужные ключи/токены
- GitHub: https://github.com/settings/tokens
- Slack: удалённый MCP
https://mcp.slack.com/mcp - Brave: https://brave.com/search/api/
-
Отредактируйте ~/.claude.json (или
.mcp.jsonв корне проекта)nano ~/.claude.json -
Добавьте конфигурацию (скопируйте из примеров выше)
-
Сохраните и перезагрузите Claude Code
-
Проверьте
/mcp list -
Попробуйте использовать
Создай issue в моём репо про то, что нужно добавить MCP поддержку
Официальный реестр MCP серверов: registry.modelcontextprotocol.io (5,800+ серверов)
Ключевые выводы
- Есть 10 основных MCP-серверов, каждый для своей задачи
- Filesystem нужен почти всем, остальные — по необходимости
- GitHub, Postgres, Slack, Google Drive — самые популярные
- Для каждого сервера нужны свои токены/ключи — получайте их один раз
- Установка простая — скопируйте конфиг из примера выше
- Начните с минимального набора (filesystem + github + brave-search)
Следующий урок
Урок 4: A2A — агент-к-агенту — как агенты общаются между собой и когда это нужно.