bas-mcp-server

bas-mcp-server

Enables AI agents to interact with 1С:Enterprise and BAS ERP systems through REST and HTTP services, providing tools for searching catalogs, creating documents, and querying stock balances.

Category
Visit Server

README

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)

Функціональність (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](file:///Users/roman/Projects/my/MCP/bas-mcp/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).

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured