使用说明
🚀 带有Docker、Redis和TimescaleDB的MCP服务器
此存储库设置了 模型上下文协议(MCP)服务器 使用Docker,集成Redis和TimescaleDB进行高效的数据管理。
🛠️ 特性
- 快速 API:充当MCP服务器的web框架。
- 雷迪斯:提供缓存机制。
- TimescaleDB:基于PostgreSQL构建的时间序列数据库。
- Docker Compose:编排多容器Docker应用程序。
- 环境变量:可通过配置
.env文件。 - 系统化服务:确保服务器在重新启动时自动启动。
📋 先决条件
- 码头工人 和 Docker Compose 安装在您的系统上。
- Git 用于版本控制。
- Zsh 随着 哦,我的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
🚀 安装说明
-
克隆存储库:
git clone https://github.com/chuckwilliams37/mcp-server-docker.git cd mcp-server-docker -
配置环境变量:
cp .env.example .env修改
.env根据需要。 -
构建并启动容器:
docker compose build docker compose up -d -
访问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等)
- 设置
oh-my-zsh随着jonathan主题 - 使用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许可证获得许可。