LabscoMCP early access ↗
SoftwareTreeMCP SERVER · OFFICIAL PROJECT

ORMCP

Query and modify a relational database as JSON objects — deep queries, relationship traversal and aggregates — over any JDBC-compliant database, with an optional read-only mode.

by SoftwareTree ↗Relational SQL Databases✓ Official

LABSCO SUMMARY

Read-only is enforced by not exposing the tools at all.

READONLY_MODE=True means the modifying tools are never advertised to the client, which is stronger than refusing them at call time — the model cannot ask for what it cannot see. The operationDetails directives are the other thing worth learning: projections and follow/ignore let you control how much of an object graph comes back, which is the difference between a useful answer and a payload nobody can read. Note the Beta and non-commercial notice.

What it is

An MCP server that puts an object-relational mapping between an assistant and a relational database. Instead of writing SQL, the model works with JSON objects of your declared domain model, and the mapping engine turns CRUD on those objects into SQL against existing schemas and data.

What you get

  • The domain model described back — classes, attributes, primary keys and relationships — getObjectModelSummary
  • Objects queried by class with a SQL-like filter, a maxObjects cap and deep to include referenced objects — query, with operationDetails giving GraphQL-like directives: projections to fetch only certain attributes, ignore or follow to control which reference branches are traversed, and nested filters
  • One object fetched by primary key, including composite keys — getObjectById
  • Referenced objects reached through a named attribute of a referencing object — access
  • COUNT, SUM, AVG, MIN and MAX computed across objects with an optional filter — getAggregate
  • Data modification as objects — insert, update, delete
  • One-to-one, one-to-many and many-to-many relationships and path expressions supported, across PostgreSQL, MySQL, Oracle, SQL Server, DB2 and SQLite

Requirements

Python 3.12+, Docker, and a JDBC driver for your database. pip install ormcp-server from public PyPI — no account or token needed. The server talks to a Gilhari microservice that carries the ORM specification: point it there with GILHARI_BASE_URL (default http://localhost:80/gilhari/v1/), or let it start one from GILHARI_IMAGE, GILHARI_NAME, GILHARI_HOST and GILHARI_PORT. Other settings: MCP_SERVER_NAME, GILHARI_TIMEOUT (default 30), LOG_LEVEL, and READONLY_MODE, which when set to True stops the server from exposing the tools that can modify data. The README marks the product Beta and states it is not intended for commercial use.

Setup effort

Follow the published steps — pip install ormcp-server