feenlace/mcp-1c
GitHub: feenlace/mcp-1c
将 AI 编程助手与 1C:Enterprise 数据库集成的 MCP 服务器,让 AI 基于真实配置元数据生成准确的 BSL 代码。
Stars: 116 | Forks: 25
# mcp-1c
[](https://safeskill.dev/scan/feenlace-mcp-1c)
用于将 AI 助手与 1С:Предприятие 集成的 MCP 服务器。
AI 能够读取您 1С 配置的元数据,并生成准确的 BSL 代码。兼容任何支持 MCP 的客户端。
### 兼容本地模型
MCP-1C 不绑定特定的神经网络。兼容任何支持 MCP 的客户端:
- **本地模型**(Ollama, LM Studio, llama.cpp)- 数据不会离开您的网络
- **云端服务**(Claude, GPT, YandexGPT, GigaChat)- 通过相应的 MCP 客户端
- **AI 驱动的 IDE**(Cursor, VS Code + Continue/Cline, JetBrains)
您的代码和 1С 数据将保留在本地。MCP-1C 是一个本地进程,仅与您的数据库进行通信。
## 付费版本
除了免费的开源版本外,我们还提供具备高级功能的付费版本:
- **扩展版**(1 990 ₽/月)— 包含 7 个工具:查询优化器、BSL linter、语法助手、多数据库支持、.cfe 扩展等
- **专业版**(4 990 ₽/月)— 包含扩展版的所有功能,外加:语义搜索、依赖图、批量代码分析、安全审计、代码库指标、标准更新助手
注册后,您将免费获得 14 天的专业版体验。
→ [了解套餐详情](https://feenlace.ru/pricing)
→ [文档](https://feenlace.ru/docs)
## 版本对比
| | 开源版 | 扩展版 | 专业版 |
|---|---|---|---|
| 工具 | 9 | 7 | 7 + bulk_analyze |
| 价格 | 免费 | 1 990 ₽/月 | 4 990 ₽/月 |
| 试用期 | — | — | 14 天 |
| 许可证 | MIT | 订阅制 | 订阅制 |
**扩展版新增:**
- 查询优化器(15 种反模式)
- BSL linter(30 多种诊断)
- 语法助手(10 000+ 定义)
- 多数据库支持及 .cfe 扩展
- 代码沙盒、查询和打印表单生成器
- 模态调用转异步转换器
- 智能上下文与数据自动更新
**专业版新增:**
- 代码语义搜索(LSA + Randomized SVD)
- 模块依赖图(10 种关系类型,SQLite)
- 批量代码分析(反模式、重复代码、死代码)
- BSL 安全审计(11 条 SEC 规则)
- 代码库指标(LOC、复杂度、技术债务 0-100)
- 标准更新助手(3-way diff)
- CI/CD 集成(--ci, --json, quality gates)
- HTML/PDF 报告
→ [注册](https://feenlace.ru/register) | [套餐](https://feenlace.ru/pricing)
## 为什么选择 mcp-1c
- **单一二进制文件,零依赖。** 使用 Go 编写 —— 不需要 Python、Node.js、JVM 或 EDT。下载、运行、直接生效。
- **9 种用于操作活动数据库的工具。** 元数据、配置信息、表单、数据查询(带参数)、代码搜索、验证、事件日志、BSL 帮助。
- **全文本代码搜索**(`search_code`)。三种模式:smart(BM25 排序)、regex、exact。内置 BSL 同义词 —— 搜索 `StrFind` 可以找到 `СтрНайти`,反之亦然。
- **分片索引。** 根据核心数量并行构建索引。对于 13 000+ 个模块仅需约 7 秒。磁盘缓存 —— 重复启动瞬间完成。
- **非阻塞式启动。** 索引在后台构建,MCP 服务器立即可用。搜索将在索引完成后生效。
- **兼容您的数据库。** AI 能看到真实的配置和数据 —— 不是抽象的帮助文档,而是您具体的数据库。
- **不绑定 IDE 和神经网络。** 兼容 Конфигуратор、EDT,或完全脱离 IDE。兼容任何模型,包括本地模型(Ollama, LM Studio)。仅需 1С 的 HTTP 服务。
- **自动安装。** `mcp-1c --install "C:\путь\к\базе"` —— 它会自动查找平台、安装扩展并更新数据库配置。
- **内置 BSL 帮助。** 无需外部服务且无需启动 1С 即可获取平台功能的语法说明。
## 快速入门
### 1. 下载
适用于您操作系统的二进制文件位于 [Releases](../../releases)。或者使用:`go build -o mcp-1c ./cmd/mcp-1c/`
### 2. 在 1С 中安装扩展
```
# Windows
mcp-1c --install "C:\путь\к\базе"
# macOS / Linux
mcp-1c --install ~/Documents/InfoBase
# Client-server database (MS SQL, PostgreSQL)
mcp-1c --install "srv-1c\buh_prod" --server --db-user Admin --db-password pass
```
### 3. 启动 1С HTTP 服务
**推荐方式** —— 通过 Apache 或 IIS 进行标准发布(Конфигуратор → 管理 → 在 Web 服务器上发布)。适用于 Windows 和 Linux。详情请参阅 [分步指南](docs/getting-started.md#шаг-3-запустить-http-сервис-1с)。
**用于开发的快速启动(仅限 Windows):**
```
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" ENTERPRISE /F "C:\путь\к\базе" /HTTPPort 8080
```
### 4. 配置 AI 客户端
无论使用何种客户端或模型,MCP 服务器的配置都是相同的。无论您使用 Claude、Ollama 还是 LM Studio,MCP-1C 的配置都不会改变:
```
{
"mcpServers": {
"1c": {
"command": "/path/to/mcp-1c",
"args": ["--base", "http://localhost:8080/hs/mcp-1c"]
}
}
}
```
重启 AI 客户端。在 Claude Desktop 中建议设置为:**“+” → Connectors → Tool access → Always available**。
试着问它:**“显示我的 1С 数据库的配置结构”**
## 可用工具
| 工具 | 描述 |
|------------|---------|
| `get_metadata_tree` | 元数据树:目录、文档、寄存器、公共模块等。 |
| `get_object_structure` | 特定对象的属性、表格部分、维度和资源 |
| `get_form_structure` | 主表单结构:元素、命令、事件处理程序 |
| `get_configuration_info` | 配置名称、版本、供应商、平台版本、运行模式 |
| `search_code` | 模块代码全文本搜索:smart (BM25)、regex、exact。支持 BSL 同义词 (俄↔英)。支持按元数据和模块类型过滤 |
| `bsl_syntax_help` | 包含 180 个内置函数、类型方法和 BSL 模式的帮助文档 |
| `execute_query` | 执行带参数的 1С 查询语言(仅限 SELECT/ВЫБРАТЬ) |
| `validate_query` | 验证查询语法而不执行 |
| `get_event_log` | 读取事件日志,支持按日期、级别和用户过滤 |
## 配置
| 标志 | 环境变量 | 默认值 | 描述 |
|------|---------|-------------|----------|
| `--base` | `MCP_1C_BASE_URL` | `http://localhost:8080/hs/mcp-1c` | 1С HTTP 服务的 URL |
| `--user` | `MCP_1C_USER` | — | HTTP 服务用户 |
| `--password` | `MCP_1C_PASSWORD` | — | HTTP 服务密码 |
| `--max-response-size` | `MCP_1C_MAX_RESPONSE_SIZE` | `128` | 1С 响应的最大容量,单位为 MiB。超过此大小的响应将被拒绝并返回明确的错误。对于带有扩展的大型数据库,请增大此限制。 |
| `--request-timeout` | `MCP_1C_REQUEST_TIMEOUT` | `300` | 向 1С 发起的 HTTP 请求超时时间(秒)。如果传输非常大的响应(例如大型数据库的扩展)无法及时完成,请增大该值。 |
| `--dump` | — | — | 配置导出的路径(DumpConfigToFiles),启用 search_code 工具 |
| `--reindex` | — | — | 强制重建搜索索引(忽略缓存) |
| `--install` | — | — | 按照指定路径在 1С 数据库中安装扩展 |
| `--server` | — | — | 客户端-服务器数据库模式:`--install` 接受 `server\base` 形式的连接字符串(例如 `srv-1c\buh_prod`) |
| `--platform` | — | — | 1С 二进制文件的路径(如未指定则自动检测) |
| `--platform-version` | — | — | 1С 平台版本(例如 `8.3.13`)。根据平台路径自动检测。如果平台安装在不含版本信息的非标准路径下,请手动指定。支持的最低版本:8.3.10 |
| `--db-user` | — | — | 用于 DESIGNER 的 1С 数据库用户(--install 模式) |
| `--db-password` | — | — | 用于 DESIGNER 的 1С 数据库密码(--install 模式) |
## 日志和输出
默认行为取决于服务器是在终端中运行还是通过 MCP 客户端运行:
- **在终端中**(stdin 连接到 tty):索引进度、常规信息及错误将照常输出到 stderr。
- **通过 MCP 客户端**(Kilo Code, OpenCode, Claude Desktop, Cursor 等,当 stdin 为 pipe 时):stderr 为空,第三方库的意外输出将被重定向到 `~/.cache/mcp-1c/stderr.log`。这样可以防止某些将任何 stderr 输出视为致命错误的客户端崩溃 (Issue #14)。
### 标志和环境变量
| 标志 / 环境变量 | 描述 |
|------------|---------|
| `--verbose` | 即使通过 pipe 启动,也强制开启 stderr。方便调试 MCP 客户端连接。 |
| `--quiet` | 即使在终端中运行,也强制屏蔽 stderr。覆盖 `--verbose`。 |
| `MCP_1C_NO_TTY=1` | 等同于 `--quiet`。在 Docker / systemd 等命令行参数不够灵活的环境中启动时,比 CLI 标志更方便。 |
| `--debug` | 将详细日志写入 `~/.cache/mcp-1c/server.log` 文件。在终端中还会关闭进度条。 |
### Windows 下的 Git Bash / MSYS2 / MinTTY
这些 Shell 通过命名管道连接 stdin,而不是普通的 console handle。自动检测机制会将其视为非 TTY,因此默认不输出索引进度。如需手动诊断,请使用 `--verbose` 标志或原生的 `cmd.exe` / Windows Terminal。
## 开发
```
go build -o mcp-1c ./cmd/mcp-1c # сборка
go test ./... -v -race # тесты
go run ./cmd/mock-1c -port 9191 # mock-сервер 1С
```
### 1С 扩展
扩展的源代码以 XML 配置导出格式存储在 `extension/src/` 中。执行 `--install` 时,它们会通过 `go:embed` 嵌入到二进制文件中,并直接通过 DESIGNER 的 `/LoadConfigFromFiles` 加载。不需要预编译的 .cfe 文件来进行构建。
预编译的 `MCP_HTTPService.cfe` 可在 [Releases](../../releases/latest) 中下载 —— 如果您无法访问 1С 服务器上的命令行(例如通过 RDP 操作时),这是最简单的安装途径。详情请阅:[docs/1c-setup.md](docs/1c-setup.md#manual-install)。
如需从源代码手动构建 .cfe:
```
# macOS / Linux (需要已安装的 1С 平台)
./scripts/build-extension.sh ~/Documents/InfoBase
# Windows
scripts\build-extension.cmd C:\Users\User\Documents\InfoBase
```
## 兼容性
| AI 客户端 | |
|------------|---|
| **本地模型** | Ollama, LM Studio, llama.cpp 及任何兼容 MCP 的客户端 |
| **云端服务** | Claude Desktop, Claude Code, GPT(通过 MCP 客户端), YandexGPT, GigaChat |
| **IDE** | Cursor, VS Code (Continue, Cline, Copilot), Windsurf, JetBrains IDEs |
MCP-1C 不知道也不检测客户端运行的是哪种模型。配置是完全相同的。
| 1С 平台 | 状态 |
|-------------|--------|
| 8.3.10 及以上(商业版) | 支持 |
| 8.5.x(商业版) | 支持 |
| 8.3.10+ / 8.5.x(教学版) | 支持 |
| 操作系统 | MCP 服务器 | 自动安装 | 1С HTTP 服务 |
|----|-----------|---------------|----------------|
| Windows | 是 | 是 | 是(推荐使用 Apache/IIS,快速启动可使用 /HTTPPort) |
| macOS | 是 | 是 | 否(受 1С 平台限制),请使用 Windows 虚拟机 |
| Linux | 是 | 是 | 是(Apache 或 ibsrv;不支持 /HTTPPort) |
## 相关发布
[](https://infostart.ru/1c/articles/2635907/)
- [单一二进制文件,零依赖:10 分钟内将 AI 连接到您的 1С 数据库](
标签:1C:Enterprise, AI助手, BSL, EVTX分析, LNA, MCP服务器, SOC Prime, 代码生成, 企业应用集成, 开发工具, 日志审计, 渗透测试工具