多架构容器化微控制面板服务器

一个包含多种架构的容器化微控制面板服务器集合,用于管理Proxmox和Kali Linux等特定任务。

  • by rezytijo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 rezytijo/MCP-Collection

使用说明

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:latest
    • rezytijo/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:通信协议,通常 sse MCP服务器的(服务器发送事件)。
  • port:Caddy反向代理暴露的端口(例如,HTTP为80,HTTPS为443)。
  • config:(可选)用于服务器特定配置的字典,例如Proxmox的节点名称或IP地址。
  • tools:一个数组,客户端通常会在发现后列出此服务器上可用的工具。
  1. 适用于Proxmox MCP服务器:

    • 服务器名称: proxmox-mcp (或者无论你在客户身上怎么称呼它)
    • 统一资源定位符: http://localhost/proxmox
    • 运输: sse (服务器发送的事件)- 这在 proxmox_server.py 和 docker-compose.yaml.
    • 端口: 80 (或 443 如果与Caddy一起使用HTTPS)- 这是Caddy暴露的端口。
    • 刀具清单:确保您的客户端配置为从此服务器加载工具。
  2. 适用于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 配置。

贡献

请随时打开问题或撤回请求。请确保您的更改符合现有的代码样式和约定。