Skip to main content
Glama

remus-mcp

MCP server for REMUS Jet databases — stdio + Streamable HTTP/SSE, 100% Jet-compatible (mdbtools + Jackcess fallback).

Quick start (native)

cd mcp && uv sync
uv run remus-mcp --rem ../base/remus_base_empty_english.rem        # stdio (Claude Desktop)
uv run remus-mcp --http --port 3000 --auth-token secret            # HTTP  http://127.0.0.1:3000/mcp
curl -H "Authorization: Bearer secret" http://127.0.0.1:3000/health

Related MCP server: mudbase-mcp-server

Docker

Images / compose

  • Dockerfile at repo root (and mcp/Dockerfile — same content, repo-root context): python:3.11-slim-bookworm + mdbtools + default-jre-headless + wine64 + winetricks + xvfb + wkhtmltopdf + uv. Bakes mcp/, xml/remus.dtd, xslt/, base/*.rem, jars/, assets/transform.vbs. Wine prefix at /opt/wine (WINEARCH=win32) lazy-initializes at container start (docker-entrypoint.sh → xvfb-run wineboot + winetricks -q msxml3, falls back to lxml if offline). Containers run as the host user (user: "${UID:-1000}:${GID:-1000}" in compose) so files written to /data remain owned by the user, enabling direct editing with the original desktop app.

  • docker-compose.yml (repo root) — two services, one image, different transports:

    Service

    Transport

    How to run

    Port

    Auth

    remus-mcp-stdio

    stdio (local)

    docker compose run --rm remus-mcp-stdio (attaches stdin)

    —

    no auth

    remus-mcp-http

    Streamable HTTP (remote, SSE fallback via SDK)

    docker compose up remus-mcp-http

    3000:3000 (${REMUS_HTTP_PORT:-3000})

    Bearer ${MCP_AUTH_TOKEN:-secret}

    remus-mcp-sse

    alias to http

    docker compose --profile sse up remus-mcp-sse

    3000

    same

# Build & run HTTP (recommended for Inspector / remote agents)
docker compose up --build remus-mcp-http
curl -H "Authorization: Bearer secret" http://127.0.0.1:3000/health      # {"status":"ok"}
curl -H "Authorization: Bearer secret" http://127.0.0.1:3000/mcp | head  # MCP handshake
curl http://127.0.0.1:3000/mcp | head                                   # 401 {"error":"UNAUTHORIZED"} (when token set)

# stdio — attaches your terminal's stdin to the MCP stdio transport
mkdir -p data && cp base/remus_base_empty_english.rem data/project.rem
docker compose run --rm remus-mcp-stdio
# or manual:
docker build -t remus-mcp .                         # from repo root
docker run --rm -i --user $(id -u):$(id -g) -v ./data:/data remus-mcp uv run remus-mcp --rem /data/project.rem
# or from mcp/  (repo-root context required):
docker build -f mcp/Dockerfile -t remus-mcp .

Data mounts: ./data:/data (your .rem files), ./base:/app/base:ro etc. are optional — the image already bakes base/ for project_create.

Claude Desktop

stdio via docker:

{"mcpServers":{"remus":{"command":"docker","args":["run","--rm","-i","--user","1000:1000","-v","/abs/path/to/data:/data","remus-mcp","uv","run","remus-mcp","--rem","/data/project.rem"]}}}

HTTP (remote):

{"mcpServers":{"remus-http":{"url":"http://127.0.0.1:3000/mcp","headers":{"Authorization":"Bearer secret"}}}}

SSE alias is identical (SDK negotiates streamable_http → SSE fallback automatically).

mcp/ compose (from mcp dir)

cd mcp && docker compose up --build remus-mcp-http   # uses context: .. dockerfile: mcp/Dockerfile

Available Tools

20 tools
close_projectC

Close a project

Inputs: project_id (required).

export_xmlD

Export XML

Inputs: project_id (required), document, filter_ids, filter_type.

get_change_logD

Get change log

Inputs: project_id (required), limit.

get_tracesC

Get traces for oid

Inputs: oid (required), project_id (required), direction.

import_xmlD

Import XML

Inputs: project_id (required), xml, dry_run, strategy, +3 more.

list_projectsB

List open projects

Inputs: no named parameters.

open_projectC

Open a .rem project file

Inputs: path (required).

project_cloneC

Clone project

Inputs: project_id (required), target_path (required).

project_createC

Create new project from template

Inputs: name (required), template (required), target_path (required).

rem_createD

Create entity

Inputs: data (required), type (required), project_id (required).

rem_deleteC

Delete entity

Inputs: oid (required), type (required), project_id (required), cascade.

rem_getC

Get entity by oid

Inputs: oid (required), type (required), project_id (required).

rem_listC

List entities of a type

Inputs: type (required), project_id (required), limit, offset, +5 more.

rem_updateD

Update entity

Inputs: oid (required), type (required), patch (required), project_id (required).

render_htmlC

Render HTML/PDF via Wine msxml3

Inputs: document (required), project_id (required), lang, output.

trace_addD

Add trace

Inputs: project_id (required), source_oid (required), target_oid (required), checked.

trace_matrixD

Trace matrix

Inputs: project_id (required), source_type (required), target_type (required), document.

trace_removeC

Remove trace

Inputs: project_id (required), source_oid (required), target_oid (required).

undo_lastC

Undo last mutation

Inputs: project_id (required).

validate_projectD

Validate project

Inputs: project_id (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.3/5.0

    Scored across 20 tools

    Disambiguation5/5

    Each tool maps to a distinct action on a distinct resource: entities, traces, projects, or files. Even similar tools like get_traces and trace_matrix differ clearly in scope (per-entity vs. matrix-level), and the CRUD operations for entities and traces are unambiguous.

    Naming Consistency3/5

    Naming mixes multiple patterns: rem_ prefix for entity operations, trace_ prefix for some trace operations (but get_traces and trace_matrix deviate), project_ prefix for some project tools (but open_project, close_project, list_projects don't follow). Generic verbs like validate_project, export_xml, undo_last break the prefix pattern. While still readable, the inconsistency is noticeable.

    Tool Count4/5

    With 20 tools, the set is on the heavier side but each tool addresses a specific requirement in a comprehensive project/traceability management system. No redundant or dead-weight tools; the count is justified by the domain's complexity.

    Completeness4/5

    The tool surface covers the core lifecycle: project create/open/close/list/clone, entity CRUD, trace management, validation, import/export, history (undo/change log), and rendering. A notable gap is the lack of project deletion or explicit project update, but agents can work around this by cloning and closing projects.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A universal SQLite database management tool that enables SQL query execution through MCP protocol. Supports SELECT/INSERT/UPDATE/DELETE/CREATE operations with built-in SQL injection protection across stdio, SSE, and streamable-http communication modes.
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables MCP clients to interact with a Mudbase project by listing and querying collections, reading and writing documents, searching across the project, and managing files in storage.
      14
      16 npm
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI hosts to list database starter templates, create and validate schemas, export SQL DDL and Java JPA entities/repositories, and save or retrieve local project versions through stdio MCP tools.
      11
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables MCP clients to inspect and operate SQLite, PostgreSQL, MySQL/MariaDB, Oracle, SQL Server and MongoDB through 16 tools covering schema discovery, parameterized SQL reads and transactions, MongoDB document operations, and concurrent hybrid SQL/MongoDB queries. Runs locally over stdio or loopback HTTP with pooled connections, bounded concurrency, row and response limits, and read-only defaults.
      16
      MIT