Skip to content

Commit 7fc3bd4

Browse files
committed
Merge branch 'release/0.2.2'
2 parents a6c2e64 + cd41304 commit 7fc3bd4

File tree

60 files changed

+2639
-2066
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+2639
-2066
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -83,31 +83,10 @@ jobs:
8383
body: |
8484
## 🚀 MCP BSL Context Server ${{ steps.tag_version.outputs.VERSION }}
8585
86-
### 📦 Artifacts
87-
- JAR artifact published to GitHub Packages
88-
- Docker images available for both SSE and STDIO modes
89-
9086
### 🔄 Changes
9187
- Automatic release from tag ${{ steps.tag_version.outputs.VERSION }}
9288
93-
### 📥 Installation
94-
```bash
95-
# Using GitHub Packages
96-
gradle dependency: 'ru.alkoleft:mcp-bsl-context:${{ steps.tag_version.outputs.VERSION_NUMBER }}'
97-
98-
# Using Docker
99-
docker pull ghcr.io/${{ github.repository }}:${{ steps.tag_version.outputs.VERSION_NUMBER }}
100-
```
101-
102-
### 🏃‍♂️ Usage
103-
```bash
104-
# SSE Mode
105-
java -jar mcp-bsl-context-${{ steps.tag_version.outputs.VERSION_NUMBER }}.jar --server.port=3000
106-
107-
# STDIO Mode
108-
java -jar mcp-bsl-context-${{ steps.tag_version.outputs.VERSION_NUMBER }}.jar --mcp.transport=stdio
109-
```
110-
draft: false
89+
draft: true
11190
prerelease: false
11291
files: |
11392
./build/libs/mcp-bsl-context-${{ steps.tag_version.outputs.VERSION_NUMBER }}.jar

README.md

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
# MCP сервер для API платформы 1С Предприятие
1+
# MCP сервер для AI-ассистентов (справка по синтаксису и объектной модели 1С:Предприятие)
22

3-
**MCP (Model Context Protocol) сервер** предоставляющий стандартизированный доступ к API платформы 1С:Предприятие для AI ассистентов, таких как Claude Desktop и Cursor IDE.
3+
**MCP (Model Context Protocol) сервер** — это инструмент для интеграции с AI-ассистентами (например, Claude Desktop, Cursor IDE), предоставляющий быстрый и стандартизированный доступ к справочной информации по встроенным функциям, типам данных, методам и свойствам платформы 1С:Предприятие. MCP сервер позволяет AI-ассистентам работать с "Синтаксис-помощником" 1С в интерактивном режиме.
44

55
## Обзор
66

7-
Приложение `mcp-bsl-context` предназначено для разработчиков, работающих с языком BSL (Business Specific Language) и экосистемой 1С:Предприятие. Оно предоставляет интерактивный MCP сервер, который позволяет AI ассистентам выполнять поиск по документации платформы и получать детальную информацию об элементах API в реальном времени.
7+
Приложение `mcp-bsl-context` предназначено исключительно для интеграции с AI-ассистентами, чтобы они могли выполнять поиск по справке платформы 1С:Предприятие и получать детальную информацию о встроенных функциях, типах, методах и свойствах (аналогично работе с "Синтаксис-помощником" или официальной документацией 1С).
88

99
### 🤖 Возможности MCP сервера
1010

11-
- **Поиск по API платформы** - нечеткий поиск по глобальным методам, свойствам и типам данных
12-
- **Детальная информация** - получение полной информации об элементах API с сигнатурами и описаниями
13-
- **Информация об элементах типов** - получение методов и свойств конкретных типов данных
14-
- **Конструкторы типов** - информация о способах создания объектов
15-
- **Интеграция с AI** - стандартизированный доступ для AI ассистентов через MCP протокол
11+
- **Поиск по справке платформы** нечеткий поиск по встроенным функциям, методам, свойствам и типам данных
12+
- **Детальная справка** получение подробной информации о функциях, методах, свойствах и типах, включая сигнатуры и описания
13+
- **Навигация по объектной модели** — просмотр методов и свойств конкретных типов данных
14+
- **Информация о конструкторах** — способы создания объектов платформы 1С
15+
- **Интеграция с AI** стандартизированный протокол MCP для взаимодействия с AI-ассистентами
1616

1717
Проект использует Spring Boot и Spring AI для создания MCP сервера на базе Kotlin.
1818

@@ -52,18 +52,29 @@
5252
### Запуск MCP сервера
5353

5454
```bash
55-
java -jar mcp-bsl-context-<версия>.jar --platform-path <путь_к_платформе_1С>
55+
java -jar mcp-bsl-context-<версия>.jar [опции]
5656
```
5757

