什么是MCP协议?怎么用?一篇让你从零到精通的教程附如何ClaudePro订阅?如何使用Claude3.7Sonnet模型?

什么是MCP协议?怎么用?一篇让你从零到精通的教程,覆盖所有使用场景,还附Python实战!

作为一个AI圈的"伪技术宅",最近被朋友问到"MCP协议是啥?怎么用?还有哪些方式可以用?"带你从零搞懂MCP(Model Context Protocol)是什么、怎么用、还能怎么用,最后用一个Python实战案例(抓AI热点新闻,生成小红书图片)把理论落地。文章会通俗易懂,像讲故事一样娓娓道来,干货满满,走起!

一、MCP协议是啥?AI的"超级连接器",通俗点就是"外挂神器"

MCP全称是Model Context Protocol(模型上下文协议),由Anthropic在2024年11月开源推出。简单说,它是一个标准化协议,让AI大模型(比如Claude、GPT)能轻松跟外部世界"握手"------连接各种数据源和工具,不用每次都费劲写一堆定制代码。

想象一下,你家有个超级聪明的机器人助手,啥都会算,但就是个"宅男",不认识冰箱、手机,也不会上网查天气。MCP就像给它装了个"万能插头",插上就能跟冰箱聊库存、跟手机查日程、跟天气网站问明天穿啥。以前这些得手动搭线,现在有了MCP,标准化了,插上就用,效率起飞!

技术上,MCP用的是客户端-服务器架构:

  • MCP主机(Host):比如Claude Desktop,负责跟你互动。
  • MCP客户端(Client):主机里的"中间人",对接服务器。
  • MCP服务器(Server):提供功能的"工具箱",比如抓新闻、读文件、调API。 通信靠JSON-RPC 2.0,走STDIO(标准输入输出)或SSE(服务器推送事件)。

一句话总结:MCP是AI的"超级连接器",让模型能实时获取外部数据,变得更聪明、更实用。

二、如何使用MCP协议?以Claude Desktop为例,三步走!

用MCP不复杂,核心就三步:装环境、搭服务器、连主机。我以Claude Desktop为例(最成熟的MCP主机),讲得像"做饭指南"一样,手把手带你上手。

1. 装环境:准备"食材"

2. 搭服务器:炒个"小菜"

  • 啥是服务器? 服务器是个小程序,负责干活(比如抓新闻)。官方有现成的(比如Filesystem、GitHub),但我们自己写一个"AI新闻服务器"。
  • 怎么搭? 用Python写脚本,监听主机请求,处理后返回结果。后面会给代码,先记住:服务器跑起来后得告诉主机"我在哪"。

3. 连主机:端上桌开吃

  • 配置Claude Desktop: 打开Claude安装目录,找或新建claude_desktop_config.json,写上: {"servers": [{"name": "news_server", "command": "python news_server.py"}]} 保存,重启Claude,它就连上了。
  • 测试: 在Claude输入"给我抓点AI热点新闻",服务器跑好就会返回结果。

Claude Pro如何订阅使用?

下载了Claude Desktop,登陆账号之后,就是免费版额度,如果订阅了Claude Pro就会自动升级为Pro订阅计划限制。

PS:想要订阅使用ClaudePro可以参考本文:(2025最新)Claude 3.7 Sonnet怎么样?如何使用Claude 3.7 Sonnet?如何使用Claude Code?如何升级订阅CluadePro

Claude Pro订阅的作用:

Claude Desktop不强制订阅Claude Pro(每月20美元,英国好像是18刀)也能用,但免费版对话量有限(比如一天20次)。订阅Pro后使用量提升5倍(可达100次),高峰期响应更快,还能用更强模型(Claude 3.7 Sonnet),抓取更稳定。

三、除了Claude Desktop,MCP还能咋用?五大场景开眼界!

MCP虽是新生事物,但生态发展很快。截止2025年3月12日,已有不少主流AI工具和编辑器宣布支持MCP。以下是几个代表性客户端(基于现有资料和社区反馈整理):

1. Claude Desktop

  • 支持情况:作为Anthropic自家产品,Claude的桌面版是最早支持MCP的客户端。
  • 特点:可以直接连接本地文件系统、GitHub等资源,适合开发者调试。

