Что такое MCP сервер: это программа, через которую ИИ-приложение получает доступ к вашим файлам, базам и сервисам по единым правилам протокола Model Context Protocol. Claude Code запускает такой сервер, спрашивает у него список возможностей и разрешает модели вызывать их как инструменты. Ниже по шагам: как устроен MCP сервер для ИИ, как подключить готовый, как сделать свой и что проверить до запуска чужого кода.
Что такое MCP сервер простыми словами
MCP расшифровывается как Model Context Protocol. Anthropic представила его 25 ноября 2024 года как открытый стандарт для подключения ИИ-помощников к системам, где лежат данные (анонс на сайте Anthropic). В документации протокола его сравнивают с портом USB-C: один разъём вместо отдельного кабеля под каждое устройство. MCP уже поддерживают Claude, ChatGPT, VS Code и Cursor.
Без MCP каждое приложение писало собственную обвязку под каждый сервис. С MCP сервис один раз выставляет свои возможности как MCP сервер, а любой совместимый клиент их находит сам.
Участников три (архитектура протокола):
| Роль | Что это | Пример |
|---|---|---|
| Хост | ИИ-приложение, которое управляет подключениями | Claude Code, Claude Desktop, VS Code |
| Клиент | Компонент внутри хоста, по одному на каждый сервер | Создаётся хостом автоматически |
| Сервер | Программа, которая отдаёт контекст и действия | Сервер файловой системы, сервер Sentry |
Сообщения идут по JSON-RPC 2.0, а поверх него работают два транспорта:
- stdio. Хост запускает сервер как дочерний процесс на вашем компьютере. Сетевых накладных расходов нет, сервер обслуживает одного клиента.
- Streamable HTTP. Сервер живёт по URL и обслуживает многих клиентов. Он принимает bearer-токены, API-ключи и OAuth.
Актуальная редакция спецификации на сайте протокола на 29 октября 2026 года: 2026-07-28.
Что умеет MCP сервер: инструменты, ресурсы, промпты
Сервер отдаёт клиенту три вида возможностей. Названия на английском, потому что именно так они встречаются в 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», а настройка приложения под Claudexia описана в гайде по 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 работает через Claudexia
MCP живёт на стороне клиента, а шлюз стоит на стороне модели. Claude Code подключается к MCP серверам как обычно, а запросы к модели уходят на https://api.claudexia.tech (без /v1) с вашим ключом sk_cdx_...:
export ANTHROPIC_BASE_URL="https://api.claudexia.tech"
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 подключён через Claudexia?
Да. MCP работает на стороне клиента, поэтому шлюз ему не мешает: серверы подключаются командой claude mcp add, а запросы к модели идут на адрес Claudexia. Помните, что результаты вызовов инструментов попадают в промпт и уходят провайдеру модели.
Безопасно ли ставить чужие MCP серверы?
Только после проверки. Локальный сервер запускается с вашими правами и может выполнять произвольные команды. Читайте команду запуска и код, давайте минимальные права, секреты храните в переменных окружения, а не в репозитории.