返回市场
MCP服务器Docker

MCP服务器Docker

作者:chuckwilliams376 星标更新:2025-03-22

项目介绍

🚀 使用Docker、Redis和TimescaleDB的MCP服务器

此仓库使用Docker设置了一个模型上下文协议(MCP)服务器,并集成了Redis和TimescaleDB以实现高效的数据管理。

🛠️ 特性

  • FastAPI: 作为MCP服务器的Web框架。
  • Redis: 提供缓存机制。
  • TimescaleDB: 基于PostgreSQL的时间序列数据库。
  • Docker Compose: 协调多容器Docker应用程序。
  • 环境变量: 通过.env文件进行配置。
  • Systemd服务: 确保服务器在重启时自动启动。

📋 先决条件

  • 在您的系统上安装了DockerDocker Compose
  • 使用Git进行版本控制。
  • ZshOh-My-Zsh(可选,用于增强shell体验)。

📂 仓库结构

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

🚀 设置说明

  1. 克隆仓库

    git clone https://github.com/chuckwilliams37/mcp-server-docker.git
    cd mcp-server-docker
    
  2. 配置环境变量

    cp .env.example .env
    

    根据需要修改.env文件。

  3. 构建并启动容器

    docker compose build
    docker compose up -d
    
  4. 访问MCP服务器

    http://localhost:8080
    

🔄 重启后自动恢复

创建一个systemd服务以确保应用持续运行:

sudo nano /etc/systemd/system/mcp-docker.service

粘贴:

[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

启用它:

sudo systemctl daemon-reload
sudo systemctl enable mcp-docker
sudo systemctl start mcp-docker

🧪 脚本

scripts/目录包含用于自动化基础设施任务的实用脚本。


🛠️ scripts/full-bootstrap-mcp.sh

💡 在新的Ubuntu虚拟机上使用此脚本,以完全准备好MCP部署。它:

  • 安装系统依赖项(Docker、Git、Zsh、UFW、Fail2Ban等)
  • 设置带有jonathan主题的oh-my-zsh
  • 配置带有XFCE + XRDP的远程桌面
  • 克隆MCP仓库
  • 使用docker compose构建并启动应用
  • 添加一个systemd服务,在重启时重新启动容器
chmod +x scripts/full-bootstrap-mcp.sh
./scripts/full-bootstrap-mcp.sh

📜 scripts/init-repo.sh

初始化一个新的本地Git仓库,并提交当前目录:

chmod +x scripts/init-repo.sh
./scripts/init-repo.sh

📤 scripts/push-repo.sh

推送您的本地仓库到远程(先更新URL):

chmod +x scripts/push-repo.sh
./scripts/push-repo.sh

🧠 scripts/setup-mcpserver.sh

配置您的本地SSH环境以访问远程MCP服务器:

  • 推送您的公钥
  • 添加SSH别名
  • 打印示例A记录
chmod +x scripts/setup-mcpserver.sh
./scripts/setup-mcpserver.sh

⚠️ 在执行之前编辑占位符值(例如IP地址、用户名、仓库URL)。


🤝 贡献

随意分叉此仓库,提交问题或创建拉取请求。

📄 许可证

本项目采用MIT许可证。