2. Cursor

  • 支持情况:知名AI代码编辑器Cursor在最新版本中加入了MCP支持。
  • 特点:结合代码上下文,通过MCP调用外部工具,极大提升开发效率。

3. Windsurf

  • 支持情况:新兴AI编辑器,已集成MCP。
  • 特点:专注于轻量化,支持本地资源访问,社区评价颇高。

4. Zed

  • 支持情况:高性能代码编辑器,内置MCP支持。
  • 特点:主打提示模板和工具集成,适合快速构建AI工作流。

5. Cline(VSCode插件)

  • 支持情况:作为VSCode的AI插件,支持MCP并提供市场(MCP Market)。
  • 特点:开发者友好,可以快速安装社区Server。

6. 其他潜力玩家

  • Genkit:Firebase的AI SDK,通过插件支持MCP,适合Web开发者。
  • 未来趋势:社区预测,像ChatGPT、Copilot等大厂产品可能会跟进,毕竟标准化是大势所趋。

一句话总结:目前MCP生态以开发者工具为主,Claude Desktop和Cursor是主力军,未来有望扩展到更多消费级应用。

四、Python实战1:本地计算机的文件系统中读取

这是一个官方的例子,在本教程中,您将扩展Claude for Desktop,以便它可以从计算机的文件系统中读取、写入新文件、移动文件,甚至搜索文件。

不用担心------在执行这些操作之前它会征求您的许可!

1. 下载 Claude 桌面版

首先下载Claude for Desktop,选择 macOS 或 Windows。(Claude for Desktop 尚不支持 Linux。) 按照安装说明进行操作。 如果您已经拥有 Claude 桌面版,请点击计算机上的 Claude 菜单并选择"检查更新...",确保它是最新版本。

2. 添加文件系统 MCP 服务器

为了添加此文件系统功能,我们将在 Claude for Desktop 中安装预构建的文件系统 MCP 服务器。这是Anthropic 和社区创建的数十台服务器之一。 首先打开计算机上的 Claude 菜单并选择"设置..."请注意,这些不是应用程序窗口本身中的 Claude 帐户设置。 在 Mac 上它应该是这样的:

单击设置窗格左侧栏中的"开发人员",然后单击"编辑配置":

这将在以下位置创建一个配置文件:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • windows:%APPDATA%\Claude\claude_desktop_config.json

如果您还没有,它将在您的文件系统中显示该文件。 在任何文本编辑器中打开配置文件。将文件内容替换为以下内容:

  • MacOS/Linux
perl 复制代码
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/Users/username/Downloads"
      ]
    }
  }
}
  • windows
perl 复制代码
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\Users\username\Desktop",
        "C:\Users\username\Downloads"
      ]
    }
  }
}

配置文件如何工作?

claude_desktop_config.json配置文件告诉 Claude for Desktop 每次启动应用程序时要启动哪些 MCP 服务器。 在本例中,我们添加了一个名为"filesystem"的服务器, 它将使用 Nodenpx命令安装和运行@modelcontextprotocol/server-filesystem。

此服务器将允许您在 Claude for Desktop 中访问文件系统。

tips:确保将其替换 "C:\Users\username\Desktop", "C:\Users\username\Downloads"为您的计算机文件路径应指向您希望 Claude 能够访问和修改的有效目录。它已设置为适用于桌面和下载两个路径,但您也可以添加更多路径。 为确保此程序正常运行,您的计算机上还需要安装Node.js。要验证是否已安装 Node,请在您的计算机上打开命令行。

  • 在 macOS 上,从"应用程序"文件夹打开"终端"
  • 在 Windows 上,按 Windows + R,输入"cmd",然后按 Enter

进入命令行后,输入以下命令验证是否已安装 Node:

css 复制代码
node --version

如果出现错误"未找到命令"或"无法识别节点",请从nodejs.org下载 Node 。

3. 重启Claude

更新配置文件后,您需要重新启动 Claude for Desktop。 重新启动后,您应该会看到在输入框的右下角看到一个锤子(

添加图片注释,不超过 140 字(可选)

)图标:

单击锤子图标后,您应该会看到 Filesystem MCP Server 附带的工具:

如果您的服务器没有被 Claude for Desktop 接收,请继续执行故障排除部分以获取调试提示。

4.尝试一下!

