Directum RX ops: find errors by log line, articles, sizing calculators, versions, checklists
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Supported versions of Linux and Windows Server, Docker, PostgreSQL and compatible DBMS (Postgres Pro, Jatoba, Tantor), Microsoft SQL Server, RabbitMQ, Elasticsearch and Kubernetes tools for Directum RX, as summarized on drxinfra.ru from the vendor documents. The table covers RX 4.12 and RX 25.2 only; for other releases it says so instead of guessing. Optional filters by component and RX version.
Part of a component name or version text, e.g. PostgreSQL, Astra, RabbitMQ, Elasticsearch
RX release, e.g. 4.12 or 25.2
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http rxkb https://drxinfra.ru/mcp
Supported versions of Linux and Windows Server, Docker, PostgreSQL and compatible DBMS (Postgres Pro, Jatoba, Tantor), Microsoft SQL Server, RabbitMQ, Elasticsearch and Kubernetes tools for Directum RX, as summarized on drxinfra.ru from the vendor documents. The table covers RX 4.12 and RX 25.2 only; for other releases it says so instead of guessing. Optional filters by component and RX version.
| Argument | Type | Description |
|---|---|---|
| component | string | Part of a component name or version text, e.g. PostgreSQL, Astra, RabbitMQ, Elasticsearch |
| rx_version | string | RX release, e.g. 4.12 or 25.2 |
{
"type": "object",
"properties": {
"component": {
"type": "string",
"maxLength": 100,
"description": "Part of a component name or version text, e.g. PostgreSQL, Astra, RabbitMQ, Elasticsearch"
},
"rx_version": {
"type": "string",
"maxLength": 20,
"description": "RX release, e.g. 4.12 or 25.2"
}
},
"additionalProperties": false
}Match a log line, stack trace fragment or error message against the drxinfra.ru reference of about 200 errors seen around Directum RX: RX services and Directum Launcher, PostgreSQL, RabbitMQ, Elasticsearch, certificates and TLS, Keycloak and Kerberos, nginx, Docker and Kubernetes. Returns the best matches first, each with the exact error text, what it means, how to check and what to do (Russian), and the page link. Uses the same patterns and ranking as the search box on drxinfra.ru/errors/. Paste the error itself; remove passwords, tokens and personal data first.
| Argument | Type | Description |
|---|---|---|
| text* | string | Log line or error text, as is. The first 16000 characters are checked. |
| limit | integer | How many matches to return, best first |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 20000,
"description": "Log line or error text, as is. The first 16000 characters are checked."
},
"limit": {
"type": "integer",
"default": 3,
"maximum": 6,
"minimum": 1,
"description": "How many matches to return, best first"
}
},
"additionalProperties": false
}Full text (Markdown, Russian) of a drxinfra.ru error page or blog article about Directum RX operations. Accepts an id as returned by find_error and search_site (errors/<slug> or blog/<slug>), a bare slug, or a drxinfra.ru URL such as https://drxinfra.ru/blog/rabbitmq-queue-growth.html. Links inside are absolute.
| Argument | Type | Description |
|---|---|---|
| id* | string | errors/<slug>, blog/<slug>, a slug or a drxinfra.ru URL |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 300,
"description": "errors/<slug>, blog/<slug>, a slug or a drxinfra.ru URL"
}
},
"additionalProperties": false
}Search drxinfra.ru: blog articles on Directum RX infrastructure (PostgreSQL, RabbitMQ, Elasticsearch, backups, monitoring, logs, Kubernetes, security, updates, AI assistants), the error reference and the tool pages (calculators, config generators, checklists). Ranked exactly like the site search: Russian words match by stem and prefix, titles weigh most. Query in Russian works best (e.g. «очередь растёт», «pg_wal», «сертификат»). Returns titles, links, snippets and ids for get_article.
| Argument | Type | Description |
|---|---|---|
| kind | string | Only one kind of page: article, error, tool (calculators and generators) or page |
| limit | integer | How many results to return |
| query* | string | Words to search for |
{
"type": "object",
"required": [
"query"
],
"properties": {
"kind": {
"enum": [
"any",
"article",
"error",
"tool",
"page"
],
"type": "string",
"default": "any",
"description": "Only one kind of page: article, error, tool (calculators and generators) or page"
},
"limit": {
"type": "integer",
"default": 8,
"maximum": 20,
"minimum": 1,
"description": "How many results to return"
},
"query": {
"type": "string",
"maxLength": 300,
"description": "Words to search for"
}
},
"additionalProperties": false
}The drxinfra.ru security self-assessment of a Directum RX installation: 22 weighted questions on backups, passwords, network exposure, updates, TLS, accounts, logs and more, from critical to low. Call without answers to get the questions with weights, hints and fixes; ask the user, then call with answers to get the score out of 100, the zone (red, yellow, green) and the gaps to close first, counted exactly as on drxinfra.ru/security-check.html, with a link that opens the same answers there.
| Argument | Type | Description |
|---|---|---|
| answers | object | Answers by question id: y = yes, p = partly, n = no, u = don't know. Unanswered questions do not count. |
{
"type": "object",
"properties": {
"answers": {
"type": "object",
"properties": {
"q1": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q2": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q3": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q4": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q5": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q6": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q7": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q8": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q9": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q10": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q11": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q12": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q13": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q14": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q15": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q16": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q17": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q18": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q19": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q20": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q21": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
},
"q22": {
"enum": [
"y",
"p",
"n",
"u"
],
"type": "string"
}
},
"description": "Answers by question id: y = yes, p = partly, n = no, u = don't know. Unanswered questions do not count.",
"additionalProperties": false
}
},
"additionalProperties": false
}How many CPU servers and how much memory a local LLM assistant for Directum RX needs (the model works with RX through MCP tools), from drxinfra measurements: llama.cpp on CPU, load tests with 1, 2 and 4 concurrent users and an answer quality check. Same model and numbers as drxinfra.ru/ai-sizing.html. Returns servers, memory, typical and p95 answer time, answers per hour, the quality score, and a comparison of all measured models on the chosen server.
| Argument | Type | Description |
|---|---|---|
| hw | string | Measured server: icelake16 = Intel Xeon Ice Lake, 16 vCPU, 32 ГБ; m1pro = Apple M1 Pro, 8 ядер CPU |
| kv | string | KV cache type of the model server |
| qph | number | Questions per hour from each of them |
| model | string | Model: qwen3-4b = Qwen3 4B; qwen3-8b = Qwen3 8B; gigachat31 = GigaChat 3.1 10B-A1.8B; qwen3-30b-a3b = Qwen3 30B-A3B Instruct 2507 |
| share | number | Percent of them asking in the peak hour, usually 10-30 |
| users | number | Employees with the assistant |
| target | number | Acceptable typical answer time, seconds |
| toolset |
Servers, vCPU, RAM and disks for a Directum RX installation by role (application servers, RabbitMQ, DBMS, document storage, full-text search, Ario, Kubernetes, monitoring, backups) for production, test and pre-production. Runs the very model of the drxinfra.ru/sizing.html calculator, so the numbers are the same as on the page, and returns a link that opens this calculation there. An estimate for budget and requirements, not a load test. Every parameter is optional; omitted ones take the page defaults.
| Argument | Type | Description |
|---|---|---|
| db | string | pg = PostgreSQL, mssql = Microsoft SQL Server |
| ha | boolean | High availability: every layer survives the loss of one node |
| os | string | linux, or windows (Windows Server: RX as services, no containers) |
| dcs | boolean | Document capture service (scanners, mail, folders) |
| fts | boolean | Full-text search (Elasticsearch or OpenSearch) |
| k8s | string | ns = a namespace in an existing cluster, full = the whole cluster (only with place=k8s) |
| ver | string | Directum RX version |
| ario | boolean |
The drxinfra.ru checklist for upgrading Directum RX with a way back: 44 items in 7 phases, from two weeks before the window through the rehearsal on a test contour, the rollback plan, the window itself, checks before users come back and the first day. Optionally marks done items and returns a link that opens the same marks on drxinfra.ru/upgrade-checklist.html, where they can be printed or saved.
| Argument | Type | Description |
|---|---|---|
| done | array | Numbers of the items already done (1-44) |
| phase | integer | Only this phase (1-7); 0 = all |
| window | string | Planned window, for the link, e.g. 15.12 22:00-06:00 (up to 40 characters) |
| to_version | string | Target RX version, for the link (up to 40 characters) |
| from_version | string | Current RX version, for the link (up to 40 characters) |
{
"type": "object",
"properties": {
"done": {
"type": "array",
"items": {
"type": "integer",
"maximum": 44,
"minimum": 1
},
"maxItems": 44,
"description": "Numbers of the items already done (1-44)"
},
"phase": {
"type": "integer",
"default": 0,
"maximum": 7,
"minimum": 0,
"description": "Only this phase (1-7); 0 = all"
},
"window": {
"type": "string",
"maxLength": 100,
"description": "Planned window, for the link, e.g. 15.12 22:00-06:00 (up to 40 characters)"
},
"to_version": {
"type": "string",
"maxLength": 100,
"description": "Target RX version, for the link (up to 40 characters)"
},
"from_version": {
"type": "string",
"maxLength": 100,
"description": "Current RX version, for the link (up to 40 characters)"
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 7, 2026.
| string |
| RX tools given to the model: all = Все 27; pilot = 16 для пилота |
{
"type": "object",
"properties": {
"hw": {
"enum": [
"icelake16",
"m1pro"
],
"type": "string",
"default": "icelake16",
"description": "Measured server: icelake16 = Intel Xeon Ice Lake, 16 vCPU, 32 ГБ; m1pro = Apple M1 Pro, 8 ядер CPU"
},
"kv": {
"enum": [
"f16",
"q8_0"
],
"type": "string",
"default": "f16",
"description": "KV cache type of the model server"
},
"qph": {
"type": "number",
"default": 2,
"maximum": 1000,
"minimum": 1,
"description": "Questions per hour from each of them"
},
"model": {
"enum": [
"qwen3-4b",
"qwen3-8b",
"gigachat31",
"qwen3-30b-a3b"
],
"type": "string",
"default": "qwen3-8b",
"description": "Model: qwen3-4b = Qwen3 4B; qwen3-8b = Qwen3 8B; gigachat31 = GigaChat 3.1 10B-A1.8B; qwen3-30b-a3b = Qwen3 30B-A3B Instruct 2507"
},
"share": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Percent of them asking in the peak hour, usually 10-30"
},
"users": {
"type": "number",
"default": 300,
"maximum": 1000000,
"minimum": 1,
"description": "Employees with the assistant"
},
"target": {
"type": "number",
"default": 60,
"maximum": 3600,
"minimum": 10,
"description": "Acceptable typical answer time, seconds"
},
"toolset": {
"enum": [
"all",
"pilot"
],
"type": "string",
"default": "all",
"description": "RX tools given to the model: all = Все 27; pilot = 16 для пилота"
}
},
"additionalProperties": false
}| Directum Ario (recognition and classification) |
| test | boolean | Test contour (a fifth of users, a tenth of data) |
| docKB | integer | Average document size, KB |
| place | string | vm = containers on virtual machines, k8s = Kubernetes (Linux only) |
| store | string | s3 = object storage (MinIO or S3 storage), fs = file storage (volume, NFS, SMB) |
| users | integer | Total number of RX users |
| years | integer | Planning horizon, years |
| active | integer | Users working at the same time; 0 means 30% of the total |
| backup | boolean | Backups: volume outside the contour |
| mobile | integer | Users of the mobile app |
| pgKind | string | pro = Postgres Pro, vanilla = PostgreSQL (only with db=pg) |
| logDays | integer | Log retention, days |
| preprod | boolean | Pre-production contour (data as in production) |
| docsYear | integer | Documents created per year |
| arioPages | integer | Ario flow, pages per hour (only with ario) |
| historyGB | number | Archive migrated from the old system, GB: counts for storage, not for load |
| monitoring | boolean | Monitoring and centralized logs |
| testInCluster | boolean | Test and pre-production in the same cluster (with place=k8s and k8s=full) |
| preprodLikeProd | boolean | Pre-production with the same high availability as production |
{
"type": "object",
"properties": {
"db": {
"enum": [
"pg",
"mssql"
],
"type": "string",
"default": "pg",
"description": "pg = PostgreSQL, mssql = Microsoft SQL Server"
},
"ha": {
"type": "boolean",
"default": false,
"description": "High availability: every layer survives the loss of one node"
},
"os": {
"enum": [
"linux",
"windows"
],
"type": "string",
"default": "linux",
"description": "linux, or windows (Windows Server: RX as services, no containers)"
},
"dcs": {
"type": "boolean",
"default": false,
"description": "Document capture service (scanners, mail, folders)"
},
"fts": {
"type": "boolean",
"default": true,
"description": "Full-text search (Elasticsearch or OpenSearch)"
},
"k8s": {
"enum": [
"ns",
"full"
],
"type": "string",
"default": "ns",
"description": "ns = a namespace in an existing cluster, full = the whole cluster (only with place=k8s)"
},
"ver": {
"enum": [
"26.2",
"26.1",
"25.3",
"25.2",
"25.1",
"4.12",
"4.11",
"4.10",
"4.9"
],
"type": "string",
"default": "26.2",
"description": "Directum RX version"
},
"ario": {
"type": "boolean",
"default": false,
"description": "Directum Ario (recognition and classification)"
},
"test": {
"type": "boolean",
"default": true,
"description": "Test contour (a fifth of users, a tenth of data)"
},
"docKB": {
"type": "integer",
"default": 500,
"maximum": 1000000,
"minimum": 50,
"description": "Average document size, KB"
},
"place": {
"enum": [
"vm",
"k8s"
],
"type": "string",
"default": "vm",
"description": "vm = containers on virtual machines, k8s = Kubernetes (Linux only)"
},
"store": {
"enum": [
"s3",
"fs"
],
"type": "string",
"default": "s3",
"description": "s3 = object storage (MinIO or S3 storage), fs = file storage (volume, NFS, SMB)"
},
"users": {
"type": "integer",
"default": 300,
"maximum": 200000,
"minimum": 5,
"description": "Total number of RX users"
},
"years": {
"enum": [
3,
5,
7
],
"type": "integer",
"default": 5,
"description": "Planning horizon, years"
},
"active": {
"type": "integer",
"default": 0,
"maximum": 200000,
"minimum": 0,
"description": "Users working at the same time; 0 means 30% of the total"
},
"backup": {
"type": "boolean",
"default": true,
"description": "Backups: volume outside the contour"
},
"mobile": {
"type": "integer",
"default": 0,
"maximum": 200000,
"minimum": 0,
"description": "Users of the mobile app"
},
"pgKind": {
"enum": [
"pro",
"vanilla"
],
"type": "string",
"default": "pro",
"description": "pro = Postgres Pro, vanilla = PostgreSQL (only with db=pg)"
},
"logDays": {
"enum": [
14,
30,
90
],
"type": "integer",
"default": 14,
"description": "Log retention, days"
},
"preprod": {
"type": "boolean",
"default": false,
"description": "Pre-production contour (data as in production)"
},
"docsYear": {
"type": "integer",
"default": 60000,
"maximum": 100000000,
"minimum": 0,
"description": "Documents created per year"
},
"arioPages": {
"type": "integer",
"default": 300,
"maximum": 1000000,
"minimum": 50,
"description": "Ario flow, pages per hour (only with ario)"
},
"historyGB": {
"type": "number",
"default": 0,
"maximum": 10000000,
"minimum": 0,
"description": "Archive migrated from the old system, GB: counts for storage, not for load"
},
"monitoring": {
"type": "boolean",
"default": true,
"description": "Monitoring and centralized logs"
},
"testInCluster": {
"type": "boolean",
"default": true,
"description": "Test and pre-production in the same cluster (with place=k8s and k8s=full)"
},
"preprodLikeProd": {
"type": "boolean",
"default": false,
"description": "Pre-production with the same high availability as production"
}
},
"additionalProperties": false
}