Koskamo

drxinfra knowledge base for Directum RX MCP

A read-only MCP server providing a knowledge base for Directum RX administrators. It allows AI agents to look up errors by log lines, read articles, search the site, size servers for RX and local AI assistants, check component versions, and walk upgrade checklists. It supports Streamable HTTP and requires no sign-in.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

drxinfra knowledge base for Directum RX MCP logo, by drxinfraCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by drxinfra
MCP endpoint (Streamable HTTP)
https://drxinfra.ru/mcp
Vendor documentation

What its tools do

8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

8 of 8 have a description · 8 of 8 declare behavior hints · 8 of 8 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Look up errors by log line in a reference of about 200 errors
  • Size servers for RX and for a local AI assistant
  • Check component versions and walk the upgrade checklist
  • Read articles and search the site for Directum RX information

Source and maintenance

Community listingRegistry 0.1.0
Maintenance checked

Protocol and capabilities

Server
rxkb v0.1.0
MCP protocol negotiated in check
2025-11-25
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Knowledge base of drxinfra.ru for Directum RX operations: read-only, public, no authorization. - find_error: paste a log line or an error text; it is matched against the reference of about 200 errors of RX, Directum Launcher, PostgreSQL, RabbitMQ, Elasticsearch, certificates, Keycloak, nginx, Docker and Kubernetes, with what it means, how to check and what to do. - get_article: the full text of an error page or a blog post by id or drxinfra.ru URL. - search_site: articles, error pages and tool pages of the site, ranked like the site search. - size_rx and size_ai: the sizing calculators of the site (Directum RX servers; hardware for a local AI assistant). The numbers are the same as on the pages, and the result links to the same calculation on the site. - component_versions, upgrade_checklist, security_self_check: version table, upgrade checklist and the weighted security questions. The content is in Russian. Answer in the user's language, but keep commands, settings, file names and error strings exactly as given. Give the user the drxinfra.ru link from the result. Before sending a log line, remove passwords, tokens, host names and personal data from it: the server needs only the error text.

Tools

8 advertised

component_versions — Directum RX component versions
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

component_versions input schema
{
  "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
}
component_versions annotations
{
  "title": "Directum RX component versions",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_error — Find a Directum RX error by log line
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

find_error input schema
{
  "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
}
find_error annotations
{
  "title": "Find a Directum RX error by log line",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_article — Get a drxinfra.ru article
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_article input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 300,
      "description": "errors/<slug>, blog/<slug>, a slug or a drxinfra.ru URL"
    }
  },
  "additionalProperties": false
}
get_article annotations
{
  "title": "Get a drxinfra.ru article",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_site — Search drxinfra.ru
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_site input schema
{
  "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
}
search_site annotations
{
  "title": "Search drxinfra.ru",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
security_self_check — Directum RX security self-assessment
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

security_self_check input schema
{
  "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
}
security_self_check annotations
{
  "title": "Directum RX security self-assessment",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
size_ai — Hardware for a local AI assistant for Directum RX
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

size_ai input schema
{
  "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
}
size_ai annotations
{
  "title": "Hardware for a local AI assistant for Directum RX",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
size_rx — Directum RX sizing
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

size_rx input schema
{
  "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
}
size_rx annotations
{
  "title": "Directum RX sizing",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
upgrade_checklist — Directum RX upgrade checklist
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

upgrade_checklist input schema
{
  "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
}
upgrade_checklist annotations
{
  "title": "Directum RX upgrade checklist",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
3850 ms
95th percentile latency
3850 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 3850 ms · metadata changed · 8 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http drxinfra-knowledge-base-for-directum-rx-mcp https://drxinfra.ru/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add drxinfra-knowledge-base-for-directum-rx-mcp --url https://drxinfra.ru/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable drxinfra-knowledge-base-for-directum-rx-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "drxinfra-knowledge-base-for-directum-rx-mcp": {
      "url": "https://drxinfra.ru/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "drxinfra-knowledge-base-for-directum-rx-mcp": {
      "type": "streamableHttp",
      "url": "https://drxinfra.ru/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start drxinfra-knowledge-base-for-directum-rx-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "drxinfra-knowledge-base-for-directum-rx-mcp": {
      "type": "http",
      "url": "https://drxinfra.ru/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http drxinfra-knowledge-base-for-directum-rx-mcp https://drxinfra.ru/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://drxinfra.ru/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "drxinfra-knowledge-base-for-directum-rx-mcp": {
      "serverUrl": "https://drxinfra.ru/mcp"
    }
  }
}

Let your agent find its tools

Find servers like drxinfra knowledge base for Directum RX MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.