思科ND的MCP(模型上下文协议)
该项目提供了一个与Cisco ND控制器交互的简单MCP(模型上下文协议)服务器。 如果您想详细了解其工作原理,请查看 这篇博客文章
- 经过测试 克劳德桌面 和 Visual Studio Code 在代理模式下使用Copilot。
- 服务器运行在 STDIO模式,用于本地执行。
特性
- 展示了两个用于Nexus Dashboard交互的工具(请参见
app/main.py详细信息)。 - 通过环境变量轻松配置。
设置
- 克隆仓库 并导航到项目目录。
- 创建Python虚拟环境 并安装依赖项:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt- 指定Nexus仪表板凭据 在
.env文件。
- 更新.vcode/mcp.json 文件中包含Python环境和服务器脚本的正确路径。
- 如果你想让Claude或VS Code直接运行Python代码(无容器),请安装 紫外线
- 注册MCP服务器 使用克劳德或VS代码。
对于VS代码,创建一个 .vscode/mcp.json 在您的工作区中创建这样的文件:
{
"servers": {
"ciscoNdServer": {
"type": "stdio",
"command": "/Users/user/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"/Users/user/Coding/MCP_server_for_Cisco_ND/app/main.py"
]
}
}
}- 指示Claude Desktop或VS Code使用它:
- 看 Claude桌面快速入门 - 看 VS代码副本MCP服务器
- 在本地安装MCP客户端工具 如果使用以下命令调用MCP服务器
uv run mcp如上所述。
- 使用 uv add "mcp[cli]" 或 pip install "mcp[cli]"
- 测试服务器 通过从您的代理(Claude或VS Code)发送触发其中一个工具的请求。例如,在Nexus Dashboard中要求提供所有租户的列表。
ND查询示例(来自实际使用)
在Claude Desktop或VS Code Agent模式下使用以下提示调用您的MCP工具:
- 列出标记织物
- “给我ND上标记的织物的名称”
- 面料异常
- “给我Nexus仪表板上与结构ACI1相关的所有异常” - “请详细说明织物ACI1的所有异常情况”
- 所有织物的异常
- “收集Nexus仪表板上所有活动的异常” - “显示ND中所有活动异常的摘要” - “再次检查是否有异常”
- 包括已清除/过期的异常
- “显示所有ND异常” - “包括所有”
- 接口相关异常检查
- “接口是否有任何异常?”
- 切换库存
- “给我属于结构ACI1的所有交换机的列表” - “按角色和异常级别对ACI1进行分组切换” - “给我所有织物的分组视图”
- 逻辑策略检索(通用)
- “获取我的结构ACI1中的所有VRF” - “获取ACI1结构中的所有租户” - “在ACI1中获取安全组/EPG/合同” - “对于VXLAN结构VXLAN2,获取网络”
这些示例对应于当前在 app/main.py,包括: list_nd_fabrics, collect_nd_anomalies_v2, collect_nd_switches,以及 collect_nd_fabric_policy.
Docker支持
您可以直接使用UV运行服务器,也可以构建Docker镜像并将其作为容器运行。如果使用Docker,请调整 mcp.json 相应地配置。
注: 建议在本地安装MCP客户端工具以调试服务器代码。
