MCP-сервер: что это такое и как его подключить

MCP-сервер: что это и как подключить

Ассистенты вроде Claude и ChatGPT уверенно отвечают на общие вопросы, но о вашей инфраструктуре не знают почти ничего: не видят файлы на диске, не заглянут в базу и не соберут отчёт по внутреннему сервису. Чтобы дать модели доступ к своим данным и инструментам, нужен мост между ней и вашими системами. Такой мост называется MCP-сервер.

MCP (Model Context Protocol) это открытый стандарт, который Anthropic выпустила в ноябре 2024 года. Он описывает, как ИИ-приложения общаются с внешними системами: один протокол вместо десятков самодельных интеграций под каждую модель и каждый сервис. За почти два года MCP стал фактическим отраслевым стандартом: его поддержали Claude, ChatGPT, VS Code, Cursor, Microsoft Copilot, а в декабре 2025 года протокол передан фонду Agentic AI Foundation при Linux Foundation.

Что такое MCP и MCP-сервер

Если коротко, MCP-сервер это программа, которая публикует для ИИ-приложения свои данные и функции. Сервер сообщает клиенту: «у меня есть вот такие инструменты и вот такие документы». Клиент (Claude Desktop, Cursor, LM Studio или любое другое приложение с поддержкой протокола) передаёт модели список возможностей, и дальше модель сама решает, что вызвать: прочитать файл, сделать SQL-запрос, проверить сайт.

Официальная метафора протокола это USB-C для ИИ-приложений. Раньше под каждый сервис и каждую модель писали отдельный «кабель», теперь достаточно одного стандартного разъёма: сервер, написанный один раз, работает и с облачным Claude, и с локальной моделью.

Устройство протокола простое. Приложение-хост (Cursor или Claude Desktop) содержит MCP-клиент, клиент подключается к серверам, а серверы работают с данными. Доступ остаётся на стороне сервера: наружу уходит только то, что он разрешает. Важная деталь: сервер общается с MCP-клиентом, а не с моделью напрямую, а что из его возможностей показывать модели, решает хост. Обмен идёт по JSON-RPC 2.0.

Протокол создали инженеры Anthropic Дэвид Сория Парра и Джастин Спар-Саммерс. В декабре 2025 года компания передала MCP фонду Agentic AI Foundation при Linux Foundation, который основали Anthropic, Block и OpenAI при поддержке Google, Microsoft, AWS, Cloudflare и Bloomberg. В публичном реестре протокола на момент публикации больше десяти тысяч серверов, а спецификация обновляется ревизиями: последняя датирована июлем 2026 года.

Инструменты, ресурсы и промпты

MCP-сервер публикует для клиента инструменты, ресурсы и промпты.

  • Инструменты (tools): функции, которые модель вызывает по необходимости: «создай файл», «сделай запрос к базе», «отправь сообщение». Клиент обычно спрашивает подтверждение перед вызовом, а правила подтверждений и автоодобрений настраиваются на его стороне.
  • Ресурсы (resources): данные только для чтения: содержимое документа, ответ API, запись из справочника.
  • Промпты (prompts): готовые шаблоны команд, чтобы не собирать каждый раз длинный запрос руками.

Транспорт зависит от того, где работает сервер. Локальный MCP-сервер запускается как дочерний процесс и говорит через стандартный ввод-вывод: это транспорт stdio. Удалённый размещается на своём домене и работает по HTTP, включая режим Streamable HTTP: так удобно, когда к серверу обращаются с нескольких устройств или несколько человек. Оба варианта умещаются в пару строк конфигурации клиента.

Зачем это нужно на практике

На практике MCP-серверы чаще всего закрывают доступ к файлам и коду, к базам данных и к внешним сервисам.

Сервер файловой системы открывает ассистенту выбранные папки: он найдёт нужный документ, разберёт структуру проекта, подготовит правку. С сервером git модель видит историю коммитов и ветки.

Отдельно стоят базы данных: сервер с доступом только на чтение к PostgreSQL или к файлу SQLite позволяет спрашивать данные обычным языком, «сколько заказов было на прошлой неделе». Запрос модель построит сама.

