Read-only MCP server for 1C:Enterprise via OData with metadata and query builder tools.
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y onec-odata-mcp
MCP client config
{
"mcpServers": {
"1c-odata-mcp": {
"command": "npx",
"args": [
"-y",
"onec-odata-mcp"
]
}
}
}Даёт Claude (Desktop, Code, любой MCP-клиент) доступ на чтение к базе 1С:Предприятие через стандартный OData. Вместо выгрузки в Excel или ручного написания OData-урлов — спрашиваешь по-русски, получаешь структурированные данные из справочников и документов.
Работает с любой конфигурацией 1С, где опубликован OData (Бухгалтерия, ERP, Управление торговлей, самописные конфигурации).
📸 TODO: скриншот/видео 5-минутной настройки — добавить после первого прогона с реальной базой.
Ничего ставить локально не нужно, npx подтянет пакет при первом запуске:
One-liner (after npm publish):
npx -y onec-odata-mcp
Set ONEC_BASE_URL, ONEC_USERNAME, and ONEC_PASSWORD in your MCP client config (see below).
From source:
npx -y onec-odata-mcp
(Для разработки из исходников: npm install && npm run build.)
Вариант А — командой claude mcp add (Claude Code):
claude mcp add onec-odata \
-e ONEC_BASE_URL=https://1c.example.com/your_db/odata/standard.odata \
-e ONEC_USERNAME=odata_user \
-e ONEC_PASSWORD=your_password \
-- npx -y onec-odata-mcp
Вариант Б — вручную в claude_desktop_config.json (Claude Desktop: Settings → Developer → Edit Config):
{
"mcpServers": {
"onec-odata": {
"command": "npx",
"args": ["-y", "onec-odata-mcp"],
"env": {
"ONEC_BASE_URL": "https://1c.example.com/your_db/odata/standard.odata",
"ONEC_USERNAME": "odata_user",
"ONEC_PASSWORD": "your_password"
}
}
}
}
Готовый сниппет лежит в examples/claude_desktop_config.json.
Опционально: ONEC_DATABASE (подсказка имени базы), ONEC_METADATA_CACHE_TTL_MS (TTL кэша метаданных, по умолчанию 1 час), ONEC_WRITABLE=true (разрешить реальную запись через odata_write; по умолчанию false). Либо вместо переменных окружения — JSON-файл ~/.onec-odata/onec-config.json с полями baseUrl, username, password (и опционально "writable": true), путь к которому задаётся через ONEC_CONFIG_PATH.
Перезапусти Claude и спроси:
«Какие справочники и документы есть в базе 1С?»
Claude вызовет odata_list_entities, увидит список и дальше сам подберёт нужные инструменты под конкретный вопрос — без знания синтаксиса OData с твоей стороны.
Больше готовых промптов — в examples/prompts.md.
| Инструмент | Что делает | Пример вопроса |
|---|---|---|
odata_config | Проверяет статус подключения и настройки | «Проверь, подключена ли 1С» |
odata_list_entities | Список всех доступных OData-сущностей | «Какие справочники и документы есть в базе?» |
odata_metadata | Типы и наборы сущностей из $metadata (кэш, TTL 1ч) | вызывается автоматически перед сложными запросами |
odata_explain_entity | Поля, типы, ключи, связи конкретной сущности | «Какие поля у справочника Контрагенты?» |
odata_build_query | Строит и проверяет $filter/$select/$orderby из структурированных параметров запроса | вызывается автоматически — Claude сам переводит «за июнь» в даты, тул собирает и валидирует фильтр |
odata_query | Запрос к сущности с готовыми OData-параметрами | «Покажи остатки по счёту 51 за июнь» |
odata_count | Количество записей, опционально с фильтром | «Сколько контрагентов зарегистрировано в этом году?» |
odata_write | Создание/изменение/удаление сущности (POST/PATCH/DELETE) | «Создай контрагента…» — сначала dry-run-превью |
odata_financial_summary | Автообнаружение типовых финансовых сущностей + счётчики | «Дай сводку по счетам, реализациям и контрагентам» |
Обычно агент сам комбинирует odata_build_query → odata_query/odata_count, тебе достаточно спросить своими словами.
writable в конфиге базы (env ONEC_WRITABLE=true / "writable": true в ~/.onec-odata/onec-config.json) по умолчанию false. Без него реальные POST/PATCH/DELETE не уходят в 1С.odata_write. У инструмента dryRun по умолчанию true: всегда сначала превью {dryRun: true, wouldExecute: …} без сетевого вызова. Реальная запись требует и writable: true на этой базе, и явного dryRun: false.~/.onec-odata/onec-config.json. Сервер не логирует и не возвращает пароль в ответах инструментов.password, token, apikey, secret и т.п. в названиях) автоматически исключены из подсказок «возможно, вы имели в виду» (src/query/fuzzy.ts), чтобы агент не подсвечивал их случайно.ONEC_WRITABLE=true включай только осознанно.standard.odata)npm install
npm run build # type-check + сборка в dist/
npm test
Детали и правила вклада — в CONTRIBUTING.md.
MIT
MCP server giving Claude (or any MCP client) access to a 1C:Enterprise database via its standard OData endpoint. Read-only by default (writable: false); writes go through odata_write and always dry-run first unless you explicitly enable writable: true and pass dryRun: false. No spreadsheet exports, no hand-written OData URLs — ask in natural language, get structured data from catalogs and documents.
npx -y onec-odata-mcp
Configure via ONEC_BASE_URL / ONEC_USERNAME / ONEC_PASSWORD env vars (see the Russian quick-start above for claude mcp add and claude_desktop_config.json snippets — the JSON is language-agnostic). Optional: ONEC_WRITABLE=true to allow real writes. Published on npm as onec-odata-mcp and listed in the official MCP Registry as io.github.alexgrebeshok-coder/onec-odata-mcp.