mcpField
D
Directum RX

Directum RX

本地服务
drxinfra.ru生产力0今天更新

关于 Directum RX

Directum RX 的 MCP 服务将任务、文档、知识库、看板和项目数据提供给 AI 助手查询,也可访问任意实体和系统帮助。它以用户现有权限通过 OData 连接,默认只读,写入需显式启用。

主要功能

  1. 01查询任务、分配事项和文档
  2. 02搜索知识库与系统帮助
  3. 03查看敏捷看板及项目计划
  4. 04通过 OData 查询任意实体
  5. 05按需启用写入工具
  6. 06支持多种 RX 登录方式

适用场景

  1. 01汇总待办和逾期分配事项
  2. 02检索文档内容或知识库文章
  3. 03追踪看板卡片与项目计划
  4. 04按条件查询合同或其他实体

MCP 相关

作为 MCP 服务连接 Directum RX,并向客户端暴露读取及可选写入工具、资源和提示词。通过 RX 的 OData 集成服务,以配置用户的权限执行操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"drxinfra-rxmcp": {
"command": "docker",
"args": [
"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.0"
],
"env": {
"RXMCP_URL": "<RXMCP_URL>",
"RXMCP_LOGIN": "<RXMCP_LOGIN>",
"RXMCP_AUTH": "<RXMCP_AUTH>",
"RXMCP_PASSWORD": "<RXMCP_PASSWORD>",
"RXMCP_COOKIE": "<RXMCP_COOKIE>",
"RXMCP_ALLOW_WRITE": "<RXMCP_ALLOW_WRITE>",
"RXMCP_TZ": "<RXMCP_TZ>"
}
}
}
}
启动命令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.0
需要配置的环境变量
RXMCP_URLDirectum RX integration service URL, for example https://rx.company.ru/Integration
RXMCP_LOGINYour Directum RX login: the server finds your assignments by it
RXMCP_AUTH密钥How to sign in: basic (login and password), cookie, oidc, bearer or header
RXMCP_PASSWORD密钥Password for RXMCP_AUTH=basic
RXMCP_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 default
RXMCP_TZTime zone for dates, for example Europe/Moscow

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/drxinfra/rxmcp:v0.16.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

rxmcp:Directum RX MCP 服务

rxmcp

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), так что форк выпускается под другим именем.

Directum RX MCP (rxmcp) MCP server – quality and maintenance score on Glama

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。