)
本文所有代码仅用于个人本地开发调试学习MCP服务可读取本机硬件、磁盘敏感信息存在隐私泄露风险请严格遵守以下规范仅在个人本机运行禁止将MCP服务通过网络、公网分享给任何第三方如需对外提供能力必须增加权限白名单、数据脱敏、访问日志审计不得利用本教程开发工具远程监控他人电脑、窃取设备运行数据所有操作遵守《网络安全法》《个人信息保护法》违规使用产生的法律责任由使用者自行承担。一、前言日常使用Claude Desktop、Cursor、VS Code AI插件时大模型只能读取对话内粘贴的文本内容无法主动获取本机运行状态查看CPU负载、内存占用、磁盘剩余空间都需要手动打开终端复制数据发给AI效率极低。造成该限制的核心原因AI客户端天然隔离本地系统环境无法直接调用本机硬件、文件相关接口。MCPModel Context Protocol模型上下文协议是Anthropic开源的标准化通信协议被称作AI生态的USB-C通用接口统一打通AI客户端与本地数据源、工具的通信通道。本文从零实现一套系统监控MCP ServerAI可一键查询本机CPU、内存、磁盘使用情况完整覆盖环境部署、代码开发、官方调试工具、Claude客户端接入全流程新手3分钟即可跑通。适用场景本地开发时AI实时监控电脑负载辅助判断程序内存泄漏自动化运维脚本配套让AI根据磁盘占用自动给出清理建议本地项目调试无需切换终端直接对话获取系统状态二、MCP核心概念通俗讲解MCP体系分为三大核心角色三者分工明确、完全解耦MCP协议通用通信标准类比HTTP协议提供统一JSON-RPC通信规范无论本地文件、数据库、系统接口都能通过同一套标准交互。MCP Server数据翻译服务本地运行小程序封装系统/文件/数据库操作逻辑将底层数据转换为AI可识别的结构化格式是连接本地资源与AI的中间层。MCP ClientAI客户端Claude Desktop、Cursor、VS Code MCP扩展等内置客户端负责发起工具调用请求、接收服务返回数据传递给大模型做分析。一句话总结MCP打破AI与本地电脑的信息孤岛让AI从纯聊天工具升级为可操作本机资源的自动化助手。三、使用场景对比无MCP传统方案打开终端执行top/df -h查看系统状态复制大段输出文本粘贴进对话窗口AI仅能分析粘贴片段无法主动刷新实时数据接入MCP后直接对话发送指令帮我查看当前电脑内存和磁盘占用情况AI自动调用本地服务实时获取结构化数据并分析负载风险。四、环境准备3分钟完成1. 版本要求Python ≥ 3.9Node.js ≥ 18用于官方调试工具mcp-inspector# 校验Python版本python3--version# 校验Node版本node--version2. 安装MCP官方SDK# 带cli工具完整安装pipinstallmcp[cli]3. 项目初始化# 创建项目文件夹并进入mkdir~/mcp-system-monitorcd~/mcp-system-monitor五、实操编写系统监控MCP Server完整代码新建server.py内置注释、结构化JSON返回、负载状态判断 本地系统监控MCP Server 功能获取CPU使用率、内存占用、磁盘存储空间 安全说明仅本地stdio模式运行禁止公网暴露 frommcp.server.fastmcpimportFastMCPimportpsutilimportjson# 初始化MCP服务实例mcpFastMCP(system-monitor,description本机硬件状态监控工具查询CPU、内存、磁盘实时使用数据)mcp.tool()defget_cpu_info()-str: 获取本机CPU核心数、实时使用率、负载健康状态 # 采集1秒CPU使用率usagepsutil.cpu_percent(interval1)core_countpsutil.cpu_count()# 负载阈值判断status⚠️ CPU负载较高建议关闭闲置程序ifusage70else✅ CPU负载正常result{cpu核心总数:core_count,实时使用率(%):usage,运行状态:status}# 格式化JSON返回便于AI解析阅读returnjson.dumps(result,ensure_asciiFalse,indent2)mcp.tool()defget_memory_info()-str: 获取本机物理内存总容量、已用、可用空间、内存健康状态 mempsutil.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.percent80else✅ 内存充足}returnjson.dumps(result,ensure_asciiFalse,indent2)mcp.tool()defget_disk_info()-str: 获取系统根目录磁盘总容量、已用、剩余空间、磁盘健康状态 diskpsutil.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.percent90else✅ 磁盘空间充足}returnjson.dumps(result,ensure_asciiFalse,indent2)if__name____main__:# 默认stdio本地传输模式仅本机客户端可连接mcp.run()安装系统监控依赖psutilpipinstallpsutil六、启动服务与官方调试1. 启动MCP服务cd~/mcp-system-monitor python server.py服务默认通过stdio标准流等待客户端连接无网页端口输出。2. 使用mcp-inspector可视化调试官方工具无需配置AI客户端本地图形化测试所有工具接口npx modelcontextprotocol/inspector python server.py执行后浏览器自动打开http://localhost:5173操作步骤切换至Tools标签页可查看get_cpu_info/get_memory_info/get_disk_info三个工具点击Execute执行工具直接查看结构化JSON返回结果快速验证代码是否正常运行。七、Claude Desktop客户端接入区分Mac/Windows路径Mac系统配置文件路径~/Library/Application Support/Claude/claude_desktop_config.jsonWindows系统配置文件路径%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自动调用监控工具查看整机负载帮我查询当前电脑CPU、内存、磁盘全部状态专项查看内存看看我现在内存占用多少有没有卡顿风险磁盘空间检查统计磁盘剩余空间给出清理建议八、社区成熟开箱即用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-searchgithub读取仓库代码、查询提交记录npx modelcontextprotocol/server-githubpuppeteer浏览器页面自动化抓取内容npx modelcontextprotocol/server-puppeteer九、MCP核心价值总结彻底解耦AI客户端与本地数据源完全分离更换Cursor、Claude、VS Code无需重写工具代码标准化开发一套MCP Server兼容全平台支持MCP的AI工具一次开发多处复用本地隐私优先所有数据、系统信息仅在本机流转不会上传第三方模型服务器隐私可控低成本扩展仅用mcp.tool()装饰器即可新增任意本地工具开发门槛极低。新手行动路线入门使用官方filesystem文件服务快速体验MCP能力进阶参考本文system-monitor模板自定义专属本地工具生产增加权限白名单、数据脱敏、操作日志用于日常自动化工作流。十、常见踩坑FAQQ1Claude识别不到MCP服务A1. 检查python绝对路径是否正确2. Windows/Mac配置文件路径区分不要混用3. 修改配置后必须完整重启客户端4. 确认mcp SDK版本为最新稳定版。Q2执行工具返回空数据/报错A本地运行python server.py单独启动查看终端报错日志确认psutil依赖正常安装。Q3能否把MCP服务分享给局域网其他电脑A不建议原生stdio模式仅本地使用如需网络访问需切换HTTP传输并增加身份校验、权限过滤否则存在隐私泄露风险。Q4Windows运行路径报错A路径使用双反斜杠C:\\code\\mcp-system-monitor\\server.py或原始字符串r路径。十一、生产环境安全优化建议增加访问白名单限定仅允许读取指定磁盘分区禁止读取系统敏感目录/etc、C:\Windows等数据脱敏过滤磁盘路径中的用户名、密钥配置文件路径操作日志留存记录每一次工具调用时间、请求参数方便审计关闭公网端口仅使用stdio本地模式不开启Streamable HTTP局域网/公网访问限制调用频率增加延时防止AI高频轮询读取系统资源。本文基于Python MCP SDK v1.x稳定版本编写接口若发生变更请以项目GitHub官方文档为准。