И внешние сервисы: GitHub выпустил свой сервер для работы с репозиториями, Microsoft сделал сервер автоматизации браузера на базе Playwright, у Figma есть сервер доступа к макетам. Если для вашего сервиса готового сервера нет, его можно написать: протокол открытый, SDK есть для десятка языков.

Главный эффект в другом: интеграции больше не привязаны к вендору модели. Один и тот же сервер можно подключить к Cursor, к Claude Desktop и к LM Studio с локальной моделью одновременно.

Готовые MCP-серверы

Начинать проще с готового. В официальном репозитории modelcontextprotocol/servers лежат референсные серверы: файловая система, загрузка веб-страниц, git, память для заметок, работа со временем. Сообщество развивает тысячи серверов, их ищут в официальном реестре протокола и каталогах вроде cursor.directory.

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

ООО «РЕГ.РУ»

Мощные VPS для ваших Docker-контейнеров

Идеально подходит для Nginx Proxy Manager, Portainer и Nextcloud. Высокая производительность (NVMe), защита от DDoS и скидка 5% по промокоду.

Промокод:CB2C-C638-E0BF-18D1
от 0.6 ₽/час

Как подключить MCP-сервер к Claude Desktop

Формат настройки у большинства клиентов почти одинаковый. Начнём с Claude Desktop, а затем подключим тот же сервер к Cursor и LM Studio.

Для серверов на Node.js понадобится установленный Node.js. Откройте в Claude Desktop меню Settings, раздел Developer, и нажмите Edit Config. Приложение создаст файл claude_desktop_config.json, его расположение зависит от системы:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Добавьте в файл сервер файловой системы:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Documents"
      ]
    }
  }
}

Пути в args это папки, к которым сервер получит доступ. Выдайте только то, что действительно нужно: остальное останется закрытым.

После сохранения закройте Claude Desktop полностью (простого закрытия окна крестиком недостаточно) и откройте заново. У поля ввода появится кнопка подключений: в ней виден список серверов и их инструменты. Попросите ассистента показать файлы в папке: первый вызов инструмента он выполнит с вашего подтверждения.

Если сервер не появился, проверьте синтаксис JSON и абсолютность путей, а затем логи. На macOS они лежат в ~/Library/Logs/Claude, на Linux в ~/.config/Claude/logs, на Windows в %APPDATA%\Claude\logs. Файл mcp-server-<имя>.log содержит вывод самого сервера.

Подключение к Cursor и LM Studio

Cursor и LM Studio это два примера MCP-клиентов: редактор кода и приложение для локальных моделей. Формат конфигурации у них почти один и тот же. В Cursor файл mcp.json ведут в проекте (.cursor/mcp.json) или глобально (~/.cursor/mcp.json), а популярные серверы ставятся в один клик из раздела Customize: там же их можно включать, выключать и смотреть логи в панели Output, режим MCP Logs.

Для локального сервера в Cursor указывают command и args, как в примере с Claude, для удалённого достаточно адреса и заголовков:

{
  "mcpServers": {
    "server-name": {
      "url": "http://localhost:3000/mcp",
      "headers": {
        "API_KEY": "${env:MCP_API_KEY}"
      }
    }
  }
}

Ключи в конфиге не вписывайте руками: подстановка из переменных окружения (${env:MCP_API_KEY}) не даст секрету утечь в репозиторий. LM Studio с версии 0.3.17 сам выступает хостом MCP-серверов и использует тот же формат, что Cursor. Откройте правую панель, вкладку Program, затем Install, Edit mcp.json, и добавьте сервер: сойдёт любой из примеров выше. Работают и локальные серверы, и удалённые по URL.

Нюанс для локальных моделей: часть MCP-серверов проектировали под облачные модели, они отдают много описаний и контекста. Для модели на вашем компьютере это заметная нагрузка, поэтому начните с одного-двух компактных серверов. И выключайте то, чем не пользуетесь: меньше инструментов, понятнее поведение модели.

