问题域
我习惯于创建RESTful API,特别是使用Python库,如请求或FastAPI。 我希望了解更多关于MCP服务器的信息,并精通利用FastMCP作为工具来公开 API到AI/LLM。
解决方案:学习项目
利用美国国家气象局开放数据API作为数据源,构建一个简单的MCP服务器。
目标
- 利用FastMCP发布天气服务警报API
- 构建FastMCP及其附加参数
1. 资源 1. 提示
计划
- 使用Python请求构建基线功能
- 这将确认天气警报数据已成功从气象服务返回。
- 添加我的日志例程-将打印语句转换为适当的日志方法
- 从Python请求库转换为FastMCP
- 执行验证测试 - 连接本地AI客户端-Claude和ChatGPT
- 使用其他FastMCP参数进行扩展:资源、提示
学习成果
- FastMCP使向AI客户端公开现有API的工作变得相对简单明了。可以以灵活快速的部署模式向非技术和人工智能代理公开现有的API功能。
- 例如,NWS天气警报API将状态代码作为参数-有效,但限制了与API交互的方式。需要通过设计的UI提交正确的状态代码,以便非技术用户能够利用该功能。 - 通过MCP服务器配置AI客户端,人们只需问一个问题——“明尼苏达州有天气警报吗?”——系统就会做出适当的回应。 - 在这种情况下,LLM将获取API的警报响应列表(可以超过200个),并将其汇总为易于理解的可辨别文本(少于250个字符)。 - 这极大地改变了用户体验,开放了可能能够与现有API交互的访问,并提高了他们对API当前响应功能的理解,而无需更改基本的RESTful API。
- 关键在于MCP服务器配置以及制定有效的工具描述、资源和提示脚本,以帮助和指导用户体验。
- 这为企业的外部用户(客户、供应商和利益相关者)创造了更多机会,可以通过新的渠道和潜在的技术依赖程度较低的方式进行访问。 - 场景1:Dice的MCP服务器\[https://www.dice.com/about/mcp\]使查询Dice的求职变得更加容易,但现在如何与结果数据交互带来了挑战。组织将需要考虑API响应的现有行为,外部用户如何与他们交互,以及LLM如何与结构化数据交互。在天气警报的情况下,LLM的默认行为是适当的。需要考虑用户体验和业务原理,以了解如何提示和指导LLM正确处理API响应数据。 - 场景2:考虑对数据互操作性的影响:医疗付款人如何利用电子病历中的数据将有所不同。付款人有自己的内部业务系统,在特定的业务场景中利用外部访问的数据。访问MCP服务器将以不同的方式显示数据,具体取决于用户提示和MCP服务器的提示。企业需要特别考虑访问外部API如何影响和增强现有的内部业务流程和数据管道。
建议
- 有机会将现有的API体系结构扩展到非技术企业中。由于员工角色/职责/技能的分离,MCP服务器有可能减少数据洞察的访问障碍。非技术企业用户可以利用AI客户端直接访问现有的数据服务,而不是要求工程团队围绕API构建新的UI和功能,也许是以新的方式。
- 在实施MCP服务器时,技术人员需要:
1. 确保MCP服务器的正确配置 1. 存在很棒的调试工具:需要记住安装node.js和单独确认的MCP Inspector 1. 实际上,在配置Claude Desktop以执行测试时遇到了一些初始挑战 1. 能够使用Claude Desktop Developer日志和MCP检查器进行调试(确认操作) 1. 通过编辑claude_desktop_config.json来解决,以确保所有引用都是绝对引用 1. 考虑安全性:访问和授权 3.开放对可能已被其他API或应用程序许可的API的访问会造成安全漏洞,特别是当以前安全的API现在可以通过LLM客户端访问时。 1. 考虑MCP客户端的采购和配置,特别是公司人员设备(台式机、笔记本电脑、移动设备等)上的客户端 5.采购、访问权限、配置——这些都会影响安全访问和授权
- 努力制作工具描述,创建支持资源,并设计有效的提示,以确保成功的用户体验。这些代表了关键的价值驱动因素以及绩效和有效性的决定因素。
- 记录、监控和评估MCP服务器请求和提供给用户的响应,以确保AI提供与底层API数据服务以及工具、资源和提示脚本一致的准确信息。
1. 人工智能的响应不应夸大API的基本数据,而是对API响应中的数据进行以人为本的解释。 1. 应审查、监控和检查评估,以确保人工智能客户不会夸大其词,但仍受API数据服务响应的限制。
需要学习的其他项目:
- FastMCP 3.0更新
- 添加资源和提示功能
- 简化MCP服务器文件
