
全面掌握 OpenAPI 规范:定义、生成与集成指南
本文将讲解如何开发一个天气 MCP 服务器,用户可以通过 Claude 桌面应用从任何地点查询实时天气情况的功能。
大语言模型(LLM)本身是没办法查询实时数据的。比如你问它:“纽约现在的天气是什么?”如果没有 MCP(并且关闭了网页搜索),它可能会给出一些不准确的回答,比如:
但是有了 MCP,它就可以通过调用工具来回答这个问题了:
从宏观上看,有以下几个组件:
在这个例子中,MCP 客户端和 MCP 服务器都存在于用户的桌面上。桌面 Claude 应用是 MCP 客户端的宿主,也就是说 MCP 客户端是内置在应用里的。
get_alerts
:获取美国某个州的天气警报。它需要一个参数,state
——美国州的两位字母代码(比如 CA、NY)。get_forecast
:获取某个地点的天气预报。它需要两个参数,latitude
——地点的纬度,和longitude
——地点的经度。对于每个工具,MCP 都会调用相应的 Weather API 接口,这些接口就是普通的 HTTP 接口,类似这里的的 API:https://api.weather.gov。
get_alerts
和get_forecast
。为了理解这些组件是如何协同工作的,我们用了一个请求图。请注意,这个图已经简化了,省略了一些协议细节。
MCP 客户端与服务器建立连接并获取可用工具。这些工具存储在会话中,结构如下:
工具名称、描述和参数等所有信息都在服务器端定义。MCP 服务器的 Python 代码如下:
工具调用实际上是 Claude LLM 支持的功能,并不是 MCP 引入的新特性。根据官方 Claude LLM 文档:
如果你在 API 请求中包含 tools
,大模型可能会返回 tool_use
内容块,表示大模型对这些工具的使用。然后你可以使用大模型生成的工具输入运行这些工具,还可以选择将结果通过 tool_result
内容块返回给大模型。
上面的工具结构会被添加到发送给 Claude LLM 的查询中。Python 示例代码如下:
有了这些工具,LLM 会判断哪个工具适合用户的查询。在这个例子中,它识别出对于“纽约现在的天气是什么?”这个问题,需要调用 get_forecast
。
由于这个工具需要两个参数:latitude
(纬度)和 longitude
(经度),LLM 知道它需要提供纽约的坐标,这些坐标它从训练数据中已经知道了。
LLM 会返回类似以下内容:
Claude 桌面应用会利用协议去查询天气 API。由于协议设计,请求会依次经过 Claude 桌面应用、MCP 客户端和 MCP 服务器。
Weather API 的响应会按相反的顺序返回,首先到达 MCP 服务器,然后是 MCP 客户端,最后到达 Claude 桌面应用。返回的内容看起来像这样:
Claude 桌面应用会把原始查询“纽约现在的天气是什么?”以及第五步中的天气预报内容一起发送给 Claude LLM。
Claude LLM 组织自然语言回答,Claude 桌面应用显示最终答案。基于提供的预报数据,LLM 创建了一个友好的回答,然后在桌面应用上显示:
以上就是实时天气查询案例的整个流程!正如你所看到的,这是一个标准化和简化 LLM 与外部工具或资源协作的机制。
MCP 是如此简单,以至于你几乎不需要它来协调工具调用。然而,它有助于标准化资源,社区已经迅速开发了许多有用的 MCP 服务器。有几百个现成的服务器可供使用,比如:GitHub、Jira、Slack、Cloudflare、Blender 等等,而且这个列表还在不断增长。你可以简单地将它们添加到你的 Claude 桌面应用或任何宿主(比如:IDE 或聊天客户端)中,以扩展其功能!
除了这个简单例子中使用的工具或函数,MCP 还支持其他功能:
MCP 生态系统还很新,但它确实引起了很大的关注。随着开发者们纷纷用它来构建创新的应用程序,它会进一步成熟。
虽然 MCP 显著增强了 AI 的能力,但它也带来了新的安全威胁,我们在另一篇文章中再讨论安全问题。
文章转载自: MCP 企业级落地案例架构设计和落地实战
全面掌握 OpenAPI 规范:定义、生成与集成指南
API 网关集成 SkyWalking 打造全方位日志处理
如何使用 Google News API 获取实时新闻数据
REST API:关键概念、最佳实践和优势
如何使用 OpenAI 的 Sora API:综合使用指南
2025年 GitHub 上热门 AI Agents 开源项目:AutoGen、CrewAI、OpenDevin
深入理解 ASP.NET Core Web API:从哲学到一对多模型(Models & 1:N 关系)
从Talkie到DeepSeek:揭秘AI应用出海的盈利路径
如何通过MCP+魔搭免费API搭建本地数据助手