Свой MCP-сервер на Python

Если готового сервера нет, его несложно написать: SDK существует для десятка языков, от Python и TypeScript до Rust и Go. Пример ниже на Python. Понадобится Python 3.10 или новее и менеджер uv; он ставится одной командой curl -LsSf https://astral.sh/uv/install.sh | sh.

uv init site-checker && cd site-checker
uv add "mcp[cli]"

Теперь создайте файл server.py с одним инструментом, который проверяет доступность сайта и измеряет время отклика:

import time
import urllib.error
import urllib.parse
import urllib.request

from mcp.server import MCPServer

mcp = MCPServer("site-checker")

ALLOWED_HOSTS = {"cod-reg.ru", "www.cod-reg.ru"}


@mcp.tool()
def check_site(url: str) -> str:
    """Check if a website is reachable and measure response time.

    Args:
        url: Full URL of the site, e.g. https://cod-reg.ru
    """
    parsed = urllib.parse.urlparse(url)
    if parsed.scheme not in {"http", "https"} or parsed.hostname not in ALLOWED_HOSTS:
        return "only allowlisted hosts are supported"
    start = time.monotonic()
    try:
        with urllib.request.urlopen(url, timeout=10) as resp:
            code = resp.status
    except urllib.error.HTTPError as exc:
        code = exc.code
    except urllib.error.URLError as exc:
        return f"unreachable: {exc.reason}"
    elapsed_ms = (time.monotonic() - start) * 1000
    return f"HTTP {code}, {elapsed_ms:.0f} ms"


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

Декоратор @mcp.tool() превращает функцию в инструмент, а описание из докстринга становится подсказкой для модели. Строка с проверкой ALLOWED_HOSTS не для красоты: без такого ограничения инструмент открывает модели сетевой доступ к любым адресам, включая внутреннюю сеть. Запуск простой: uv run server.py, сервер поднимется и будет ждать команд через stdio.

Подключение к клиенту такое же, как у готовых серверов, только в command указываем uv:

{
  "mcpServers": {
    "site-checker": {
      "command": "uv",
      "args": ["--directory", "/ABSOLUTE/PATH/site-checker", "run", "server.py"]
    }
  }
}

После перезапуска клиента спросите у модели: «проверь, отвечает ли cod-reg.ru», и она вызовет ваш инструмент.

Не пишите в стандартный вывод: у stdio-серверов любой print() попадает в канал протокола и ломает обмен с клиентом. Для логов используйте модуль logging, он пишет в stderr. И держите зависимости сервера в отдельном окружении, чтобы обновление пакетов не задело соседние проекты.

Безопасность и нюансы

Сервер выполняется с вашими правами, поэтому источник кода важнее его возможностей: незнакомый сервер не стоит запускать даже «посмотреть».

Выдавайте минимальные разрешения. Доступ к конкретным папкам, API-ключи со скоупом только на чтение, отдельная учётная запись для базы: если что-то пойдёт не так, ущерб ограничится этим контуром.

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

Свой сервер в интернет выставляйте только с аутентификацией. Удалённый MCP-сервер работает через Streamable HTTP, и вход нужно закрывать токеном или OAuth: сервер без аутентификации это открытая дверь в инфраструктуру.

Если сервер тянет в контекст внешний контент (веб-страницы, письма), вместе с ним могут прийти чужие инструкции. Критичные действия в такой связке держите под подтверждением и не оставляйте ассистента наедине с продакшеном.

Итог

Понять MCP проще всего руками: подключите filesystem-сервер к Claude Desktop или Cursor и попросите ассистента разобрать папку с документами. Когда модель сама вызовет первый инструмент, механика станет понятной, а свой сервер на Python напишется без магии: SDK берёт протокол на себя.

Если хочется обойтись без облака, посмотрите наш гайд про локальный запуск моделей в LM Studio и материал про аренду GPU для задач посерьёзнее. Всё это уживается и на недорогом сервере: подходящие конфигурации есть в нашей подборке VPS.