Back to MCP directory
publicPublicdnsLocal runtime

nmstate-mcp

一个通过nmstate实现网络配置管理的MCP服务器项目,旨在结合LLM和MCP技术简化网络管理流程。

article

README

🚀 Nmstate MCP

Nmstate MCP 是一个借助 nmstate 应用网络配置的 MCP 服务器。其愿景是借助大语言模型(LLMs)和 MCP 的强大能力,让网络管理变得更加轻松。欢迎提交包含想法的问题反馈哦!当前代码仅为原型,后续可能需要更周全地重新编写。

🚀 快速开始

✨ 前置条件

  • npm(可选:用于 MCP-Superassistant)
  • python3
  • uv
  • python3-libnmstate

📦 安装指南

从 DNF Copr 安装

以下是通过 dnf 包管理器设置和运行项目的说明:

  1. 从 Copr 仓库安装
sudo dnf copr enable rrajesh/nmstate-mcp
sudo dnf install nmstate-mcp
  1. 运行设置脚本
nmstate-mcp-setup

目前,此脚本对应 setup_cursor.py,且当前仅支持 Cursor IDE。 3. 设置 inventory.yaml 设置 ~/.nmstate-mcp/inventory.yaml,以包含你想要配置的远程主机。nmstate-mcp 使用 Ansible 进行远程主机配置。

从源码安装

以下是从源码设置和运行项目的说明:

  1. 安装 libnmstate
sudo dnf install python3-libnmstate uv
  1. 创建使用系统站点包的虚拟环境以使用 libnmstate
uv venv --system-site-packages .venv
source .venv/bin/activate
  1. 下载依赖项
uv sync
  1. 运行服务器的命令
uv run --directory <项目目录路径> main.py

或者,如果你已经在项目目录中:

uv run main.py

使用此命令时,你无需手动激活 Python 虚拟环境。

💻 使用示例

配置 MCP 客户端

Claude Desktop 和 Cursor 以及其他可能的客户端支持这种 "mcpServers" 格式:

{
  "mcpServers": {
    "nmstate-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "<你的项目路径>",
        "main.py"
      ]
    },
  }
}

对于 MCP SuperAssistant:运行代理服务器

这也将运行 nmstate mcp 服务器实现。请查看 mcpconfig.json,并根据你的目录设置进行编辑。 UV 运行文档:docs.astral.sh/uv/reference/cli/#uv-run

npx @srbhptl39/mcp-superassistant-proxy@latest --config ./mcpconfig.json

🔧 远程主机配置

前置条件

  • Ansible
  • SSH
  • 为了演示目的,你可以在虚拟机中设置无密码 sudo,或者想出其他认证方式。因为无法通过 Cursor 获取密码提示。
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client