Rheintal Pumpen
БесплатноНе проверенReference MCP server simulating a B2B manufacturing company with role-based access, audit logging, and 13 business tools.
Описание
Reference MCP server simulating a B2B manufacturing company with role-based access, audit logging, and 13 business tools.
README
A public MCP server that simulates a fictional German B2B mid-market company – with role-based access control, audit logging, and a clean architecture you can study.
Connectable to Claude Desktop, a local LibreChat instance, or your own applications.
What is this?
A demonstration of how standardised AI tool integration can look in a mid-market company. Behind the MCP server sits a fictional firm, Rheintal Pumpen GmbH in Mainz, Germany – an industrial-pump maker with ~180 employees, 60 customers, 250 orders, plus complaints and service tickets.
Bring-your-own-key, self-hostable, MIT licensed.
Why is the company name German? Rheintal Pumpen GmbH is the story of the demo (a German Mittelstand company). Everything around it – code, tool descriptions, status enums, documentation – is in English.
Two ways to try it
Full local demo: LibreChat (15 minutes)
git clone https://github.com/dataAiOliver/rheintal-pumpen-mcp.git
cd rheintal-pumpen-mcp
make up
make up does everything in one step: creates .env from
.env.example, generates the SQLite database if it doesn't exist, and
starts LibreChat + MCP + MongoDB + Meilisearch via Docker Compose.
The first run prints a hint telling you where to put your OpenAI or
Anthropic key in .env. After that, run make up again and you're set.
Open http://localhost:3080 → register → start chatting.
You also get the built-in MCP Inspector at http://localhost:8765/:
tool list, JSON schemas, sample calls. Machine-readable as
/tools.json.
Live Activity at http://localhost:8765/activity: every tool call pops up live as a card with role, arguments and result. Nice demo punch line – stakeholders see in real time that the LLM is operating audit-ably.
Your own server (30 minutes)
make deploy SERVER=user@host
Prerequisites: a Linux server with Docker, your own domain, ports 80/443 open. Traefik takes care of TLS via Let's Encrypt.
→ docs/quickstart-own-server.md
Verifying the customer setup
After make up you can spot-check the stack:
make smoke-test # HTTP probes: /healthz, /tools.json, LibreChat root
make up-verify # 'make up' followed by smoke-test
To prove that the entire customer journey works on a clean Linux box – without trusting your own pre-installed Docker, make, etc. – run the DinD harness:
make test-fresh-ubuntu
It spawns a privileged ubuntu:24.04 container, runs
scripts/install-prereqs.sh to install Docker + make + git + curl + jq +
python3 from apt, starts an inner Docker daemon, performs make up, and
runs the smoke test. Takes 4–7 minutes (the LibreChat image pull
dominates) and is fully self-cleaning. See scripts/.
Try these prompts
- "Which customers have open invoices over 10,000 EUR?"
- "Show me all complaints from the last quarter."
- "Which submersible pumps with a stainless steel housing are in stock?"
- "What was the largest order in Q1, and how was it shipped?"
- "List the top 5 customers by revenue."
- "Which service tickets have been open for more than 7 days?"
- "Show me the order history of customer RH-K-00012."
Architecture
┌──────────────┐ HTTP/SSE ┌──────────────────────┐
│ Claude │◄──────────► │ MCP server │
│ Desktop │ │ (Python, mcp SDK) │
│ LibreChat │ │ │
│ Custom app │ │ Tools Auth Audit │
└──────────────┘ │ │ │
│ ▼ │
│ SQLite (mock) │
└──────────────────────┘
What is demonstrated
- MCP tool definitions with Pydantic schemas
- Role-based access control (
sales,service,accounting,admin) - Audit logging suitable for AI-Act / GDPR-style traceability
- Bring-your-own-key architecture
- Self-hosting with Docker Compose
- Clean separation of transport / logic / data
- Documented migration path SQLite → Postgres
Available MCP tools
| Tool | Roles | Description |
|---|---|---|
lookup_customer |
sales+ | Look up a customer by ID or company name |
list_customer_orders |
sales+ | Orders of one customer |
list_top_customers_by_revenue |
sales+ | Top-N customers, aggregated in a single call |
get_order_details |
sales+ | Order incl. line items |
get_invoice |
sales+ | One invoice |
list_open_invoices |
accounting, admin | Open/overdue invoices incl. customer name |
get_delivery_status |
sales+ | Delivery and tracking status |
search_products |
all | Product search |
get_product_details |
all | Product master data |
list_complaints |
service, admin | Filter complaints |
get_audit_log |
admin | Inspect the audit log |
create_service_ticket |
service, admin | write, requires confirm: true |
flag_invoice_for_review |
accounting, admin | write, requires confirm: true |
Architecture Decision Records
- 001 – Why SQLite
- 002 – Why MCP instead of REST
- 003 – Stdio and HTTP side-by-side
- 004 – Bring your own key
- 005 – No TLS on localhost
Licence
MIT. Use it. Fork it. Build on top.
About the author
Oliver Köhn – AI architect for the German Mittelstand.
Установка Rheintal Pumpen
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/dataaioliver/rheintal-pumpen-mcpFAQ
Rheintal Pumpen MCP бесплатный?
Да, Rheintal Pumpen MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Rheintal Pumpen?
Нет, Rheintal Pumpen работает без API-ключей и переменных окружения.
Rheintal Pumpen — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Rheintal Pumpen в Claude Desktop, Claude Code или Cursor?
Открой Rheintal Pumpen на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Rheintal Pumpen with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
