MCP 终极指南

TL;DR

这篇博客介绍了模型上下文协议(MCP),一种旨在解决AI应用集成难题的新标准。MCP由Claude主导,通过提供统一的协议,使AI模型能与各种API和数据源无缝交互。文章详细解释了MCP的工作原理,展示了其在IDE集成、第三方平台和社区服务器中的应用实例,并对比了MCP与Function Calling、AI Agent的优劣。MCP有望加速AI应用开发,增强AI系统的可靠性和效率。

Summary

好的,这是对你提供的文本的详细总结:

  1. 博客简介:该博客讨论了 AI 应用层开发的新时代,重点介绍了 MCP(模型上下文协议)。

  2. AI应用现状
    • 发展迅速:AI 模型发展迅速,推理和幻觉都得到了明显改善。
    • 集成缓慢:AI 应用与现有服务和系统的集成进展缓慢,缺乏统一集成。
    • 功能分散:用户无法通过一个AI应用同时完成联网搜索、发送邮件、发布博客等任务。
  3. MCP突破:MCP(Model Context Protocol 模型上下文协议)的发布标志着AI应用层开发进入新的时代。

  4. IDE集成实例
    • 数据查询:通过 AI 查询本地数据库数据辅助开发。
    • 问题定位:通过 AI 搜索 Github Issue 判断是否为已知 bug。
    • 代码审查:通过 AI 将 PR 的意见发送给同事进行代码审查。
    • 配置部署:通过 AI 查询甚至修改 AWS、Azure 的配置完成部署。
  5. MCP应用实例
    • Cursor MCP:体验在 Cursor 中自动获取 Chrome dev tools console log 的能力。
    • Windsurf MCP:了解 MCP 的应用。
  6. 集成缓慢原因
    • 数据敏感:企业级数据敏感,流程复杂。
    • 技术标准:缺乏开放、通用、有共识的协议标准。
  7. MCP定义:MCP是由Claude(Anthropic)主导发布的开放、通用、有共识的协议标准。

  8. OpenAI对比:OpenAI 应当在发布 GPT 时推动类似协议,但选择了封闭的 GPTs。

  9. MCP生态
    • 官方支持:Claude Desktop 开放了 MCP 功能,并推动了开源组织 Model Context Protocol。
    • 社区参与:不同公司和社区参与 MCP 服务器的开发。
  10. MCP官方集成例子
    • Git:Git 读取、操作、搜索。
    • GitHub:Repo 管理、文件操作和 GitHub API 集成。
    • Google Maps:集成 Google Map 获取位置信息。
    • PostgreSQL:只读数据库查询。
    • Slack:Slack 消息发送和查询。
  11. 第三方平台MCP支持例子
    • Grafana:在 Grafana 中搜索查询数据。
    • JetBrains:JetBrains IDEs。
    • Stripe:与Stripe API交互。
  12. 社区MCP服务器例子
    • AWS:用 LLM 操作 AWS 资源。
    • Atlassian:与 Confluence 和 Jira 进行交互,包括搜索/查询 Confluence 空间/页面,访问 Jira Issue 和项目。
    • Google Calendar:与 Google 日历集成,日程安排,查找时间,并添加/删除事件。
    • Kubernetes:连接到 Kubernetes 集群并管理 pods、deployments 和 services。
    • X (Twitter):与 Twitter API 交互。发布推文并通过查询搜索推文。
    • YouTube:与 YouTube API 集成,视频管理、短视频创作等。
  13. 对比Function Calling、AI Agent、MCP
    • Function Calling
      • AI 模型根据上下文自动执行函数的机制。
      • 作为 AI 模型与外部系统之间的桥梁,不同模型实现不同,集成方式不同。
      • 缺点是处理不好多轮对话和复杂需求,适合边界清晰、描述明确的任务,代码维护困难。
    • MCP (Model Context Protocol)
      • 标准协议,使 AI 模型能够与不同的 API 和数据源无缝交互。
      • 旨在替换碎片化的 Agent 代码集成,使 AI 系统更可靠、更有效。
      • 通过建立通用标准,服务商可以基于协议来推出它们自己服务的 AI 能力。
      • 在不同的应用/服务之间保持上下文,从而增强整体自主执行任务的能力。
    • AI Agent
      • 智能系统,可以自主运行以实现特定目标。
      • 可以分析具体情况,做出决策,并自行采取行动。
      • 可以利用 MCP 提供的功能描述来理解更多的上下文,并在各种平台/服务自动执行任务。
  14. MCP优势
    • Claude Sonnet 3.5 在开发者心中有较高的地位。
    • MCP 是一个开放的标准,公司和社区愿意参与。
    • 服务商可以针对 MCP 开放自己的 API 和部分能力。
    • 开发者可以用已有的开源 MCP 服务来增强自己的 Agent。
  15. MCP工作原理
    • 五个部分
      • MCP Hosts: LLM 启动连接的应用程序。
      • MCP Clients: 在 Hosts 应用程序内维护与 Server 之间 1:1 连接。
      • MCP Servers: 通过标准化的协议,为 Client 端提供上下文、工具和提示。
      • Local Data Sources: 本地的文件、数据库和 API。
      • Remote Services: 外部的文件、数据库和 API。
    • 核心在于Server
      • Server 是一个中间层,告诉 AI Agent 目前存在哪些服务,哪些 API,哪些数据源。
      • AI Agent 可以根据 Server 提供的信息来决定是否调用某个服务,然后通过 Function Calling 来执行函数。
    • 发展过程:从 Chat 到 Composer 再进化到完整的 AI Agent。
      • AI Chat 只是提供建议,需要人工完成。
      • AI Composer 可以自动修改代码,但需要人工参与和确认。
      • AI Agent 是一个完全的自动化程序。
  16. MCP Server示例
    • 功能:自动搜索 GitHub Repository,接着搜索 Issue,然后再判断是否是一个已知的 bug,最后决定是否需要提交一个新的 Issue。
    • Github MCP Server:提供查找 Repository、搜索 Issues 和创建 Issue 三种能力。
    • 通过 server.setRequestHandler:来告诉 Client 端我们提供了哪些能力,通过 description 字段来描述这个能力的作用,通过 inputSchema 来描述完成这个能力需要的输入参数。
    • 实现是通过 https://api.github.com 的 API:来实现和 Github 交互的,我们通过 githubRequest 函数来调用 GitHub 的 API,最后返回结果。
  17. 更强大的AI Agent
    • 自动的根据本地错误日志,自动搜索相关的 GitHub Repository,然后搜索 Issue,最后将结果发送到 Slack。
    • 可能需要创建三个不同的 MCP Server:Local Log Server,GitHub Server,Slack Server。
    • AI Agent 在用户输入指令后,自行判断需要调用哪些 MCP Server,并决定调用顺序。
  18. 如何使用MCP
    • Cursor, Claude Desktop 或者 Cline 来体验。
    • 通用、标准,所以开发者并不需要重复造轮子。
    • 推荐官方组织的一些 Server。
    • 目前社区的 MCP Server 还是比较混乱,有很多缺少教程和文档,很多的代码功能也有问题。
  19. MCP资源
    • 官方资源
      • 官方的开源组织 Model Context Protocol。
      • 官方的文档 modelcontextprotocol。
      • 官方的 MCP Server 列表。
      • Claude Blog。
    • 社区的 MCP Server 的列表
      • MCP.so
      • Cursor Directory
      • Pulsemcp
      • Glama MCP Servers
  20. 结尾:欢迎各位大佬关注作者的 X/Twitter,小红书,微信公众号。