MCP сервер это небольшая программа, которая показывает ИИ-приложению ваши файлы, базы и сервисы по правилам протокола Model Context Protocol. Claude Code запускает её, спрашивает, что она умеет, и дальше разрешает модели вызывать эти функции как инструменты. В статье по порядку: как всё устроено, как подключить готовый сервер, как написать свой и что проверить до запуска чужого кода.
MCP сервер простыми словами
MCP расшифровывается как Model Context Protocol. Anthropic представила его 25 ноября 2024 года как открытый стандарт, который связывает ИИ-помощников с системами, где лежат данные (анонс на сайте Anthropic). В документации протокола его сравнивают с USB-C: один разъём подходит к разным устройствам, и отдельный кабель под каждое не нужен. MCP уже поддерживают Claude, ChatGPT, VS Code и Cursor.
Раньше каждое приложение писало собственную интеграцию под каждый сервис. Теперь сервис один раз выставляет свои возможности как MCP сервер, а любой совместимый клиент находит их сам.
В схеме три роли (архитектура протокола):
| Роль | Что это | Пример |
|---|---|---|
| Хост | ИИ-приложение, которое управляет подключениями | Claude Code, Claude Desktop, VS Code |
| Клиент | Компонент внутри хоста, по одному на каждый сервер | Создаётся хостом автоматически |
| Сервер | Программа, которая отдаёт контекст и действия | Сервер файловой системы, сервер Sentry |
Обмен идёт сообщениями JSON-RPC 2.0, а доставляют их два транспорта:
- stdio. Хост запускает сервер дочерним процессом на вашем компьютере. Сеть не участвует, один сервер обслуживает одного клиента.
- Streamable HTTP. Сервер работает по URL и принимает много клиентов. Для доступа годятся bearer-токены, API-ключи и OAuth.
На 29 октября 2026 года актуальная редакция спецификации на сайте протокола носит номер 2026-07-28.
Три вида возможностей: инструменты, ресурсы, промпты
Сервер предлагает клиенту три вида возможностей. Названия оставляем английскими: в SDK и конфигах они встречаются именно так.
| Примитив | Что делает | Пример |
|---|---|---|
| Tools (инструменты) | Функции, которые вызывает модель: запрос к API, поиск, запись | search_notes |
| Resources (ресурсы) | Данные для контекста: файл, запись в базе, ответ API | notes://ideas |
| Prompts (промпты) | Готовые шаблоны запросов к модели | «Собери сводку заметок за неделю» |
Модель видит всё это как обычные инструменты. Клиент запрашивает список через tools/list и вызывает нужный через tools/call. Сама модель с MCP не общается: вызов перехватывает хост и сам идёт на сервер.
Удобное правило: если действие меняет данные, оформляйте его инструментом, а если только отдаёт данные, ресурсом. Тогда клиент заранее показывает, где риск, а где нет.
Подключение MCP сервера к Claude Code и Claude Desktop
В Claude Code достаточно одной команды. Двойной дефис отделяет флаги самого claude от команды, которая запускает сервер (документация Claude Code про MCP):
claude mcp add <имя> -- <команда> [аргументы]
claude mcp add --transport http <имя> <url>
claude mcp list
Первая строка добавляет локальный сервер (stdio), вторая удалённый, третья выводит список серверов и состояние подключений. Внутри сессии то же самое показывает /mcp.
Куда сохранить настройку, решает флаг --scope:
| Область | Где хранится | Кто видит |
|---|---|---|
local (по умолчанию) | ~/.claude.json, привязка к проекту | Только вы |
project | .mcp.json в корне проекта | Вся команда через git |
user | ~/.claude.json | Вы, во всех проектах |
Серверы области project Claude Code просит одобрить в интерактивной сессии, поэтому чужой .mcp.json молча не запустится. Выглядит файл так:
{
"mcpServers": {
"shared-server": {
"type": "http",
"url": "https://example.com/mcp"
}
}
}
Claude Desktop читает серверы из claude_desktop_config.json: на macOS файл лежит в ~/Library/Application Support/Claude/, на Windows в %AppData%\Claude\. Внутри нужен ключ mcpServers, а после правки приложение перезапускают. Пути к серверу указывайте абсолютные. Если приложение не находит uv, впишите полный путь к нему (which uv на macOS и Linux, where uv на Windows). Установка и конфиг подробно разобраны в статье «Claude Desktop: установка и MCP», а настройка приложения под codexkey описана в гайде по Claude Desktop.
Как написать свой MCP сервер на Python
В примере сервер ищет строку в заметках .md из папки ~/notes. Мы прогнали код на Python SDK 2.3.0: сервер стартует по stdio, инструмент находит заметку, ресурс отдаёт её текст. SDK требует Python 3.11 или новее (репозиторий python-sdk).
uv init notes-mcp
cd notes-mcp
uv add "mcp[cli]"
Файл server.py:
from pathlib import Path
from mcp.server import MCPServer
NOTES_DIR = Path.home() / "notes"
mcp = MCPServer("notes")
@mcp.tool()
def search_notes(query: str) -> str:
"""Найти заметки .md, где есть строка query. Вернуть файл и первую подходящую строку."""
hits = []
for path in sorted(NOTES_DIR.glob("*.md")):
for line in path.read_text(encoding="utf-8").splitlines():
if query.lower() in line.lower():
hits.append(f"{path.name}: {line.strip()}")
break
return "\n".join(hits) or "Ничего не найдено"
@mcp.resource("notes://{name}")
def read_note(name: str) -> str:
"""Текст заметки по имени файла без расширения."""
path = (NOTES_DIR / f"{name}.md").resolve()
if not path.is_relative_to(NOTES_DIR.resolve()):
raise ValueError("Путь вне папки заметок")
return path.read_text(encoding="utf-8")
if __name__ == "__main__":
mcp.run(transport="stdio")
Схему аргументов описывать отдельно не нужно. Тип query: str превращается в JSON Schema, а докстринг становится описанием инструмента, и читает его именно модель. Пишите докстринг как инструкцию для человека, у которого больше ничего нет перед глазами.
Сначала проверяем сервер без ИИ:
uv run mcp dev server.py
Откроется MCP Inspector, веб-интерфейс для ручного вызова инструментов (нужен Node.js). Когда ответы устраивают, подключаем сервер:
claude mcp add notes -- uv --directory /абсолютный/путь/к/notes-mcp run server.py
Теперь в сессии Claude Code можно попросить «найди в моих заметках всё про MCP», и модель вызовет search_notes. Удалённый вариант запускается командой uv run mcp run server.py --transport streamable-http: сервер ответит по адресу http://localhost:8000/mcp, а подключить его можно командой claude mcp add --transport http notes http://localhost:8000/mcp.
Три ловушки на старте:
- В stdio-сервере нельзя вызывать
print(). Стандартный вывод занят сообщениями JSON-RPC, и один лишнийprintрвёт соединение. Для логов берите модульlogging: он пишет в stderr. - В старых туториалах встречается
from mcp.server.fastmcp import FastMCP. В SDK 2.x класс переименован вMCPServer, и старый импорт падает сModuleNotFoundError. Пишите по-новому или закрепите версиюmcp<2. - Имя из ресурса
notes://{name}присылает модель. Без проверкиis_relative_toстрока с..вышла бы за пределы папки заметок.
Версию на TypeScript, удалённый деплой и сравнение транспортов мы разобрали в практическом гайде по MCP-серверам для Claude, здесь их не повторяем.
Готовые MCP серверы: что взять, что бесплатно, что есть для 1С
Протокол и SDK бесплатны. Платить приходится за сервис, к которому ходит сервер: за API, базу или облако. Рейтинга «лучших MCP серверов» вне привязки к задаче не существует, поэтому мы смотрим на четыре признака: сервер выпустил владелец сервиса, код открыт, права минимальны, репозиторий живой.
Где искать:
modelcontextprotocol/serversна GitHub. Там референсные серверы Everything, Fetch, Filesystem, Git, Memory, Sequential Thinking и Time. README предупреждает: это учебные примеры, а не решения для продакшена.- Тринадцать серверов, среди них GitHub, GitLab, PostgreSQL, Redis, Sentry, Slack и SQLite, перенесли в архивный репозиторий, и в основном их больше не поддерживают.
- Реестр опубликованных серверов: registry.modelcontextprotocol.io.
Официальный MCP сервер для 1С в поиске нам не попался, зато есть открытые проекты сообщества. Один из них, alkoleft/mcp-bsl-platform-context, даёт ИИ справку по синтаксису и объектной модели платформы. Написан он на Kotlin, лицензия MIT, нужна Java 17 или новее, работает по stdio или SSE, рекомендуемая платформа 1С от 8.3.20. Активность репозитория мы не проверяли, так что перед подключением посмотрите даты коммитов. Как готовить сами конфигурации для Claude, описано в статье «Вайбкодинг для 1С».
MCP при работе через codexkey
MCP живёт на стороне клиента, а шлюз стоит на стороне модели. Claude Code подключает MCP серверы как обычно, а запросы к модели уходят на https://api.codexkey.ru (без /v1) с вашим ключом sk_cdx_...:
export ANTHROPIC_BASE_URL="https://api.codexkey.ru"
export ANTHROPIC_AUTH_TOKEN="sk_cdx_ВАШ_КЛЮЧ"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-sonnet-5"
claude
Строки ANTHROPIC_DEFAULT_* обязательны: без них Claude Code просит собственные модели по умолчанию и отвечает «There's an issue with the selected model». Полный settings.json лежит в гайде по Claude Code, а модели и цены собраны на странице моделей. Входить в аккаунт Anthropic не нужно, платить можно картой РФ, через СБП или криптой. Начать с нуля можно по инструкции «Claude Code в России», а какую модель выбрать для агентной работы, мы разбираем в статье «Лучшая нейросеть для программирования». Если вайбкодинг для вас новая тема, сначала прочтите «Вайбкодинг: что это».
Есть следствие, о котором помнят не все: описания инструментов и результаты их вызовов попадают в контекст запроса. Всё, что инструмент вернул модели, например текст прочитанного файла, уходит к провайдеру вместе с остальным промптом.
Безопасность: какие MCP серверы можно запускать
Локальный MCP сервер выполняется с правами вашего пользователя. Руководство по безопасности MCP прямо называет риски: произвольное выполнение команд, потерю данных и вредоносную команду запуска, спрятанную в конфиге (security best practices). Документация Claude Code добавляет: серверы, которые подтягивают внешний контент, открывают путь для prompt injection.
Наши правила такие:
- Прежде чем добавить чужой сервер, прочитайте команду запуска целиком.
npx что-то && curl ...в одной строке повод остановиться. - Начинайте с серверов только для чтения, а запись и удаление подключайте отдельным шагом.
- Ключи передавайте через
--envили переменные окружения и не коммитьте их в.mcp.json. - В своём сервере проверяйте каждый аргумент, ограничивайте каталоги и не кладите секреты в ресурсы: их читает модель.
- Для удалённых серверов берите токены с минимальными правами. Спецификация запрещает серверу принимать токены, выпущенные не для него.
FAQ
MCP сервер что это простыми словами?
Это программа, которая выдаёт ИИ-приложению файлы, данные из баз и действия (инструменты) по общему правилу, одинаковому для всех клиентов. Отдельная интеграция под каждый сервис не нужна: вы один раз подключаете готовый сервер, и его возможности видят Claude Code, Claude Desktop или VS Code.
Как подключить MCP сервер к Claude Code?
Локальный сервер добавляется командой claude mcp add <имя> -- <команда запуска>, удалённый командой claude mcp add --transport http <имя> <url>. Проверить результат можно через claude mcp list в терминале или /mcp внутри сессии.
Как сделать MCP сервер самому?
Поставьте SDK (для Python uv add "mcp[cli]"), создайте MCPServer, повесьте на функции декораторы @mcp.tool() и @mcp.resource() и запустите сервер с транспортом stdio. До подключения к ИИ его можно проверить через uv run mcp dev server.py.
Бесплатные MCP серверы существуют?
Да, референсные серверы и большинство серверов сообщества открыты. Бесплатен, впрочем, только код: за доступ к стороннему API, базе или облаку вы платите их владельцу. Перед установкой проверьте лицензию, активность репозитория и запрашиваемые права.
Есть ли MCP сервер для 1С?
Открытые проекты сообщества есть, например alkoleft/mcp-bsl-platform-context со справкой по платформе. Официального сервера от вендора мы на 29 октября 2026 не нашли. Подключать такие серверы к рабочей базе без проверки кода и лицензии не стоит.
Работает ли MCP, если Claude Code подключён через codexkey?
Да. MCP работает на стороне клиента, поэтому шлюз ему не мешает: серверы подключаются командой claude mcp add, а запросы к модели идут через codexkey. Помните, что результаты вызовов инструментов попадают в промпт и уходят провайдеру модели.
Безопасно ли ставить чужие MCP серверы?
Только после проверки. Локальный сервер запускается с вашими правами и может выполнять произвольные команды. Читайте команду запуска и код, давайте минимальные права, а секреты держите в переменных окружения, не в репозитории.