模型上下文协议工具服务器

MCP工具服务器是一个用于将只读家庭实验室基础设施工具暴露给本地LLM工作流程的原型工具。

  • by allend2092
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 allend2092/MCP_Experiments

使用说明

MCP实验

此存储库是 模型上下文协议(MCP) 用于公开的工具服务器 只读家庭实验室基础设施工具 到本地LLM工作流。

当前的实施侧重于Raspberry Pi托管的MCP服务器,该服务器提供Cisco IOS工具(show version)通过SSH,可从以下来源使用:

  • 打开WebUI(通过MCP流式HTTP)
  • 桌面Python客户端(通过MCP Streamable HTTP)
  • SSH stdio上的桌面Python客户端(回退/调试路径)

当前状态(工作)

  • 在Raspberry Pi上运行的MCP服务器 FastMCP
  • 支持两种传输方式:
    • streamable-http (适用于Open WebUI)
    • stdio (用于基于SSH的测试)
  • 思科IOS工具曝光:
    • cisco_show_version
  • 从Open WebUI成功执行工具调用并返回结构化输出
  • 存在用于回归测试的桌面测试工具

仓库的规划

  • mcp_server/server.py
    MCP服务器的入口点。通过以下方式选择运输方式 MCP_TRANSPORT.

  • mcp_server/tools/cisco.py
    Cisco SSH实现 show version.

  • config/
    SSH配置示例(无机密)。

  • scripts/
    桌面侧测试线束:

    • test_mcp_streamable_http.py
    • test_mcp_via_ssh.py

配置

在Raspberry Pi上创建本地环境文件(未提交):

.env.本地
包含:

  • 工具使用的Cisco凭据/SSH配置
  • MCP传输选择
  • HTTP绑定设置

示例变量(记录在 .env.local.example):

  • MCP运输
  • MCP_HTTP_HOST
  • MCP_HTTP_PORT
  • MCP_HTTP_PATH

运行MCP服务器(流式HTTP)

在Raspberry Pi上:

导出MCP_TRANSPORT=可流式传输的http
导出MCP_HTTP_HOST=0.0.0.0
导出MCP_HTTP_PORT=8000
导出MCP_HTTP_PATH=/MCP

python-m mcpserver.server


从桌面验证(流式HTTP)

导出MCP_HTTP_URL=“HTTP://:8000/mcp”
python脚本/test_mcp_streamable_http.py


从桌面验证(SSH stdio回退)

导出MCP_PI_SSH=“PI@"
python脚本/test_mcp_via_ssh.py


设计说明/目标

  • 默认情况下为只读工具(不对网络设备进行配置更改)
  • 秘密卫生:
    • .env.local 被忽略
    • .env.local.example 安全地记录所需变量
  • 再现性:
    • 测试线束保存在 scripts/ 升级后验证功能 (开放WebUI、MCP版本、Python等)

当前能力

  • 将真实的基础设施数据暴露给本地LLM
  • 通过Open WebUI路由的工具调用
  • 结构化+原始CLI输出可用于后续推理
  • 安全、可审计的执行路径(SSH+分配列表)

计划改进

  • 其他Cisco只读工具(show clock, show interfaces status)
  • 结构化字段提取(IOS版本、正常运行时间、序列)
  • 主机满列表发现工具
  • 打开WebUI配置演练