# 1c Bsp Context

> MCP server from phill752/1c-bsp-context.

- **Type:** MCP server
- **Install:** `agentstack add mcp-phill752-1c-bsp-context`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [phill752](https://agentstack.voostack.com/s/phill752)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [phill752](https://github.com/phill752)
- **Source:** https://github.com/phill752/1c-bsp-context

## Install

```sh
agentstack add mcp-phill752-1c-bsp-context
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 1c-bsp-context

[](https://modelcontextprotocol.io)
[](https://kotlinlang.org)
[](https://spring.io/projects/spring-boot)
[](LICENSE)
[](https://github.com/phill752/1c-bsp-context/actions/workflows/build.yml)

MCP-сервер, предоставляющий AI-агентам **точный и проверяемый** справочник по API
[Библиотеки стандартных подсистем (БСП) 1С:Предприятие 8.3](https://its.1c.ru/db/bspdoc).

Сервер парсит выгрузку конфигурации БСП в формате EDT (XML) и индексирует все общие модули
(процедуры, функции, параметры, описания, привязки к подсистемам), а затем отвечает на
запросы моделей через **6 MCP-инструментов**.

## Архитектура

```
  LLM (ChatGPT, Claude, Cascade, Kilo Code)
                    │
              MCP-клиент (SSE / stdio)
                    │
           1c-bsp-context (Kotlin + Spring AI)
                    │
         EDT-выгрузка БСП (CommonModules/ + Subsystems/)
```

При старте сервер индексирует ~800 модулей и ~20 000 процедур в памяти за ` для сверки
- **Compact-режим** — описание + параметры + сигнатура без исходного кода (экономия ~80% токенов)
- **Явное отсутствие данных** — `_нет описания_` вместо пустых полей, чтобы модель не додумывала
- **Фильтрация АПК** — служебные пометки `АПК:*` исключаются из описания, но сохраняются в raw docblock
- **In-memory индекс** — ~800 модулей / ~20 000 процедур за  `SSE_ADDRESS=0.0.0.0` нужен в Docker, чтобы сервер слушал внутри контейнера. По умолчанию (без Docker) сервер доступен только на `127.0.0.1`.

### Docker Compose

```yaml
services:
  bsp-context:
    build: /path/to/mcp-bsp
    ports:
      - "127.0.0.1:8085:8085"
    volumes:
      - /path/to/ssl-edt-export:/app/bsp:ro
    environment:
      - BSP_SOURCE_PATH=/app/bsp
      - SSE_ADDRESS=0.0.0.0
    restart: unless-stopped
```

## Источник данных

Ожидается каталог выгрузки конфигурации 1С в формате **EDT**:

```
ssl/
  CommonModules/
    АдресныйКлассификатор/
      Ext/Module.bsl
    АдресныйКлассификатор.xml
    ...
  Subsystems/
    СтандартныеПодсистемы/
      Subsystems/
        ЗагрузкаДанныхИзФайла.xml
        ...
```

При старте сервер:

1. Рекурсивно обходит `CommonModules/` — для каждого модуля парсит `.xml` (метаданные)
   и `Ext/Module.bsl` (исходный код)
2. Рекурсивно обходит `Subsystems/` — для каждой подсистемы извлекает синоним, дочерние
   подсистемы и список модулей из секции ``
3. Строит обратную карту `moduleName → subsystemName`
4. Индексирует всё в памяти

## MCP-инструменты

| Инструмент | Назначение | Параметры |
|---|---|---|
| `search_bsp_api` | Поиск процедур/функций по термину и/или подсистеме | `query`, `subsystem?`, `limit?` |
| `get_bsp_procedure_info` | Полная информация о процедуре: описание, параметры, типы, возвращаемое значение, примеры, предупреждения, исходный код, сырой docblock | `name`, `module?`, `compact?` |
| `get_bsp_module_info` | Информация об общем модуле + список всех экспортных процедур/функций | `moduleName`, `nameFilter?` |
| `list_bsp_procedures` | Лёгкий список процедур модуля: имя, тип, сигнатура, назначение, источник. Без исходного кода и параметров | `moduleName`, `nameFilter?` |
| `get_bsp_subsystem_overview` | Обзор подсистемы: модули и ключевые процедуры каждой | `subsystemName` |
| `get_bsp_usage_example` | Готовый фрагмент BSL-кода с вызовом процедуры и параметрами-заглушками | `procedureName`, `moduleName?` |

### Compact-режим (`get_bsp_procedure_info`)

Параметр `compact=true` отключает вывод исходного кода, примеров, предупреждений и синтетического примера вызова.
Остаётся: описание, параметры с типами, сигнатура, сырой docblock. Экономит ~80% токенов.

### Фильтрация по имени (`get_bsp_module_info`, `list_bsp_procedures`)

Параметр `nameFilter` фильтрует процедуры по подстроке в имени (case-insensitive).
Например, `nameFilter="Реквизит"` вернёт только процедуры с «Реквизит» в имени.

### Проверяемость

Каждый результат `get_bsp_procedure_info` и `list_bsp_procedures` содержит:
- **Источник** — путь к файлу и номер строки (`CommonModules/ОбщегоНазначения/Ext/Module.bsl:64`)
- **Сырой docblock** — оригинальные строки `// ...` в блоке `` для сверки с исходником

### Дисциплина отсутствия данных

- Параметр без описания в docblock → `_описание отсутствует в исходнике_`
- Процедура без docblock → `_нет описания_`
- Служебные пометки `АПК:*` исключаются из описания, но сохраняются в сыром docblock

## Подключение в MCP-клиентах

### Cascade (Windsurf) — `~/.codeium/windsurf/mcp_config.json`

```json
"1c-bsp-context": {
  "url": "http://localhost:8085/sse",
  "disabled": false
}
```

### Kilo Code — `~/.config/Code/User/globalStorage/kilocode.kilo-code/settings/mcp_settings.json`

```json
"1c-bsp-context": {
  "autoApprove": [],
  "disabled": false,
  "timeout": 60,
  "type": "sse",
  "url": "http://localhost:8085/sse"
}
```

### Claude Desktop — `claude_desktop_config.json`

```json
"1c-bsp-context": {
  "url": "http://localhost:8085/sse"
}
```

## Структура проекта

```
mcp-bsp/
├── build.gradle.kts
├── settings.gradle.kts
├── gradle/libs.versions.toml
├── Dockerfile
├── README.md
├── LICENSE
├── CHANGELOG.md
└── src/main/
    ├── kotlin/ru/bsp/context/
    │   ├── McpServerApplication.kt              # entry point (--mode, --port, --bsp-path)
    │   ├── business/
    │   │   ├── model/                           # BspModule, BspProcedure, BspParameter, BspSubsystem
    │   │   └── services/
    │   │       └── BspFormatterService.kt       # Markdown-форматирование результатов
    │   ├── infrastructure/
    │   │   ├── configuration/
    │   │   │   └── BspContextConfiguration.kt
    │   │   ├── edt/
    │   │   │   ├── EdtXmlParser.kt              # парсинг CommonModule XML
    │   │   │   ├── SubsystemParser.kt           # парсинг Subsystem XML
    │   │   │   └── BslParser.kt                 # парсинг Module.bsl + docblock
    │   │   ├── persistent/
    │   │   │   ├── BspContextLoader.kt          # обход файлов + построение индекса
    │   │   │   └── BspContextStorage.kt         # in-memory хранилище
    │   │   └── search/
    │   │       ├── BspSearchEngine.kt           # поиск со скорингом
    │   │       └── SearchHit.kt                 # модели результатов
    │   └── presentation/
    │       └── mcp/
    │           ├── BspContextMcpController.kt   # 6 @Tool-методов
    │           └── McpConfiguration.kt          # Spring AI ToolCallbackProvider
    └── resources/
        ├── application.yml
        ├── application-sse.yml
        ├── application-stdio.yml
        └── logback-mcp.xml
```

## Юридическая оговорка

Репозиторий не содержит БСП или исходный код конфигураций 1С. Пользователь самостоятельно предоставляет локальную выгрузку БСП и несёт ответственность за соблюдение условий её лицензирования. Лицензия MIT распространяется только на код данного MCP-сервера.

## Лицензия

[MIT](LICENSE)

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [phill752](https://github.com/phill752)
- **Source:** [phill752/1c-bsp-context](https://github.com/phill752/1c-bsp-context)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-phill752-1c-bsp-context
- Seller: https://agentstack.voostack.com/s/phill752
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
