使用说明
🚀 1C位MCP服务器:站点管理
链接到Marketplace模块:https://marketplace.1c-bitrix.ru/solutions/delight.mcp/
演示模块:https://rutube.ru/video/06d0f3f63a2f588ed5f0695aa674b468/
该模块旨在通过使用AI代理来提高Bitrix项目的开发质量。
该模块根据官方规范实现MCP服务器 模型上下文协议它是一组终端点,用于将开发环境的AI代理直接与站点和服务器通信。
⚙️ MCP服务器功能
资源:
- 添加文档 Bitrix框架 (她https://docs.1c-bitrix.ru/)到代理可以直接访问的MCP服务器资源
工具:
- 环境信息:
- 系统信息:
- 操作系统名称;
- 主机名;
- 当前用户的名称;
- 磁盘大小(以字节为单位);
- 可用磁盘空间(以字节为单位);
- Bitrix信息:
- 编辑;
- 主模块版本;
- 安装的模块;
- 关于PHP的信息:
- PHP版本;
- 连接的扩展;
- 限制可用RAM容量;
- PHP脚本的最大运行时间;
- 数据库信息:
- 数据库类型;
- 数据库服务器版本;
- 连接主机;
- 数据库名称;
- 系统信息:
- 现场API:
- 模块中可用功能列表;
- 模块中可用事件列表;
- 在索引数据库模块中搜索函数;
- 模块函数代码及其描述phpdoc;
- 通过反射机制在整个代码中搜索功能;
- 在服务器上执行PHP代码;
- 在服务器上执行shell命令;
- 在服务器上执行SQL查询;
- 搜索Bitrix Framework文档(需要额外的Embeddings生成服务):
- 在索引之前规范Bitrix Framework文档的Markdown文件。
- 以Embeddings格式索引Markdown Bitrix Framework文档文件,以便按意义而不是按输入进行搜索;
- 根据人工智能代理的请求,对Bitrix Framework文档进行向量搜索。
🔔 模块中可用的事件
≫事件名称≫何时调用≫参数≫
|-----------------------------|:--------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| OnForgeExec 在执行shell命令之前 ['command' => (string) $command]
团队执行。
| OnAfterExec shell命令执行后 ['output' => (array) $output]
带有执行命令行输出的数组›
| OnBeforeval 在执行PHP代码之前 ['code' => (string) $code]
代码执行。
| 事后评估 完成PHP代码后 ['output' => (string) $output]
执行代码的屏幕输出›
| OnForgeSQL 在执行SQL代码之前 ['query' => (string) $query]
SQL执行请求›
| OnAfterSQL SQL代码执行后 [
'columns' => (array) $columns,
'rows' => (array) $rows,
'rowCount' => (int) count($rows),
'query' => (string) $query];
SQL查询结果数组›
| 未生成嵌入 –在将数据发送到Embadding生成服务之前。 [
'url' => (string) self::GENERATE_EMBEDDINGS_ENDPOINT,
'data' => Json::encode(['text' => $text]),
'headers' => [
'Content-Type' => 'application/json',
],
'timeout' => $this->timeout,
'waitResponse' => true]
查询数据数组›
| OnAfterGenerate嵌入 从Embadding Generation服务获得数据后 ['response' => (bool\|string) $response]
通过bitrixmainwebhttpclient的post查询结果›
🛡️ 安全
人工智能代理对模块的访问是通过JWT令牌实现的,它可以指定令牌的寿命和对单个终端点的权限。您可以从模块设置页中删除令牌ID,以阻止对以前发布的令牌的访问。
您可以将对模块设置的访问限制在某些用户组中。
可对外部模块API的请求/响应进行日志管理。
该模块具有潜在的危险功能 eval 和 exec防病毒软件可能会将其视为恶意代码。
这些功能允许AI代理在具有令牌权限的情况下在服务器上执行任意代码。
为了避免防病毒误报,建议将模块添加到例外情况中。模块代码是开放的,您可以独立验证这些功能的使用是否安全。
建议只在测试平台上使用具有PHP/Shell/SQL执行权限的代币!请记住,AI代理错误,可能会删除或破坏您的数据。
🔌 MCP服务器连接示例
Cursor
文件 mcp.json:
{
"mcpServers": {
"bitrix": {
"command": "npx",
"args": [
"mcp-remote",
"https://{ВАШ_ДОМЕН}/bitrix/services/main/ajax.php?action=delight:mcp.Rpc.handler",
"--header",
"Authorization: Bearer {ВАШ_ТОКЕН}"
]
}
}
}
JetBrains IDE (AI Assistant)
项目文件 /.ai/mcp/mcp.json:
{
"mcpServers": {
"bitrix": {
"command": "npx.cmd",
"args": [
"mcp-remote",
"https://{ВАШ_ДОМЕН}/bitrix/services/main/ajax.php?action=delight:mcp.Rpc.handler",
"--header",
"Authorization: Bearer {ВАШ_ТОКЕН}"
]
}
}
}
Codex
文件 /.codex/config.toml:
[mcp_servers.bitrix]
enabled = true
url = "https://{ВАШ_ДОМЕН}/bitrix/services/main/ajax.php?action=delight:mcp.Rpc.handler"
[mcp_servers.bitrix.http_headers]
Authorization = "Bearer {ВАШ_ТОКЕН}"
命令指示功能 npx
字段值 command 可能取决于操作系统和环境。实例:
"command": "npx"
"command": "npx.cmd"
"command": "C:\\Program Files\\nodejs\\npx.cmd"
如果出现启动错误,请指定完整的路径 npx.
授权功能
在某些系统中,标准标题 Authorization 在后端无法读取,在这种情况下,可以使用标题 X-Authorization.
🧠 Embeddings服务连接
T.附录Bitrix Framework文档将自动添加到MCP服务器资源中,并可根据请求提供给AI代理,因此不迫切需要配置文档搜索,这只能节省上下文。
Bitrix Framework文档搜索服务需要与Embeddings生成服务交互,而Embeddings生成服务不是按内容而是按意义进行搜索。
主要的方法是在自己的服务器上升级Python微服务(Sentence Transformers),微服务代码也在模块中提供,但您可以使用其他选项(OpenAI、Olama等)-您需要根据事件使用它们。 OnBeforeGenerateEmbedding 覆盖Embeddings生成请求参数和其他事件 OnAfterGenerateEmbedding 将响应发送到JSON视图字符串
"[-0.22979317605495453,-0.1455831080675125,-0.2588725686073303,0.0562337264418602,...]"
安装和配置Embeddings微服务
此服务应在后台运行,并在服务器重新启动后自动启动。
下面的说明是为了 BitrixEnv 9+ 假设所有命令都是通过SSH从 根用户。所有的方法都需要更新到你的环境中。
Шаг 1: Установка Python и зависимостей
这些命令将安装Python,为服务创建一个独立的环境,并将所有必要的库加载到其中。
# Устанавливаем Python 3 и менеджер пакетов pip
sudo yum install -y python3 python3-pip
# Задаем путь к модулю
MODULE_PATH="/home/bitrix/www/bitrix/modules/delight.mcp"
# Переходим в директорию, где будет работать сервис
cd $MODULE_PATH/python
# Создаем виртуальное окружение в папке 'venv'
python3 -m venv venv
# Активируем окружение, обновляем pip и устанавливаем библиотеки
source venv/bin/activate
python3 -m pip install --upgrade pip
pip install fastapi uvicorn "sentence-transformers[txt]"
deactivate
# Меняем владельца всех файлов на bitrix, чтобы у сервиса были права доступа
sudo chown -R bitrix:bitrix $MODULE_PATH/python
Шаг 2: Создание фоновой службы (systemd)
以下命令将创建、配置和运行后台进程。
# Задаем имя файла службы
SERVICE_FILE="/etc/systemd/system/delight.embeddings.service"
# Задаем путь к модулю
MODULE_PATH="/home/bitrix/www/bitrix/modules/delight.mcp"
# Создаем unit-файл для systemd с помощью команды tee
# Это позволяет запускать сервис от пользователя bitrix и автоматически перезапускать его
sudo tee $SERVICE_FILE > /dev/null <<EOF
[Unit]
Description=Delight Embeddings Generation Service
After=network.target
[Service]
User=bitrix
Group=bitrix
WorkingDirectory=$MODULE_PATH/python
ExecStart=$MODULE_PATH/python/venv/bin/python -m uvicorn embeddings-service:app --host 0.0.0.0 --port 8000
Restart=always
[Install]
WantedBy=multi-user.target
EOF
# Открываем порт 8000 в брандмауэре
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload
# Перечитываем конфигурацию systemd, включаем автозапуск и стартуем сервис
sudo systemctl daemon-reload
sudo systemctl enable delight.embeddings.service
sudo systemctl start delight.embeddings.service
Шаг 3: Проверка статуса
要确保服务成功运行,请执行以下操作:
sudo systemctl status delight.embeddings.service
您必须查看状态 active (running)如果出现错误,可以由团队查看 sudo journalctl -u delight.embeddings.service.
💡 其他1C Bitrix开发人员解决方案:
- WebP图像转换器到现代格式“即时” 🏆 2000+安装
- Lazyload Lite-延迟加载图像 🏆 2000+安装
- LazyLoad Pro-延迟下载图像、视频和iFrame,只需单击
- 选择交货日期和时间
- 使用购物车规则中的PHP条件,以实现自己的折扣和加价条件
- 购物车规则中的高级累积折扣
- 异步器:异步加载组件
- 资源加载程序
- HTML/JS/CSS微型化
👨💻 作者
模块有用吗?你可以离开。 评论 感谢开发者:
https://yoomoney.ru/to/41001510540341