现在您可以与 Claude 对话并询问有关您的文件系统的信息。它应该知道何时调用相关工具。 你可以尝试问 Claude 的事情:

  • 你能写一首诗并保存到我的桌面吗?
  • 我的下载文件夹中有哪些与工作相关的文件?
  • 您能将我桌面上的所有图像移到一个名为"图像"的新文件夹中吗?

根据需要,Claude会调用相关工具,并在采取行动前征求你的同意:

MCP Python实战2:用MCP抓AI热点新闻,生成小红书图片!

场景:从"AI宅男"到"小红书达人"

咱们用Claude Desktop的MCP功能,抓AI热点新闻,生成图片,直接输出适合小红书发布的内容!

完整代码:从抓取到生成,手把手注释

python 复制代码
import json
import requests
from bs4 import BeautifulSoup
from datetime import datetime
import sys
import base64
import os
​
# 方案1:用html2image(需wkhtmltopdf)
try:
    from html2image import Html2Image
    USE_PLAYWRIGHT = False
except ImportError:
    USE_PLAYWRIGHT = True
​
# 方案2:用playwright(备选)
if USE_PLAYWRIGHT:
    from playwright.sync_api import sync_playwright
​
# 模拟MCP服务器:抓AI热点新闻
def fetch_ai_news():
    url = "https://news.google.com/search?q=AI+artificial+intelligence"
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}
    try:
        response = requests.get(url, headers=headers, timeout=10)
        soup = BeautifulSoup(response.text, "html.parser")
        news_items = soup.select("h3.ipQwMb a")[:4]  # 抓取前4条新闻
        news_list = [
            {"title": item.text, "url": "https://news.google.com" + item["href"][1:]}
            for item in news_items
        ]
        return news_list
    except Exception as e:
        print(f"抓取新闻失败:{e}")
        return []
​
# 生成HTML内容,模仿小红书图片风格
def generate_html(news_list):
    current_date = datetime.now().strftime("%Y.%m.%d")  # 当天日期,如2025.03.12
    html = """
    <html>
    <head><style>
        body { font-family: Arial; background: #fff; margin: 0; padding: 20px; }
        .container { border: 10px solid #a084e8; padding: 20px; max-width: 600px; margin: auto; background: #fff; }
        h2 { color: #a084e8; text-align: center; font-size: 24px; }
        p.date { color: #666; text-align: center; font-size: 14px; }
        ul { list-style: none; padding: 0; }
        li { margin: 10px 0; padding-left: 20px; position: relative; }
        li:before { content: "⓿"; color: #a084e8; position: absolute; left: 0; }
        a { color: #1a73e8; text-decoration: none; }
        .footer { color: #999; font-size: 12px; text-align: center; margin-top: 20px; }
        .character { position: absolute; bottom: 20px; right: 20px; width: 100px; opacity: 0.7; }
    </style></head>
    <body>
    <div class="container">
        <h2>AI每日资讯</h2>
        <p class="date">{} AI资讯总结</p>
        <ul>
    """.format(current_date)
    for i, news in enumerate(news_list, 1):
        html += f'<li><a href="{news["url"]}">{news["title"]}</a></li>'
    html += """
        </ul>
        <p class="footer">由MCP协议驱动,AI自动生成</p>
    </div>
    <img src="https://via.placeholder.com/100" class="character">
    </body>
    </html>
    """
    with open("news.html", "w", encoding="utf-8") as f:
        f.write(html)
    return html
​
# HTML转图片:支持两种方案
def html_to_image(html_file):
    if not USE_PLAYWRIGHT:
        hti = Html2Image(size=(600, 400))
        hti.screenshot(html_file=html_file, save_as="news.png")
    else:
        with sync_playwright() as p:
            browser = p.chromium.launch()
            page = browser.new_page()
            page.set_viewport_size({"width": 600, "height": 400})
            page.goto(f"file://{os.path.abspath(html_file)}")
            page.screenshot(path="news.png")
            browser.close()
    return "news.png"
​
# 模拟小红书API上传
def upload_to_xiaohongshu(image_path):
    with open(image_path, "rb") as f:
        image_data = base64.b64encode(f.read()).decode("utf-8")
    print(f"模拟上传图片到小红书:{image_path}")
    print(f"图片Base64预览(前50字符):{image_data[:50]}")
    return {"status": "success", "url": "http://xiaohongshu.com/fake_url"}
