2026/2/18 9:08:39
网站建设
项目流程
怎么建立公司网站?,游戏设计需要学什么专业,电子商务有限公司是干什么的,最近韩国电影片免费韩国在线观看文章介绍了人工智能智能体协议的定义、种类与架构#xff0c;重点解析了模型上下文协议(MCP)作为标准化连接层的作用。MCP使AI智能体能与外部工具和服务有效通信#xff0c;采用客户端/服务器架构#xff0c;支持多种传输方式。文章详细讲解了如何构建MCP服务器#xff0c;…文章介绍了人工智能智能体协议的定义、种类与架构重点解析了模型上下文协议(MCP)作为标准化连接层的作用。MCP使AI智能体能与外部工具和服务有效通信采用客户端/服务器架构支持多种传输方式。文章详细讲解了如何构建MCP服务器帮助开发者实现智能体间的互操作性和标准化集成是构建多智能体系统的必备知识。什么是人工智能智能体协议来源https://www.ibm.com/think/topics/ai-agent-protocols原标题What are AI agent protocols?作者Rina Diane Caballar1, Staff Writer;Cole Stryker2, Staff Editor, AI Models图片来源Emily Buder/Quanta Magazine; Carlos Arrojo for Quanta Magazine智能体协议建立了智能体3之间以及智能体与其他系统之间的通信标准。这些协议规定了消息的语法、结构和顺序以及通信惯例例如智能体在对话中扮演的角色以及如何或何时响应消息。基于智能体的人工智能系统通常各自独立运行4。它们由不同的供应商使用不同的智能体框架5和不同的智能体架构构建6。现实世界的集成是一项挑战而将这些分散的系统连接起来需要针对所有可能的智能体交互类型定制不同的连接器。这就是协议发挥作用的地方。它们将分散的多智能体系统7转变为一个相互关联的生态系统在这个生态系统中人工智能驱动的智能体共享一种相互发现、理解和协作的方式。智能体协议是智能体编排8的一部分但它们并不充当编排者的角色。它们规范了通信但并不管理智能体工作流程的9协调、执行和优化。对智能体协议的基本要求智能体协议应具有以下特性互操作性10降低智能体开发复杂性标准化和更顺畅的整合互操作性智能体协议打破了信息孤岛使智能体型人工智能11能够相互通信而无需考虑其底层实现方式。它们促进了智能体12在不同设备、环境和平台上的无缝协作。降低智能体开发复杂性由于协议处理了智能体交互的复杂性并通过软件开发工具包 (SDK)13抽象了这种复杂性因此它们有助于简化构建多智能体系统的过程。人工智能开发人员可以将更多精力集中在创建新的智能体功能和增强现有功能上。标准化和更顺畅的整合智能体协议提供了一套结构化的通信方式。由于许多此类标准化协议都构建于成熟技术之上因此有助于确保与现有技术栈的兼容性从而实现更顺畅的企业集成。智能体协议的种类许多协议的开发仍处于初级阶段尚未得到广泛使用或大规模应用。这种不成熟性意味着各组织必须做好准备成为早期尝试者并适应不断变化和演变的规范。随着智能体技术的演进可能会出现新的协议。以下是一些当前的人工智能智能体协议Agent2Agent 协议 (A2A)智能体通信协议ACP智能体网络协议ANP智能体-用户交互协议AG-UIAgora 协议语言模型操作系统协议LMOS模型上下文协议MCPAgent2Agent 协议 (A2A)A2A 协议14是一种用于智能体通信15的开放标准16最初由谷歌发起现在由 Linux 基金会管理。它采用客户端-服务器模型包含三个步骤的工作流程17当一个实体人类用户或其他智能体向客户端智能体发起任务请求时就会发生发现过程客户端智能体随后会查找远程智能体以确定最合适的智能体。客户端智能体一旦识别出能够完成任务的远程智能体就会进行身份验证。远程智能体负责授权18并授予访问控制19权限。通信过程为客户端智能体发送任务远程智能体处理任务。智能体之间的通信通过 HTTPS 进行安全传输数据交换格式为 JSON-RPC 2.0远程过程调用。智能体通信协议ACP与 A2A 类似智能体通信协议 (ACP)20是另一个用于智能体之间通信的开放标准最初由 IBM 的 BeeAI21引入现在是 Linux 基金会的一部分。RESTful API22向 ACP 服务器发送请求。ACP 服务器在单个 HTTP 终端后托管一个或多个智能体并将任务路由到相应的智能体。以下是 ACP 的其他主要功能该协议23可与 Postman 等标准 HTTP 工具甚至浏览器一起使用但也有 SDK 可供使用。在线发现可以通过直接查询 ACP 服务器和访问知名网址上的公共清单文件来实现。离线发现则可以通过集中式注册表或将智能体元数据24直接嵌入到其分发包中来实现。ACP 接受不同的消息类型例如音频、图像、文本、视频或自定义二进制格式。智能体网络协议ANP智能体网络协议ANP25是一个开源26协议其目标是成为“智能体网络时代的HTTP”。因此它采用HTTP进行数据传输并采用JSON-LDJSON链接数据进行数据格式化。ANP采用由三层组成的对等网络架构身份层实现了端到端加密27以确保通信安全并基于 W3C DID去中心化标识符标准实现了去中心化身份验证28。元协议层允许智能体协商并达成一致以决定如何通信。应用协议层允许智能体自动描述其功能并为智能体发现提供支持。智能体-用户交互协议AG-UI智能体-用户交互协议AG-UI29旨在规范后端智能体与前端或面向用户的应用程序之间的连接方式。它专为实时人机交互而设计例如与人工智能助手30和聊天机器人31、实时传输状态更新以及其他需要人机协同的智能体自动化32操作。AG-UI 的事件驱动架构允许智能体根据特定的系统触发器或用户输入生成事件。该协议定义了多种事件类别包括消息发送和接收、工具调用33以及任务完成等。其中间件层支持多种传输方式例如服务器发送事件 (SSE)34、 Webhook35 和 WebSocket。AG -UI 还允许使用安全智能体在智能体和用户界面之间安全地路由请求。Agora 协议Agora 是一种面向由36大语言模型 (LLM)37驱动的智能体的通信协议。它依赖于大语言模型智能体38的几项核心能力自然语言理解39、指令跟踪、编写和运行代码以及自主协商。大语言模型智能体可以实现并支持自己的协议这些协议以纯文本形式在协议文档中进行描述。文档的第一部分包含元数据用于标识协议名称、描述以及它是用于单轮还是多轮对话。第二部分概述了通信方式指令以自然语言和代码混合的形式给出。之后智能体可以自主协商采用哪种协议。Agora 使用 HTTPS 传输数据并使用 JSON 进行格式化。它还使用基于哈希hash的身份验证系统来管理协议文档。LMOS 协议由 Eclipse 基金会开发的语言模型操作系统 (LMOS) 协议40旨在构建智能体互联网 ( IoA )即一个互联网规模的多智能体生态系统。与 ANP 类似其结构化架构由三层组成身份和安全层提供加密通信并支持不同的身份验证方案例如 W3C DID 和 OAuth 2.0。传输协议层允许智能体选择和调整适合其每次交互目的的传输协议。应用协议层概述了智能体和工具描述的格式、发现方法、语义数据模型和WebSocket 子协议。LMOS 协议使用 JSON-LD 来描述工具和智能体的功能以及其他元数据。工具和智能体的发现可以通过动态方式查询中央目录或通过去中心化网络进行。模型上下文协议MCP由 Anthropic 公司推出的模型上下文协议 (MCP)为41人工智能模型42提供了一种标准化的方式使其能够获取执行任务所需的上下文信息。在智能体领域MCP 充当智能体与外部服务和工具例如 API43、数据库、文件、网络搜索和其他数据源连接和通信的层级。MCP包含以下三个关键架构要素MCP主机包含编排逻辑可以将每个MCP客户端连接到MCP服务器。它可以托管多个客户端。MCP客户端将用户请求转换为协议可以处理的结构化格式。每个客户端都与一个 MCP 服务器建立一对一的关系。客户端负责管理会话、解析和验证响应以及处理错误。MCP服务器将用户请求转换为服务器操作。服务器通常是 GitHub 代码库支持多种编程语言并提供对各种工具的访问。它们还可以通过 IBM 和 OpenAI 等人工智能平台提供商将大语言模型推理44与 MCP SDK 连接起来。在客户端和服务器之间的传输层中消息以 JSON-RPC 2.0 格式传输使用标准输入/输出 (stdio) 进行轻量级同步消息传递或使用服务器发送事件 SSE 进行异步事件驱动调用。选择人工智能智能体协议时需要考虑的因素由于缺乏标准化的评估基准45企业必须自行评估最符合自身业务需求的协议。他们可能需要从一个规模较小、可控的用例入手46并结合全面严格的测试。评估智能体协议时需要注意以下几个方面效率理想情况下协议的设计旨在最大限度地减少延迟47从而实现快速数据传输和迅速响应。虽然通信开销不可避免但必须将其控制在最低限度。可靠性智能体协议必须能够应对智能体工作流程中不断变化的网络状况并具备相应的机制来管理故障或中断。例如ACP默认采用异步通信这使其适用于复杂或长时间运行的任务。而A2A则支持使用SSE进行实时流传输以处理大型或长时间的输出或持续的状态更新。可扩展性协议必须足够稳健才能适应不断增长的智能体生态系统且性能不下降。评估可扩展性可以包括在一段时间内逐步或突然增加智能体数量或与外部工具的连接以观察协议在这些条件下的运行情况。安全维护安全至关重要智能体协议正越来越多地融入安全防护措施例如身份验证、加密48和访问控制。∎什么是模型上下文协议 MCP来源https://www.ibm.com/think/topics/model-context-protocol原标题What is Model Context Protocol (MCP)?作者Anna Gutowska49, AI Engineer, Developer Advocate图片来源Kevin Hong for Quanta Magazine模型上下文协议 (MCP) 为人工智能50应用程序提供了一个标准化层使其能够与外部服务例如工具33、数据库51和预定义模板进行有效通信。您是否曾经尝试构建多智能体系统7但却难以在各个专业智能体之间有效地传播信息提供给您的智能体的各种预构建和自定义工具3是否会导致工具执行错误或输出解析错误或者这些复杂情况是否让您完全放弃了开发自己的智能体的尝试这些障碍可以通过模型上下文协议MCP来解决。MCP 使智能体能够在遵循标准化工具集成协议的同时具备上下文感知能力。人工智能智能体3是一种能够代表用户或其他系统自主执行任务的系统或程序。它通过设计自身的工作流程并使用可用工具来完成这些任务。多智能体系统7由多个智能体组成它们协同工作以代表用户或其他系统执行任务。你可以把 MCP 看作是人工智能应用领域的工具其作用类似于 USB-C 端口在硬件领域的作用。这种类比突出了 USB-C 端口在连接硬件方面所提供的适应性将其与各种工具和数据源通过 MCP 为人工智能模型提供上下文的标准化方式进行了比较42。有意义的工具大型语言模型LLM例如 Granite52、Gemini 和 Llama在单独部署时功能有限。在没有任何人工智能工具的情况下大语言模型擅长的领域包括后续文本预测提示大语言模型完成诸如“Jack and Jill went up the…”之类的句子结果正确预测为“Jack and Jill went up the hill”。此提示和响应是后续文本预测的一个例子并且在模型训练所用的文本上效果最佳。基本问答由于大语言模型本身无法访问外部数据库或进行网络搜索因此它只能回答与模型训练数据中的信息相关的自然语言问题。例如“请告诉我凡尔赛条约的内容”因为关于这场重大世界大战的信息很可能包含在通用模型的训练数据中。语言学习模型通常以聊天机器人的形式执行此类文本生成操作31。情感分析53大语言模型可以处理文本并确定其表达的是积极、消极还是中性的情感。语言翻译大语言模型可以跨语言和地域翻译文本。然而并非所有语言学习模型都使用多种语言的数据进行训练。除了基本功能外无法访问外部工具的大语言模型无法成功运行任何需要访问实时信息的用户查询。为了使大语言模型能够产生更有意义的结果可以引入工具集成。提供诸如网络搜索、数据集和 API 之类的外部工具43可以让大语言模型扩展其功能使其超越训练数据的限制。为了更进一步我们可以利用大语言模型及其可用工具构建智能体。总而言之智能体系统为大语言模型提供了一系列工具使模型能够确定合适的工具使用方法适应不断变化的环境并基于工具的输出结果形成综合结论。然而这些人工智能系统在大规模应用中往往会失效。因此Anthropic 公司于 2024 年推出的 MCP模型上下文协议为人工智能与工具的交互建立了一个开放标准。MCP 制定了一项标准将外部服务连接到大语言模型非常繁琐。想象一下一个电路将电机连接到各种电源。MCP 就像这个电路的线路和配电盘它决定哪些电流信息流向电机人工智能模型。工具输出或模型上下文可以比作输入电流——它是来自电源的电压可以包含内存、工具和过往发现。作为配电盘MCP 决定连接哪些电源工具输出或上下文以及何时连接调节电流信息流过滤并确定输入的优先级。它这样做是为了确保只有相关的线路通电加载相关的上下文并管理电路的时序和路由以避免系统过载。就像设计良好的电路可以防止过载并确保高效的电源使用一样MCP 可以作为连接器促进高效、相关和结构化的上下文使用从而实现最佳的人工智能模型性能。MCP 基于共识为人工智能工程师建立了一个新的开源26标准。然而标准在软件行业并非新概念。例如 REST API22就是行业标准它通过符合表征状态传输Representational State Transfer, REST设计原则的 HTTP 请求在应用程序之间提供一致的数据交换。同样MCP通过制定标准统一了大语言模型和外部服务从而实现高效通信。该标准支持“即插即用”的工具使用无需为每个工具编写自定义集成代码。MCP 并非智能体框架而是一个用于智能体访问工具的标准化集成层。它与智能体编排框架相辅相成。MCP 可以与 LangChain54、 LangGraph55、 BeeAI56、 LlamaIndex 和 crewAI 等智能体编排框架配合使用57但不会取代它们MCP 不决定何时调用工具以及调用工具的目的。MCP 提供了一种标准化的连接方式以简化工具集成。最终大语言模型根据用户请求的上下文来决定调用哪些工具。MCP 架构MCP 的客户端/服务器模型可以分解为三个关键架构组件MCP 主机人工智能应用接收用户请求并通过 MCP 获取上下文信息。此集成层可以包含 Cursor 或 Claude Desktop 等集成开发环境IDE。它包含编排逻辑可以将每个客户端连接到服务器。MCP 客户端在 MCP 生态系统中主机和服务器之间的通信必须通过客户端进行。该客户端存在于主机内部并将用户请求转换为开放协议可以处理的结构化格式。一个 MCP 主机可以有多个客户端但每个客户端都与一个 MCP 服务器对应。MCP 客户端的示例包括 IBM® BeeAI 、Microsoft Copilot Studio、Claude.ai、Windsurf Editor 和 Postman。客户端充当会话管理器负责处理中断、超时、重新连接和会话关闭。客户端还会解析响应、进行错误处理并验证响应是否与上下文相关且恰当。MCP 服务器外部服务通过将用户请求转换为服务器操作为大语言模型提供上下文。MCP 服务器集成示例包括 Slack、GitHub、Git、Docker 或网络搜索。这些服务器通常是 GitHub 代码库支持多种编程语言C#、Java™、TypeScript、Python 等并提供对 MCP 工具的访问。通常可以在这些 GitHub 代码库中找到教程以帮助进行技术实现。MCP 服务器还可以通过 IBM 和 OpenAI 等人工智能平台提供商将大语言模型推理44链接到 MCP SDK。这样就创建了一个可重用的 MCP 服务供客户端将其作为“标准化”聊天工具访问。MCP 服务器用途广泛因为它们允许连接到内部和外部资源及工具。根据 Anthropic 提供的文档模型上下文协议 (MCP) 服务器通过以下方式公开数据资源从内部或外部数据库检索信息。资源返回数据但不执行可操作的计算。工具与能够执行计算或通过 API 请求获取数据等额外作用的工具进行信息交换。提示用于大语言模型服务器通信的可重用模板和工作流程。客户端和服务器之间的传输层负责双向消息转换。在客户端到服务器的数据流中MCP 协议消息被转换为 JSON-RPC 格式从而可以传输多种数据结构及其处理规则。在反向服务器到客户端流中以 JSON-RPC 格式接收到的消息被转换回 MCP 协议消息。JSON-RPC 消息类型共有三种请求、响应和通知。请求需要服务器响应而通知则不需要。模型上下文协议架构在客户端和服务器之间的传输层MCP协议主要有两种传输方式它们都以JSON-RPC 2.0格式传输消息。第一种是标准输入/输出stdio由于其输入/输出信息传输简单因此最适合集成本地资源。这种格式用于轻量级的同步消息传递。此类资源包括本地文件系统、数据库和本地 API。第二种是服务器发送事件 (SSE)它最适合集成远程资源。HTTP POST 请求用于传输客户端到服务器的消息而 SSE 则用于反向传输。这种格式可以同时处理多个异步的、事件驱动的服务器调用。MCP 的特性想象一下一个现实世界的人工智能系统能够扫描你的收件箱安排客户会议发送股票更新并汇总过去一小时的弹性任务Slack activity。每个服务提供商构建 API 的方式都不同需要传递的信息不同返回的输出模式也不同。因此这些工具哪怕最细微的改动都可能导致整个人工智能工作流程基础设施的崩溃。此外工程师还需要投入大量开发精力来手动构建这些工具连接进行调试58并维护身份验证例如 API 密钥和工具权限。工具通常依赖于其他工具的输出并且存在许多连接失败的极端情况。因此提供 MCP 集成作为大语言模型和开发工具之间的中间层至关重要。在这一层MCP 可以将工具输出转换为模型可以理解的方式。无需在不同的命令行界面之间切换所有工具集成都可以在同一位置完成。MCP 在现实世界中有很多应用场景。例如MCP 通过共享工作空间和通用工具增强多智能体编排8和通信从而无需直接集成。MCP 也可用于补充检索增强生成 (RAG)59。MCP 无需提供检索器来搜索向量库或知识库而是可以通过服务器操作连接到向量数据库60。将数据库搜索作为工具而不是在每次大语言模型调用中都传递检索器可以更策略性地使用该工具。这种方法还允许在数据检索后进一步调用其他工具33。MCP 的未来MCP 代表了一种不断发展的大语言模型工具集成方法它随着时间的推移不断成熟并重塑着这一领域。随着技术挑战的出现和 MCP 服务器的演进该标准也在不断调整MCP 也持续改进。无论如何标准化工具集成对于智能体自主运行和动态适应现实世界环境至关重要。基于 MCP我们可以实现智能体工作流程9的自动化从而减少人工干预。反过来MCP 带来的这种转变使我们能够将时间投入到更需要人类智慧和直觉的精细任务中。∎如何搭建 MCP 服务器来源https://www.ibm.com/think/tutorials/how-to-build-an-mcp-server原标题How to build an MCP server作者Ash Minhas61, Manager, Technical Content | AI Advocate;PJ Hagerty62, Lead, AI Advocacy;Erika Russi63, Data Scientist图片来源Michele Sclafani for Quanta Magazine在本教程中您将构建一个简单的模型上下文协议(MCP)41服务器该服务器提供了一个用于搜索 IBM 教程的工具。通过使用 fastmcp 框架和 requests 库构建的脚本从远程网址下载教程索引JSON格式。然后它会搜索与用户查询匹配的内容并返回格式清晰的结果列表。您还需要添加错误处理机制如网络问题、错误 的 JSON 和意外情况等使该工具更加健壮且易于上手。最后您将运行 MCP 服务器以便可以使用 Cursor 等客户端连接并进行测试。为什么要使用 MCP企业和初创公司的开发者都在越来越多地开发基于生成式人工智能50的解决方案。为了使这些解决方案更有用他们需要最新的信息和上下文。为此机器学习模型42需要与工具、应用程序编程接口(API)43、软件开发工具包(SDK)13和前端系统进行互操作。MCP 由 Anthropic 公司开发并已被 OpenAI、Google DeepMind 等多家主流人工智能提供商以及整个行业广泛采用。它为人工智能模型提供了一种安全且标准化的方式来访问和使用外部数据、资源例如提示模板和工具。此外诸如 Cursor 和 Visual Studio Code 等集成开发环境(IDE)64也已采用 MCP使其人工智能助手能够访问 MCP 服务器从而提高其使用体验使其更贴合上下文更便于开发者使用。MCP 作为一项开放标准被各组织用作沟通生成式人工智能创造的随机世界与当今大多数企业系统的确定性世界之间的桥梁。MCP 为大语言模型提供上下文信息类似于其他一些新兴的设计模式例如检索增强生成(RAG)59、工具调用33和智能体。与其他解决方案相比使用 MCP 的一些优势包括规模MCP 服务器只需定义和托管一次即可供多个人工智能系统使用。这种容量减少了为多个生成式人工智能系统定义对相同源数据、资源和人工智能工具访问权限的需求。数据检索与 RAG 不同RAG 的数据检索需要在查询之前进行预处理和向量化而 MCP 是动态的允许信息源实时波动和更新。复杂性正如我们在此演示的MCP 的设置和集成都相当简单可以轻松集成到人工智能应用中。您可以使用配置文件轻松实现 MCP 服务器在不同环境间的可移植性。平台无关性除了可以使用 Python、TypeScript 或其他语言构建 MCP 服务器之外它们也与特定的大语言模型解决方案无关。通过客户端/服务器模型进行调试MCP 客户端向 MCP 服务器发送请求服务器随后从各种外部系统和来源例如 API、数据库或本地文件获取必要的数据。这种结构化的方法确保人工智能模型接收到一致且相关的上下文信息从而产生更准确、更可靠的输出。MCP 使用 JSON-RPC 对消息进行编码并支持两种传输机制标准 I/O 和流媒体式 HTTP。在协议的早期版本中它还支持带有服务器发送事件 (SSE) 的 HTTP。要持续掌握企业所需的最新信息可能是一项艰巨的任务。MCP 可以帮助构建上下文并将新信息整合到正在执行的合同、正在数字化但未必易于理解的遗留信息等内容中。这些信息既可以是内部信息也可以是外部信息但添加上下文信息可以避免耗时地重新培训大语言模型以使其发挥作用。目前有很多远程MCP服务器可用github.com 上也有大量参考项目。搭建步骤这份分步指南来自 GitHub 代码库65该代码库还包括创建 MCP 服务器时需要参考的 server.py 脚本。在本教程中我们将逐步构建一个最基本的自定义 MCP 服务器该服务器可以连接到我们的 GitHub 教程仓库搜索用户可能感兴趣的主题返回结果并附上教程链接。为了方便制作本教程我们创建了一种机制通过该机制您将构建的服务器可以轻松地使用我们的教程内容而无需身份验证。步骤 1设置环境您的计算机上已安装 Python 3.11 或更高版本通过在终端中运行 python3 --version 进行检查。内置的 venv 模块可用大多数系统都随 Python 一起提供在某些 Linux® 发行版上您可能需要使用 sudo apt install python3-venv 单独安装它。命令行终端CLImacOS 或 Linux使用终端应用程序这些环境类似于 Unix。Windows使用 PowerShell 或命令提示符语法上的细微差别将在下一步中解释。你选择的文本编辑器或集成开发环境 (IDE)。创建一个新目录并进入该目录。mkdir ibmtutorialmcpserver 和 cd ibmtutorialmcpserver首先确保您已经进入ibmtutorialmcpserver目录中,您可以使用以下命令创建虚拟环境python3 -m venv venv注意在 Windows 系统上您或许可以将 python3 替换为 python创建虚拟环境后需要使用以下命令激活它。source venv/bin/activate提示符中可能会显示(venv)。现在你需要安装 Python 包。这个开源框架提供了运行 MCP 服务器所需的所有功能并且仍在积极维护中。我们还将安装用于发出简单 HTTP 请求的工具。安装 fastMCP 并使用以下命令通过 pip 安装 requests 包pip install fastmcp requests通过运行以下命令来检查 fastMCP 是否已正确安装。fastmcp version如果输出结果与下方类似则说明您的虚拟环境中已安装fastMCP 。FastMCP version: 2.10.1 MCP version: 1.10.1 Python version: 3.11.13 Platform: macOS-15.5-arm64-arm-64bit FastMCP root path: /opt/homebrew/lib/python3.11/site-packages步骤 2创建 MCP 服务器在目录中创建一个新文件并将其命名为 server.py 。获取该文件后打开它并将以下代码片段复制粘贴到其中。# Simple MCP server that exposes a single tool to search IBM tutorials. # How to run: # 1) Install dependencies: pip install fastmcp requests # 2) Start the server using an MCP client with the command: fastmcp run /server.py from fastmcp import FastMCPimport requests # Source of the tutorials index DOCS_INDEX_URL https://raw.githubusercontent.com/IBM/ibmdotcom-tutorials/refs/heads/main/docs_index.json mcp FastMCP(IBM Tutorials) mcp.tool def search_ibmtutorials(query: str) - str: Search for tutorials on GitHub by downloading a JSON file from a GitHub repo and searching the payload for any relevant results and the respective details Args: query: The search term to look for in tutorial titles and URLs Returns: A formatted list of relevant tutorial results try: # Download the JSON file from the GitHub repo response requests.get(DOCS_INDEX_URL, timeout10) response.raise_for_status() # Raise an exception for bad status codes # Parse the JSON data tutorials response.json() # Search for relevant tutorials (case-insensitive) query_lower query.lower() relevant_tutorials [] for tutorial in tutorials: # Search in title and URL title tutorial.get(title, ).lower() url_path tutorial.get(url, ).lower() if query_lower in title or query_lower in url_path: relevant_tutorials.append(tutorial) # Format and return results if not relevant_tutorials: return fNo IBM tutorials found matching {query} # Format the results result_lines [fFound {len(relevant_tutorials)} tutorial(s) matching {query}:\n] for i, tutorial in enumerate(relevant_tutorials, 1): title tutorial.get(title, No title) tutorial_url tutorial.get(url, No URL) date tutorial.get(date, No date) author tutorial.get(author, ) result_lines.append(f{i}. **{title}**) result_lines.append(f URL: {tutorial_url}) result_lines.append(f Date: {date}) if author: result_lines.append(f Author: {author}) result_lines.append() # Empty line for spacing return \n.join(result_lines) except requests.exceptions.RequestException as e: return fError fetching tutorials from GitHub: {str(e)} except ValueError as e: return fError parsing JSON data: {str(e)} except Exception as e: return fError searching IBM tutorials: {str(e)} if __name__ __main__: mcp.run()导入和设置脚本首先导入 FastMCP 它提供了创建 MCP 服务器的框架以及用于通过 HTTP 下载数据的 requests 库。我们添加了一个常量DOCS_INDEX_URL 来保存教程索引的远程 JSON URL。如果您以后想将此教程用于其他 JSON 数据源这种方法可以更轻松地更改源位置。设置 MCP 服务器然后我们使用 FastMCP(“IBM Tutorials”) 创建一个 MCP 服务器实例。此步骤充当我们定义的工具服务器将向 MCP 客户端公开的所有工具例如 search_ibmtutorials的中央控制器。定义 MCP 工具mcp.tool 装饰器标记 search_ibmtutorials 作为 MCP 工具此函数接收一个搜索词使用 requests.get() 从 DOCS_INDEX_URL 下载教程索引为确保网络安全设置 10 秒超时如果 HTTP 响应状态指示错误则抛出异常。数据检索完成后将其从 JSON 解析为 Python 对象。搜索不区分大小写查询词会被转换为小写每个教程的标题和 URL 也会被转换为小写以进行匹配。如果某个教程的标题或 URL 中包含搜索词则会将其添加到相关结果列表中。格式化并返回结果如果没有找到匹配的教程该函数会返回一条友好的消息提示未找到任何结果。如果有匹配项该函数会生成一个格式化的编号列表其中包含每个教程的标题、URL、日期以及如果可用作者信息。标题使用 Markdown 风格的粗体以便在支持该格式的客户端中突出显示。最终的格式化文本将以单个字符串的形式返回。错误处理该功能包含针对性的异常处理requests.exceptions.RequestException 能够检测网络问题例如超时或连接不良。ValurError 可以通过.json () 引发捕获响应不是有效 JSON 的情况。通用异常处理程序会捕获任何其他意外情况。每个错误都会向调用者返回一条描述性消息而不是停止程序。启动服务器在底部 if name “main” : 代码块确保 mcp.run() 仅在脚本直接运行时执行。此步骤启动 MCP 服务器从而执行 search_ibmtutorials 操作。 任何 MCP 客户端均可使用此工具例如 MCP Inspector66。此工具可用于排查和调试 MCP 服务器。它提供了一个用户界面可用于调试 MCP 服务器并验证预期行为。步骤 3将 MCP 服务器添加到 IDE 中服务器搭建完成后您需要在 IDE 中启用它才能使用。许多客户端都支持 MCP并且与该协议的集成程度各不相同。MCP 官方网站提供了详尽的客户端示例列表67。如果您已安装 Cursor则可以按照以下说明在 Cursor 中添加 MCP 服务器。打开 Cursor 设置导航至“工具与集成”。选择“新建 MCP 服务器”然后将内容粘贴到 Cursor 在新标签页中打开的 mcp.json 文件中。请确保将 替换为您当前所在的目录。您可以在终端中运行 pwd 命令来获取完整路径。有关 Cursor 和 MCP 的更多信息请参阅 Cursor 文档68。{ mcpServers: { tutorials: { command: fastmcp, args: [run /ibmtutorialmcpserver/server.py], env: { } } } } servers: { IBM Tutorials: { type: stdio, command: fastmcp, args: [ run, /ibmtutorialmcpserver/server.py ] }, },现在您已经启用了 MCP 服务器让我们启动服务器以便您可以使用 server.py 中创建的工具。如果您使用的是 VS Code请查看这些文档69。在 IDE 聊天中我会问“有哪些 IBM 时间序列教程” 下面显示的是收到的输出但您的回复可能会因所使用的模型和 IDE 而异。输出Here are some IBM time series tutorials: Time series forecasting with Lag-Llama (zero-shot learning) Tutorial link Predict overnight low temperatures using the Lag-Llama model in a zero-shot learning scenario. Using the watsonx.ai Time Series Forecasting API to predict energy demand Tutorial link Predict energy demand with the watsonx.ai Time Series Forecasting API. Authors: Aleksandra Kłeczek and Meredith Syed Let me know if you want details or help with a specific tutorial.小结在本教程中您学习了如何构建一个 MCP 服务器以便使用您喜欢的任何 MCP 客户端搜索我们所有的教程。您创建了一个 MCP 服务器其中包含一个搜索工具该工具从远程 JSON 索引中检索教程根据搜索词筛选结果并以易于阅读的格式返回结果。它使用 fastmcp 来注册和运行该工具请求获取数据并包含针对网络、解析和意外问题的错误处理机制。运行后MCP 客户端可以连接到该服务器实时查询我们所有的教程。∎AI大模型从0到精通全套学习大礼包我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。只要你是真心想学AI大模型我这份资料就可以无偿共享给你学习。大模型行业确实也需要更多的有志之士加入进来我也真心希望帮助大家学好这门技术如果日后有什么学习上的问题欢迎找我交流有技术上面的问题我是很愿意去帮助大家的如果你也想通过学大模型技术去帮助就业和转行可以扫描下方链接大模型重磅福利入门进阶全套104G学习资源包免费分享01.从入门到精通的全套视频教程包含提示词工程、RAG、Agent等技术点02.AI大模型学习路线图还有视频解说全过程AI大模型学习路线03.学习电子书籍和技术文档市面上的大模型书籍确实太多了这些是我精选出来的04.大模型面试题目详解05.这些资料真的有用吗?这份资料由我和鲁为民博士共同整理鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。所有的视频由智泊AI老师录制且资料与智泊AI共享相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念通过动态追踪大模型开发、数据标注伦理等前沿技术趋势构建起前沿课程智能实训精准就业的高效培养体系。课堂上不光教理论还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作把课本知识变成真本事如果说你是以下人群中的其中一类都可以来智泊AI学习人工智能找到高薪工作一次小小的“投资”换来的是终身受益应届毕业生无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界。业务赋能 突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型。获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】