MCP Server
by chuckwilliams37
This repository provides a Model Context Protocol (MCP) Server setup using Docker, integrating Redis and TimescaleDB for efficient data management. It leverages Docker Compose for orchestration and offers scripts for automated infrastructure tasks.
Last updated: N/A
๐ MCP Server with Docker, Redis, and TimescaleDB
This repository sets up a Model Context Protocol (MCP) Server using Docker, integrating Redis and TimescaleDB for efficient data management.
๐ ๏ธ Features
- FastAPI: Serves as the web framework for the MCP server.
- Redis: Provides caching mechanisms.
- TimescaleDB: A time-series database built on PostgreSQL.
- Docker Compose: Orchestrates multi-container Docker applications.
- Environment Variables: Configurable via
.env
file. - Systemd Service: Ensures the server auto-starts on reboot.
๐ Prerequisites
- Docker and Docker Compose installed on your system.
- Git for version control.
- Zsh with Oh-My-Zsh (optional, for enhanced shell experience).
๐ Repository Structure
mcp-server-docker/
โโโ app/
โ โโโ app.py
โโโ .env.example
โโโ docker-compose.yml
โโโ Dockerfile
โโโ requirements.txt
โโโ scripts/
โ โโโ bootstrap-mcp.sh
โ โโโ full-bootstrap-mcp.sh
โ โโโ init-repo.sh
โ โโโ push-repo.sh
โ โโโ setup-mcpserver.sh
โโโ README.md
๐ Setup Instructions
-
Clone the Repository:
git clone https://github.com/chuckwilliams37/mcp-server-docker.git cd mcp-server-docker
-
Configure Environment Variables:
cp .env.example .env
Modify
.env
as needed. -
Build and Start the Containers:
docker compose build docker compose up -d
-
Access the MCP Server:
http://localhost:8080
๐ Auto-Restart on Reboot
Create a systemd service to keep your app alive:
sudo nano /etc/systemd/system/mcp-docker.service
Paste:
[Unit]
Description=MCP Docker Compose App
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/home/youruser/mcp-server-docker
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
Restart=always
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
Enable it:
sudo systemctl daemon-reload
sudo systemctl enable mcp-docker
sudo systemctl start mcp-docker
๐งช Scripts
The scripts/
directory contains utility scripts to automate infrastructure tasks.
๐ ๏ธ scripts/full-bootstrap-mcp.sh
๐ก Use this on a fresh Ubuntu VM to fully prepare it for MCP deployment. It:
- Installs system dependencies (Docker, Git, Zsh, UFW, Fail2Ban, etc.)
- Sets up
oh-my-zsh
with thejonathan
theme - Configures Remote Desktop with XFCE + XRDP
- Clones the MCP repo
- Builds and launches the app with
docker compose
- Adds a systemd service to relaunch containers on reboot
chmod +x scripts/full-bootstrap-mcp.sh
./scripts/full-bootstrap-mcp.sh
๐ scripts/init-repo.sh
Initializes a new local Git repository and commits the current directory:
chmod +x scripts/init-repo.sh
./scripts/init-repo.sh
๐ค scripts/push-repo.sh
Pushes your local repo to a remote (update URL first):
chmod +x scripts/push-repo.sh
./scripts/push-repo.sh
๐ง scripts/setup-mcpserver.sh
Configures your local SSH environment to access a remote MCP server:
- Pushes your public key
- Adds an SSH alias
- Prints a sample A-record
chmod +x scripts/setup-mcpserver.sh
./scripts/setup-mcpserver.sh
โ ๏ธ Edit placeholder values (e.g., IPs, usernames, repo URLs) before executing.
๐ค Contributions
Feel free to fork this repository, submit issues, or create pull requests.
๐ License
This project is licensed under the MIT License.