网络设备通信协议服务器

一个用于网络设备的最小化MCP(模型通信协议)服务器,提供HTTP JSON API以支持设备列表的过滤和分页查询。

  • by 0xAdityaThakkar
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 0xAdityaThakkar/network_mcp_service

使用说明

网络MCP服务器

用于网络设备的最小MCP(模型通信协议)服务器。它公开了一个HTTPJSON API,用于列出带有过滤和分页的设备。

快速启动(uv项目)

  1. 安装uv(如果尚未安装):
pip install uv
  1. 安装依赖项并运行服务器:
uv pip install -r requirements.txt
uvicorn src.main:app --reload --port 5000

或者将uv与pyproject.toml一起使用:

uv venv
uv pip install -e .
uvicorn src.main:app --reload --port 5000
  1. 请求示例:
  • 列出设备:GEThttp://127.0.0.1:8000/devices
  • 按状态筛选:GET/设备?状态=在线
  • 按供应商筛选:GET/设备?供应商=思科
  • 搜索:GET/设备?q=关系

API文件可在http://127.0.0.1:8000/docs

MCP端点

此服务在POST/MCP上公开了一个最小的MCP兼容端点。端点接受一个小的JSON信封:

请求示例:

{ "id": "req1", "method": "ListDevices", "params": { "status": "online", "limit": 10 } }

响应示例:

{ "id": "req1", "result": { "total": 2, "items": [ /* array of devices */ ] } }

未知方法返回错误信封,如下所示:

{ "id": "req1", "error": { "code": -32601, "message": "Method not found" } }

发现

客户端可以在GET/MCP/methods中发现支持的MCP方法,该方法返回一个描述每个方法及其参数的JSON文档。例子:

{ "methods": [ { "name": "ListDevices", "description": "List devices with filters and pagination", "params": { ... } } ] }

对于JSON RPC样式的发现,使用GET/mcp/tools返回一个包含 jsonrpc: "2.0" 顶级字段和相同 methods 列表。

例子:

{ "jsonrpc": "2.0", "methods": [ { "name": "ListDevices", "params": { ... } } ] }

备注

  • 这些示例假设服务器在端口8000上运行。在烟雾测试中,我使用端口8001来避免冲突: uvicorn src.main:app --port 8001.