Skip to main content
Glama
r-khusiainov

mcp-bsl-context-desktop-bridge

by r-khusiainov
README.md
# Синтакс-помощник 1С для Claude Desktop (mcp-bsl-context)

Расширение Claude Desktop (`.mcpb`), которое подключает Claude к серверу
[mcp-bsl-context](https://github.com/alkoleft/mcp-bsl-platform-context) — справке по API платформы
1С:Предприятие, собранной из файлов платформы (`shcntx_ru.hbk`).

Внутри — мост stdio → Streamable HTTP. Node.js на компьютер ставить не нужно: он входит в Claude Desktop.

## Что получает Claude

Инструменты сервера: `search`, `info`, `getMember`, `getMembers`, `getConstructors`.

Вместе с ними — правила работы со справкой (передаются Claude при подключении):

- не писать вызовы платформы по памяти, сначала проверять сигнатуру;
- не использовать элементы с пометкой «Не рекомендуется использовать», брать рекомендуемую замену;
- учитывать раздел «Доступность» при выборе `&НаКлиенте` / `&НаСервере`;
- различать управляемые и обычные формы и не переносить факты со страниц одних на другие;
- типы «Расширение … формы для …» искать по словам через пробел (их имена состоят из нескольких слов);
- глобальные события искать через тип `ГлобальныйКонтекст`, события объектов — через тип.
- отделять сказанное в справке от собственных знаний о платформе, в том числе утверждения о поведении платформы
  (ошибки, ограничения, версии); имена свойств и методов брать только из ответа инструментов.

Пометки «не рекомендуется», доступность, события, системные перечисления и одноимённые типы
поддерживаются сервером начиная с изменений из
[PR #27](https://github.com/alkoleft/mcp-bsl-platform-context/pull/27).

## Требования

- Сервер mcp-bsl-context, запущенный в режиме Streamable HTTP:
  ```bash
  java -jar mcp-bsl-context.jar --mode streamable --port <порт> --platform-path <каталог платформы>
  ```
  Режим `streamable` добавлен в
  [PR #22](https://github.com/alkoleft/mcp-bsl-platform-context/pull/22).
- Claude Desktop с поддержкой расширений.

## Установка

1. Скачайте `mcp-bsl-context-desktop-bridge-<версия>.mcpb` из раздела Releases или соберите сами (ниже).
2. Claude Desktop → Настройки → Расширения → перетащите файл (или откройте его двойным щелчком).
3. В поле «Адрес MCP-сервера» введите адрес вашего сервера, например `http://<сервер>:<порт>/mcp`.
4. Начните новый чат.

Адрес по умолчанию не задан: без него инструменты видны, но при вызове возвращают ошибку
«не указан адрес сервера».

Соединение по `http://` не шифруется — используйте его только во внутренней сети.

## Сборка

Нужен Node.js 18+.

```bash
bash build.sh
```

Результат — `mcp-bsl-context-desktop-bridge-<версия>.mcpb` в корне репозитория.

## Устройство

| Файл | Назначение |
|---|---|
| `manifest.json` | манифест MCPB 0.3; единственный источник версии; поле настройки `server_url` |
| `src/index.js` | мост: правила для Claude, переподключение после перезапуска сервера, понятные ошибки |
| `src/tools.snapshot.json` | список инструментов на случай, если сервер недоступен при запуске Claude Desktop |
| `build.sh` | сборка `.mcpb` (esbuild + `@anthropic-ai/mcpb`) |

Адрес сервера мост берёт из переменной окружения `SYNTAX_HELPER_URL`; Claude Desktop задаёт её из
настройки расширения.

## История версий

- 1.0.0 — первая версия.
- 1.0.1 — правило: отделять справку от собственных знаний (включая утверждения о поведении платформы),
  имена — только из ответа инструментов; типы «Расширение … формы для …» искать по словам через пробел
  и не переносить на управляемую форму факты со страниц типов обычной формы.

## Лицензия

MIT