58-
**Параметры:**
58+
**Опции:**
5959

60-
- `--platform-path` (обязательный) - путь к каталогу установки 1С Предприятия
60+
- `--platform-path`, `-p` - путь к каталогу установки 1С Предприятия
61+
- `--help`, `-h` - показать справку по использованию
6162
- `--verbose` - включить отладочное логирование
6263

63-
**Пример:**
64+
**Примеры:**
6465

6566
```bash
67+
# Основной способ запуска
6668
java -jar mcp-bsl-context-0.2.0.jar --platform-path "/opt/1cv8/x86_64/8.3.25.1257"
69+
70+
# Сокращенная форма
71+
java -jar mcp-bsl-context-0.2.0.jar -p "/opt/1cv8/x86_64/8.3.25.1257"
72+
73+
# Показать справку
74+
java -jar mcp-bsl-context-0.2.0.jar --help
75+
76+
# С дополнительными Spring Boot параметрами
77+
java -jar mcp-bsl-context-0.2.0.jar --platform-path "/opt/1cv8/x86_64/8.3.25.1257" --server.port=8080
6778
```
6879

6980
### Возможности MCP сервера

build.gradle.kts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ plugins {
1313
}
1414

1515
group = "io.github.alkoleft"
16-
version = "0.2.0-SNAPSHOT"
16+
version = "0.2.2-SNAPSHOT"
1717

