Install
$ agentstack add mcp-phill752-1c-bsp-context ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →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.
Сервер парсит выгрузку конфигурации БСП в формате 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
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
...
При старте сервер:
- Рекурсивно обходит
CommonModules/— для каждого модуля парсит.xml(метаданные)
и Ext/Module.bsl (исходный код)
- Рекурсивно обходит
Subsystems/— для каждой подсистемы извлекает синоним, дочерние
подсистемы и список модулей из секции ``
- Строит обратную карту
moduleName → subsystemName - Индексирует всё в памяти
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
"1c-bsp-context": {
"url": "http://localhost:8085/sse",
"disabled": false
}
Kilo Code — ~/.config/Code/User/globalStorage/kilocode.kilo-code/settings/mcp_settings.json
"1c-bsp-context": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "sse",
"url": "http://localhost:8085/sse"
}
Claude Desktop — claude_desktop_config.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
- Source: phill752/1c-bsp-context
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.