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.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    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