Linux网络优化工具

NetMCP是一个基于MCP协议的AI驱动Linux网络优化工具,通过自然语言指令生成优化的网络配置,适用于游戏、流媒体、视频通话等多种场景。

  • by SurriyaGokul
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 SurriyaGokul/mcp-net-optimizer

使用说明

🌐 NetMCP

基于模型上下文协议的人工智能Linux网络优化

将自然语言转化为优化的网络配置

🔴 Live服务器 · 入门指南 · 特性 · 档案 · 建筑 · 工具


🔴 Live服务器

NetMCP是 生活在生产中 在FastMCP云上!将您的MCP客户端连接到:

https://netmcp.fastmcp.app/mcp

无需安装——只需将您的AI助手指向托管服务器并开始优化。


🎯 概述

NetMCP是一个 MCP服务器 这使得像Claude这样的人工智能助手能够智能地优化Linux网络性能。它弥合了高级优化目标之间的差距(“优化我的游戏网络”)以及低级Linux命令(sysctl, tc, nft).

┌──────────────────┐      ┌──────────────────┐      ┌──────────────────┐
│   AI Assistant   │ MCP  │     NetMCP       │      │   Linux Kernel   │
│   (Claude, etc)  │◄────►│   Server         │─────►│   Network Stack  │
└──────────────────┘      └──────────────────┘      └──────────────────┘
         ▲                         │
         │                         ▼
    Natural Language        29 Config Cards
    "Reduce my latency"     5 Profiles
                            40+ Tools

✨ 为什么选择NetMCP?

传统方法 使用NetMCP
手册 sysctl 调优 声明性优化计划
从论坛复制粘贴命令 研究支持的配置文件
失败时不回滚 自动检查点和回滚
试错法 根据安全政策进行验证
根访问混乱 受控特权执行

🚀 入门指南

先决条件

  • Linux (Ubuntu 20.04+、Debian 11+或类似版本)
  • Python 3.10+
  • 网络工具: ip, sysctl, tc, nft

安装

git clone https://github.com/SurriyaGokul/mcp-net-optimizer.git
cd mcp-net-optimizer

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# Enable privileged commands (one-time setup)
./setup_sudo.sh

使用Claude Desktop进行配置

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "netmcp": {
      "command": "python",
      "args": ["-m", "server.main"],
      "cwd": "/path/to/mcp-net-optimizer"
    }
  }
}

独立运行

python -m server.main

⚡ 特性

🎴 29配置卡

Linux网络堆栈的全面覆盖:

  • 16个Sysctl卡 --TCP调优、缓冲区、拥塞控制
  • 8交通控制卡 --QoS、整形、排队
  • 5个防火墙卡 --速率限制、连接跟踪、NAT

🛡️ 企业安全

生产就绪的安全功能:

  • 命令分配 --仅执行已批准的二进制文件
  • 自动检查点 --每次更改前的快照
  • 即时回滚 --一个恢复状态的命令
  • 审计日志 --完整的执行历史记录

🔧 40+MCP工具

全面的网络管理:

  • 发现 --接口、路由、DNS、延迟测试
  • 规划 --类型安全优化计划
  • 验证 --执行前的政策执行
  • 执行 --带回滚功能的原子应用程序
  • 基准测试 --性能比较前后

🔐 Sudo管理

灵活的权限升级:

  • 无密码设置 --快跑 ./setup_sudo.sh 一次
  • 缓存凭据 --身份验证一次,缓存15分钟
  • MCP工具 — check_sudo_access, request_sudo_access
  • 缺省安全 --仅分配命令

🎮 优化配置文件

针对特定工作负载优化的五个研究支持配置文件:

简介 重点 关键优化 目标指标
🎮 游戏 超低延迟 BBR,tcp_low_latency,fq-qdisc <20ms p95,<5ms抖动
📺 流媒体 最大吞吐量 大缓冲区、BBR、HTB整形 90%+链路利用率
📞 视频通话 平衡 DSCP标记,中等缓冲 <150ms延迟(ITU-T)
📦 批量传输 最大带宽 128MB缓冲区,激进的BBR >1Gbps持续
🖥️ 服务器 高并发 SYN cookie、conntrack、速率限制 10K+连接

示例:游戏优化

plan = {
    "iface": "eth0",
    "profile": "gaming",
    "changes": {
        "sysctl": {
            "net.ipv4.tcp_congestion_control": "bbr",
            "net.ipv4.tcp_low_latency": "1",
            "net.core.default_qdisc": "fq"
        },
        "qdisc": {"type": "fq"}
    }
}

🏗️ 建筑

