Перейти к содержимому
Экосистема AI Vibe
← Назад к AI Vibe News

Редакция 12 июля 2026 г.

Разборы

Первый MCP-сервер для Claude Code: «безопасные руки» вместо копипаста

Первый MCP-сервер для Claude Code: «безопасные руки» вместо копипаста.

Соло-разработчик с агентом в терминале упирается не в формулировку промпта, а в мост между чатом и продакшеном: SSH, вывод в буфер, ответ обратно в Claude Code. Четвёртая часть серии Beyond the Prompt показывает, как read-only MCP-tool снимает этот цикл — и почему для ру-соло без SRE границы доступа нужно зашивать в код инструмента, а не в инструкцию модели; тот же MCP-стек переносится на другой агентный CLI или IDE, если поднимаете сервер инструментов под свои системы.

Copy-paste как узкое горлышко агентного workflow

Автор серии ведёт live automated trading system на Claude Code и описывает типичный production-triage без MCP: подключиться по SSH, выполнить команду, скопировать вывод, вставить в чат — и повторять, пока агент не соберёт картину. Такой relay медленный, теряет контекст и не оставляет аудируемого следа вызовов.

Model Context Protocol (MCP) в материале — способ дать Claude именованные tools с типизированными входами: модель вызывает функцию напрямую, сервер возвращает структурированные данные, а не простыню из терминала. Для agentic workflow это смена роли: из «чата в терминале» — в операционный интерфейс к инфраструктуре, где сам интерфейс задаёт правила.

В серии Part 4 назван «самым большим скачком возможностей» — не из-за магии промпта, а из-за смены способа доступа агента к вашим системам.

«Safe hands»: границы в коде MCP-tool, не в промпте

Формулировка «Give Claude Safe Hands on Your Own Tools» в заголовке — про ограничения, встроенные в реализацию tools. Автор явно противопоставляет это доверию к модели («я попросил Claude не делать X») и схеме ssh root@server с надеждой на здравый смысл.

Механизм Смысл в материале
Read-only по умолчанию Большинство tools — наблюдение: запросы, чтение, статус, хвост логов; write и deploy добавляются позже, по одному
Физический запрет SELECT-only на уровне БД и транзакции; запись отклоняется самой Postgres
Узкий blast radius db_query_ro с лимитом строк лучше, чем shell-tool; каждая неэкспонированная capability — инцидент, которого не будет
Логирование Каждый tool call проходит через код сервера и может логироваться
Малый structured output Лимит строк, усечение логов — tools как бюджет токенов
Path traversal В read-file tool пути за пределы разрешённого дерева блокируются
Deploy (write) Только для намеренно ужесточённых tools: backup, checksum, restart, health-check

Принцип для любого агентного стека с MCP — тот же: промпт не заменяет политику доступа.

Минимальный сервер: read-only SQL и регистрация в Claude Code

Практический минимум в Part 4 — Python-сервер на FastMCP с одним tool db_query_ro: read-only SQL к PostgreSQL через psycopg 3, роль с GRANT только SELECT, conn.read_only = True, statement_timeout пять секунд, fetchmany(500) как жёсткий потолок строк.

from mcp.server.fastmcp import FastMCP
import psycopg

mcp = FastMCP("ops-tools")

@mcp.tool()
def db_query_ro(sql: str) -> str:
    with psycopg.connect(DSN) as conn:
        conn.read_only = True
        with conn.cursor() as cur:
            cur.execute("SET statement_timeout = '5s'")
            cur.execute(sql)
            rows = cur.fetchmany(500)
    return str(rows)

if __name__ == "__main__":
    mcp.run()

После запуска сервер регистрируют в Claude Code командой claude mcp add или через settings file — полный конфиг в публикации не приведён. С этого момента агент видит tool и может, например, ответить на «сколько пользователей зарегистрировалось вчера?» без psql и ручного копирования.

Рекомендация автора жёсткая и применима соло-разработчику: один read-only tool, который убирает самый раздражающий copy-paste loop, — уже полноценный первый MCP-сервер. Сначала его, без over-build.

От одного tool к тридцати: итерация под реальные задачи

Масштабирование в кейсе шло от реальных задач, а не от заранее нарисованной карты. Порядок эволюции примерно такой: read-only запросы к БД → хвост логов сервиса → проверка, что сервис жив → поиск по коду → чтение файла с блокировкой path traversal → GitHub issues → deploy файла с backup и health-check. В сумме автор дошёл примерно до тридцати tools.

Параллельно он не изобретает велосипед для generic-задач: готовые MCP-серверы экосистемы (администрирование Postgres, GitHub, файловые системы и др.) стоят рядом с кастомным сервером под deploy recipe и конвенции конкретной системы. Паттерн — compose готовых серверов плюс свой узкий слой под то, что уникально для вашего стека.

Следующая часть серии обещает semantic code search и RAG вместо grep — в тексте Part 4 URL на неё нет.

Что вынести соло-разработчику: MCP как операционный интерфейс

Пять правил из материала — чеклист для проектирования tools под агента:

  1. Read-only по умолчанию.
  2. Правила enforced tool-ом, не промптом.
  3. Узкий инструмент лучше универсального shell.
  4. Логировать всё.
  5. Возвращать мало структурированных данных.

В первоисточнике фокус на Claude Code и claude mcp add; Cursor и другие IDE там не упоминаются. Но для ру-соло, который уже крутит агента в IDE или терминале, перенос той же логики — не перевод статьи, а инженерная привычка: сначала один безопасный read-only bridge к самой частой боли (БД, логи, статус сервиса), потом итерации. Так агент перестаёт быть «дорогим копипаст-буфером» и начинает работать через интерфейс, где blast radius ограничен вашим кодом.

Материал вышел 11 июля 2026; оценка времени чтения на площадке — около пяти минут.


Источники