# 1c-rest-mcp [Health: Active]

**Category:** 🛠️ Other Tools and Integrations  
**Repository:** https://github.com/theYahia/1c-rest-mcp  
**GitHub Stars:** 12  
**npm Downloads (last month):** 143  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/1c-rest-mcp

## Description
MCP server for 1C REST API -- catalogs, documents. Basic Auth, configurable base URL.

## Tools
Capabilities this server exposes over MCP:

- **get_config_preset** — Курированная схема типовой конфигурации 1С (БП 3.0, УТ 11, ЗУП 3.1, ERP 2): ключевые OData-сущности с русскими описаниями, готовые примеры запросов и частые ловушки. Локальные данные — запроса к базе не делает. Вызывать ПЕРЕД list_entities, чтобы знать, что искать; без config возвращает список пресетов.
- **list_entities** — Список всех доступных сущностей 1С в OData: справочники (Catalog_*), документы (Document_*), все четыре вида регистров (Accumulation/Information/Accounting/CalculationRegister_*), планы видов характеристик и счетов (ChartOf*), константы (Constant_*), журналы документов (DocumentJournal_*), отчёты (Report_*). Вызывать первым при работе с незнакомой базой.
- **get_document_by_number** — Поиск документа 1С по номеру. Обёртка над OData $filter. Пример: найти реализацию ТД-00123 от 2025-03-01.
- **get_metadata** — Возвращает исходный документ $metadata базы 1С (EDMX/XML) с описанием всех сущностей, полей и типов. Нужен для точной схемы; если требуется только список полей одной сущности, дешевле describe_entity.
- **describe_entity** — Список полей сущности 1С по одной образцовой записи ($top=1). Дешевле полного $metadata, когда нужны только имена полей одной сущности.
- **get_catalogs** — Чтение данных справочников 1С через OData 3.0. Поддерживает $filter, $select, $orderby, $top, $skip.
- **create_catalog_item** — Создание нового элемента справочника через OData POST (например, добавить Контрагента или позицию Номенклатуры).
- **update_catalog_item** — Изменение существующего элемента справочника через OData PATCH (по Ref_Key, GUID).
- **get_documents** — Чтение документов 1С через OData 3.0. Отбор по дате, виду документа или произвольным полям.
- **create_document** — Создание нового документа 1С через OData POST.
- **update_document** — Изменение существующего документа 1С через OData PATCH (по Ref_Key, GUID).
- **post_document** — Проведение документа 1С через связанное действие OData Post(). Для оперативного проведения указать operational=true.
- **unpost_document** — Отмена проведения документа 1С через связанное действие OData Unpost().
- **delete_document** — Физическое удаление документа 1С через OData DELETE (по Ref_Key). Для обратимого удаления предпочтительнее set_deletion_mark — он ставит пометку на удаление.
- **get_document_lines** — Чтение табличной части документа (строки, например Товары) по Ref_Key через OData $expand. Имя табличной части зависит от конфигурации — узнать его можно через get_metadata или describe_entity.
- **get_register** — Чтение данных регистров сведений и накопления 1С через OData 3.0.
- **write_information_register** — Запись в независимый регистр сведений (OData POST на InformationRegister_*).
- **get_accumulation_balance** — Остатки регистра накопления через виртуальный метод OData Balance(Period=…,Condition=…). Без указания периода возвращает текущие остатки.
- **get_report** — Получение отчёта 1С через произвольный URL HTTP-сервиса (/hs/...).
- **odata_query** — Произвольный запрос OData 3.0 к любой сущности 1С. Поддерживает $filter, $select, $expand, $orderby, $top, $skip, $inlinecount.
- **get_constant** — Чтение значения константы 1С (Constant_*).
- **set_constant** — Запись значения константы 1С через OData PATCH (поле Value).
- **get_accounting_register** — Чтение записей регистра бухгалтерии (AccountingRegister_*, например Хозрасчетный — проводки) через OData.
- **get_accounting_balance** — Виртуальные таблицы регистра бухгалтерии (AccountingRegister_*): Balance / Turnovers / BalanceAndTurnovers / RecordsWithExtDimensions / ExtDimensions. Не путать с get_accumulation_balance — тот работает с AccumulationRegister_*, а этот с двойной записью (счета, субконто).
- **find_by_description** — Нечёткий поиск элементов по подстроке наименования (OData substringof по полю Description).
- **get_by_key** — Получение одной записи 1С по её Ref_Key (GUID).
- **count_entities** — Подсчёт количества записей сущности ($inlinecount, $top=0) с необязательным отбором.
- **set_deletion_mark** — Установка или снятие пометки на удаление (DeletionMark) у элемента справочника или документа — обратимое удаление.
- **get_recent_documents** — Последние документы указанного вида, отсортированные по дате по убыванию (при необходимости — только проведённые).
- **batch_create_documents** — Параллельное создание N документов 1С (от 1 до 100 за вызов). 1С не поддерживает OData $batch — пакет собирается на стороне клиента, с ограничением параллелизма и отчётом об успехе или ошибке по каждой позиции.
- **batch_update_catalog_items** — Параллельное изменение N элементов справочников (от 1 до 100). Каждый элемент правится через OData PATCH по своему Ref_Key. По каждой позиции отдельно сообщается успех или ошибка; отказ части позиций не прерывает пакет.
- **batch_query** — Параллельное выполнение N запросов OData к 1С (от 1 до 50). Результат по каждому запросу возвращается отдельно. Соединения на стороне сервера нет (1С не поддерживает $batch) — объединять результаты нужно на стороне клиента.
- **poll_changes_since** — Опрос сущности 1С на предмет строк, изменённых после указанной отметки времени. 1С не поддерживает webhooks — вызывать по расписанию (каждые 30–300 с). Возвращает строки и `next_cursor` для следующего опроса.
- **list_subscriptions** — Фиксирует, что 1С не поддерживает подписку на события через webhooks. Возвращает пустой список и подсказку обходного пути (использовать poll_changes_since). Нужен, чтобы модель не выдумывала несуществующие сценарии подписки.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "1c-rest-mcp": {
    "command": "npx",
    "args": ["-y","@theyahia/aprovodka"]
  }
}
```

## Documentation & README

# aprovodka

> **MCP server for 1C:Enterprise** — an AI agent reads and writes live 1C database data
> through the platform's own OData 3.0 interface. No configuration extension, no BSL.

[![npm](https://img.shields.io/npm/v/@theyahia/aprovodka)](https://www.npmjs.com/package/@theyahia/aprovodka)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**34 tools · 11 modules · Node.js 18+ · stdio + Streamable HTTP**

📄 **[Сайт продукта и услуги](https://theyahia.github.io/aprovodka/)** · 📖 **[Руководство пользователя (рус., 75 стр.)](https://github.com/theYahia/WWmcp/blob/main/servers/aprovodka/docs/MANUAL.ru.md)** · 💬 **[Заказать сверку цифр](#order)**

```bash
npx -y @theyahia/aprovodka
```

---

<a id="order"></a>

## Схема вашей базы + сверка цифр — 12 000 ₽

Сервер бесплатный и открытый. Платная — работа по вашей базе, где всё держится на одном:
**самоделка на OData не падает, она молча отдаёт неверное число.** Проверить это можно только
на конкретной конфигурации.

Что входит, за одну информационную базу:

- **файл схемы** под вашу конфигурацию — какие сущности есть, как они называются, что с чем связано;
- **список ловушек именно вашей базы** — где запрос вернёт правдоподобное, но неверное;
- **отчёт сверки по 10 согласованным вопросам** — ответ агента стоит рядом с цифрой из вашего же
  штатного отчёта 1С, строка в строку.

**Срок** — 5 рабочих дней. **Приёмка** — по совпадению цифр, критерий согласуем до начала.
Предоплата 100%, чек НПД. Условия целиком — [договор-оферта](https://theyahia.github.io/aprovodka/oferta.html).

📧 **[leadmanager81@yandex.ru](mailto:leadmanager81@yandex.ru?subject=Сверка%20базы%20aprovodka)** ·
💬 **[@metarebalancer](https://t.me/metarebalancer)** — ответим в рабочие дни, 10:00–19:00 МСК.
Напишите, какая у вас конфигурация и опубликован ли OData.

---

## What it does

Business data in a 1C database is closed to outside programs until someone writes a report,
an external data processor, or an exchange for it. aprovodka removes that cycle: the OData 3.0
interface is published by the platform itself, and that is enough.

Coverage: catalogs, documents, all four register kinds, the accounting register including its
virtual tables (balances, turnovers, ext-dimensions), constants, batch operations, change
tracking, and metadata discovery.

**What makes it different from the rest of the niche:**

- **No BSL, nothing installed into the configuration.** Six of the eight comparable servers
  require an extension in the database; the two that don't, don't touch live data.
- **Writes, not just reads.** Create and update documents, post and unpost, deletion marks.
- **A write-safety gate.** Three modes — `off`, `preview`, `approval` — intercepted at a single
  point in the client, so no tool can bypass it. Reversible operations return a rollback token;
  irreversible ones are labelled with the reason.
- **Curated configuration presets** for БП 3.0, УТ 11, ЗУП 3.1 and ERP 2 — key entities with
  Russian descriptions, ready query examples, and the traps people hit.

## Configuration

```json
{
  "mcpServers": {
    "aprovodka": {
      "command": "npx",
      "args": ["-y", "@theyahia/aprovodka"],
      "env": {
        "ONEC_BASE_URL": "https://server/base/odata/standard.odata",
        "ONEC_LOGIN": "user",
        "ONEC_PASSWORD": "pass"
      }
    }
  }
}
```

Set `ONEC_WRITE_MODE` to `preview` or `approval` to enable the write gate (`off` by default,
byte-for-byte the previous behaviour). Full environment reference, per-tool documentation and
the module filter are in the [monorepo README](https://github.com/theYahia/WWmcp/tree/main/servers/aprovodka).

## Where the code lives

Source, tests and releases live in the [**theYahia/WWmcp**](https://github.com/theYahia/WWmcp/tree/main/servers/aprovodka)
monorepo, alongside the shared `@theyahia/mcp-core`. This repository is the product's front page.

## Migrating from `@theyahia/1c-rest-mcp`

The package was renamed in v4.0.0 — «1С» may not be used in a product's name
(Infostart rules, § 2.2.11). The old package is frozen at v3.2.0.

- **Install:** `npx -y @theyahia/aprovodka`
- **Binary renamed:** `1c-rest-mcp` → `aprovodka`
- **Server name in the MCP handshake** is now `aprovodka` — update the key if you pinned it

Everything else is unchanged: tool names, arguments, return formats, prompts, and the `ONEC_*`
environment variables (the `1C_*` aliases still work). No config changes beyond the command.

## Trademarks

aprovodka is an independent product. It is not a product of 1C Company and is not affiliated
with it. «1С» and «1С:Предприятие» are trademarks of 1C Company; this product's name contains
neither. Interaction with the database happens only through the open OData interface the
platform itself provides.

## License

MIT

---

Telegram: [@vhodvai](https://t.me/vhodvai)