管道流量

  DISCOVER          PLAN            VALIDATE         RENDER           APPLY
 ┌─────────┐    ┌─────────┐      ┌─────────┐     ┌─────────┐     ┌─────────┐
 │ Inspect │───►│ Declare │─────►│ Check   │────►│Generate │────►│ Execute │
 │ System  │    │ Intent  │      │ Policies│     │Commands │     │ Safely  │
 └─────────┘    └─────────┘      └─────────┘     └─────────┘     └─────────┘
      │              │                │               │               │
   30+ tools    Pydantic         Policy YAML      sysctl/tc/     Checkpoint
   No side      schemas          validation       nft scripts    + Rollback
   effects

项目结构

mcp-net-optimizer/
├── server/
│   ├── main.py              # MCP server entry point
│   ├── registry.py          # Tool & resource registration
│   ├── schema/models.py     # Pydantic data models
│   └── tools/
│       ├── discovery.py     # 30+ system inspection tools
│       ├── planner.py       # Plan → Commands renderer
│       ├── validator.py     # Policy validation
│       ├── validation_engine.py  # Before/after comparison
│       ├── validation_metrics.py # Network benchmarks
│       ├── audit_log.py     # Execution logging
│       ├── apply/           # Command executors
│       │   ├── apply.py     # Orchestration + rollback
│       │   ├── checkpoints.py
│       │   ├── sysctl.py
│       │   ├── tc.py
│       │   └── nft.py
│       └── util/
│           ├── shell.py     # Safe command execution
│           └── policy_loader.py
├── policy/
│   ├── config_cards/        # 29 YAML card definitions
│   ├── profiles.yaml        # 5 optimization profiles
│   └── validation_limits.yaml
└── setup_sudo.sh            # Passwordless sudo setup

🔧 MCP工具

发现(无副作用)

工具 说明
ip_info 网络接口和地址
ip_route 路由表
ping_host ICMP延迟测试
traceroute 网络路径分析
tc_qdisc_show 交通管制状态
nft_list_ruleset 防火墙规则
ss_summary 套接字统计

规划与验证

工具 说明
validate_change_plan_tool 根据政策验证计划
render_change_plan_tool 将计划转换为可执行命令
test_network_performance_tool 运行全面的基准测试
validate_configuration_changes_tool 比较前后结果

执行与安全

工具 说明
apply_rendered_plan_tool 使用检查点+回滚执行
snapshot_checkpoint_tool 手动创建检查点
rollback_to_checkpoint_tool 恢复以前的状态
list_checkpoints_tool 查看可用检查点

权限管理

工具 说明
check_sudo_access_tool 检查sudo是否可用
request_sudo_access_tool 临时访问身份验证
get_sudo_setup_instructions_tool 安装帮助

📊 基准测试与验证

NetMCP包括一个完整的验证管道,用于衡量优化影响:

# 1. Run baseline benchmark
before = test_network_performance_tool(profile="gaming")

# 2. Apply optimizations
apply_rendered_plan_tool(rendered_plan)

# 3. Run post-optimization benchmark  
after = test_network_performance_tool(profile="gaming")

# 4. Compare and validate
result = validate_configuration_changes_tool(before, after, "gaming")
# → {"decision": "KEEP", "score": 75, "summary": "Latency improved 15%"}

验证决策

分数 决定 行动
≥60 保持 改进性能
20-59 不确定的 结果喜忧参半,建议进行审查
<20 回滚 性能下降,可自动回滚

🔒 安全模型

命令允许列表

只有明确批准的二进制文件才能执行:

# server/config/allowlist.yaml
binaries:
  - /usr/sbin/sysctl
  - /usr/sbin/tc
  - /usr/sbin/nft
  - /usr/bin/ping
  - /usr/bin/iperf3
  # ... etc

权限提升

sudo访问的三个选项:

  1. 永久的 (推荐):跑步 ./setup_sudo.sh --仅为网络命令配置无密码sudo
  2. 基于会话:使用 request_sudo_access_tool(password="...") --缓存15分钟
  3. 手册:运行 sudo -v 使用MCP前在终端

📈 性能结果

通过配置文件衡量的现实世界改进:

配置文件 度量 改进
游戏 延迟 减少10-30%
游戏 抖动 减少20-40%
流媒体 吞吐量 拥塞链路上的2-4倍
视频通话 连接时间 速度提高15-25%
服务器 连接容量 10倍增加

🤝 贡献

欢迎投稿!感兴趣的领域:

  • 附加配置卡
  • 新的优化配置文件
  • 与跨平台支持
  • 性能基准
  • 文档改进

📄 许可证

MIT许可证——见 许可证 了解详情。


内置于❤️ 面向人工智能原生网络的未来

报告错误 · 请求功能