当前位置: 首页 > news >正文

MCP完全实战指南:基于Python搭建本地系统监控服务,让Claude/Cursor实时读取本机CPU/内存/磁盘(完整可运行代码)


本文所有代码仅用于个人本地开发调试学习,MCP服务可读取本机硬件、磁盘敏感信息,存在隐私泄露风险,请严格遵守以下规范:

  1. 仅在个人本机运行,禁止将MCP服务通过网络、公网分享给任何第三方;
  2. 如需对外提供能力,必须增加权限白名单、数据脱敏、访问日志审计;
  3. 不得利用本教程开发工具远程监控他人电脑、窃取设备运行数据;
  4. 所有操作遵守《网络安全法》《个人信息保护法》,违规使用产生的法律责任由使用者自行承担。

一、前言

日常使用Claude Desktop、Cursor、VS Code AI插件时,大模型只能读取对话内粘贴的文本内容,无法主动获取本机运行状态:查看CPU负载、内存占用、磁盘剩余空间都需要手动打开终端复制数据发给AI,效率极低。

造成该限制的核心原因:AI客户端天然隔离本地系统环境,无法直接调用本机硬件、文件相关接口。
MCP(Model Context Protocol,模型上下文协议)是Anthropic开源的标准化通信协议,被称作AI生态的USB-C通用接口,统一打通AI客户端与本地数据源、工具的通信通道。

本文从零实现一套系统监控MCP Server,AI可一键查询本机CPU、内存、磁盘使用情况,完整覆盖环境部署、代码开发、官方调试工具、Claude客户端接入全流程,新手3分钟即可跑通。

适用场景

  • 本地开发时,AI实时监控电脑负载,辅助判断程序内存泄漏
  • 自动化运维脚本配套,让AI根据磁盘占用自动给出清理建议
  • 本地项目调试,无需切换终端,直接对话获取系统状态

二、MCP核心概念通俗讲解

MCP体系分为三大核心角色,三者分工明确、完全解耦:

  1. MCP协议(通用通信标准)
    类比HTTP协议,提供统一JSON-RPC通信规范,无论本地文件、数据库、系统接口,都能通过同一套标准交互。
  2. MCP Server(数据翻译服务)
    本地运行小程序,封装系统/文件/数据库操作逻辑,将底层数据转换为AI可识别的结构化格式,是连接本地资源与AI的中间层。
  3. MCP Client(AI客户端)
    Claude Desktop、Cursor、VS Code MCP扩展等内置客户端,负责发起工具调用请求、接收服务返回数据,传递给大模型做分析。

一句话总结:MCP打破AI与本地电脑的信息孤岛,让AI从纯聊天工具,升级为可操作本机资源的自动化助手。

三、使用场景对比

无MCP传统方案

  1. 打开终端执行top/df -h查看系统状态
  2. 复制大段输出文本粘贴进对话窗口
  3. AI仅能分析粘贴片段,无法主动刷新实时数据

接入MCP后

直接对话发送指令:帮我查看当前电脑内存和磁盘占用情况,AI自动调用本地服务,实时获取结构化数据并分析负载风险。

四、环境准备(3分钟完成)

1. 版本要求

Python ≥ 3.9;Node.js ≥ 18(用于官方调试工具mcp-inspector)

# 校验Python版本python3--version# 校验Node版本node--version

2. 安装MCP官方SDK

# 带cli工具完整安装pipinstall"mcp[cli]"

3. 项目初始化

# 创建项目文件夹并进入mkdir~/mcp-system-monitorcd~/mcp-system-monitor

五、实操:编写系统监控MCP Server完整代码

新建server.py,内置注释、结构化JSON返回、负载状态判断:

