关于 Infra MCP
Infra MCP 是面向运维人员的只读 MCP 服务,通过 SSH 检查本地部署的 Linux 虚拟机和 PostgreSQL。它以允许列表和审计日志约束远程操作,并提供服务、日志与数据库检查工具。
主要功能
- 01查看虚拟机可达性与服务状态
- 02读取受限的 journald 和日志文件
- 03检查 PostgreSQL 状态并执行只读查询
- 04浏览数据库表和结构
- 05记录远程操作审计日志
适用场景
- 01排查虚拟机上的服务健康问题
- 02查看特定严重级别的服务日志
- 03检查数据库连接、锁和长查询
- 04查询表结构或执行受限 SELECT
MCP 相关
作为 stdio MCP 服务运行,供 MCP 客户端调用。通过 SSH 检查虚拟机和 PostgreSQL,并将远程操作写入本地审计日志。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
infra-mcp
通过 SSH 只读访问本地部署的 Linux VM 和 PostgreSQL 数据库的 MCP。
agent ──stdio──▶ infra-mcp ──SSH──▶ VMs (journald · log files)
└──▶ DBs (read-only PostgreSQL)
Agent 无需访问终端,即可检查服务运行状况、获取有限日志、查看数据库状态并探索表结构。所有远程操作都受允许列表控制,并写入仅追加的审计日志。
安装
uv tool install infra-mcp
# or
pip install infra-mcp
配置
将 infra-mcp.yaml.example 复制到 ~/.infra-mcp/infra-mcp.yaml 并进行编辑。
# Generate a starter config from ~/.ssh/config
infra-mcp generate-config -o ~/.infra-mcp/infra-mcp.yaml
# Create the read-only PostgreSQL role(s)
infra-mcp setup
# Check VM reachability
infra-mcp test
# Refresh discovered services, log dirs, and databases (updates config in place)
infra-mcp discover --in-place
使用 --config 或 INFRA_MCP_CONFIG 覆盖配置路径。
运行
infra-mcp run
在客户端(Claude Code、Cursor、…)中将其注册为 stdio MCP 服务,命令为 infra-mcp run。
更新
infra-mcp 每天检查一次 PyPI 是否有更新版本;如果有,会向 stderr 输出一行提示,告知如何升级:
uv tool upgrade infra-mcp # or: pip install --upgrade infra-mcp
检查在后台运行,不会阻塞启动,也不会触及 stdout。使用 infra-mcp --version 查看已安装版本。设置 INFRA_MCP_NO_UPDATE_CHECK=1 可完全禁用检查。
工具
VM 和服务
| 工具 | 用途 |
|---|---|
list_vms | 列出所有 VM,包括可访问性和受监控服务 |
get_infra_overview | 一次调用即可获取单个 VM 的服务状态和数据库运行状况 |
get_service_status | systemd 状态、运行时间、最近 5 行日志 |
get_service_logs | 按严重性筛选的有限 journald 日志 |
get_log_file | 获取允许访问的日志文件最后 N 行,可选 grep |
数据库
| 工具 | 用途 |
|---|---|
get_db_status | 连接数、等待中的锁、长时间运行的查询数 |
query_db | 调用方提供的有限 SELECT 查询 |
list_tables | 列出数据库中的表(架构 + 名称),最多 200 个 |
describe_table | 查看单个表的列、类型、主键和外键 |
元信息
| 工具 | 用途 |
|---|---|
get_audit_log | 本地审计日志中的近期条目 |
所有输出都在服务端设有上限(最多 200 行日志、100 行数据库结果、200 个表/列)。截断时始终会标记 -- TRUNCATED:。list_tables 和 describe_table 会在内存中缓存结果(TTL:schema_cache_ttl_hours,默认 24 h);传入 refresh: true 可强制实时重新读取。
安全模型
- SSH 命令和 systemd 服务在发起任何网络调用前,都会根据每台 VM 的允许列表进行检查。
- 所有数据库查询都以只读角色在
READ ONLY事务中运行。 - 日志文件路径会根据每台 VM 的目录允许列表进行解析(阻止
..路径遍历)。 - 每项远程操作都会追加到本地 JSONL 审计日志中。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。