所有文章 > 如何集成API > MCP 企业级落地案例架构设计和落地实战
MCP 企业级落地案例架构设计和落地实战

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。

第二、幕后发生了以下几步

  1. Claude 桌面应用获取可用工具列表,比如:get_alertsget_forecast
  2. Claude 桌面应用把用户的问题发送给 Claude LLM。
  3. Claude LLM 分析可用的工具,并决定使用哪些。
  4. Claude 桌面应用通过 MCP 服务器执行选定的工具。
  5. Weather API 返回实时信息。
  6. 结果被发送回 Claude LLM。
  7. 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文章!

我们有何不同?

API服务商零注册

多API并行试用

数据驱动选型,提升决策效率

查看全部API→
🔥

热门场景实测,选对API

#AI文本生成大模型API

对比大模型API的内容创意新颖性、情感共鸣力、商业转化潜力

25个渠道
一键对比试用API 限时免费

#AI深度推理大模型API

对比大模型API的逻辑推理准确性、分析深度、可视化建议合理性

10个渠道
一键对比试用API 限时免费