Install
$ agentstack add mcp-odzywa-mcp-platform Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged2 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Destructive filesystem operation.
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
MCP Platform
A self-hosted platform for creating, deploying and managing MCP (Model Context Protocol) servers — without writing code.
Connect AI assistants (Continue, OpenWebUI, Claude Desktop) to your infrastructure: databases, APIs, Kubernetes clusters, Linux servers — all through a visual web UI.
What it does
- Visual tool builder — create MCP tools from a web form, not code
- Instant deploy — one click deploys a containerized MCP server
- Multiple runtime types — shell commands, HTTP APIs, custom images
- Policy engine — allowlist binaries, block dangerous commands, enforce read-only mode
- OpenWebUI integration — Tool Server (OpenAPI), Python tool import, filter pipeline
- Continue integration —
streamable-httptransport, auto-generated config snippets - Audit log — every tool invocation logged with caller IP and model name
Prerequisites
| Requirement | Version | Install | |-------------|---------|---------| | Docker Engine | 24.0+ | docs.docker.com/engine/install | | Docker Compose | v2.20+ (plugin) | included with Docker Desktop / apt install docker-compose-plugin | | OS | Linux (Ubuntu 22.04+ recommended) | — | | RAM | 2 GB minimum, 4 GB recommended | — | | Disk | 4 GB free (images + data) | — | | Ports | 18100 + range 19000–19999 open | firewall / UFW |
> Note: Docker Desktop on macOS/Windows works for development but runtime containers may not be reachable by AI clients outside the VM. Linux is recommended for production.
Install Docker (Ubuntu)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
docker --version # Docker version 24.x.x
docker compose version # Docker Compose version v2.x.x
> Important: Your user must be in the docker group, otherwise install.sh and all docker commands will fail with permission errors. > > ``bash > # Add current user to docker group > sudo usermod -aG docker $USER > > # Apply without logout (current session only) > newgrp docker > > # Verify > docker ps # should work without sudo > `` > > If you log out and back in, group membership is applied automatically.
Installation
# 1. Install Docker (if not already installed)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
# 2. Clone the repository
git clone https://github.com/YOUR_USERNAME/mcp-platform.git
cd mcp-platform
# 3. Run the installer
chmod +x install.sh
./install.sh
Open http://YOURSERVERIP:18100 — login: admin / admin
Updating to a newer version
git pull
docker compose up -d --build mcp-platform mcp-platform-operator
> Note: --force-recreate alone does not rebuild images from updated source code. > Always use --build after git pull.
Rebuilding images manually (after local code changes)
# Rebuild control plane only
docker compose up -d --build mcp-platform
# Rebuild operator only
docker compose up -d --build mcp-platform-operator
# Rebuild runtime images (shell / http-gateway)
docker compose --profile build-only build
# Then redeploy running runtimes via the UI: Runtime → Deploy
# Rebuild everything at once
docker compose build && docker compose up -d
Quick Start
Requirements: Docker 24+, Docker Compose v2, Linux
git clone https://github.com/YOUR_USERNAME/mcp-platform.git
cd mcp-platform
chmod +x install.sh
./install.sh
Open http://localhost:18100 — login: admin / admin
Manual Setup
# 1. Copy and edit configuration
cp .env.example .env
# Edit MCP_HOST_DATA_PATH to the absolute path of the data/ folder
# 2. Build runtime images
docker compose --profile build-only build
# 3. Start the platform
docker compose up -d
# 4. Open the UI
open http://localhost:18100
Architecture
┌─────────────────────────────────────────────────┐
│ MCP Platform UI │
│ (FastAPI · SQLite · port 18100) │
└────────────────────┬────────────────────────────┘
│ manages
┌───────────▼──────────┐
│ Operator (worker) │
│ Docker SDK │
└───────────┬──────────┘
│ creates/stops
┌───────────────┼───────────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────────┐ ┌──────────────┐
│ Shell │ │ HTTP Gateway│ │ Custom Image │
│ Runtime │ │ Runtime │ │ Runtime │
│ /mcp │ │ /mcp │ │ /mcp │
└─────────┘ └─────────────┘ └──────────────┘
▲ ▲
│ calls │ calls
┌────┴───────────────┴──────┐
│ AI Client │
│ Continue / OpenWebUI │
└───────────────────────────┘
| Component | Description | |-----------|-------------| | control-plane | Web UI + REST API — manages runtimes, tools, policies | | operator | Background worker — creates/stops Docker containers | | runtime-shell | Shell runtime — executes CLI commands (curl, psql, oc, ping...) | | runtime-http-gateway | HTTP runtime — calls external REST APIs |
Base Runtime Images
Every MCP runtime container must use one of the two platform base images (or a custom image built on top of them). These images contain the built-in MCP server (FastAPI + uvicorn) that handles /mcp, /tools/{name}, /openwebui and /health endpoints.
mcp-runtime-shell:latest
Built from runtime-shell/ during docker compose build.
Base: python:3.12-slim (Debian Bookworm Slim)
Included tools:
| Tool | Purpose | |------|---------| | curl, jq | HTTP requests and JSON parsing | | oc, kubectl | OpenShift and Kubernetes CLI | | ping | Network diagnostics | | ssh | Remote server access | | FastAPI + uvicorn | MCP server on port 8080 |
Use for: shell tools — curl, oc, kubectl, psql, ping, ssh, any CLI command
mcp-runtime-http-gateway:latest
Built from runtime-http-gateway/ during docker compose build.
Base: python:3.12-slim (Debian Bookworm Slim)
Included:
| Component | Purpose | |-----------|---------| | FastAPI + uvicorn | MCP server on port 8080 | | httpx | Async HTTP client for calling external REST APIs |
Use for: HTTP tools — calling external REST APIs, webhooks, integrations
Building a custom image
If you need tools not available in the base images (e.g. psql, terraform, awscli), use the Image Builder in the UI or write your own Dockerfile:
# ALWAYS start from a platform base image — never from a raw OS image
FROM mcp-runtime-shell:latest
RUN apt-get update && apt-get install -y postgresql-client && rm -rf /var/lib/apt/lists/*
> ⚠️ Raw OS images will NOT work. > ubuntu:24.04, debian:bookworm-slim, alpine etc. do not contain the MCP server. > The container starts with bash, exits immediately, and enters a restart loop.
Creating your first MCP server
Option A — Use an example package
- Go to Tool Packages → Import Package JSON
- Upload a file from
examples/(e.g.curl-http-toolkit.json) - Click Create MCP → name it → Deploy
- Copy the endpoint URL → paste into Continue or OpenWebUI
Option B — Build from scratch
- Tool Packages → + Generate Package
- Fill in name, choose runtime type (Shell or HTTP)
- Add tools with commands/URLs and input parameters
- Install → Create MCP Server → Deploy
See docs/jak-stworzyc-mcp-server.md for full step-by-step guide.
Option C — Let AI create it for you (Platform Manager)
MCP Platform includes a built-in Platform Manager MCP server — a meta-MCP that lets AI models create other MCP servers automatically.
- Go to Quick Start → deploy MCP Platform Manager
- Add credential:
PLATFORM_URL=http://mcp-platform:8080 - Deploy → connect to your AI client
- Tell the AI what you need:
"Create an MCP server for monitoring MikroTik router at 192.168.88.1 with login admin and password test123"
The AI will:
- Read platform instructions (
get_instructions) - Generate the package JSON with tools, policy, and credentials
- Call
create_mcp_serverto deploy it automatically
Available tools in Platform Manager:
| Tool | Description | |------|-------------| | get_instructions | Returns full documentation on how to create MCP servers | | create_mcp_server | Creates + deploys a server from package JSON in one call | | list_servers | Lists all running MCP servers | | list_packages | Lists available template packages | | server_details | Shows details of a specific server | | deploy_server | Starts a stopped server | | stop_server | Stops a running server |
Built-in template packages
| Package | Tools | Description | |---------|-------|-------------| | curl-http-toolkit | 3 | HTTP GET, POST, status check via curl | | openshift-readonly | 7 | oc get, describe, logs, events, status, top | | mikrotik-readonly | 7 | MikroTik REST API — interfaces, DHCP, routes, firewall, logs | | minio-readonly | 5 | MinIO S3 — list buckets, objects, download files | | mssql-readonly | 4 | MSSQL SELECT queries, list tables/databases | | trino-readonly | 5 | Trino SQL — catalogs, schemas, tables, queries | | git-readonly | 6 | Git log, diff, show, status, branches, blame | | platform-manager | 7 | Meta-MCP — AI creates and manages other MCP servers |
Connect to Continue
{
"mcpServers": {
"my-server": {
"url": "http://localhost:PORT/mcp",
"transport": "streamable-http"
}
}
}
OpenWebUI Integration
MCP Platform has native integration with OpenWebUI. Each deployed MCP server automatically exposes three integration endpoints:
Option 1 — Tool Server (recommended, multiple tools at once)
Each runtime serves a full OpenAPI spec at /openwebui/openapi.json. OpenWebUI discovers all tools automatically.
- OpenWebUI → Admin Panel → Tools → Tool Servers → Add
- Enter URL:
http://YOUR_IP:PORT/openwebui - Save — all tools from the MCP server appear instantly
> OpenWebUI automatically appends /openapi.json — enter the base URL only.
Option 2 — Python Tool (import from link)
Each runtime generates a ready-to-import Python tool file.
- Open the runtime detail page → Podłącz tab → copy the Python Tool link
- OpenWebUI → Workspace → Tools → Import from URL → paste the link
- The tool appears in your workspace with full function signatures
Option 3 — RAGHybrid filter pipeline
If you run RAGHybrid alongside MCP Platform, use the auto-context filter:
- Automatically injects RAG context into prompts when the tool is active
- Configurable
top_k, retrieval mode, and source filtering
Example Packages
| File | Description | |------|-------------| | examples/curl-http-toolkit.json | HTTP GET, POST, status check via curl | | examples/psql-readonly.json | PostgreSQL SELECT queries | | examples/openshift-readonly.json | oc get / describe / logs |
Configuration
| Variable | Default | Description | |----------|---------|-------------| | MCP_PLATFORM_PORT | 18100 | UI port | | MCP_HOST_DATA_PATH | (required) | Absolute path to data/ on host | | MCP_RUNTIME_PUBLIC_BASE_URL | http://localhost | Base URL for runtime endpoints | | MCP_RUNTIME_PUBLIC_PORT_BASE | 19000 | Starting port for runtime containers |
License
Copyright (c) 2026 — All Rights Reserved. See [LICENSE](LICENSE) MIT
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: odzywa
- Source: odzywa/MCP-Platform
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.