MrJ-JMRI-MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MrJ-JMRI-MCPturn on track power"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MrJ-JMRI-MCP
MCP (Model Context Protocol) server for JMRI — control your DCC model railroad by voice or chat, through any MCP client: xiaozhi voice assistants, Claude Desktop, Claude Code, etc.
Status: early development. The roadmap lives in the project board and the issues.
Goals
Fully dynamic — no hardcoded layout data. Systems (power connections), roster, turnouts and sensors are discovered live from the JMRI server (
GET /json/power,{"list": ...}).LLM-friendly — compact tool outputs (voice assistants have small contexts), honest
success/errorreporting, docstrings that tell the model when and how to use each tool.One server, every client — pure stdio MCP server: consumed directly by Claude Desktop/Code, and bridged to xiaozhi via
src/xiaozhi_wrapper/(jmri-xiaozhi-bridge), a generic stdio↔WebSocket bridge included in this repo.
Related MCP server: nas-mcp-server
Architecture
Pure stdio MCP server, two JMRI clients under the hood (plain HTTP for one-shot calls, a persistent WebSocket for throttles) — see docs/architecture.md for the module layout and design notes.
Requirements
Python ≥ 3.10 (developed on 3.12 — see docs/install.md for tested versions and
environment.yml)A running JMRI Web Server (tested against JMRI 5.4)
Documentation
docs/architecture.md — module layout, the two JMRI clients, WebSocket design notes.
docs/install.md — installing the package, verifying
jmri-mcp/jmri-cli.docs/cli.md —
jmri-clicommand reference.docs/llm-setup.md — wiring the server into Claude Desktop, Claude Code, xiaozhi/Kira.
docs/testing.md — the mocked vs. live test suites, hardware-safety config.
Configuration
Variable | Default | Description |
|
| Base URL of the JMRI Web Server |
License
AGPL-3.0-or-later. Chosen deliberately over a permissive license (MIT/Apache) so that anyone who modifies this project and offers it as a network service (not just redistributes the code) must also publish their modified source — see the license text for the exact terms.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HO44-PROJECT/MrJ-JMRI-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server