本地化MCP网络设备巡检方案
为零基础开发者设计的 本地化MCP网络设备巡检方案,使用 Ollama+DeepSeek-Coder模型 实现全流程本地运行。
·

一、环境准备(Windows/Mac通用)
1. 安装基础工具
-
Ollama(本地大模型)
- 官网下载:https://ollama.com/download
- 安装后执行(拉取DeepSeek模型):
ollama run deepseek-coder
-
Python环境
- 安装Python 3.10+:https://www.python.org/downloads/
- 安装依赖库:
pip install mcp-client netmiko fastapi uvicorn
二、极简版MCP服务器开发
1. 创建配置文件 devices.json
{
"devices": [
{
"ip": "192.168.1.1",
"device_type": "huawei",
"username": "admin",
"password": "Admin@123"
}
]
}
2. 编写MCP服务器 mcp_server.py
from fastapi import FastAPI
from netmiko import ConnectHandler
import json
app = FastAPI()
# 加载设备配置
with open('devices.json') as f:
devices = json.load(f)['devices']
@app.post("/mcp")
async def handle_request(data: dict):
method = data.get("method")
params = data.get("params", {})
if method == "check_device_status":
result = {}
for device in devices:
try:
# 连接设备
conn = ConnectHandler(
ip=device['ip'],
device_type=device['device_type'],
username=device['username'],
password=device['password']
)
# 执行巡检命令
output = conn.send_command("display health")
result[device['ip']] = output
except Exception as e:
result[device['ip']] = f"错误:{str(e)}"
return {"result": result}
else:
return {"error": "未知方法"}
3. 启动服务器
uvicorn mcp_server:app --reload --port 8000
三、本地模型集成(DeepSeek)
1. 编写模型交互脚本 ask_ai.py
import requests
import json
def ask_ai(question):
# 调用本地Ollama的DeepSeek
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": "deepseek-coder",
"prompt": f"用户要求:{question}。请生成调用MCP检查网络设备状态的JSON请求,设备信息已在后台配置。"
}
)
return response.json()['response']
# 示例:用户输入自然语言指令
user_input = "请帮我检查所有网络设备状态"
ai_response = ask_ai(user_input)
print("AI生成的请求:", ai_response)
2. 测试调用(输出示例)
{
"method": "check_device_status",
"params": {}
}
四、全流程测试
-
启动所有服务
- 命令行1:
ollama run deepseek-coder - 命令行2:
uvicorn mcp_server:app --reload --port 8000
- 命令行1:
-
执行巡检
python ask_ai.py # 根据AI输出的JSON,手动执行(或自动化): curl -X POST http://localhost:8000/mcp \ -H "Content-Type: application/json" \ -d '{"method":"check_device_status","params":{}}' -
预期结果
{
"result": {
"192.168.1.1": "Health Status: Normal\nCPU Usage: 15%\nMemory Usage: 30%"
}
}
五、常见问题解决
-
Ollama连接失败
- 检查服务是否启动:
ollama serve - 确认防火墙开放11434端口
- 检查服务是否启动:
-
设备连接错误
- 修改
devices.json中的IP/账号 - 测试网络连通性:
ping 192.168.1.1
- 修改
-
中文提示优化
修改ask_ai.py中的提示词:prompt = f"用户要求:{question}。请生成调用MCP检查网络设备状态的JSON请求,直接返回JSON不要解释。"
六、方案优势
- 完全本地化:数据不出内网
- 零云服务依赖:断网环境也可用
- 极简代码:总行数<50行
- 安全可控:密码仅存于本地文件
下一步可扩展:添加Web界面、对接企业微信通知等。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)