mcpField
A
Ansible MCP Server

Ansible MCP Server

本地服务
github.com/washyu云与基础设施59 周前更新

关于 Ansible MCP Server

Ansible MCP Server(README 中称 Homelab MCP Server)是用于家庭实验室基础设施管理的 Python MCP 服务,面向需要通过 AI 助手发现、部署和监控系统的用户。它涵盖 SSH 主机发现、服务部署、虚拟机与容器管理、网络映射及 Ansible 和 Terraform 工作流。

主要功能

  1. 01通过 SSH 发现主机软硬件信息
  2. 02从模板部署常用服务
  3. 03管理 Proxmox、虚拟机和容器
  4. 04发现设备并映射网络拓扑
  5. 05通过 Ansible 和 Terraform 部署
  6. 06保存并复用 SSH 和 Proxmox 凭据

适用场景

  1. 01盘点主机硬件和已安装软件
  2. 02部署 Jellyfin 或 Home Assistant
  3. 03管理 Proxmox 虚拟机及容器生命周期
  4. 04发现网络设备并追踪拓扑变化

MCP 相关

该 MCP 服务通过 stdio 向兼容客户端提供基础设施管理工具,涵盖主机发现、服务安装、虚拟机和容器操作、网络映射及凭据管理。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Homelab MCP 服务

CI Python 3.12+ License: MIT

通过模型上下文协议管理 Homelab 基础设施的 AI 驱动方案

一个 Python MCP 服务,可让 AI 助手管理、部署和监控 Homelab 基础设施。工具涵盖 SSH 发现、虚拟机管理、服务安装、网络拓扑映射、Proxmox 操作和凭据管理。

主要功能

  • SSH 发现 —— 从任意系统收集全面的硬件和软件信息
  • 服务安装 —— 通过模板部署 Jellyfin、Pi-hole、Ollama、Home Assistant 等服务
  • Proxmox 集成 —— 提供完整的 API 访问权限,并支持发现社区脚本
  • 虚拟机/容器生命周期管理 —— 部署、控制和移除 Docker 与 LXD 工作负载
  • 网络映射 —— 发现设备、分析拓扑并跟踪变更
  • Terraform 和 Ansible —— 通过状态管理进行部署,支持漂移检测和 Playbook
  • 凭据管理 —— 一次注册服务器,连接时无需重复输入凭据

快速开始

# Install from PyPI (recommended — no clone needed)
uvx homelab-mcp

# Or clone and run from source
git clone https://github.com/washyu/homelab_mcp.git
cd homelab_mcp
uv sync && uv run python run_server.py

完整的操作指南(环境变量、MCP 客户端配置、首次工具调用)请参阅设置指南。

文档

指南说明
设置指南从零开始,到首次工具调用
工具参考所有工具及其参数和示例
配置环境变量和 CLI 选项
Claude Desktop 设置Claude Desktop 集成指南
HTTP 服务REST/OpenAPI 模式、端点和错误约定

工作原理

  1. 设置 —— 首次运行时,服务会生成一对 SSH 密钥(~/.ssh/mcp_admin_rsa)
  2. 添加主机 —— 使用 setup_mcp_admin 在目标系统上创建受管理用户
  3. 验证 —— 使用 verify_mcp_admin 确认可通过 SSH 免密访问
  4. 管理 —— 发现硬件、安装服务、控制虚拟机并映射网络

服务使用 MCP 协议通过 stdio 通信。将其连接到任何兼容 MCP 的客户端(Claude Desktop 等),即可通过自然语言进行交互。

凭据管理

只需存储一次 SSH 和 Proxmox 凭据,服务便会在每次连接时自动注入:

# Store an SSH credential
homelab-mcp credentials add 192.168.1.10 admin

# Store an SSH key-based credential (stores the key file path in the keyring, not the key)
homelab-mcp credentials add 192.168.1.10 admin --key-path ~/.ssh/id_ed25519

# Store a Proxmox API credential
homelab-mcp credentials add 192.168.1.200 root@pam --type proxmox

# Update an existing credential — `add` is upsert; re-running replaces the stored entry
homelab-mcp credentials add 192.168.1.10 admin

# List stored credentials
homelab-mcp credentials list
homelab-mcp credentials list --type proxmox

# Remove a credential
homelab-mcp credentials remove 192.168.1.10

CLI 提供完整的凭据 CRUD 操作:add(创建/更新,即 upsert)、list(读取)、remove(删除)。没有单独的 update 子命令——再次运行 add 会同时替换密钥环密钥和注册表条目的认证类型。

凭据存储在操作系统密钥环中(Linux 上为 libsecret,macOS 上为 Keychain)。操作系统密钥环不可用时(无头服务器),凭据会回退到环境变量。

完整文档请参阅凭据 CLI 参考。

MCP 客户端配置

从 PyPI 安装(uvx)——推荐:

{
  "mcpServers": {
    "homelab": {
      "command": "uvx",
      "args": ["homelab-mcp"]
    }
  }
}

从源码克隆:

{
  "mcpServers": {
    "homelab": {
      "command": "uv",
      "args": ["run", "python", "run_server.py"],
      "cwd": "/path/to/homelab_mcp"
    }
  }
}

开发

# Install with dev dependencies
uv sync --group dev

# Run tests (unit only, no Docker required)
uv run pytest tests/ -m "not integration"

# Code quality
uv run ruff check src/ tests/
uv run mypy src/

生产部署详情请参阅 DEPLOYMENT.md。

项目结构

src/homelab_mcp/
  server.py              # MCP server with JSON-RPC protocol
  tool_schemas/          # Tool definitions (8 schema files)
  tool_annotations.py    # MCP annotation hints per tool
  ssh_tools.py           # SSH discovery and hardware detection
  service_installer.py   # Service installation framework
  infrastructure_crud.py # Infrastructure lifecycle management
  vm_operations.py       # VM/container operations
  sitemap.py             # Network topology mapping
  database.py            # SQLite device tracking
  error_handling.py      # Centralized error handling
  credential_store.py    # OS keyring credential storage
  log_filter.py          # Credential redaction for log output
  prompt_registry.py     # MCP prompts registry
  resource_readers.py    # MCP resource read handlers
  service_templates/     # YAML service definitions
tests/                   # Unit and integration tests
docs/                    # Full documentation

致谢

Proxmox 社区脚本集成由 community-scripts/ProxmoxVE 提供支持(MIT License)。

贡献

  1. Fork 此仓库
  2. 创建功能分支
  3. 为新功能编写测试
  4. 确保所有测试通过
  5. 提交 Pull Request

许可证

MIT License —— 详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。