Свой MCP-сервер за вечер: чтение логов для Claude Code
MCP-сервер это просто программа, которая отдаёт Claude Code инструменты. Большинство туториалов сразу тянут официальный SDK и превращают вечер в неделю. На самом деле минимальный сервер пишется за вечер и делает одну полезную вещь: даёт агенту инструмент читать ваши логи. Ниже рабочий код.
Что строим
Сервер с одним инструментом read_log. Агент вызывает его, передаёт имя файла и сколько строк прочитать с конца, получает текст. Этого хватает, чтобы Claude Code сам разбирался, почему падает сервис.
Минимальный сервер на Python
from mcp.server.fastmcp import FastMCP
from pathlib import Path
mcp = FastMCP("logs")
LOG_DIR = Path("/var/log/myapp")
@mcp.tool()
def read_log(name: str, tail: int = 200) -> str:
"Прочитать последние tail строк лог-файла name."
p = LOG_DIR / name
if not p.exists():
return f"файл {name} не найден"
lines = p.read_text(encoding="utf-8", errors="replace").splitlines()
return "\n".join(lines[-tail:])
if __name__ == "__main__":
mcp.run()
Поставьте пакет mcp через pip, положите код в файл logs_server.py, запустите. Это весь сервер.
Подключение в Claude Code
Добавьте сервер в конфиг. Откройте настройки MCP и пропишите команду запуска:
claude mcp add logs -- python3 /path/to/logs_server.py
Проверьте, что сервер подцепился:
claude mcp list
После этого в сессии появляется инструмент read_log. Просите агента: посмотри последние 300 строк app.log и скажи, почему падает воркер. Он сам вызовет инструмент.
Что добавить дальше
Минимальная версия читает один файл. Чтобы была польза, добавьте: фильтр по уровню ERROR и WARN, чтение нескольких файлов сразу, простой поиск по подстроке. Каждый новый инструмент это одна функция с декоратором, без архитектурных изысков.
Главное правило: не давайте агенту инструмент писать или удалять логи. MCP должен быть читалкой. Права на запись держите у себя.
Частые вопросы
Нужен ли официальный SDK?
Нет. FastMCP из пакета mcp хватает для 90 процентов серверов. Официальный SDK нужен только под сложные сценарии с потоками и ресурсами.
Безопасно ли давать агенту доступ к логам?
Да, если сервер только читает. Логи часто содержат чувствительное, поэтому держите сервер на чтение и не выпускайте его за пределы нужной папки.