Skip to main content

MCP-сервер для 1С: семантический поиск, CRUD через OData, обогащение объектов по EnterpriseData схеме

Project description

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 выполнит автоматически:

  1. sync_1c_to_tab_ss("Catalog_Номенклатура", "org1", "Номенклатура") — индексирует справочник
  2. semantic_search_1c("org1", "Номенклатура", "молоко") → находит GUID товара
  3. get_xdto_schema("Document_СчетПокупателю") → узнаёт обязательные поля
  4. 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. Получает объект из 1С через OData (только заполненные поля)
  2. Ищет тип в схеме EnterpriseData (822 типа)
  3. Добавляет все стандартные поля с null для незаполненных
  4. Возвращает объект с _xdto_schema — описанием всех полей

Например: OData вернул 5 полей → после обогащения объект содержит 43 поля.

Связь с ТАБ:БИИ

tab_mcp — часть экосистемы ТАБ:Библиотека искусственного интеллекта. Семантический поиск реализован через тот же backend (tab_ss), что и функции НайтиПоСмыслуОбъектСУказаннымиСвойствамиАсинх и СпрогнозируйДинамикуИзмененияДанных внутри самой библиотеки 1С.

Лицензия

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tab_ai_mcp-0.1.1.tar.gz (83.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tab_ai_mcp-0.1.1-py3-none-any.whl (87.3 kB view details)

Uploaded Python 3

File details

Details for the file tab_ai_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: tab_ai_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 83.5 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for tab_ai_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8092a3caadf8fe55258348fc268dedbee42f8d78fee3713ff80fd6fd570f430f
MD5 736532298bcf6f1b3da85dfd73bf6b0a
BLAKE2b-256 1ed9eed4762c2a23c9b9e29dca2df39ec61e782ff30c14105518ea4f02917cee

See more details on using hashes here.

File details

Details for the file tab_ai_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tab_ai_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 87.3 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for tab_ai_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06a31c22513fa9d5c66f962a5cba8015c1f87c0257fb929e6460a5699a3b288d
MD5 2bff57f8b51907e24e474e6db6728d11
BLAKE2b-256 d728fabf406e7316728bf5799a3e46db0695c338d3818c929f729c358187de8c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page