
Ассистенты вроде 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% по промокоду.
Как подключить 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.