""" 本地系统监控MCP Server 功能:获取CPU使用率、内存占用、磁盘存储空间 安全说明:仅本地stdio模式运行,禁止公网暴露 """frommcp.server.fastmcpimportFastMCPimportpsutilimportjson# 初始化MCP服务实例mcp=FastMCP("system-monitor",description="本机硬件状态监控工具,查询CPU、内存、磁盘实时使用数据")@mcp.tool()defget_cpu_info()->str:""" 获取本机CPU核心数、实时使用率、负载健康状态 """# 采集1秒CPU使用率usage=psutil.cpu_percent(interval=1)core_count=psutil.cpu_count()# 负载阈值判断status="⚠️ CPU负载较高,建议关闭闲置程序"ifusage>70else"✅ CPU负载正常"result={"cpu核心总数":core_count,"实时使用率(%)":usage,"运行状态":status}# 格式化JSON返回,便于AI解析阅读returnjson.dumps(result,ensure_ascii=False,indent=2)@mcp.tool()defget_memory_info()->str:""" 获取本机物理内存总容量、已用、可用空间、内存健康状态 """mem=psutil.virtual_memory()result={"总内存(GB)":round(mem.total/(1024**3),2),"已使用内存(GB)":round(mem.used/(1024**3),2),"可用内存(GB)":round(mem.available/(1024**3),2),"内存占用百分比(%)":mem.percent,"运行状态":"⚠️ 内存资源紧张,容易卡顿"ifmem.percent>80else"✅ 内存充足"}returnjson.dumps(result,ensure_ascii=False,indent=2)@mcp.tool()defget_disk_info()->str:""" 获取系统根目录磁盘总容量、已用、剩余空间、磁盘健康状态 """disk=psutil.disk_usage('/')result={"磁盘总容量(GB)":round(disk.total/(1024**3),2),"已占用空间(GB)":round(disk.used/(1024**3),2),"剩余可用空间(GB)":round(disk.free/(1024**3),2),"磁盘占用百分比(%)":disk.percent,"运行状态":"⚠️ 磁盘空间即将耗尽,请清理文件"ifdisk.percent>90else"✅ 磁盘空间充足"}returnjson.dumps(result,ensure_ascii=False,indent=2)if__name__=="__main__":# 默认stdio本地传输模式,仅本机客户端可连接mcp.run()

安装系统监控依赖psutil

pipinstallpsutil

六、启动服务与官方调试

1. 启动MCP服务

cd~/mcp-system-monitor python server.py

服务默认通过stdio标准流等待客户端连接,无网页端口输出。

2. 使用mcp-inspector可视化调试(官方工具)

无需配置AI客户端,本地图形化测试所有工具接口:

npx @modelcontextprotocol/inspector python server.py

执行后浏览器自动打开http://localhost:5173,操作步骤:

  1. 切换至Tools标签页,可查看get_cpu_info/get_memory_info/get_disk_info三个工具;
  2. 点击Execute执行工具,直接查看结构化JSON返回结果,快速验证代码是否正常运行。

七、Claude Desktop客户端接入(区分Mac/Windows路径)

Mac系统配置文件路径

~/Library/Application Support/Claude/claude_desktop_config.json

Windows系统配置文件路径

%APPDATA%\Claude\claude_desktop_config.json

写入配置JSON(替换为你本地server.py真实绝对路径):

{"mcpServers":{"system-monitor":{"command":"python","args":["/Users/xxx/mcp-system-monitor/server.py"],"env":{}}}}

配置完成后完全重启Claude Desktop,客户端自动加载MCP服务。

对话调用示例

重启后直接发送自然语言指令,AI自动调用监控工具:

  1. 查看整机负载:帮我查询当前电脑CPU、内存、磁盘全部状态
  2. 专项查看内存:看看我现在内存占用多少,有没有卡顿风险
  3. 磁盘空间检查:统计磁盘剩余空间,给出清理建议

八、社区成熟开箱即用MCP Server推荐

无需从零开发,一行命令快速部署,适配各类业务场景:

MCP Server名称核心功能启动命令
filesystem本地文件读写、目录检索npx @modelcontextprotocol/server-filesystem /自定义目录
postgres连接PostgreSQL数据库查询数据npx @modelcontextprotocol/server-postgres postgres://账号:密码@127.0.0.1:5432/库名
brave-search实时联网搜索公开资讯npx @modelcontextprotocol/server-brave-search
github读取仓库代码、查询提交记录npx @modelcontextprotocol/server-github
puppeteer浏览器页面自动化抓取内容npx @modelcontextprotocol/server-puppeteer

九、MCP核心价值总结

  1. 彻底解耦:AI客户端与本地数据源完全分离,更换Cursor、Claude、VS Code无需重写工具代码;
  2. 标准化开发:一套MCP Server兼容全平台支持MCP的AI工具,一次开发多处复用;
  3. 本地隐私优先:所有数据、系统信息仅在本机流转,不会上传第三方模型服务器,隐私可控;
  4. 低成本扩展:仅用@mcp.tool()装饰器即可新增任意本地工具,开发门槛极低。

新手行动路线

  1. 入门:使用官方filesystem文件服务,快速体验MCP能力;
  2. 进阶:参考本文system-monitor模板,自定义专属本地工具;
  3. 生产:增加权限白名单、数据脱敏、操作日志,用于日常自动化工作流。

