侧边栏壁纸
博主头像
西瓜码农

成功需要脚踏实地,一步一个脚印

  • 累计撰写 264 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

30行代码打通AI Agent任督二脉:MCP协议实战

# 30行代码打通AI Agent任督二脉:MCP协议实战 你有没有遇到过这种情况—— 让Claude帮你查个数据库,它说"我无法访问";让Cursor自动发个HTTP请求,你得先写一堆胶水代码;想在GPT和Claude之间共享同一套工具,结果每个平台都要重写一遍。 说白了,AI再聪明,没有"手"也是白搭。 2024年底,Anthropic推出了MCP(Model Context Protocol),就是给AI装"手"的标准。到2026年,MCP已经从实验性协议变成了AI工具链的基础设施——Claude Desktop、Cursor、Windsurf、VS Code Copilot全支持了。 今天不聊概念,直接上手:30行Python代码写一个MCP Server,让Claude和Cursor都能调用你的工具。 ## 一、MCP到底在解决什么问题? 先说痛点。 假设你是个全栈开发者,日常要: - 查询数据库里的用户数据 - 调用公司内部API接口 - 读写本地配置文件 - 搜索代码仓库 没有MCP之前,你得每个AI平台写一套适配代码。Claude用Claude的格式,OpenAI用OpenAI的格式,Gemini又有一套。三个平台三套代码,维护到怀疑人生。 MCP的解法:**统一协议,一次开发,到处使用**。 就像USB统一了外设接口,MCP统一了AI和工具之间的接口。你写一个MCP Server,Claude能用,Cursor能用,任何支持MCP的客户端都能用——零适配成本。 > 个人看法:MCP之前,AI工具链就像春秋战国,各家协议不互通。MCP相当于"书同文车同轨",这是AI Agent落地的关键基础设施。 ## 二、5分钟搞懂MCP架构 MCP架构其实很简单,三层: - **Host(宿主应用)**:Claude Desktop、Cursor这些你日常用的AI工具 - **Client(客户端)**:嵌在Host里面,负责和Server通信 - **Server(服务端)**:你写的,暴露工具给AI调用 核心就一句话:**你只需要写Server,剩下的MCP框架全帮你搞定。** MCP Server可以暴露三种东西: 1. **Tool(工具)**——AI可以"执行"的函数,比如查天气、写文件、调API 2. **Resource(资源)**——AI可以"读取"的数据源,比如数据库表、文档内容 3. **Prompt(提示模板)**——预定义的提示模板,快速触发常见操作 简单判断:有副作用用Tool,只读用Resource,固定流程用Prompt。 ## 三、实战:30行代码写一个MCP Server 开始写代码。 **安装FastMCP:** ```bash pip install fastmcp ``` 验证安装: ```bash $ fastmcp version FastMCP version: 3.2.4 MCP version: 1.27.0 ``` **写一个DevOps工具箱Server:** ```python from fastmcp import FastMCP, Context import subprocess import json mcp = FastMCP("devops-toolkit", version="1.0.0") @mcp.tool() def check_service_status(service_name: str) -> str: """检查指定服务的运行状态""" try: result = subprocess.run( ["systemctl", "is-active", service_name], capture_output=True, text=True, timeout=5 ) status = result.stdout.strip() return f"服务 {service_name} 当前状态: {status or '未找到'}" except Exception as e: return f"检查失败: {str(e)}" @mcp.tool() async def search_logs(keyword: str, log_path: str = "/var/log/app.log", lines: int = 20, ctx: Context = None) -> str: """在日志文件中搜索关键词""" if ctx: await ctx.info(f"正在搜索日志: {keyword}") try: result = subprocess.run( ["grep", "-n", "-C", str(lines//2), keyword, log_path], capture_output=True, text=True, timeout=10 ) if result.returncode == 0: return f"找到匹配项:\n{result.stdout[:2000]}" return f"未找到包含 '{keyword}' 的日志" except Exception as e: return f"搜索失败: {str(e)}" @mcp.tool() def get_system_info() -> dict: """获取系统基本信息""" import psutil return { "cpu_percent": psutil.cpu_percent(interval=1), "memory": { "total_gb": round(psutil.virtual_memory().total / 1e9, 2), "used_percent": psutil.virtual_memory().percent }, "disk": { "total_gb": round(psutil.disk_usage("/").total / 1e9, 2), "used_percent": psutil.disk_usage("/").percent } } if __name__ == "__main__": mcp.run() ``` 核心就是几个装饰器: - `@mcp.tool()` → 注册工具函数 - `@mcp.resource()` → 注册只读资源 - `@mcp.prompt()` → 注册提示模板 函数的类型标注自动变成JSON Schema,docstring自动变成AI看到的工具描述。`mcp.run()`一行搞定启动。 > 踩坑经验:docstring是灵魂!AI选择工具靠的是description字段。写清楚参数和适用场景,比写对更重要。 ## 四、接入Claude Desktop和Cursor Server写好了,怎么让AI用起来? **方式一:手动配置** 找到Claude Desktop配置文件: - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - Windows: %APPDATA%\Claude\claude_desktop_config.json 添加你的Server: ```json { "mcpServers": { "devops-toolkit": { "command": "python", "args": ["C:\\path\\to\\devops_server.py"] } } } ``` Cursor类似,在Settings → MCP里添加。 **方式二:一行命令自动注册** ```bash fastmcp install devops_server.py --client claude ``` 重启Claude Desktop后,你应该能看到工具图标里多了"devops-toolkit"。 现在可以直接跟Claude说: - "帮我检查一下nginx和mysql的状态" - "在日志里搜一下ConnectionTimeout关键词" - "分析这个错误:redis connection refused" > 实测效果:第一次看到AI自动调用自己写的工具,那种感觉挺奇妙的——就像AI突然有了手,能帮你干活了。 ## 五、进阶:远程部署和HTTP模式 上面的例子用的是stdio模式(本地进程通信)。如果需要部署在远程服务器上多人共享,就用HTTP模式。 改一行代码: ```python if __name__ == "__main__": mcp.run(transport="http", host="0.0.0.0", port=8000) ``` 客户端配置跟着变: ```json { "mcpServers": { "devops-toolkit": { "url": "http://your-server:8000/mcp/" } } } ``` 也可以挂载到现有FastAPI应用上: ```python from fastapi import FastAPI app = FastAPI() app.mount("/mcp", mcp.http_app()) ``` ## 六、生态里现成的Server 不用什么都自己写,社区有很多现成的: | Server | 功能 | 安装命令 | |--------|------|----------| | filesystem | 文件系统读写 | npx @modelcontextprotocol/server-filesystem | | postgres | PostgreSQL查询 | npx @modelcontextprotocol/server-postgres | | github | GitHub操作 | npx @modelcontextprotocol/server-github | | brave-search | 网络搜索 | npx @modelcontextprotocol/server-brave-search | | puppeteer | 浏览器自动化 | npx @modelcontextprotocol/server-puppeteer | 零代码,配上就能用。 ## 小结 MCP做的事情很简单——给AI一个标准化的接口层,让它能真正操作你手边的工具。 你只需要: 1. `pip install fastmcp` 2. 写几个带`@mcp.tool()`装饰器的Python函数 3. 配置到Claude Desktop / Cursor 4. 直接跟AI说你要做什么 30行代码,你的AI就从"只能聊天"进化到"能干活"了。 2026年是AI Agent落地的关键年,而MCP就是连接AI和真实世界的基础设施。**早学早受益,晚学要追赶。** 如果你已经在用Claude Desktop或Cursor,今晚就可以加一个MCP Server试试——感受一下AI真正调用你工具的那个瞬间。 --- *你对MCP有什么看法?或者想看什么方向的AI实战教程?评论区聊聊。*
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区