Skip to main content
Glama
bas-mcp-server

bas-mcp-server

by qkiomat

MCP Сервер для 1С та BAS ERP (bas-mcp-server)

Цей проєкт реалізує проміжний сервіс (MCP-сервер) на базі Node.js та TypeScript для підключення AI-агентів (таких як Claude Desktop, Cursor, VS Code) до систем 1С:Підприємство та BAS ERP (Business Automation Software).

Сервер взаємодіє з 1С через вбудований REST API (OData) та кастомний HTTP-сервіс для складних операцій.


Архітектура рішення

Варіант А: stdio через SSH-тунель (однокористувацький режим)

[Локальний AI Клієнт] (Claude Desktop / Cursor)
       │
       │  (MCP Protocol через SSH-тунель stdio)
       ▼
[Middleware MCP Server] (Node.js на боці сервера 1С)
       │
       │  (REST API / OData / HTTP)
       ▼
[1С:Підприємство / BAS ERP]

Варіант Б: SSE через HTTP/HTTPS (багатокористувацький режим)

[AI Клієнт Користувача 1] ───┐
                             ├───> [Middleware MCP Server] ───> [1С / BAS ERP]
[AI Клієнт Користувача 2] ───┘      (Порт 3000 / HTTP / SSE)

Related MCP server: 1C MCP Toolkit

Функціональність (MCP Tools)

Агент отримує доступ до наступних інструментів:

  • search_catalog — пошук контрагентів, товарів (номенклатури), складів тощо.

  • get_catalog_element — зчитування всіх реквізитів обраного елемента за його GUID.

  • create_catalog_element — створення нових контрагентів або інших елементів довідників.

  • create_document — створення документів (наприклад, Замовлення клієнта, Рахунок на оплату).

  • post_document — проведення створених документів у базі.

  • get_stock_balance — отримання актуальних залишків товарів на складах.


Швидкий старт (Mock-режим для тестів)

Ви можете протестувати сервер та його інтеграцію з AI-клієнтом локально без реального підключення до бази 1С.

  1. Встановіть залежності:

    npm install
  2. Скомпілюйте TypeScript код:

    npm run build
  3. Налаштуйте конфіг для тестування (вже містить ONEC_USE_MOCK=true у .env файлі за замовчуванням):

    cp .env.example .env
  4. Запустіть та протестуйте MCP-сервер у режимі інспектора (буде запущено як SSE сервер):

    npm run inspector

Налаштування підключення до реальної 1С / BAS

Крок 1. Налаштування на боці 1С

  1. Увімкніть OData: Для роботи довідників увімкніть стандартний REST-інтерфейс 1С. Це можна зробити кодом:

    СистемаИмпортаЭкспортаМакетаДанных.УстановитьИспользованиеRESTИнтерфейса(Истина);
  2. Встановіть Розширення для HTTP-сервісу: Для проведення документів та залишків додайте розширення конфігурації. Інструкція та готовий BSL-код знаходяться в докумені: docs/onec_http_service.md.

Крок 2. Конфігурація Middleware (.env)

Відредагуйте файл .env:

ONEC_URL=http://your-1c-server/base-name
ONEC_USER=McpAgent
ONEC_PASSWORD=agent-password
ONEC_USE_ODATA=true
ONEC_USE_MOCK=false

# Налаштування транспорту та безпеки
MCP_TRANSPORT=sse
PORT=3000
MCP_API_KEY=your-secure-mcp-token-here

Підключення до AI Клієнтів

Варіант 1: Через SSE / HTTP (Багатокористувацький режим)

Додайте наступний блок у конфіг Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "bas-mcp-sse": {
      "url": "http://your-server-ip:3000/sse?apiKey=your-secure-mcp-token-here"
    }
  }
}

Варіант 2: Через SSH-тунель (Stdio — для одного розробника)

Якщо ви не хочете відкривати порти в інтернет, ви можете використовувати SSH-тунель. Для цього у .env вкажіть MCP_TRANSPORT=stdio. Налаштуйте безпарольний доступ по SSH за допомогою ключів до вашого сервера (ssh-copy-id user@your-server-ip), а потім додайте конфіг у локальний Claude Desktop:

{
  "mcpServers": {
    "bas-mcp-stdio": {
      "command": "ssh",
      "args": [
        "-T",
        "user@your-server-ip",
        "node /path/to/your/project/bas-mcp/build/index.js"
      ]
    }
  }
}

Клієнт автоматично запустить процес на сервері через SSH та буде спілкуватися з ним за допомогою стандартних потоків (stdio).

Available Tools

6 tools
create_catalog_elementC

Створення нового елемента у довіднику 1С/BAS

Inputs: fields (required), catalog_name (required).

create_documentA

Створення нового документа в 1С/BAS (наприклад, СчетНаОплатуПокупателю, ЗаказКлиента)

Inputs: fields (required), document_name (required).

get_catalog_elementA

Отримання повних реквізитів елемента довідника за його Ref_Key (GUID)

Inputs: id (required), catalog_name (required).

get_stock_balanceA

Отримання поточних залишків товарів на складах 1С/BAS

Inputs: nomenclature_id (required), warehouse_id.

post_documentB

Проведення документа в 1С/BAS за його GUID (Ref_Key)

Inputs: doc_id (required), document_name (required).

search_catalogC

Пошук елементів у довідниках 1С/BAS (наприклад, Контрагенты, Номенклатура, Склады, ФизическиеЛица)

Inputs: catalog_name (required), query, filter.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action: search and get for catalogs, create for catalogs and documents, post for documents, and stock balance. No ambiguity between them.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (search_catalog, get_catalog_element, create_catalog_element, create_document, post_document, get_stock_balance).

    Tool Count5/5

    With 6 tools, the server is well-scoped for BAS/1C integration, covering essential operations without unnecessary bloat.

    Completeness3/5

    Catalogs have search/get/create but lack update and delete operations. Documents support create and post but no read/list capability, leaving notable lifecycle gaps.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      A
      maintenance
      Integrates AI agents with 1C:Enterprise databases via MCP and REST API, supporting a built-in HTTP server (no Python required) or a Python proxy mode.
      350
      GPL 3.0
    • F
      license
      Not graded
      quality
      F
      maintenance
      Enables Claude to interact with 1C:Enterprise via OData REST API, allowing natural language queries for inventory, orders, prices, and order creation.
      -
    • A
      license
      A
      quality
      D
      maintenance
      Bridges AI agents to 1C:Enterprise via OData, enabling natural language queries of business entities like counterparties and invoices with read-only access.
      8
      67 npm
      MIT