Mcp 终极指南
MCP 终极指南
- URL: 原文
- Added At: 2025-05-16 06:29:50
- Link To Text
TL;DR
这篇博客介绍了模型上下文协议(MCP),一种旨在解决AI应用集成难题的新标准。MCP由Claude主导,通过提供统一的协议,使AI模型能与各种API和数据源无缝交互。文章详细解释了MCP的工作原理,展示了其在IDE集成、第三方平台和社区服务器中的应用实例,并对比了MCP与Function Calling、AI Agent的优劣。MCP有望加速AI应用开发,增强AI系统的可靠性和效率。
Summary
好的,这是对你提供的文本的详细总结:
-
博客简介:该博客讨论了 AI 应用层开发的新时代,重点介绍了 MCP(模型上下文协议)。
- AI应用现状:
- 发展迅速:AI 模型发展迅速,推理和幻觉都得到了明显改善。
- 集成缓慢:AI 应用与现有服务和系统的集成进展缓慢,缺乏统一集成。
- 功能分散:用户无法通过一个AI应用同时完成联网搜索、发送邮件、发布博客等任务。
-
MCP突破:MCP(Model Context Protocol 模型上下文协议)的发布标志着AI应用层开发进入新的时代。
- IDE集成实例:
- 数据查询:通过 AI 查询本地数据库数据辅助开发。
- 问题定位:通过 AI 搜索 Github Issue 判断是否为已知 bug。
- 代码审查:通过 AI 将 PR 的意见发送给同事进行代码审查。
- 配置部署:通过 AI 查询甚至修改 AWS、Azure 的配置完成部署。
- MCP应用实例:
- Cursor MCP:体验在 Cursor 中自动获取 Chrome dev tools console log 的能力。
- Windsurf MCP:了解 MCP 的应用。
- 集成缓慢原因:
- 数据敏感:企业级数据敏感,流程复杂。
- 技术标准:缺乏开放、通用、有共识的协议标准。
-
MCP定义:MCP是由Claude(Anthropic)主导发布的开放、通用、有共识的协议标准。
-
OpenAI对比:OpenAI 应当在发布 GPT 时推动类似协议,但选择了封闭的 GPTs。
- MCP生态:
- 官方支持:Claude Desktop 开放了 MCP 功能,并推动了开源组织 Model Context Protocol。
- 社区参与:不同公司和社区参与 MCP 服务器的开发。
- MCP官方集成例子:
- Git:Git 读取、操作、搜索。
- GitHub:Repo 管理、文件操作和 GitHub API 集成。
- Google Maps:集成 Google Map 获取位置信息。
- PostgreSQL:只读数据库查询。
- Slack:Slack 消息发送和查询。
- 第三方平台MCP支持例子:
- Grafana:在 Grafana 中搜索查询数据。
- JetBrains:JetBrains IDEs。
- Stripe:与Stripe API交互。
- 社区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 集成,视频管理、短视频创作等。
- 对比Function Calling、AI Agent、MCP:
- Function Calling:
- AI 模型根据上下文自动执行函数的机制。
- 作为 AI 模型与外部系统之间的桥梁,不同模型实现不同,集成方式不同。
- 缺点是处理不好多轮对话和复杂需求,适合边界清晰、描述明确的任务,代码维护困难。
- MCP (Model Context Protocol):
- 标准协议,使 AI 模型能够与不同的 API 和数据源无缝交互。
- 旨在替换碎片化的 Agent 代码集成,使 AI 系统更可靠、更有效。
- 通过建立通用标准,服务商可以基于协议来推出它们自己服务的 AI 能力。
- 在不同的应用/服务之间保持上下文,从而增强整体自主执行任务的能力。
- AI Agent:
- 智能系统,可以自主运行以实现特定目标。
- 可以分析具体情况,做出决策,并自行采取行动。
- 可以利用 MCP 提供的功能描述来理解更多的上下文,并在各种平台/服务自动执行任务。
- Function Calling:
- MCP优势:
- Claude Sonnet 3.5 在开发者心中有较高的地位。
- MCP 是一个开放的标准,公司和社区愿意参与。
- 服务商可以针对 MCP 开放自己的 API 和部分能力。
- 开发者可以用已有的开源 MCP 服务来增强自己的 Agent。
- 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 是一个完全的自动化程序。
- 五个部分:
- 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,最后返回结果。
- 更强大的AI Agent:
- 自动的根据本地错误日志,自动搜索相关的 GitHub Repository,然后搜索 Issue,最后将结果发送到 Slack。
- 可能需要创建三个不同的 MCP Server:Local Log Server,GitHub Server,Slack Server。
- AI Agent 在用户输入指令后,自行判断需要调用哪些 MCP Server,并决定调用顺序。
- 如何使用MCP:
- Cursor, Claude Desktop 或者 Cline 来体验。
- 通用、标准,所以开发者并不需要重复造轮子。
- 推荐官方组织的一些 Server。
- 目前社区的 MCP Server 还是比较混乱,有很多缺少教程和文档,很多的代码功能也有问题。
- MCP资源:
- 官方资源:
- 官方的开源组织 Model Context Protocol。
- 官方的文档 modelcontextprotocol。
- 官方的 MCP Server 列表。
- Claude Blog。
- 社区的 MCP Server 的列表:
- MCP.so
- Cursor Directory
- Pulsemcp
- Glama MCP Servers
- 官方资源:
- 结尾:欢迎各位大佬关注作者的 X/Twitter,小红书,微信公众号。