tab-ai-mcp (tab_mcp)
MCP-коннектор к 1С:Предприятие — компонент архитектуры ТАБ:Библиотека искусственного интеллекта.
Архитектура
Claude / MCP-клиент
│
▼
tab_mcp ──── OData ────► База 1С (+ БИИ)
│
└─── HTTP ──────────► tab_ss (семантический поиск, прогнозирование, аномалии)
│
└──────────────► tab_ca (мультиагент LLM)
│
└──► LLM провайдеры
(openai, deepseek, gigachat…)
- tab_mcp — этот сервер. MCP-коннектор к 1С и к tab_ss
- tab_ss — сервис семантического поиска и аналитики (on-prem или облако)
- tab_ca — мультиагент LLM, внутри tab_ss
- БИИ — ТАБ:Библиотека ИИ, расширение 1С:Предприятие
Возможности
- CRUD объектов 1С — чтение, создание, изменение, удаление через OData REST API
- Семантический поиск — найти "молоко пастеризованное" без точного совпадения строк (через tab_ss)
- Обогащение объектов — максимально полный объект по стандарту EnterpriseData (XDTO, 822 типа)
- Прогнозирование — динамика продаж и других временных рядов (через tab_ss)
- Проверка документов — наличие подписи и печати на сканах (через tab_ss)
Установка
# Рекомендуется: uvx (не требует установки Python окружения)
uvx tab-ai-mcp
# Или через pip
pip install tab-ai-mcp
tab-ai-mcp
Для
uvxнуженuv:curl -LsSf https://astral.sh/uv/install.sh | sh
Настройка Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"1c": {
"command": "uvx",
"args": ["tab-ai-mcp"],
"env": {
"ONEC_BASE_URL": "http://ваш-сервер/имя-базы",
"ONEC_USERNAME": "ваш-логин",
"ONEC_PASSWORD": "ваш-пароль",
"ONEC_ORGANIZATION": "имя-организации-в-tab_ss",
"TAB_SS_API_KEY": "ваш-ключ-tab_ss"
}
}
}
}
ONEC_ORGANIZATION— ключевой параметр. Каждая 1С база с БИИ имеет свой идентификатор организации в tab_ss. После его задания все инструменты семантического поиска работают без явного указания организации.
Переменные окружения
| Переменная | Описание | По умолчанию |
|---|---|---|
ONEC_BASE_URL |
URL базы 1С, например http://server/myapp |
— (обязательно) |
ONEC_USERNAME |
Логин пользователя 1С | — |
ONEC_PASSWORD |
Пароль пользователя 1С | — |
ONEC_ORGANIZATION |
Идентификатор организации в tab_ss (разрез данных) | — (рекомендуется) |
TAB_SS_URL |
URL сервиса tab_ss (on-prem или облако) | облако Railway |
TAB_SS_API_KEY |
Ключ доступа к tab_ss | встроенный ключ |
Обратная совместимость: принимаются также
TAB_AI_BASE_URLиTAB_AI_API_KEY.
Если
ONEC_ORGANIZATIONне задан, его нужно передавать в каждом вызовеsync_1c_to_tab_ssиsemantic_search_1c.
Требование к 1С: опубликованный OData сервис. Конфигуратор → Администрирование → Публикация на веб-сервере → "Опубликовать стандартный интерфейс OData"
Инструменты (MCP Tools)
OData → База 1С
| Инструмент | Описание |
|---|---|
list_1c_types() |
Список всех типов объектов базы (каталоги, документы, регистры) |
query_1c(entity_type, filter, select, top, skip) |
OData запрос с фильтрами |
get_1c_object(entity_type, ref_id) |
Объект по GUID с XDTO обогащением |
create_1c_object(entity_type, data) |
Создать объект |
update_1c_object(entity_type, ref_id, data) |
Обновить объект |
delete_1c_object(entity_type, ref_id) |
Удалить объект |
get_xdto_schema(type_name) |
Схема полей типа по стандарту EnterpriseData |
list_xdto_covered_types() |
Типы, покрытые XDTO обогащением |
tab_ss — семантический поиск и аналитика
| Инструмент | Описание |
|---|---|
sync_1c_to_tab_ss(entity_type, organization, object_type_label) |
Синхронизировать данные 1С → tab_ss |
semantic_search_1c(organization, object_type_label, search_text) |
Поиск по смыслу |
semantic_search_multi_property(organization, object_type_label, search_properties) |
Поиск по нескольким свойствам |
set_tab_ss_provider_token(provider, token) |
Настроить токен LLM провайдера в tab_ss |
forecast_1c_data(table_data, months_count) |
Прогноз временных рядов |
verify_document_signature(document_base64) |
Проверка подписи и печати |
Примеры
"Создай счёт на оплату на молоко"
Claude выполнит автоматически:
sync_1c_to_tab_ss("Catalog_Номенклатура", "org1", "Номенклатура")— индексирует справочникsemantic_search_1c("org1", "Номенклатура", "молоко")→ находит GUID товараget_xdto_schema("Document_СчетПокупателю")→ узнаёт обязательные поляcreate_1c_object("Document_СчетПокупателю", {...})→ создаёт документ
"Покажи данные контрагента Ромашка"
query_1c("Catalog_Контрагенты", filter="contains(Наименование,'Ромашка')")
→ получаем Ref_Key
get_1c_object("Catalog_Контрагенты", ref_id)
→ полный объект со всеми полями EnterpriseData
OData фильтры
"Наименование eq 'Молоко'"
"contains(Наименование,'Мол')"
"ДатаДокумента ge datetime'2024-01-01T00:00:00'"
"Контрагент_Key eq guid'12345678-1234-1234-1234-123456789012'"
XDTO обогащение
При вызове get_1c_object сервер:
- Получает объект из 1С через OData (только заполненные поля)
- Ищет тип в схеме EnterpriseData (822 типа)
- Добавляет все стандартные поля с
nullдля незаполненных - Возвращает объект с
_xdto_schema— описанием всех полей
Например: OData вернул 5 полей → после обогащения объект содержит 43 поля.
Связь с ТАБ:БИИ
tab_mcp — часть экосистемы ТАБ:Библиотека искусственного интеллекта.
Семантический поиск реализован через тот же backend (tab_ss), что и функции
НайтиПоСмыслуОбъектСУказаннымиСвойствамиАсинх и СпрогнозируйДинамикуИзмененияДанных
внутри самой библиотеки 1С.
Лицензия
MIT
Metadata
Release files for tab-ai-mcp 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tab_ai_mcp-0.1.1.tar.gz | 83.5 kB | Without provenance | Details for tab_ai_mcp-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tab_ai_mcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for tab_ai_mcp-0.1.1-py3-none-any.whl |
Total release size: 170.8 kB
Release files / tab_ai_mcp-0.1.1.tar.gz
| Download URL | tab_ai_mcp-0.1.1.tar.gz |
|---|---|
| Size | 83.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8092a3caadf8fe55258348fc268dedbee42f8d78fee3713ff80fd6fd570f430f
|
|
BLAKE2b-256 checksum How to use checksums |
1ed9eed4762c2a23c9b9e29dca2df39ec61e782ff30c14105518ea4f02917cee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / tab_ai_mcp-0.1.1-py3-none-any.whl
| Download URL | tab_ai_mcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 87.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06a31c22513fa9d5c66f962a5cba8015c1f87c0257fb929e6460a5699a3b288d
|
|
BLAKE2b-256 checksum How to use checksums |
d728fabf406e7316728bf5799a3e46db0695c338d3818c929f729c358187de8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for tab-ai-mcp 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.