使用说明
1c模板mcp
MCP是一个基于代码模板1C(BSL)的语义搜索引擎。2262+来自社区的模板,CRUD Web界面与Monaco Editor,Chromadb+Embeddings进行意义搜索。
机会
- 语义搜索 -混合(vector+full text)搜索俄语代码模板
- 6个MCP工具 -搜索、查看、创建、编辑、删除模板
- Web接口 -完整的CRUD与摩纳哥编辑器和BSL语法背光
- 2262+模板 -预装1C代码模板数据库
seed_templates.jsonl - 灵活的Embeddings OpenAI兼容API或本地SentenceTransformer模型
- 码头工人 -现成的Docker Compose可快速启动
从现成的图像安装(推荐)
对于普通用途-无需克隆存储库或编译。Docker Hub上的图片: desko77/1c-templates-mcp.
下载文件夹 deploy/ (三个档案: docker-compose.yml, .env.example, README.md)并运行:
cd deploy
docker compose up -d # CPU-режим
docker compose --profile gpu up -d # GPU-режим (NVIDIA)
详细的配置和更新说明-B deploy/README.md.
快速启动(从源代码构建)
适用于开发和捐赠。从当前存储库状态本地收集图像。
git clone https://github.com/Desko77/1c-templates-mcp.git
cd 1c-templates-mcp
# CPU (универсально, без требований к GPU)
docker compose --profile cpu up -d
# ИЛИ GPU (NVIDIA, значительно быстрее индексация + поиск)
docker compose --profile gpu up -d
服务器可用:
- Web界面:
http://localhost:8004 - MCP端点:
http://localhost:8004/mcp(POST,流式HTTP)
配置文件之间的差异:
cpu-集装箱template_search_mcp没有GPU。Rosberta第一次在CPU上索引~5-10分钟。到处工作。gpu-集装箱template_search_mcp_gpu通过nvidia gpu运行deploy.resources.reservations.devices一分钟内索引需要NVIDIA Container Toolkit(见下文)。
GPU配置文件要求
- 英伟达GPU 安装了驱动程序(验证:
nvidia-smi主人)。 - nvidia容器工具包 -在Docker容器中运行GPU包。
- Установка: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
- Windows通过Docker Desktop运行,WSL2+中安装了NVIDIA Container Toolkit。
- 安装后:
docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi必须显示您的GPU。
- Torch支持CUDA -已经到了
requirements.txt(torch>=2.8.0CUDA车轮自动拉紧)。
如果GPU不可用或 nvidia-container-toolkit 未确定- docker compose --profile gpu up 这将导致NVIDIA Runtime短缺。在这种情况下,使用 --profile cpu.
连接Claude Code
{
"mcpServers": {
"1c-templates-mcp": {
"type": "url",
"url": "http://localhost:8004/mcp"
}
}
}
MCP工具
工具参数描述
|------------|-----------|----------|
| templatesearch | query: str –混合语义+全文模板搜索›
| list_templates | offset?, limit? Ð带有压痕的模板列表(默认值50,最大200)。使用搜索 templatesearch |
| get_template | template_id: int –获取完整的ID模板→
| add_template | name, description, code, tags? 添加新模板
| update_template | template_id, name?, description?, code?, tags? 更新现有模板
| delete_template | template_id: int 删除ID模板
Web接口
路线描述
|---------|----------|
| GET / 搜索模板列表
| GET /new 模板创建表单(Monaco Editor)
| GET /{id} 查看模板
| GET /{id}/edit –模板编辑。
| POST /{id}/delete 删除模板
配置
变量是默认的,描述是
|------------|-------------|----------|
| HTTP_PORT | 8004 服务器端口
| EMBEDDING_PROVIDER | auto 提供 Embeddings: auto / local / openai (见下文)。
| EMBEDDING_MODEL | intfloat/multilingual-e5-small –HuggingFace–本地Embeddings的模型ID›
| OPENAI_API_BASE | http://localhost:1234 OpenAI兼容Embeddings API的URL
| OPENAI_API_KEY | lm-studio API 关键
| OPENAI_MODEL API服务器上的模型名称(对于LM Studio,内部名称不是HF-ID)→
| RESET_CHROMA | false 开始时重新创建Chromadb索引
| RESET_CACHE | false 开始时清除模型缓存。
| USESSE | false 使用SSE传输而不是Streamable HTTP。
| DATA_DIR | /app/data 运行时数据目录(SQLite,Chromadb)
建筑
MCP Clients (Claude Code, Cursor, ...)
|
POST /mcp
|
+---------+---------+
| FastAPI app |
| |
| /mcp -> FastMCP | 6 MCP tools
| / -> Web UI | CRUD + Monaco Editor
+----+--------+----+
| |
+----+--+ +--+------+
| SQLite | | ChromaDB |
| (SoT) | | (index) |
+--------+ +----+-----+
|
+------+------+
| Embeddings |
| OpenAI API |
| or local ST |
+-------------+
seed_templates.jsonl- 真理之源 对于赔款(每行一个JSON对象)。Docker生成templates.db.- SQLite(
templates.db) 运行时模板存储(在Docker Volume中)。JSON在构建阶段的衍生物。 - 色度数据库 -语义搜索的向量索引,从SQLITE导出(在第一次启动时重建)。
- 嵌入 OpenAI兼容API(LM Studio,Ollama)或本地SentenceTransformer。
Embedding模型
三种后端选择模式可通过 EMBEDDING_PROVIDER:
模式 auto (默认)
首先尝试OpenAI兼容的API(LM Studio,Ollama,VLLM)。如果不可用,则自动回滚到本地SentenceTransformer模型。
environment:
- EMBEDDING_PROVIDER=auto
- OPENAI_API_BASE=http://host.docker.internal:1234
- OPENAI_MODEL=text-embedding-multilingual-e5-large-instruct
- EMBEDDING_MODEL=intfloat/multilingual-e5-small # fallback
模式 local 本地SentenceTransformer
API根本不会崩溃。如果没有LM Studio/Ollama,或者希望有确定性的行为而不依赖于外部服务,则非常适合。
environment:
- EMBEDDING_PROVIDER=local
- EMBEDDING_MODEL=intfloat/multilingual-e5-small # или ai-forever/ru-en-RoSBERTa
模式 openai 只有API
如果API不可用,则失败。适用于需要API服务的生产卸载。
environment:
- EMBEDDING_PROVIDER=openai
- OPENAI_API_BASE=https://api.openai.com
- OPENAI_API_KEY=sk-...
- OPENAI_MODEL=text-embedding-3-small
关于本地模型的建议
ÐÐÐÐÐÐÐÐÐÐÐÐÐ
|--------|---:|---:|---|---|
| intfloat/multilingual-e5-small –118m/~450 MB–384–快速–Default–适用于任何地方,包括弱铁→
| ai-forever/ru-en-RoSBERTa Ð404M/~1.6GB=1024ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ
| intfloat/multilingual-e5-large –560m/~2.2GB=1024在CPU上非常慢––有通用多语言GPU–。
第一次运行与新模型从HuggingFace(缓存到 model_cache/).从缓存读取后续开始。
嵌入式模型质量控制
如果您怀疑API模型(特别是LM Studio中的第三方GGUF)返回有缺陷的Embudding,请参阅。 ../plans/1c-templates-mcp/test_lmstudio_embeddings.py -脚本检查LM Studio中可用的所有模型是否崩溃(非链接文本的max cosu sim)。
本地启动(无Docker)
pip install -r requirements.txt
python -m app.main
环境变量从 .env 附件 .env.example).GPU安装 torch сCUDA车轮(pip install torch --index-url https://download.pytorch.org/whl/cu121).
要在web界面中突出显示BSL,请在项目旁边克隆BSLu控制台:
git clone --depth 1 https://github.com/salexdv/bsl_console.git
如何添加模板
真理的源泉 seed_templates.jsonl 在项目的根。每个文件行都有一个JSON格式的模板: {"name": "...", "description": "...", "tags": ["..."], "code": "..."}领域 name, description, code 必须, tags 这是可选的。
路径1:直接通过JSON(推荐用于PR)
- 将模板字符串添加到末尾
seed_templates.jsonl. - 检查有效性:
python scripts/build_db_from_jsonl.py --jsonl seed_templates.jsonl --output ./check.db它应该结束没有错误。删除check.db. - 修改并打开PR。
路径2:本地通过Web UI+导出
- 启动服务器(
docker compose up -d)通过Web UI添加模板(http://localhost:8004/new).模板在Docker Volume中的运行时数据库中找到。 - 一定 将运行时数据库上载到主机并导出到JSONL:
docker cp template_search_mcp:/app/data/templates.db ./runtime_dump.db python scripts/export_to_jsonl.py --db ./runtime_dump.db --output seed_templates.jsonl rm ./runtime_dump.db git add seed_templates.jsonl评论,PR。
重要的是: 如果执行 docker compose up -d --build 或 docker volume rm 到 步骤2-通过Web UI添加的模板将丢失(运行时数据库将重新创建) seed_templates.jsonl).
JSON更改后重新编译图像
docker compose build --no-cache
docker volume rm 1c-templates-mcp_app_data # удалит прежнюю runtime-БД
docker compose up -d
Companion-AI代理规则
В docs/rules/ 存储域目录,从中蒸馏出主题数据库模板。这不是一种模式的替代品,而是 Companion-深度上下文知识:模板显示 怎么办 具体操作,手册给出 全貌 域API。具有连接目录的代理可以更好地定位大型API,选择正确的方法,并且不会混淆具有类似意义的模块。
可用的目录
docs/rules/zup-hr-api-reference.md -1C:ZUP 3.1(人事会计)
典型配置机制的完整参考 1C:薪金和人事管理 (基础/核心预算资源调拨目标/公司)它适用于ZUP 3.1上的任何开发。
22节,620行。里面是什么:
节,内容。
|--------|-----------|
| 1.建筑›关键区别 Справочник.Сотрудники (工作场所)vs Справочник.ФизическиеЛица (个人资料)。选择规则。 |
| 2.模块层次结构› КадровыйУчет / КадровыйУчетРасширенный / КадровыйУчетПовтИсп / ЗарплатаКадры -什么是公共的,什么是内部的,什么时候用什么。 |
| 3-4.干部主要方法 КадровыеДанныеСотрудников / КадровыеДанныеФизическихЛиц 大规模和单一的。参数,RLS,性能。 |
| 5.字段目录-所有字段都可以通过工作人员编辑器访问:周期(职位、部门、工资、图表,~50个字段)和永久(日期、计算器、SNILS,~80个字段)。解释了“当前*”前缀的细微差别。 |
| 6.录取/开除 ПериодыРаботыСотрудников, ДатаПриемаФизическогоЛица, ЭтоНачалоТрудовойДеятельности. |
| 7.经验––所有类型的经验(一般、保险、北方、连续)、表示、计算持续时间、正常化。 |
| 8.联络员↔ 自然。 ОсновнойСотрудникФизическогоЛица, СотрудникиФизическихЛиц, НеоформленныеСотрудникиФизическихЛиц -大规模和缓存选项。 |
| 9.组织工作人员名单。 СотрудникиОрганизации 带有选择参数(部门、合同类型,包括解雇)。 |
| 10-11.时间表→ СоздатьВТ* 批处理请求。 СоздатьВТРабочиеМестаСотрудников 工作间隔。 |
| 12.员工档案 ПоместитьСотрудникаВАрхив, ИзвлечьСотрудникаИзАрхива (带有删除标记的细微差别)。 |
| 13.创建新个人和新员工。 |
| 14.首字母缩略语、格变格、性别、职位变格(Morfer Web服务)。 |
| 15.辅助方法。 ГоловнаяОрганизация, ДоступныеОрганизации截至日期的责任人。 |
| 16.来自客户的挑战 КадровыйУчетВызовСервера 安全的公共API |
| 17.当前收费。 ТекущиеНачисленияСотрудника,通过W计划。 |
| 18.剩下的假期。 ОстаткиОтпусковСотрудниковНаДату. |
| 19.时间表/生产日历› РасписанияРаботыНаПериод, РазностьДатПоКалендарю, БлижайшиеРабочиеДаты. |
| 20.印刷形式。 ТабельныйНомерНаПечать, ТарифнаяСтавкаНаПечать, ФормаМножественногоЧисла. |
| 21.护照资料 ДокументыФизическихЛиц, ДокументУдостоверяющийЛичностьФизлица. |
| 22.人员配置。 ДанныеПозицииШтатногоРасписания. |
最后是带有频繁耙子的“关键细微差别”部分:RLS,接收数据=“00010101”,批量vs单个方法,缓存。
数据库中的相关模板 (通过查找 templatesearch("ЗУП <тема>")):
ЗУП: Механизм представлений СКД (Представления_)-SCD报告的虚拟表ЗУП: Периодические регистры через ЗарплатаКадрыПериодическиеРегистры-MW切割ЗУП: Менеджер расчета зарплаты МенеджерРасчетаЗарплаты-程序计算ЗУП: Средний заработок и остатки отпусков平均收入ЗУП: Учет рабочего времени и производственный календарь-四维扩展+日历图形
如何将目录连接到AI代理
克劳德代码 -两个选择:
- 全球(所有项目): 将文件复制到
~/.claude/rules/(Windows:C:\Users\<user>\.claude\rules\).此文件夹中的所有规则都自动包含在每个会话的上下文中。 - 对于特定项目: 添加链接到
CLAUDE.md项目:См. companion-справочник: <путь к файлу>.
Cursor/其他IDE: 在项目规则设置(规则/指令)中插入文件。Markdown格式是通用的。
通过没有IDE的MCP客户端: 下载文件,并在处理ZUP主题时将其作为系统加速或附加文档提供给代理。
《汇辑》的赔款
目录覆盖具有大型API的域,在这些域中,没有上下文的AI代理很难选择正确的方法。如果您在不同的配置/子系统(会计、ERP、IT、BSP子系统等)上有此参考,请在此处打开PR。 docs/rules/格式是免费的,主要结构:目录,API主题部分,最后是关键的细微差别/耙子。
致谢
- alonehobo/1c_模板_mcp -带有模板数据库的原始MCP服务器
- salexdv/bsl控制台 -带有BSL语法背光的摩纳哥编辑器
许可证
麻省理工学院