使用说明
MCP集合:多架构容器化微控制面板服务器
此存储库托管了一组微控制面板(MCP)服务器,每个服务器都是为特定任务(例如Proxmox管理、Kali Linux渗透测试工具)而设计的。该项目采用单仓库结构,每个MCP服务器都位于自己的子目录中。
项目结构
.github/workflows/:包含用于自动构建和推送Docker镜像的GitHub操作。Proxmox/:Dockerfile:定义Proxmox MCP服务器的Docker镜像。proxmox_server.py:用于Proxmox管理的Python应用程序。requirements.txt:Python依赖关系。proxmox-mcp.yaml:MCP服务器配置。Caddyfile:用于反向代理和身份验证的Caddy服务器配置。build_and_push.ps1:(遗留/本地)用于构建和推送Docker镜像的PowerShell脚本。docker-compose.yaml:(遗留/本地)Docker Compose用于本地Proxmox服务器。
Kali-Linux/:Dockerfile:定义Kali Linux MCP服务器的Docker镜像。pentest_server.py:Kali Linux渗透测试工具的Python应用程序。requirements.txt:Python依赖关系。build_and_push.ps1:(遗留/本地)用于构建和推送Docker镜像的PowerShell脚本。
入门指南
先决条件
- 已安装Docker桌面或Docker引擎。
- Git已安装。
- (本地开发可选)PowerShell用于运行
build_and_push.ps1脚本。
克隆存储库
git clone https://github.com/rezytijo/MCP-Collection.git
cd MCP-Collection
使用GitHub操作自动构建
此存储库配置了GitHub Actions,以便在向Docker Hub推送更改时自动构建多架构Docker映像并将其推送到Docker Hub main 分支内 Proxmox/ 或 Kali-Linux/ 目录。
- 工作流文件:
.github/workflows/build-and-push.yml - 图像命名约定:
rezytijo/proxmox-mcp-server:<DATE>和rezytijo/proxmox-mcp-server:latestrezytijo/kali-mcp-server:<DATE>和rezytijo/kali-mcp-server:latest哪里<DATE>在...里dd-MM-yyyy格式。
备注:要启用GitHub操作,您需要配置 DOCKER_USERNAME 和 DOCKER_PASSWORD 作为GitHub存储库设置中的存储库机密。
使用Docker Compose运行MCP服务器(本地开发)
A. docker-compose.yaml 此存储库的根目录中提供了一个文件,用于通过Caddy反向代理同时运行Proxmox和Kali Linux MCP服务器。
1.配置Caddy(用于安全远程部署)
这 Caddyfile 用于Proxmox MCP服务器(位于 Proxmox/Caddyfile)如果您希望使用带有HTTPS和承载令牌身份验证的Caddy,则可以将其适配为主反向代理。对于本地开发,更简单的Caddy配置可能就足够了,或者您可以使用提供的配置。
2.创建主 docker-compose.yaml (示例)
本节将填充实际 docker-compose.yaml 下一步的内容。
MCP客户端配置
要连接到已部署的MCP服务器,您需要配置MCP客户端。假设您正在使用 localhost 与提供 docker-compose.yaml 和 Caddyfile:
JSON配置示例
以下是使用JSON配置MCP客户端的示例。这些配置定义了每台服务器的连接详细信息。
Proxmox MCP服务器配置:
{
"name": "Proxmox MCP Server",
"url": "http://localhost/proxmox",
"transport": "sse",
"port": 80,
"config": {
"node_name": "pve",
"ip_address": "172.30.3.80"
},
"tools": []
}
Kali Linux MCP服务器配置:
{
"name": "Kali-Linux MCP Server",
"url": "http://localhost/kali",
"transport": "sse",
"port": 80,
"tools": []
}
字段说明:
name:服务器的用户友好名称。url:通过Caddy反向代理访问服务器的基本URL。transport:通信协议,通常sseMCP服务器的(服务器发送事件)。port:Caddy反向代理暴露的端口(例如,HTTP为80,HTTPS为443)。config:(可选)用于服务器特定配置的字典,例如Proxmox的节点名称或IP地址。tools:一个数组,客户端通常会在发现后列出此服务器上可用的工具。
-
适用于Proxmox MCP服务器:
- 服务器名称:
proxmox-mcp(或者无论你在客户身上怎么称呼它) - 统一资源定位符:
http://localhost/proxmox - 运输:
sse(服务器发送的事件)- 这在proxmox_server.py和docker-compose.yaml. - 端口:
80(或443如果与Caddy一起使用HTTPS)- 这是Caddy暴露的端口。 - 刀具清单:确保您的客户端配置为从此服务器加载工具。
- 服务器名称:
-
适用于Kali Linux MCP服务器:
- 服务器名称:
kali-mcp(或者无论你在客户身上怎么称呼它) - 统一资源定位符:
http://localhost/kali - 运输:
sse - 端口:
80(或443如果与Caddy一起使用HTTPS) - 刀具清单:确保您的客户端配置为从此服务器加载工具。
- 服务器名称:
备注:如果您使用的是带有承载令牌身份验证的Caddy(如 Proxmox/Caddyfile 示例),您的客户需要包括 Authorization: Bearer <YOUR_TOKEN> 标头及其请求。有关如何配置自定义标头或身份验证,请参阅特定MCP客户端的文档。
用法
一旦服务通过Docker Compose运行,您就可以与它们进行交互。例如,如果使用Caddy作为反向代理,您可能会访问:
- Proxmox MCP服务器:
https://your-domain.com/proxmox或http://localhost:8000/proxmox - Kali Linux MCP服务器:
https://your-domain.com/kali或http://localhost:8000/kali
记住要调整 your-domain.com 以及基于您的端口映射 docker-compose.yaml 配置。
贡献
请随时打开问题或撤回请求。请确保您的更改符合现有的代码样式和约定。
