A Model Context Protocol (MCP) server that provides a FastMCP-based interface to the MMS5 (Model Management System) Layer 1 Service. This server exposes MMS operations as MCP tools, enabling AI assistants and other MCP clients to interact with MMS repositories, branches, models, and access control resources.
This MCP server wraps the MMS5 Layer 1 REST API, providing tools for:
- Structural Operations: Read and manage organizations, repositories, and branches
- Model Operations: Read, load, query, and commit changes to RDF models using SPARQL
- Version Control: Manage locks and diffs between commits
- Access Control: Create and manage policies, groups, and collections
The server supports a read-only mode via the READ_ONLY environment variable, which restricts available tools to only read and query operations.
- Conditional Tool Registration: When
READ_ONLY=true, only read and query operations are available - Authentication Passthrough: Forwards
Authorizationheaders from MCP requests to the MMS API - FastMCP Framework: Built on FastMCP for streamable HTTP transport
- RDF/SPARQL Support: Works with Turtle-formatted RDF and SPARQL 1.1 queries/updates
| Variable | Description | Default | Required |
|---|---|---|---|
MMS_URL |
Base URL of the MMS Layer 1 API | http://localhost:8080 |
Yes |
READ_ONLY |
Enable read-only mode (only read/query tools) | true |
No |
docker build -t flexo-mms-layer1-mcp .Run with custom MMS URL:
docker run -d \
-p 8000:8000 \
-e MMS_URL=https://your-flexo-mms-server \
flexo-mms-layer1-mcpRun in read-write mode (enables create/update/delete operations):
docker run -d \
-p 8000:8000 \
-e MMS_URL=https://your-mms-server \
-e READ_ONLY=false \
flexo-mms-layer1-mcpversion: '3.8'
services:
mcp-server:
build: .
ports:
- "8000:8000"
environment:
- MMS_URL=http://mms-api:8080
- READ_ONLY=true- Python 3.13+
- pip
pip install -r requirements.txtexport MMS_URL=http://localhost:8080
export READ_ONLY=false
python server.pyThe server will start on http://0.0.0.0:8000 using FastMCP's streamable HTTP transport.
read_all_orgs- List all organizationsread_org- Get a specific organizationread_all_repos- List repositories in an organizationread_repo- Get a specific repositoryread_all_branches- List branches in a repositoryread_branch- Get a specific branchread_model- Read the model at the HEAD of a branchquery_model- Query a branch's model with SPARQLread_all_locks- List locks in a repositoryread_lock- Get a specific lockquery_lock- Query the model at a locked commitquery_diff- Query a diff between commitsquery_repo- Query repository metadata
create_org,update_org- Create/update organizationscreate_repo,update_repo- Create/update repositoriescreate_branch,update_branch- Create/update branchesload_model- Replace a branch's model with new RDF contentcommit_model- Apply SPARQL UPDATE to commit changescreate_lock- Create a lock on a commitcreate_diff- Create a diff between commitscreate_collection- Create a collectioncreate_policy- Create an access control policycreate_group- Create a user group
The server forwards Authorization headers from incoming MCP requests to the MMS API. Ensure your MCP client includes appropriate authentication credentials when making requests.
Apache 2.0