在这里插入图片描述

一、环境准备(Windows/Mac通用)

1. 安装基础工具
  1. Ollama(本地大模型)

    • 官网下载:https://ollama.com/download
    • 安装后执行(拉取DeepSeek模型):
      ollama run deepseek-coder
      
  2. 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. 启动所有服务

    • 命令行1:ollama run deepseek-coder
    • 命令行2:uvicorn mcp_server:app --reload --port 8000
  2. 执行巡检

    python ask_ai.py
    # 根据AI输出的JSON,手动执行(或自动化):
    curl -X POST http://localhost:8000/mcp \
    -H "Content-Type: application/json" \
    -d '{"method":"check_device_status","params":{}}'
    
  3. 预期结果

{
  "result": {
    "192.168.1.1": "Health Status: Normal\nCPU Usage: 15%\nMemory Usage: 30%"
  }
}

五、常见问题解决

  1. Ollama连接失败

    • 检查服务是否启动:ollama serve
    • 确认防火墙开放11434端口
  2. 设备连接错误

    • 修改devices.json中的IP/账号
    • 测试网络连通性:ping 192.168.1.1
  3. 中文提示优化
    修改ask_ai.py中的提示词:

    prompt = f"用户要求:{question}。请生成调用MCP检查网络设备状态的JSON请求,直接返回JSON不要解释。"
    

六、方案优势

  • 完全本地化:数据不出内网
  • 零云服务依赖:断网环境也可用
  • 极简代码:总行数<50行
  • 安全可控:密码仅存于本地文件

下一步可扩展:添加Web界面、对接企业微信通知等。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