AI原生网络诊断架构

MCP-Diag是一种基于模型上下文协议(MCP)的混合神经符号架构,用于解决大型语言模型(LLMs)与网络操作(AIOps)集成中的随机接地问题和安全间隙问题。

  • by devansh-lodha
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 devansh-lodha/mcp-diag

使用说明

MCP Diag:AI原生网络诊断的确定性、协议驱动架构

摘要

MCP Diag代表了一种基于模型上下文协议(MCP)的混合神经符号架构。它解决了大型语言模型(LLM)与网络操作(AIOps)集成中的两个基本挑战: 随机接地问题,其中LLM无法可靠地解析非结构化CLI输出,以及 安全缺口 授予自治代理shell访问权限的固有特性。

该存储库包含MCP Diag的参考实现,包括一个能够进行确定性输出序列化的安全MCP服务器(通过 jc)以及协议强制的人在环(HITL)启发。它还包括一个交互式MCP客户端和一个全面的基准测试套件,用于根据基线方法验证系统的性能、令牌效率和可靠性。

存储库结构

monorepo分为以下工作区:

  • packages/mcp-server:实现模型上下文协议的核心诊断服务器。它暴露了工具(dig, ping, traceroute, geoiplookup)并处理raw的序列化 stdout 转换为严格的JSON模式。它管理双通道传输(Stdio用于控制,SSE用于数据流)。
  • packages/mcp-client:一个基于交互式终端的客户端,协调用户、LLM(Google Gemini)和MCP服务器之间的会话。它管理会话状态和工具执行工作流。
  • **mcp_diag_experiments**用于进行定量评估的实验框架。它包含针对顶级全局域运行比较基准($N=500$试验)并生成性能图的逻辑。

先决条件

  • 运行时: 包子 (v1.2或更高版本)。
  • Python环境: 紫外线 (用于可再现的绘图环境)。
  • 系统实用程序:主机必须安装标准网络实用程序(iputils-ping, traceroute, dnsutils/bind9-host).
  • API证书:有效的Google Generative AI API密钥。

安装

  1. 克隆存储库:

    git clone https://github.com/devansh-lodha/mcp-diag.git
    cd mcp-diag
    
  2. 安装依赖项: 此项目使用Bun工作区。在根目录安装依赖项将引导所有包。

    bun install
    
  3. 构建包: 编译客户端和服务器端的TypeScript源代码。

    bun run build
    

配置

客户端需要一个API密钥来与推理模型通信。

  1. 导航到客户端包:

    cd packages/mcp-client
    
  2. 创建和编辑 .env 并填充 GEMINI_API_KEY 变量。

交互式使用

要在交互模式下运行整个系统,其中客户端将服务器作为子进程生成:

bun run start

这将启动 ChatSession 编排。用户可以发出自然语言查询(例如。, “跟踪到google.com的路由并验证最后一跳的延迟”).该系统将:

  1. 规划工具执行链。
  2. 通过Elicitation协议请求明确的用户批准。
  3. 通过MCP服务器执行工具。
  4. 将结果流式传输回客户端。
  5. 综合一个最终的答案。

实验结果的再现

本节详细介绍了重现相关论文中提出的定量评估所需的步骤。该基准测试将MCP Diag架构与基线“ShellTool”方法在延迟、内存占用和令牌消耗指标方面进行了比较。

1.基准执行

基准测试运行者对全球500强域名进行了对照试验。它处理JIT预热和路径启动,以确保统计有效性。

导航到实验目录:

cd mcp_diag_experiments

安装实验依赖项:

bun install

配置实验环境: 确保a .env 文件存在于 mcp_diag_experiments/ 包含有效 GOOGLE_API_KEY.

运行基准测试套件:

# This will execute N=500 trials for both Baseline and MCP systems
# Results are saved to benchmark_results.csv
bun run start

2.数据可视化

可视化脚本使用Python。我们利用 uv 以确定性的方式管理Python环境和依赖关系。

确保 uv 已安装:

curl -LsSf https://astral.sh/uv/install.sh | sh

生成性能图:

# uv will automatically create the venv and install dependencies (pandas, matplotlib, seaborn)
uv run plot.py

这将在以下位置生成科学的6面板网格可视化 mcp_diag_experiments/plots/mcp_final_grid.pdf.

许可证

MIT许可证。看 LICENSE 文件全文。