​
# MCP服务器主逻辑
def mcp_server():
    while True:
        request = sys.stdin.readline().strip()
        if not request:
            continue
        try:
            req_data = json.loads(request)
            if req_data.get("method") == "get_ai_news"):
                news_list = fetch_ai_news()
                if not news_list:
                    raise Exception("未抓取到新闻")
                html_content = generate_html(news_list)
                image_path = html_to_image("news.html")
                upload_result = upload_to_xiaohongshu(image_path)
                response = {
                    "id": req_data["id"],
                    "result": {"news": news_list, "image": image_path, "upload": upload_result},
                    "error": None
                }
                print(json.dumps(response), flush=True)
        except Exception as e:
            error_response = {"id": req_data.get("id", 0), "result": None, "error": str(e)}
            print(json.dumps(error_response), flush=True)
​
if __name__ == "__main__":
    print("启动MCP新闻服务器...")
    mcp_server()

上诉html转图片依赖参考

  • 必须:pip install requests beautifulsoup4
  • 图片生成(二选一):
  • 方案1:pip install html2image,需装wkhtmltopdf(Windows从 wkhtmltopdf.org 下载,macOS用brew install wkhtmltopdf)。
  • 方案2:pip install playwright,然后playwright install(下载Chromium,约200MB)。

运行效果

命令行输入:python news_server.py 输出(2025年3月12日):

erlang 复制代码
启动MCP新闻服务器...
{"id": 1, "result": {"news": [{"title": "AI突破新纪录", "url": "..."}, ...], "image": "news.png", "upload": {"status": "success", "url": "http://xiaohongshu.com/fake_url"}}, "error": null}
模拟上传图片到小红书:news.png
图片Base64预览(前50字符):iVBORw0KGgoAAAANSUhEUgAA...

五、总结:MCP协议,AI的"全能接口"!

MCP是AI的"超级连接器",Claude Desktop是最成熟的使用方式,但你还能用Cursor、Docker、Cloudflare Workers等玩法,甚至自己开发服务器。

Claude Pro订阅能让Claude Desktop体验更强,但不强制。

咱们的案例中,MCP帮Claude Desktop抓新闻、生成小红书图片,效率拉满!去 claude.ai/download 下载Claude Desktop试试,或者看看 modelcontextprotocol.io 的教程,探索更多玩法!有问题评论区问我,随时解惑~(求个赞,哈哈!)

引用的文献

PS:ClaudePro订阅:(2025最新)Claude 3.7 Sonnet怎么样?如何使用Claude 3.7 Sonnet?如何使用Claude Code?如何升级订阅CluadePro

  1. Anthropic官方文档. (2024). Model Context Protocol (MCP) Specification. modelcontextprotocol.io/
  2. Claude Desktop下载页面. (2025). Claude Desktop Download. claude.ai/download
  3. Python官方文档. (2025). Requests库使用指南. requests.readthedocs.io/
  4. BeautifulSoup文档. (2025). BeautifulSoup4解析HTML. www.crummy.com/software/Be...
  5. Html2Image文档. (2025). HTML转图片指南. github.com/vgalin/html...
  6. Playwright文档. (2025). Playwright Python指南. playwright.dev/python/
相关推荐
yaocheng的ai分身4 小时前
全功率 AI 开发:Cline 如何不限制您的模型潜力
cursor·cline·trae
柒崽7 小时前
一个高效使用cursor开发项目的方法,怎么让 AI 写的代码不跑题?效果嘎嘎香
cursor
哪吒编程9 小时前
Nature最新报道:分析四大主流AI工具、性能测评、推荐使用场景
chatgpt·claude·deepseek
蜗牛快跑12310 小时前
借助 Cursor 做了第一个全栈项目,帮你将内容转为美观的图片
前端·后端·cursor
闪光c10 小时前
vs code 无缝迁移cursor及白嫖cursor经验分享
visual studio·cursor
洞窝技术1 天前
Cursor Pro 太贵?95%的人不知道的 Cursor 白嫖方案!
前端·cursor
量子位1 天前
14B 小模型逆袭翻译赛道,论文财报实测超 Claude,不信试试 “我命由我不由天”
人工智能·llm·claude
飞哥数智坊1 天前
Cursor实战:1小时集成天地图
人工智能·cursor
世界哪有真情1 天前
3月12日最新!Cursor无限续杯
前端·后端·cursor