1C MCP工具包
AI代理与1C数据库集成系统:企业通过MCP和REST API
📋 描述
1C MCP Toolkit是一种将AI代理(Kiro、Claude等)连接到1C:Enterprise数据库的解决方案。支持两种工作方案: 内置服务器 (HTTP服务器直接在1C处理内部运行,没有Python) прокси (Python是一个长波段的服务器)
主要优势:
- ✅ 不需要配置1C
- ✅ 不需要发布1C服务器
- ✅ 不使用COM连接
- ✅ 与1C兼容:企业8.2.13+/8.3.25
- ✅ 内置服务器Python不需要-HTTP服务器直接在1C中运行
- ✅ Docker支持(代理模式)
🏗️ 建筑
选项1:内置服务器
HTTP服务器直接在1C处理内部运行。Python不需要
┌─────────────────┐ MCP / REST API ┌──────────────────┐
│ AI Агент │ ◄───────────────► │ 1С (.epf) │
│ (Kiro, Claude) │ /mcp /api/* │ Встр. HTTP-сервер│
└─────────────────┘ └──────────────────┘
│
▼
┌───────────────┐
│ База данных 1С│
└───────────────┘选项2:代理模式
┌─────────────────┐ MCP / REST API ┌─────────────────┐
│ AI Агент │ ◄─────────────────────────► │ │
│ (Kiro, Claude) │ /mcp /api/* │ Python Proxy │
└─────────────────┘ │ Server │
│ │
┌─────────────────┐ HTTP Long Polling │ (FastAPI + │
│ 1С Обработка │ ◄─────────────────────────► │ MCP SDK) │
│ (внешняя .epf) │ /1c/poll, /1c/result │ │
└─────────────────┘ └─────────────────┘
│ │
▼ │
┌─────────────────┐ ┌───────┴───────┐
│ База данных 1С │ │ Docker │
│ (8.2.13/8.3.25) │ │ Container │
└─────────────────┘ └───────────────┘🚀 快速启动
选项0:内置服务器(建议不使用Python)
- 打开
build/MCP_Toolkit.epf1C:企业 - 在表单中选择模式 “内置服务器”
- 点击“启动服务器”
- 将 AI 代理 设置为
http://:6003/mcp
1、Docker Hub(代理模式)
在Docker Hub上运行代理服务器:
docker run -d -p 6003:6003 -e ALLOW_DANGEROUS_WITH_APPROVAL=true --restart unless-stopped --name 1c-mcp-toolkit-proxy roctup/1c-mcp-toolkit-proxy标签:Docker Compose
# Клонировать репозиторий
git clone
cd 1c-mcp-toolkit
# Запустить через Docker Compose
docker-compose up -d选项3:直接启动Python
# Создать виртуальное окружение
python -m venv .venv
.venv\Scripts\activate # Windows
# или
source .venv/bin/activate # Linux/Mac
# Установить зависимости
pip install -r requirements.txt
# Запустить сервер
python -m onec_mcp_toolkit_proxy服务器启动地址 http://localhost:6003
📦 处理装置1C
- 从Build文件夹下载完成的处理 MCP_Toolkit.epf
- 在1C中打开处理(文件→打开)
- 在处理设置中,指定:
- 代理URL: http://localhost:6003 - (可选)命令隔离通道ID
- 单击“连接”按钮
⚙️ 配置AI代理
开发 IDE
添加到文件 .kiro/settings/mcp.json:
{
"mcpServers": {
"onec-mcp-toolkit-proxy": {
"url": "http://localhost:6003/mcp",
"transport": "http",
"type": "streamable-http",
"disabled": false,
"autoApprove": ["execute_query", "get_metadata"]
}
}
}克劳德桌面版
打开配置文件:
- 视窗:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
添加配置:
{
"mcpServers": {
"onec-mcp-toolkit-proxy": {
"url": "http://localhost:6003/mcp",
"transport": "http"
}
}
}重新启动应用程序。
🛠️ 可用的MCP工具
工具描述 |-----------|----------| | execute_query 查询语言1C | execute_code 执行任意1C代码 | 获取元数据 获取有关数据库元数据结构的信息。 | get_event_log –从注册日志中获取条目。 | get_object_by_link –通过导航链接接收对象。 | get_link_of_object –生成指向目标的导航链接→ | find_references_to_object 搜索所有对象链接 | 获取访问权限 –获取元数据对象的访问权限。 | get_bl_语法_帮助 BSL嵌入式语言指南:搜索功能、方法、类型和语言结构› | get_creenshot –快照活动窗口1C并以Base64 PNG(仅限Windows)的形式返回† | submit_for_deanonymization –发送最终非匿名化响应(仅在启用匿名化时)→ | restart_1c_session √重新启动当前1C会话(更新配置后需要;新会话将自动启动)† | close1c_session Ð结束当前1c会话,返回新的启动命令(对于需要对数据库进行独家访问的操作)›
🌐 REST API(MCP替代品)
对于不支持MCP的AI代理,或者如果您偏好标准HTTP请求,代理提供具有相同功能的REST API。
基本URL: http://localhost:6003/api/
可用Endpoint
Endpoint方法描述 |----------|-------|----------| | /api/execute_query 回复1C查询 | /api/execute_code 下一篇:代码1C | /api/get_metadata Get/Post获取元数据 | /api/get_event_log 注册日志 | /api/get_object_by_link 下一篇:通过链接获取对象 | /api/get_link_of_object –post–生成对象链接› | /api/find_references_to_object 搜索对象链接 | /api/get_access_rights Post获得访问权限 | /api/get_bsl_syntax_help BSL语言指南 | /api/submit_for_deanonymization ≫post≫发送文本以进行非匿名化(仅在启用匿名化时)≫ | /api/restart_1c_session 下一篇:重启1C会话 | /api/close_1c_session –Post–关闭会话并接收新的启动命令›
答复格式
大多数答复遵循一个单一的结构:
成功: {"success": true, "data": } 错误: {"success": false, "error": "Описание ошибки"}
例外: submit_for_deanonymization 返回 {"received": true} 成功时(无场) data).
REST API使用的详细示例可在完整文档中找到。
🕵️ 数据匿名化
该工具支持个人和机密数据的自动匿名化。实际值被稳定代币取代([ORG-00001], [PER-00001], [INN-00001] 等等。D.其他事项).代理可以将令牌传输回请求-服务器自动恢复实际值。
内置服务器模式:
- 使用1C处理表单进行配置:元数据字段树、1C目录字典、正则表达式
代理模式:
- 管理环境变量(
ANONYMIZATION_ENABLED=true) - 可选:SPACY NER,通道令牌隔离,智能列别名匿名化
详细文件: ANONYMIZATION.md
🔒 安全
- 危险操作被可配置的黑名单阻止
- 使用
ALLOW_DANGEROUS_WITH_APPROVAL=true对于确认模式 - 建议配置
autoApprove仅适用于安全工具
📝 通道绝缘
当多个1C客户端连接到一个代理服务器时,可以使用通道ID隔离命令流。
使用MCP
{
"mcpServers": {
"onec-dev": {
"url": "http://localhost:6003/mcp?channel=dev-environment",
"transport": "http",
"type": "streamable-http"
},
"onec-prod": {
"url": "http://localhost:6003/mcp?channel=prod-environment",
"transport": "http",
"type": "streamable-http"
}
}
}使用REST API
所有REST端点都支持通过请求参数隔离通道 ?channel=:
# Канал для разработки
curl -X POST "http://localhost:6003/api/execute_query?channel=dev-environment" \
-H "Content-Type: application/json" \
-d '{"query": "ВЫБРАТЬ 1"}'
# Канал для продакшена
curl -X POST "http://localhost:6003/api/execute_query?channel=prod-environment" \
-H "Content-Type: application/json" \
-d '{"query": "ВЫБРАТЬ 1"}'重要的是: 在相应环境的1C处理设置中指定相同的通道ID。
🎓 AI代理的技能
使用时 REST API 建议使用现成的技能,其中包含有关如何使用1C MCP工具包的详细说明。
可用技能
📁 文件夹 : skills/
ÐÐÐÐÐÐÐÐÐÐÐÐ |-------|----------|-------------------| | 呼叫-1c-rest-api-via-curl →使用Curl使用REST API的完整指南:所有Endpoint、请求/响应格式、Workflow示例、错误处理›REST API客户端、自动化、脚本› | 组合-1c-查询 ≫使用1C查询语言生成正确查询的规则:语法、优化、虚拟表、时间表、join≫使用executeu query处理1C数据≫
如何使用
Skills为AI代理提供详细的说明和参考文档。每个技能包括:
- 能力描述
- 使用示例
- 最佳做法
- 典型的工作模式
对于使用REST API,Skill的AI代理 calling-1c-rest-api-via-curl 它是一个基本的指南,包含有效使用API所需的所有细节。
📚 文档
详细文档可在 README_FULL
