MCP 企业级落地案例架构设计和落地实战
1、基于 MCP 实时查询天气案例架构设计剖析
本文将讲解如何开发一个天气 MCP 服务器,用户可以通过 Claude 桌面应用从任何地点查询实时天气情况的功能。
1.1、实时查询天气案例需求分析
大语言模型(LLM)本身是没办法查询实时数据的。比如你问它:“纽约现在的天气是什么?”如果没有 MCP(并且关闭了网页搜索),它可能会给出一些不准确的回答,比如:

但是有了 MCP,它就可以通过调用工具来回答这个问题了:

2、MCP 架构设计剖析
从宏观上看,有以下几个组件:

在这个例子中,MCP 客户端和 MCP 服务器都存在于用户的桌面上。桌面 Claude 应用是 MCP 客户端的宿主,也就是说 MCP 客户端是内置在应用里的。
第一、MCP 服务器提供了两个工具来返回实时信息
get_alerts:获取美国某个州的天气警报。它需要一个参数,state——美国州的两位字母代码(比如 CA、NY)。get_forecast:获取某个地点的天气预报。它需要两个参数,latitude——地点的纬度,和longitude——地点的经度。
对于每个工具,MCP 都会调用相应的 Weather API 接口,这些接口就是普通的 HTTP 接口,类似这里的的 API:https://api.weather.gov。
第二、幕后发生了以下几步
- Claude 桌面应用获取可用工具列表,比如:
get_alerts和get_forecast。 - Claude 桌面应用把用户的问题发送给 Claude LLM。
- Claude LLM 分析可用的工具,并决定使用哪些。
- Claude 桌面应用通过 MCP 服务器执行选定的工具。
- Weather API 返回实时信息。
- 结果被发送回 Claude LLM。
- Claude LLM 组织自然语言的回答,Claude 桌面应用显示最终答案。
3、MCP 案例落地实现
为了理解这些组件是如何协同工作的,我们用了一个请求图。请注意,这个图已经简化了,省略了一些协议细节。

第一步:MCP 客户端从 MCP 服务器获取可用工具列表
MCP 客户端与服务器建立连接并获取可用工具。这些工具存储在会话中,结构如下:

工具名称、描述和参数等所有信息都在服务器端定义。MCP 服务器的 Python 代码如下:

第二步:Claude 桌面应用把问题发送给 Claude LLM
工具调用实际上是 Claude LLM 支持的功能,并不是 MCP 引入的新特性。根据官方 Claude LLM 文档:
如果你在 API 请求中包含 tools,大模型可能会返回 tool_use 内容块,表示大模型对这些工具的使用。然后你可以使用大模型生成的工具输入运行这些工具,还可以选择将结果通过 tool_result 内容块返回给大模型。
上面的工具结构会被添加到发送给 Claude LLM 的查询中。Python 示例代码如下:

第三步:Claude LLM 分析可用工具并决定使用哪些
有了这些工具,LLM 会判断哪个工具适合用户的查询。在这个例子中,它识别出对于“纽约现在的天气是什么?”这个问题,需要调用 get_forecast。
由于这个工具需要两个参数:latitude(纬度)和 longitude(经度),LLM 知道它需要提供纽约的坐标,这些坐标它从训练数据中已经知道了。
LLM 会返回类似以下内容:

第四步:Claude 桌面应用通过 MCP 服务器执行选定的工具
Claude 桌面应用会利用协议去查询天气 API。由于协议设计,请求会依次经过 Claude 桌面应用、MCP 客户端和 MCP 服务器。
第五步:Weather API 返回实时信息
Weather API 的响应会按相反的顺序返回,首先到达 MCP 服务器,然后是 MCP 客户端,最后到达 Claude 桌面应用。返回的内容看起来像这样:

第六步:结果被发送回 Claude LLM
Claude 桌面应用会把原始查询“纽约现在的天气是什么?”以及第五步中的天气预报内容一起发送给 Claude LLM。
第七步:Claude LLM 组织自然语言回答,Claude 桌面应用显示最终答案
Claude LLM 组织自然语言回答,Claude 桌面应用显示最终答案。基于提供的预报数据,LLM 创建了一个友好的回答,然后在桌面应用上显示:

以上就是实时天气查询案例的整个流程!正如你所看到的,这是一个标准化和简化 LLM 与外部工具或资源协作的机制。
4、为什么需要 MCP ?
MCP 是如此简单,以至于你几乎不需要它来协调工具调用。然而,它有助于标准化资源,社区已经迅速开发了许多有用的 MCP 服务器。有几百个现成的服务器可供使用,比如:GitHub、Jira、Slack、Cloudflare、Blender 等等,而且这个列表还在不断增长。你可以简单地将它们添加到你的 Claude 桌面应用或任何宿主(比如:IDE 或聊天客户端)中,以扩展其功能!
除了这个简单例子中使用的工具或函数,MCP 还支持其他功能:
- 资源:客户端可以读取的类似文件的数据(比如:API 响应或文件内容)
- 工具:LLM 可以调用的函数(需要用户批准)
- 提示词:帮助用户完成特定任务的预写模板
5、最后的话
MCP 生态系统还很新,但它确实引起了很大的关注。随着开发者们纷纷用它来构建创新的应用程序,它会进一步成熟。
虽然 MCP 显著增强了 AI 的能力,但它也带来了新的安全威胁,我们在另一篇文章中再讨论安全问题。
文章转载自: MCP 企业级落地案例架构设计和落地实战
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 您需要了解的OpenAI Assistants API功能 – PageOn.ai
- DRF库详解:用Django轻松搭建功能强大的API服务
- 一文搞懂在 HTTP 如何 one-api 调用,实操指南来袭!
- 探索海洋数据的宝库:Amentum海洋数据探测API的潜力
- 云原生 API 网关 APISIX 入门教程
- API Key 密钥:深入理解与应用
- 2025年国内免费生成式 AI API 平台大盘点:探索国产大模型的开放能力
- 使用DeepSeek和Claude绘制出高质量的SVG 图片
- 精通REST API:解析iOS开发中的核心要点
- ASP.NET Core Web API 的授权指南 – Auth0
- Supertest:如何像专业人士一样测试API – Testim博客
- Next.js API 路由:GET 和 POST 请求示例