Directum RX について
Directum RX のデータを AI アシスタントから利用する MCP サーバーです。担当タスク、文書、ナレッジベース、ボード、プロジェクト、システムヘルプに対応し、OData 経由で設定ユーザーの権限を使います。既定は読み取り専用で、書き込みには明示的な有効化が必要です。
主な機能
- 01担当タスク、作業、文書の参照
- 02ナレッジベースとシステムヘルプの検索
- 03アジャイルボードとプロジェクト計画の確認
- 04OData による任意エンティティの照会
- 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 に対応するその他のホスト)をお使いのシステムに接続します。割り当て、タスク、ドキュメント、ナレッジベース、アジャイルボード、プロジェクト、計画を利用できます。
標準の統合サービス(OData)を通じて RX ユーザーとして動作します。お客様の権限を超える権限を取得したり、スキーマを変更したり、RX のデータベースやログを参照したりすることはありません。
依存関係のない単一のバイナリです。Linux、Windows、macOS(Intel および Apple Silicon)に対応しています。
2つのコマンドでインストール
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 を探すのではなく、コマンド1つで設定を変更できます。
rxmcp config # что настроено (секреты не печатаются)
rxmcp config set RXMCP_ALLOW_WRITE=1 # включить запись
rxmcp config set RXMCP_TZ=Europe/Moscow # часовой пояс для дат
rxmcp check # проверить связь с RX, только чтение
環境変数はプロファイルより優先されます。コンテナや CI では、環境変数を直接渡すほうが便利です。変数名は同じです。全一覧は rxmcp help をご覧ください。
OS のキーリングにシークレットを保存する
パスワード、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 の1つのプロセスが接続できるシステムは1つです。2つ目のシステム(テスト環境や別の顧客の環境)には、別の設定ディレクトリを用意してください。
RXMCP_HOME=~/.config/rxmcp-test rxmcp setup
setup は、たとえば rx-test-company のような名前で、2つ目のサーバーをクライアントに登録し、RXMCP_HOME を渡します。メインシステム用の rx の登録はそのまま残ります。各システムのプロファイル、Cookie、認証プロバイダーのセッションはそれぞれ別に管理されます。サーバー名と説明にはホスト名が含まれるため、アシスタントはどのシステムに問い合わせるべきかを判断できます。2つ目のシステムでほかのコマンドを実行する場合も、同じ RXMCP_HOME を指定してください。例:RXMCP_HOME=~/.config/rxmcp-test rxmcp login。
更新
rxmcp は1日1回、新しいバージョンがリリースされているか確認します。まず drxinfra.ru/dl/rxmcp/latest.txt にアクセスし、利用できない場合は GitHub を確認します。送信されるのは User-Agent に含まれる自身のバージョン番号だけです。新しいバージョンがある場合、アシスタントはセッション中に1回だけ通知します。また、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 形式の記事)。 - アジャイルボード:
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 MB)です。指定しなかったフィールドは変更されず、カードは現在の列内の位置に留まります。rx_comment_ticket— カードにコメントを追加します。既存のコメントとその Id、作成者、日時はrx_ticketで確認できます。rx_edit_comment、rx_delete_comment— 自分のコメントを編集または削除します。他の人のコメントには影響しません。rx_delete_tickets— ボードのインターフェースでの削除と同様に、ボードからカードを削除します。カードのステータスは Deleted になります(1 回につき最大 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。