1818
gitVersioning.apply {
1919
refs {
@@ -37,6 +37,12 @@ kotlin {
3737
}
3838
}
3939

40+
java {
41+
toolchain {
42+
languageVersion = JavaLanguageVersion.of(17)
43+
}
44+
}
45+
4046
repositories {
4147
mavenCentral()
4248
mavenLocal()
@@ -98,7 +104,7 @@ tasks.jar {
98104
tasks.bootJar {
99105
enabled = true
100106
archiveClassifier.set("")
101-
mainClass.set("ru.alkoleft.context.platform.McpServerApplication")
107+
mainClass.set("ru.alkoleft.context.McpServerApplicationKt")
102108
}
103109

104110
// Исправление зависимостей для задач распространения

documentation/MCP_SERVER_USAGE.md

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
1-
# MCP сервер для API платформы 1С Предприятие
1+
# MCP сервер для AI-ассистентов (справка по синтаксису и объектной модели 1С:Предприятие)
22

33
## Описание
44

5-
MCP (Model Context Protocol) сервер предоставляет стандартизированный доступ к API платформы 1С Предприятие для AI ассистентов. Сервер поддерживает поиск по глобальным методам, свойствам и типам данных платформы через 5 специализированных инструментов.
5+
MCP (Model Context Protocol) сервер предназначен исключительно для интеграции с AI-ассистентами. Он предоставляет стандартизированный доступ к справочной информации по встроенным функциям, типам, методам и свойствам платформы 1С:Предприятие (аналогично "Синтаксис-помощнику"). Сервер поддерживает поиск и получение справки по объектной модели и синтаксису платформы через 5 специализированных инструментов.
66

77
## Возможности
88

99
### Tool: search
10-
- **Назначение** - поиск по API платформы 1С Предприятие
10+
- **Назначение** поиск по справке платформы 1С:Предприятие (встроенные функции, методы, свойства, типы данных)
1111
- **Параметры**:
12-
- `query` (обязательный) - поисковый запрос
13-
- `type` (опциональный) - тип элемента (`method`, `property`, `type`)
14-
- `limit` (опциональный) - максимальное количество результатов (1-50, по умолчанию 10)
12+
- `query` (обязательный) поисковый запрос
13+
- `type` (опциональный) тип элемента (`method`, `property`, `type`)
14+
- `limit` (опциональный) максимальное количество результатов (1-50, по умолчанию 10)
1515

1616
### Tool: info
17-
- **Назначение** - получение детальной информации об элементе API
17+
- **Назначение** получение детальной справки об элементе платформы 1С (функция, метод, свойство, тип)
1818
- **Параметры**:
19-
- `name` (обязательный) - имя элемента API
20-
- `type` (опциональный) - тип элемента (`method`, `property`, `type`)
19+
- `name` (обязательный) имя элемента
20+
- `type` (опциональный) тип элемента (`method`, `property`, `type`)
2121

2222
### Tool: getMember
23-
- **Назначение** - получение информации о методе или свойстве конкретного типа
23+
- **Назначение** получение информации о методе или свойстве конкретного типа платформы 1С
2424
- **Параметры**:
25-
- `typeName` (обязательный) - имя типа 1С (например, "СправочникСсылка", "ДокументОбъект")
26-
- `memberName` (обязательный) - имя метода или свойства типа
25+
- `typeName` (обязательный) имя типа 1С (например, "СправочникСсылка", "ДокументОбъект")
26+
- `memberName` (обязательный) имя метода или свойства типа
2727

2828
### Tool: getMembers
29-
- **Назначение** - получение полного списка всех методов и свойств для указанного типа
29+
- **Назначение** получение полного списка всех методов и свойств для указанного типа платформы 1С
3030
- **Параметры**:
31-
- `typeName` (обязательный) - имя типа 1С для получения его элементов
31+
- `typeName` (обязательный) имя типа 1С для получения его элементов
3232

3333
### Tool: getConstructors
34-
- **Назначение** - получение списка конструкторов для указанного типа
34+
- **Назначение** получение списка способов создания объектов (конструкторов) для указанного типа платформы 1С
3535
- **Параметры**:
36-
- `typeName` (обязательный) - имя типа данных 1С (например, "Массив", "Структура", "ТаблицаЗначений")
36+
- `typeName` (обязательный) имя типа данных 1С (например, "Массив", "Структура", "ТаблицаЗначений")
3737

3838
## Алгоритм поиска
3939

@@ -63,8 +63,23 @@ MCP (Model Context Protocol) сервер предоставляет станд
6363
java -jar build/libs/mcp-bsl-context.jar --platform-path /path/to/1c/platform
6464
```
6565

66+
#### Использование переменных окружения
67+
68+
Вместо передачи параметра `--platform-path` можно задать переменную окружения:
69+
- `PLATFORM_CONTEXT_PATH` — путь к каталогу установки 1С Предприятия (аналогично `--platform-path`)
70+
71+
Для управления логированием можно задать переменную окружения:
72+
- `LOG_FILE` — путь к файлу для логов сервера (по умолчанию `mcp-server.log` в рабочей директории)
73+
74+
Пример запуска с переменными окружения:
75+
76+
```bash
77+
PLATFORM_CONTEXT_PATH="/opt/1cv8/x86_64/8.3.25.1257" LOG_FILE="/tmp/mcp-server.log" \
78+
java -jar build/libs/mcp-bsl-context.jar
79+
```
80+
6681
### Параметры запуска
67-
- `--platform-path` (обязательный) - путь к каталогу установки 1С Предприятия
82+
- `--platform-path` - путь к каталогу установки 1С Предприятия
6883
- `--verbose` - включить отладочное логирование
6984
- `--help` - показать справку
7085

gradle/libs.versions.toml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[versions]
22
kotlin = "2.1.20"
3+
kotlin-logging = "7.0.3"
34
springBoot = "3.5.0"
45
springDependencyManagement = "1.1.7"
56
gitVersioning = "6.4.4"
@@ -13,6 +14,7 @@ antlr = "4.9.3"
1314
junit-bom = "5.11.4"
1415
assertj = "3.8.0"
1516
slf4j-log4j12 = "1.7.30"
17+
kotlinx-cli = "0.3.6"
1618

1719
springAi = "1.0.0"
1820
ktlint = "1.4.1"
@@ -23,6 +25,7 @@ jacoco = "0.8.11"
2325
kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect" }
2426
kotlin-stdlib-jdk8 = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8" }
2527
kotlin-test-junit5 = { group = "org.jetbrains.kotlin", name = "kotlin-test-junit5" }
28+
kotlin-logging-jvm = { group = "io.github.oshai", name = "kotlin-logging-jvm", version.ref = "kotlin-logging" }
2629

2730
# Spring Boot
2831
spring-boot-starter = { group = "org.springframework.boot", name = "spring-boot-starter" }
@@ -47,6 +50,9 @@ janino = { group = "org.codehaus.janino", name = "janino", version.ref = "janino
4750
# Reactor
4851
reactor-core = { group = "io.projectreactor", name = "reactor-core", version.ref = "reactor-core" }
4952

53+
# Kotlinx CLI
54+
kotlinx-cli = { group = "org.jetbrains.kotlinx", name = "kotlinx-cli", version.ref = "kotlinx-cli" }
55+
5056
# ANTLR
5157
antlr4-runtime = { group = "org.antlr", name = "antlr4-runtime", version.ref = "antlr" }
5258
antlr4 = { group = "org.antlr", name = "antlr4", version.ref = "antlr" }
@@ -62,7 +68,9 @@ assertj-core = { group = "org.assertj", name = "assertj-core", version.ref = "as
6268
# Kotlin bundle
6369
kotlin = [
6470
"kotlin-reflect",
65-
"kotlin-stdlib-jdk8"
71+
"kotlin-stdlib-jdk8",
72+
"kotlin-logging-jvm",
73+
"kotlinx-cli"
6674
]
6775

6876
# Jackson bundle

0 commit comments

Comments
 (0)