1C代码搜索MCP
本地MCP服务器,用于代码库1C的语义搜索。它支持多种数据库、各种嵌入式模型和向量引擎。
关键能力
- 多配置同时支持多个代码数据库(信息数据库)。
- 灵活选择模型:支持任何与HuggingFace/ONNX兼容的型号(默认)
cointegrated/rubert-tiny2). - 向量搜索:使用QDRANT、LANCEDB或Chromadb进行高效搜索。
- Web接口:通过浏览器轻松管理数据库和设置。
- MCP协议:与Claude、Cursor、Kiro和其他MCP客户端轻松集成。
安装
- 克隆存储库。
- 建立依赖关系:
python install.py发射
python code-search.py或
python -m code_search服务器将在端口8000(默认)上运行。 打开 http://localhost:8000 在浏览器中设置数据库。
配置(config.yaml)
文件 config.yaml 第一次启动时自动创建。您可以手动或通过Web界面编辑它。
配置示例:
global:
port: 8000
check_interval: 300
ibs:
- name: "trade"
title: "Управление Торговлей"
source_dir: "C:/Projects/Trade/src"
index_dir: "./indices/trade"
embedding_model: "cointegrated/rubert-tiny2"
vector_db: "qdrant"
- name: "erp"
title: "1С:ERP"
source_dir: "C:/Projects/ERP/src"
index_dir: "./indices/erp"
embedding_model: "intfloat/multilingual-e5-small"
vector_db: "qdrant"参数
全球的:
port:Web服务器端口。check_interval:背景文件更改检查间隔(秒)。
IBS(信息库):
name:唯一数据库ID(拉丁语)。title:人名。source_dir:从卸载配置(XML文件)到目录的路径。index_dir:存储向量索引的路径。embedding_model:琥珀色模型的名称。vector_db搜索结果(qdrant).
配置性能和设置
除了基本配置外 config.yaml,存在影响索引速度和资源消耗的内部参数。它们由代码中的常量指定。
文件 code_search/indexer/engine.py
BATCH_SIZE(默认)500)
- 存放处:文件开头的常量。 - 这是什么:在写入向量数据库之前存储在内存中的片段数(chank)。 - 影响:增加可能会稍微加快进程(减少数据库中的提交),但会增加RAM消耗。减少会节省内存。
READ_WORKERS(默认)1)
- 存放处:文件开头的常量。 - 这是什么:用于读取文件和初始处理的线程数。 - 影响:放大可以加速磁盘读取,但会增加CPU负载。因为生成向量也需要CPU,所以放置许多线程(大于2-4)通常是毫无意义的,因为神经网络将成为瓶颈。减少到1使系统更响应。
EMBED_BATCH_SIZE(默认)64)
- 存放处:文件开头的常量。 - 这是什么:一次发送到神经网络的文本包的大小。 - 影响对速度和记忆力有很大影响。放大可以加速工作(特别是GPU/AVX),但线性地“吃掉”内存。如果出现OOM(Out of Memory)错误,则缩小。
文件 code_search/config.py
CHUNK_SIZE(默认)1024(d)和CHUNK_OVERLAP(默认)100)
- 这是什么:字符中代码块的大小和它们之间的重叠。 - 影响:定义代码是如何“切割”的。1024个字符~20-30行代码。如果你改变了,你必须重新索引一切从零。
支持的模型和引擎
琥珀色模型
服务器自动下载并将HuggingFace模型转换为ONNX模型。推荐:
cointegrated/rubert-tiny2(Default)-快速,轻,精度好。intfloat/multilingual-e5-small高精度,多语言。ai-forever/sbert_large_nlu_ru-俄语的大模型。
矢量引擎
- Qdrant (默认)-快速,本地工作,验证。
- LanceDB 嵌入式数据库非常快,将数据存储在文件中。
- 色度数据库 -流行的开源矢量数据库。
指定正确的值(qdrant, lancedb 或 chromadb在田野里 vector_db 在 config.yaml.
客户端连接(MCP)
服务器通过SSE(服务器发送事件)在MCP上运行,允许远程或通过网络连接。
连接URL: http://:8000/sse
克劳德桌面版
文件 claude_desktop_config.json:
{
"mcpServers": {
"1c-rag": {
"url": "http://localhost:8000/sse"
}
}
}光标
- 转到 光标设置 > 特性 > 主控程序.
- 点击 添加新的MCP服务器.
- 类型:
SSE. - 网址:
http://localhost:8000/sse
基洛/超级马文
文件 ~/.kiro/settings/mcp.json:
{
"mcpServers": {
"1c-rag": {
"url": "http://localhost:8000/sse"
}
}
}许可证
麻省理工学院