十、常见踩坑FAQ

Q1:Claude识别不到MCP服务?
A:1. 检查python绝对路径是否正确;2. Windows/Mac配置文件路径区分,不要混用;3. 修改配置后必须完整重启客户端;4. 确认mcp SDK版本为最新稳定版。

Q2:执行工具返回空数据/报错?
A:本地运行python server.py单独启动,查看终端报错日志;确认psutil依赖正常安装。

Q3:能否把MCP服务分享给局域网其他电脑?
A:不建议,原生stdio模式仅本地使用;如需网络访问需切换HTTP传输,并增加身份校验、权限过滤,否则存在隐私泄露风险。

Q4:Windows运行路径报错?
A:路径使用双反斜杠C:\\code\\mcp-system-monitor\\server.py,或原始字符串r路径。

十一、生产环境安全优化建议

  1. 增加访问白名单:限定仅允许读取指定磁盘分区,禁止读取系统敏感目录(/etc、C:\Windows等);
  2. 数据脱敏:过滤磁盘路径中的用户名、密钥配置文件路径;
  3. 操作日志留存:记录每一次工具调用时间、请求参数,方便审计;
  4. 关闭公网端口:仅使用stdio本地模式,不开启Streamable HTTP局域网/公网访问;
  5. 限制调用频率:增加延时,防止AI高频轮询读取系统资源。

本文基于Python MCP SDK v1.x稳定版本编写,接口若发生变更请以项目GitHub官方文档为准。


http://www.jsqmd.com/news/1221269/

相关文章:

  • 基于 RDMA-CM(librdmacm)的聊天程序
  • 鸿蒙 PC Markdown 编辑器错误处理:让失败可恢复而不是只弹提示
  • 2026亲测有效教程:图片大小必须小于300K怎么弄 - 效率工具研究所
  • 2026天津高复学校TOP10出炉,哪所是你的“逆袭摇篮”? - 资讯速览
  • LangGraph[3] ---- 实战 LangGraph Agent:从工具调用到流式交付
  • ADI AD8671, AD8672, AD8674国产替代——士模CM4401, CM4402, CM4404,单通道/双通道/四通道双极性精密低噪声放大器
  • 分享一套锋哥原创的基于Python的高校大学生迎新(新生报到)管理系统(FastAPI+Vue3)
  • 亲身到店探访郑州雷达官方售后服务中心|服务热线及门店官方地址(2026年7月最新) - 亨得利官方服务中心
  • 双视觉系统深度解析:Guizang Social Card Skill如何用电子杂志风与瑞士国际主义设计打造吸睛内容
  • Relative Rotation Graph(相对旋转图)|Highcharts创建RRG 图示列代码
  • 《数字人文技术及运用》课程有感:且教且学且珍惜
  • 会议录音转文字,我为什么放弃了云端方案——智转AI离线语音转写使用体验
  • ChatLaw终极指南:如何快速部署中文法律AI助手并掌握核心功能
  • Apache Commons Collections BidiMap双向映射:实现键值双向查找的完整教程
  • 武汉市科创职业技术学校校企定向就业班招生简章 - 升学择校早知道
  • 企业招投标知识库应该包含哪些资料?从产品功能到中标复盘的完整清单
  • CSYuTuiMian2024隐藏功能:如何快速定位目标院校计算机专业招生动态?
  • 2026泰州黄金回收正规商家:街坊邻居相互介绍的靠谱回收点 - 商业快讯早知道
  • kableExtra新手教程:如何为学术论文创建符合期刊要求的表格
  • 2026毓典奢品汇天津黄金回收指南:高价安全变现,一站式靠谱渠道深度解析 - 二奢行情速报
  • IX9104@ACP# 完整替代的 PEX89104 应用场景
  • 达梦数据库安装后手动配置core路径 调试并查看
  • 2026 年实测走访上海 16 区黄金回收店,合扬实时金价同步当日市场行情 - 生活商业速报
  • InAppBillingPlugin 错误处理完全指南:优雅处理支付失败和异常情况
  • 金额用 Long 还是 BigDecimal?
  • DeepSeek LeetCode 3605. 数组的最小稳定性因子 Rust实现
  • 金融级数据库的 AI 风控引擎:实时交易反欺诈的 300ms 生死线
  • EllipticCurveKeyPair核心功能详解:签名验证与加解密的实现原理
  • 大模型AI搜索信源排名规则深度解析:豆包 vs DeepSeek 引用逻辑对比与GEO实战策略
  • Aperture性能优化指南:提升系统吞吐量的8个实用方法