Подключение mcp-1c к Claude Desktop
Как добавить mcp-1c-advanced в Claude Desktop. Файл конфигурации, путь к бинарнику, параметры подключения к базе 1С. Stdio-транспорт по умолчанию.
Claude Desktop поддерживает протокол MCP из коробки. Это значит что мост для 1С достаточно прописать в конфиге, и инструменты появятся в чате без всяких дополнительных адаптеров.
Транспорт по умолчанию это stdio: Claude Desktop запускает бинарник, общается с ним через stdin и stdout. Никаких отдельных портов настраивать не нужно, никаких HTTP-серверов поднимать тоже не нужно.
Где лежит конфиг
| ОС | Путь |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Если файла нет, его нужно создать. Минимальный валидный конфиг это пустой объект {}.
Минимальная конфигурация
{
"mcpServers": {
"mcp-1c": {
"command": "/usr/local/bin/mcp-1c-advanced",
"args": [
"--base", "http://localhost/acc/hs/mcp-1c",
"--user", "Администратор",
"--password", ""
]
}
}
}
Объект mcpServers это словарь, где ключ это произвольное имя сервера для отображения в Claude (mcp-1c), а значение содержит команду запуска. Параметры --base, --user, --password совпадают с теми, что используются при ручном запуске: --base это адрес опубликованного HTTP-сервиса 1С, а --user и --password действуют, когда база одна и задана адресом без имени.
После сохранения файла нужно перезапустить Claude Desktop. При следующем открытии чата в нижнем правом углу появится индикатор подключённых MCP-серверов с кнопкой инструментов.
Несколько баз
Флаг --base повторяется для каждой базы в форме имя=URL, а учётные данные каждой базы задаёт --auth имя=ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ (для пустого пароля двоеточие ставится в конце):
{
"mcpServers": {
"mcp-1c": {
"command": "/usr/local/bin/mcp-1c-advanced",
"args": [
"--base", "dev=http://localhost/acc-dev/hs/mcp-1c",
"--base", "prod=http://prod-server/acc/hs/mcp-1c",
"--auth", "dev=Администратор:",
"--auth", "prod=Администратор:"
]
}
}
}
В каждом запросе к Claude можно явно указать базу: «посмотри метаданные документа Реализация в базе prod». Если в вызове инструмента нет параметра base, сервер отвечает по базе по умолчанию: это первая в списке, если не задан --default-base.
Профессиональная редакция и токены LLM
В режиме сервера к LLM обращается только инструмент автогенерации документации (autodoc). autodoc работает только с выгрузкой конфигурации: без --dump он отказывает на любое действие, поэтому для него в аргументы запуска нужно добавить --dump с путём к выгрузке. Если планируется им пользоваться, переменные окружения с API-ключами надо задать в секции env:
{
"mcpServers": {
"mcp-1c": {
"command": "/usr/local/bin/mcp-1c-pro",
"args": ["--base", "http://localhost/acc/hs/mcp-1c"],
"env": {
"YANDEXGPT_API_KEY": "AQVN...",
"YANDEXGPT_FOLDER_ID": "b1g..."
}
}
}
}
Без этих переменных действия generate и regenerate инструмента autodoc возвращают ошибку, а summary и find работают и без них. Генерация тестов, сборка .epf и навигация по типовым конфигурациям в режиме сервера к LLM не обращаются, ключи им не нужны. Базовые инструменты (поиск, метаданные, оптимизатор запросов) от LLM не зависят и работают всегда.
Долгая инициализация
Если задана выгрузка конфигурации (--dump), при первом запуске на большой конфигурации её индексация может занять несколько минут. Сервер при этом отвечает Claude Desktop сразу, а индекс строится в фоне: пока он строится, поиск по коду отвечает сообщением о построении индекса, а если сборка прервалась, сообщением об ошибке сборки. Готовый индекс сохраняется в системном каталоге кэша ОС (путь переопределяется флагом --cache-dir или переменной MCP_1C_CACHE_DIR), и последующие запуски используют его повторно.
Long polling вместо HTTP-сервиса
Если в базе уже установлено расширение MCP_Polling, в --base указывается схема poll://, а --poll-user и --poll-password должны совпадать с теми, с которыми обращается расширение, обычно это значения, заданные при установке:
{
"mcpServers": {
"mcp-1c": {
"command": "/usr/local/bin/mcp-1c-advanced",
"args": [
"--base", "acc=poll://",
"--listen", ":9090",
"--poll-user", "myuser",
"--poll-password", "mypassword12"
]
}
}
}
В этом случае Claude Desktop запускает mcp-1c-advanced как stdio-сервер, и внутри он сам поднимает HTTP-приёмник для расширения 1С. Без учётных данных опроса, здесь это --poll-user и --poll-password (пароль не короче 12 символов), сервер не запустится, если явно не отказаться от проверки подлинности. 1С обращается к серверу сама, через регламентное задание, по адресу, который обычно задаёт при установке флаг --poll-server-url: чтобы опрос шёл, этот адрес должен вести к приёмнику. Если задание не запущено или безопасный режим 1С блокирует этот исходящий запрос, опроса не будет (что делать с безопасным режимом, описано в документации). Для разработчика это удобно тем, что один процесс держит и MCP-stdio для Claude, и HTTP для расширения, без разных конфигов.
Проверка
После перезапуска Claude в чате можно спросить: «какие инструменты mcp-1c тебе доступны». Claude перечислит зарегистрированные инструменты (code_read, code_search, code_analyze, bulk_analyze, и так далее, в зависимости от редакции лицензии).
Если инструменты не появились, в логах Claude Desktop (Help -> Open Logs) должна быть строка про запуск mcp-1c-advanced и причину ошибки. Чаще всего это неверный путь к бинарнику или к базе.