关于 Directum RX
Directum RX 的 MCP 服务将任务、文档、知识库、看板和项目数据提供给 AI 助手查询,也可访问任意实体和系统帮助。它以用户现有权限通过 OData 连接,默认只读,写入需显式启用。
主要功能
- 01查询任务、分配事项和文档
- 02搜索知识库与系统帮助
- 03查看敏捷看板及项目计划
- 04通过 OData 查询任意实体
- 05按需启用写入工具
- 06支持多种 RX 登录方式
适用场景
- 01汇总待办和逾期分配事项
- 02检索文档内容或知识库文章
- 03追踪看板卡片与项目计划
- 04按条件查询合同或其他实体
MCP 相关
作为 MCP 服务连接 Directum RX,并向客户端暴露读取及可选写入工具、资源和提示词。通过 RX 的 OData 集成服务,以配置用户的权限执行操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e RXMCP_URL -e RXMCP_LOGIN -e RXMCP_AUTH -e RXMCP_PASSWORD -e RXMCP_COOKIE -e RXMCP_ALLOW_WRITE -e RXMCP_TZ ghcr.io/drxinfra/rxmcp:v0.16.0RXMCP_URLDirectum RX integration service URL, for example https://rx.company.ru/IntegrationRXMCP_LOGINYour Directum RX login: the server finds your assignments by itRXMCP_AUTH密钥How to sign in: basic (login and password), cookie, oidc, bearer or headerRXMCP_PASSWORD密钥Password for RXMCP_AUTH=basicRXMCP_COOKIE密钥Cookie header from the browser for RXMCP_AUTH=cookie (works with SSO and domain sign-in)RXMCP_ALLOW_WRITESet to 1 to enable write tools (tasks, assignments, board tickets). Read-only by defaultRXMCP_TZTime zone for dates, for example Europe/Moscow本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/drxinfra/rxmcp:v0.16.0stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
rxmcp:Directum RX MCP 服务
Directum RX MCP 服务。 将 AI 助手(Claude、Cursor 和任何 MCP 宿主)连接到 Directum RX:分配、任务、文档及其文本、知识库、敏捷看板、项目计划、通过 OData 访问任意实体,以及搜索您自己的 RX 版本的系统帮助。单个二进制文件,默认只读。本页其余内容为俄语;工具列表和设置见 server.json。
Directum RX 的 MCP 服务。将 AI 助手(Claude Desktop、Claude Code、Cursor 和任何其他支持 Model Context Protocol 的宿主)连接到您的系统:分配、任务、文档、知识库、敏捷看板、项目和计划。
以 RX 用户身份通过标准集成服务(OData)运行。不会获得超出您现有权限的权限,不会更改架构,也不会访问 RX 数据库和日志。
单个无依赖二进制文件:Linux、Windows、macOS(Intel 和 Apple Silicon)。
两条命令完成安装
curl -fsSL https://drxinfra.ru/dl/rxmcp/install.sh | sh # или скачайте бинарник вручную
rxmcp setup
setup 会询问 RX 地址、登录名和登录方式,只读检查连接,并自动将服务配置到 Claude Desktop、Claude Code 和 Cursor。重启客户端后,工具列表中就会出现 rx。
无需互联网,也无需脚本:从 Releases 页面获取压缩包,解压后将二进制文件放入 PATH,然后运行 rxmcp setup。在 macOS 上,如果文件是通过浏览器下载的,系统会要求移除隔离属性:xattr -d com.apple.quarantine rxmcp。
设置存放位置
设置位于配置文件 ~/.config/rxmcp/config.json 中(Windows:%AppData%\rxmcp\config.json),权限为 0600。AI 客户端配置中只保留二进制文件的路径:
{ "mcpServers": { "rx": { "command": "/usr/local/bin/rxmcp" } } }
这样设计是为了通过一条命令更改设置,而不必费力查找客户端的 JSON 文件:
rxmcp config # что настроено (секреты не печатаются)
rxmcp config set RXMCP_ALLOW_WRITE=1 # включить запись
rxmcp config set RXMCP_TZ=Europe/Moscow # часовой пояс для дат
rxmcp check # проверить связь с RX, только чтение
环境变量的优先级高于配置文件,在容器和 CI 中直接传入环境变量更方便。变量名相同,完整列表请查看:rxmcp help。
在操作系统钥匙串中存储密钥
密码、cookie、令牌和登录提供方会话可以存储在设置目录之外的钥匙串中:macOS 上的 Keychain、Windows 上的凭据管理器、Linux 上的 Secret Service(GNOME Keyring、KWallet)。如果钥匙串可用,setup 会主动提供此选项。
rxmcp secrets # где лежат секреты и доступна ли связка ключей
rxmcp secrets keyring # перенести в связку ключей; перезапускать клиента не нужно
rxmcp secrets file # вернуть в файлы 0600
迁移后,config.json 中只保留非敏感设置。Linux 服务器和没有图形会话的 WSL 环境没有钥匙串,密钥会继续存储在文件中。此方式能保护什么、不能保护什么:docs/security.md。
多个 RX 系统
一个 rxmcp 进程只能连接一个系统。连接第二个系统(测试环境、另一个客户)时,请创建单独的设置目录:
RXMCP_HOME=~/.config/rxmcp-test rxmcp setup
setup 会使用单独的名称(例如 rx-test-company)将第二个服务配置到客户端,并传入 RXMCP_HOME。主系统的 rx 配置会保持不变。每个系统都有各自的配置文件、cookie 和提供方会话;服务名称和描述中会注明主机,因此助手能知道应该向哪个系统发送请求。针对第二个系统运行其他命令时,也要使用相同的 RXMCP_HOME:RXMCP_HOME=~/.config/rxmcp-test rxmcp login。
更新
rxmcp 每天会检查一次是否有新版本:先查询文件 drxinfra.ru/dl/rxmcp/latest.txt,如果无法访问,则查询 GitHub。除了自身版本号外,不会在 User-Agent 中发送任何内容。如果有新版本,助手会在每个会话中提示一次,rxmcp version 和 rxmcp check 也会以文字提示。
rxmcp update # скачать, сверить с SHA256SUMS, заменить бинарник
rxmcp config set RXMCP_UPDATE_CHECK=0 # не узнавать о новых версиях
更新后请重启 AI 客户端。如果 rxmcp 位于 /usr/local/bin 且通过 sudo 安装,更新时也要使用 sudo rxmcp update。在 Docker 镜像中,版本检查处于关闭状态:请随镜像一起更新版本。
Вход в RX
| Способ | Когда подходит | Что нужно сделать |
|---|---|---|
password | в RX включён вход по паролю (обычно небольшие внедрения) | rxmcp setup, ввести пароль один раз |
cookie + --sso | вход в RX через Keycloak или другой OIDC-провайдер | один раз rxmcp login --sso: дальше rxmcp сам берёт новую cookie RX, пока жива сессия провайдера |
cookie | работает всегда, в том числе при SSO, Keycloak и домене | войти в RX в браузере, скопировать cookie sungero_client, rxmcp login --paste |
oidc | ваш провайдер и заведённый для rxmcp клиент | rxmcp login, вход в браузере (PKCE) или по коду (device flow) |
bearer | у вас уже есть токен | RXMCP_TOKEN=... |
Вход через провайдера без администратора: login --sso
Если RX пускает через Keycloak (или другой OIDC-провайдер), протокол OIDC выполняет сам сервер RX: браузер уходит к провайдеру, тот по живой сессии сразу возвращает код, RX выдаёт cookie sungero_client. rxmcp повторяет ту же цепочку со своей копией сессии провайдера. Пароль он не видит, отдельный клиент в провайдере не нужен.
rxmcp login --sso
Команда сама узнает адрес провайдера и попросит скопировать заголовок cookie со страницы личного кабинета провайдера (вы там уже вошли, пароль не спросят). Дальше, когда RX отвечает 401, rxmcp получает новую cookie и повторяет запрос сам. Входить в браузере заново нужно, только когда истекает сессия провайдера: это срок, который задал его администратор, обычно от нескольких часов до нескольких дней.
Сессия провайдера лежит в ~/.config/rxmcp/sso-<адрес RX>.json с правами 0600. Она открывает вход во все приложения этого провайдера, а не только в RX: храните её как пароль. Удалить: rxmcp logout. Если RX просит второй фактор, такой вход rxmcp не пройдёт и скажет об этом.
Cookie вручную
Cookie — обходной путь, зато без участия администратора. Сессия RX живёт недолго, поэтому обновление сделано в одну команду:
rxmcp login --paste # взять cookie из буфера обмена
rxmcp login # вставить cookie в терминал и нажать Enter, или просто Enter, если она в буфере
rxmcp login --stdin < cookie.txt # из файла или конвейера
Длинную cookie можно вставлять прямо в терминал: на время ввода rxmcp снимает предел длины строки (1024 символа в macOS, 4096 в Linux). В WSL --paste и Enter берут cookie из буфера обмена Windows через powershell.exe, так что копировать в браузере Windows можно как обычно.
Cookie лежит отдельным файлом и перечитывается на каждом запросе: перезапускать ИИ-клиент после обновления не нужно. Если сессия истекла, сервер так и скажет в ответе вместо непонятной ошибки.
Про oidc: rxmcp умеет и вход в браузере (authorization code + PKCE, локальный redirect), и device flow (код на экране, без открытого порта). Для этого администратору нужно один раз завести в вашем провайдере публичный клиент — без этого остаётся login --sso, cookie или password.
功能
读取(始终可用):
rx_whoami— 查看我在 RX 中的身份。rx_my_assignments— 查看进行中、逾期、未读和已完成的任务;查看通知。rx_get_assignment、rx_get_task、rx_list_tasks— 查看包含对话、附件和任务的卡片。rx_whats_new— 查看自上次以来的新内容:收到的任务和通知、今天的紧急事项,以及我已完成的任务。rx_find_documents、rx_get_document、rx_get_document_text— 搜索、查看卡片、读取版本文本(docx、xlsx、pptx、pdf、txt、md、csv、json、xml、html、rtf)。扫描件和图片格式的文档会以页面图片的形式提供,由助手自行读取其中的文本。rx_find_employees— 查找员工,以便将任务分配给他们。- 知识库:
rx_kb_areas、rx_kb_search、rx_kb_article(markdown 格式的文章)。 - Agile 看板:
rx_boards、rx_board、rx_tickets、rx_ticket(包含评论的卡片)、rx_ticket_history(卡片历史记录:谁在何时创建卡片、移动卡片所属列、修改期限、计划和实际工时、执行人、标签,以及关闭卡片)。 - 项目:
rx_projects、rx_project、rx_project_plans、rx_project_plan(工作树、负责人、逾期事项)。 - 系统帮助:
rx_help_search、rx_help_topic、rx_help_toc。助手会根据你所用 RX 版本的帮助文档回答“如何设置”和“这个字段是什么意思”等问题,并指出相应文章。 - 任意实体:
rx_find_entity(按俄语或英语名称搜索)、rx_describe_entity(字段和链接)、rx_query(按条件读取)。适用于没有现成工具的数据,例如合同、交易对手、目录和客户定制项。
写入(仅在 RXMCP_ALLOW_WRITE=1 时可用,否则模型看不到这些工具):
rx_create_ticket— 在看板上创建卡片:设置列、期限、优先级、计划和实际工时、标签、执行人、附件。rx_update_ticket— 修改卡片(包括计划和实际工时)、将卡片移至其他列,添加附件:链接、通过 Id 指定的 RX 文档,或磁盘上的文件(最大 20 МБ)。未传入的字段保持不变,卡片仍留在原列中的原位置。rx_comment_ticket— 为卡片添加评论。rx_ticket会显示现有评论及其 Id、作者和时间。rx_edit_comment、rx_delete_comment— 修改或删除自己的评论,不会更改他人的评论。rx_delete_tickets— 从看板删除卡片,效果与在看板界面中删除相同:卡片状态会变为 Deleted(每次最多 100 张)。rx_create_column— 在看板上创建列:设置名称、位置、是否为最终列以及卡片数量上限。未指定位置时,会将新列放在“已完成”之前。rx_complete_assignment— 处理任务:完成任务、验收工作、审批(包括附带意见的审批)、退回修改,或标记为已读。操作结果会根据任务类型自动选择。不处理签署任务:只能在 RX 中签署。rx_send_for_acquaintance— 将文档发送给员工阅览。rx_send_for_approval— 发送文档进行审批:可指定人员进行自由审批,也可按 RX 规则和规程审批。rx_create_article、rx_update_article— 以 markdown 格式创建知识库文章,或修改现有文章;新文本会作为新版本保存。rx_create_simple_task— 创建并发送简单任务。rx_abort_task— 终止任务。rx_call_action— 按名称调用模块操作(没有现成工具时使用)。
此外,还提供资源 rx://assignment/{id}、rx://task/{id}、rx://document/{id},以及“梳理今天的任务”“文档摘要”提示词。
Наборы инструментов
По умолчанию видны все инструменты. Если нужна только часть, перечислите наборы в RXMCP_TOOLS: core (задания, задачи, документы, сотрудники, «что нового»; включён всегда), boards, projects, kb, help, catalog. Можно добавить и отдельные инструменты по имени.
rxmcp config set RXMCP_TOOLS=boards,kb # задания, документы, доски и база знаний
rxmcp config set RXMCP_TOOLS=boards,rx_query # плюс один инструмент из каталога
rxmcp config unset RXMCP_TOOLS # снова все
Это полезно малым локальным моделям: на 40 с лишним инструментах они заметно хуже выбирают нужный. Инструменты записи по-прежнему появляются только с RXMCP_ALLOW_WRITE=1.
Каждое пишущее действие показывает, что именно будет сделано, и спрашивает подтверждение (elicitation), если клиент это умеет. Некоторые клиенты заявляют, что умеют, но форму не показывают и сразу отвечают отказом: тогда каждый вызов заканчивается «Пользователь отменил действие». В этом случае rxmcp config set RXMCP_CONFIRM=0 выключает форму, и подтверждением служит только разрешение на вызов инструмента в самом клиенте. Теги и исполнители ищутся по имени: чего не нашлось — про то будет сказано прямо в ответе, карточка при этом создастся.
Как это устроено внутри и почему именно так, история версий и что ещё не сделано: docs/architecture.md.
Справка системы
Справка Directum RX принадлежит вендору, поэтому в поставке rxmcp её нет. Сервер скачивает её с вашего же стенда: там она лежит рядом с веб-клиентом и соответствует вашей версии системы.
rxmcp docs index # скачать и проиндексировать, около трёх минут на 5000 статей
rxmcp docs search правило согласования договоров
rxmcp docs status
Команду можно не выполнять: при первом вопросе по справке сервер начнёт скачивание сам и ответит, когда закончит. Индекс лежит в каталоге настроек (help-<хост>.idx.gz, около 5 МБ), у каждого стенда свой. После обновления RX выполните rxmcp docs index ещё раз.
Поиск лексический, с учётом русских окончаний и с приоритетом заголовков. Модель для эмбеддингов не нужна: переформулировать вопрос терминами системы помощник умеет сам. Если справка лежит по нестандартному адресу, задайте RXMCP_HELP_URL.
Docker
Для сервера и для HTTP-режима:
docker run --rm -p 127.0.0.1:8765:8765 \
-e RXMCP_URL=https://rx.company.ru/Integration \
-e RXMCP_LOGIN=ivanov -e RXMCP_PASSWORD=... \
-e RXMCP_HTTP_ADDR=0.0.0.0:8765 -e RXMCP_HTTP_SECRET=... \
ghcr.io/drxinfra/rxmcp serve --http
По stdio из контейнера тоже работает, но для настольного клиента проще бинарник: не нужны ни монтирование каталога с настройками (-v ~/.config/rxmcp:/config -e RXMCP_HOME=/config), ни проброс браузера для oidc.
Сервер для компании: каждый под своей учёткой
В HTTP-режиме rxmcp можно поставить один на всю компанию так, что каждый сотрудник работает со своими правами в RX. Чат с входом через ваш провайдер (Keycloak или другой OIDC, обычно связанный с AD) передаёт rxmcp токен вошедшего сотрудника. rxmcp проверяет его по открытым ключам провайдера и с этим же токеном идёт в RX. Служебной учётки с широкими правами нет, помощник видит ровно то, что видит сотрудник.
docker run --rm -p 127.0.0.1:8765:8765 \
-e RXMCP_URL=https://rx.company.ru/Integration \
-e RXMCP_AUTH=passthrough \
-e RXMCP_HTTP_ADDR=0.0.0.0:8765 \
-e RXMCP_HTTP_AUTH=oidc \
-e RXMCP_HTTP_OIDC_ISSUER=https://sso.company.ru/realms/company \
-e RXMCP_HTTP_OIDC_AUDIENCE=rxmcp \
-e RXMCP_HTTP_REQUIRE_ROLE=rx-assistant \
ghcr.io/drxinfra/rxmcp serve --http
- Проверяются подпись токена (RS256/384/512, ES256/384 по ключам провайдера), издатель, срок, аудитория или
azp. Токены без подписи и с общим секретом (none,HS*) не принимаются. RXMCP_HTTP_REQUIRE_ROLEпускает только сотрудников с ролью realm. Логин берётся изpreferred_username(RXMCP_HTTP_USER_CLAIM).- В журнал пишется каждый вызов: сотрудник, инструмент, имена параметров (без значений), успех, время.
- Справку в этом режиме скачивать нечем: подготовьте индекс заранее (
rxmcp docs indexпод любой учёткой, файлhelp-<хост>.idx.gzв каталог настроек сервера).
Сервис интеграции RX должен принимать токены вашего провайдера. Это настройка самого RX и провайдера входа, а не rxmcp; её мы делаем при внедрении вместе с чатом и локальной моделью: написать. Как это выглядит с моделью внутри контура — демо.
Каталоги MCP
Сервер опубликован в официальном MCP Registry под именем io.github.drxinfra/rxmcp. Запись обновляется автоматически при каждом релизе: описание лежит в server.json, образ в ghcr.io/drxinfra/rxmcp.
В каталоге LobeHub сервер называется drxinfra-rxmcp. Его описание лежит в lhm.plugin.json и обновляется вручную: npx -y @lobehub/market-cli plugin update --dir . после смены версии в файле.
Безопасность
Подробно, для тех, кто согласует внедрение: docs/security.md. Там сетевые потоки, что лежит на диске при каждом способе входа, что видит провайдер модели и что настроить.
- Только сервис интеграции RX и только права вашего пользователя. Ни базы, ни файлов, ни логов системы. Других соединений нет, кроме проверки версии раз в сутки (выключается).
- Запись выключена по умолчанию. Без
RXMCP_ALLOW_WRITE=1пишущих инструментов нет в списке — модель не может их вызвать. - Секреты не попадают в конфиг ИИ-клиента: профиль, cookie и сессия провайдера лежат в
~/.config/rxmcpс правами0600. - Тексты из RX отдаются модели с пометкой, что это данные, а не инструкции. Файлы из каталога настроек rxmcp и каталогов с ключами (
~/.sshи т. п.) к карточкам не прикладываются. - В логи сервера не пишутся ни cookie, ни токены, ни пароли.
- HTTP-режим слушает только то, что вы указали, и пускает либо по общему секрету в заголовке
Authorization, либо по токену сотрудника от вашего провайдера входа (с проверкой подписи и роли). - Архивы релизов подписаны подписью происхождения:
gh attestation verify <архив> --repo drxinfra/rxmcp.
Сборка из исходников
go build -o rxmcp . # нужен Go 1.27+
hack/build.sh v0.14.0 # архивы под все платформы в dist/
go test ./...
Лицензия
Apache-2.0. Текст из PDF извлекается копией библиотеки ledongthuc/pdf (BSD-3-Clause) с правками, она лежит в internal/thirdparty/pdf. Directum RX — продукт Directum; проект с вендором не связан, торговые знаки принадлежат правообладателям.
Форк или производная работа должны сохранить файл NOTICE с указанием авторства. Права на имена «rxmcp» и «drxinfra» лицензия не даёт (раздел 6), так что форк выпускается под другим именем.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。