游乐游手机版
首页/AI教程/文章详情

PHP中使用MCP构建AI袋里

时间:2026-07-01 17:30
MCP作为模型上下文协议,将外部服务以标准化接口暴露给大语言模型。在PHP中,借助NeuronAI框架可连接MCP服务器,自动发现并调用预定义工具,使AI代理能力大幅增强,同时显著降低开发和维护成本。
# 使用 MCP 在 PHP 中打造智能化 AI 助手 如果您正在开发 AI 助手,那么 MCP(模型上下文协议)这个词您大概率已经听过很多次了。事实上,如今几乎每个人都在讨论它。但从网络上的讨论来看,许多人并不清楚我们具体在谈论什么,更不了解这背后潜藏着怎样的产品创新机遇。 为了真正理解“将 MCP 服务器直接与您的 AI 助手集成”的价值,有必要先拆解几个核心概念。这能帮助您——作为软件构建者——奠定正确的基础,从而在下一个助手实现中解锁全新的可能性。 ## LLM 工具简介 作为工程师,我们天生倾向于标准。标准之所以重要,是因为它让我们能够构建可以相互通信的系统。 想想 REST API。通过标准化的方式来认证和使用第三方服务,这个想法在过去多年里催生了巨大的创新浪潮。MCP 的核心思路与此类似:让开发者实现一个标准协议,将应用程序服务暴露给 LLM。 这里必须强调一点:LLM 本身并不具备实际行动能力。它们本质上只是“令牌预测器”。如果你随便打开一个 LLM 聊天窗口,让它帮你发送一封电子邮件,它根本无法完成。它只会告诉你:“我不知道如何发送电子邮件,不过我可以帮你起草邮件内容。”——事实上,LLM 只能处理文本。 ![LLM文本处理示意](https://img.318050.com/uploads/20260701/17828936726a44cc684994e248837552.webp) AI 平台的下一次进化,是开发者找到了将 LLM 能力与“函数(或回调)”机制相结合的方法。 ![函数结合示意](https://img.318050.com/uploads/20260701/17828936726a44cc68eaf78523246492.webp) 以当前流行的聊天界面为例:你可以把网页 URL 粘贴到消息中,LLM 就能抓取内容并给出回复。假设我们输入这样一条提示:“能不能帮我看看,如何优化这篇文章的 SEO 表现:https://example.com/blog/article” LLM 本身根本没法完成这个任务。但开发者做了什么?他们构建了一个文本协议,让 LLM 可以向运行它的程序发起请求,调用一个负责获取网页内容的函数,从而继续生成最终回复。 借助这种机制,开发者可以实现并向 LLM 提供各种函数(工具),让它们执行操作、利用训练数据之外的信息来解答用户问题。如果你不给 LLM 提供获取网页内容的工具,它们基本无法完成这类任务。现在,你也可以为 LLM 提供执行数据库查询、从外部 API 获取信息,或者任何特定用例所需的其他函数。 ## MCP(模型上下文协议)之前 当我们把工具连接到 LLM 后,LLM 才开始真正变得强大——因为我们可以将它的推理能力与对外部世界执行操作的能力结合起来。 问题在于,如果你需要构建一个执行多项任务的助手,这个过程可能会令人相当头痛。想象一下:读取电子邮件、在互联网上搜索、从数据库收集信息、连接到 Google Drive 阅读文档、接入 GitHub 处理代码、对接知识库……以及各种其他类型的资源。 可以想象,助手的实现会变得极其繁琐。把所有工具堆叠在一起,让它们在 LLM 的上下文里协调工作,本身就非常复杂。更麻烦的是,我们想连接的每一个服务都有自己的 API,都有不同的技术要求。每个想去跟这些外部服务通信的开发者,都得从头实现一遍对接。 有些大公司可以做到,但对更多公司来说,这几乎是不可能完成的任务。这就是我们之前所处的困境。 ## 介绍 MCP(模型上下文协议) MCP 是什么?它是你的 LLM 和你想要连接的工具之间的一个中间层。 ![MCP示意图](https://img.318050.com/uploads/20260701/17828936736a44cc6963f15719589350.webp) 现在,公司可以实现一个 MCP 服务器——本质上是一种全新的方式来暴露自己的 API,但这次是以一种 LLM 随时可用的形式。 拿 Stripe 的 API 举个例子。它提供了访问订阅、发票、交易等各种类型信息的接口。而有了 Stripe MCP 服务器(由 Stripe 自己构建),你基本上可以把整个 Stripe API 直接暴露给 LLM。这样,LLM 就能收集信息、回答关于你的财务状况的问题,或者回答客户关于其订阅和发票的疑问。甚至,助手还可以执行动作——比如取消订阅,或者为客户激活一个新订阅。 你只需要安装 MCP 服务器,把助手连接到服务器暴露的资源(具体怎么操作稍后会讲),然后你就立刻拥有一个具备强大能力的助手,根本不需要费劲去实现 Stripe API 调用。更重要的是,如果 Stripe 更改了 API,你也不再需要担心。即便是高度互连、由多个相互依赖步骤组成的复杂系统,也能更容易地开发,并且更加可靠。用简单的工具一次实现所有动作,根本无法克服某些复杂性。 ## MCP 如何工作 我们来进入一个实际示例,看看如何托管一个 MCP 服务器供你的助手使用。 从核心架构来看,MCP 需要三个组件才能工作:一个主机、一个 MCP 服务器,以及一个 MCP 客户端。 别被“服务器”这个词给吓住。在当前这个协议实现阶段,MCP 服务器运行在跟助手同一台机器上。它们通过标准输入/输出的本地接口(stdio)进行通信。 ![MCP组件示意](https://img.318050.com/uploads/20260701/17828936746a44cc6a0a420501566553.webp) 未来或许可以实现远程托管 MCP 服务器,但目前它只能在同一台机器上运行。所以,你必须在开发期间在本地计算机上安装 MCP 服务器;如果要在生产环境部署,也得在云服务器上安装。关于 MCP 服务器安装的具体细节,会在后续的文章中深入讨论,目前你可以直接去 MCP 服务器仓库查看安装说明。网上也有一些网站提供了可用 MCP 服务器的列表,值得去探索。 当然,现阶段并非一切都一帆风顺。还有些技术细节需要配置——你必须设置服务器、配置一些文件。但一旦你弄明白了,你的助手就能变得非常强大,实现自主完成各种任务。 ## 在 PHP 中将您的 AI 助手连接到 MCP 服务器 要在 PHP 中开始构建 AI 助手,首先要安装 Neuron AI 框架。我们以开源项目的形式发布 Neuron,正是为了填补 PHP 与其他编程语言在 AI 开发上的差距。Neuron 让 PHP 开发者能够开发助手应用,而无需转向其他语言。 它为你提供了一个完整的工具包——从单个助手到全功能的 RAG 系统、向量存储、嵌入,以及广泛的可观测性特性。更多信息可以查看文档:https://docs.neuron-ai.dev 安装 Neuron 的命令如下,通过 composer: ```ja vascript composer require inspector-apm/neuron-ai ``` 然后创建一个自定义助手,扩展 `NeuronAIAgent` 类: ```ja vascript use NeuronAIAgent; use NeuronAIProvidersAIProviderInterface; use NeuronAIProvidersAnthropicAnthropic; class MyAgent extends Agent { public function provider(): AIProviderInterface { // 返回一个AI提供者(Anthropic, OpenAI, Mistral等) return new Anthropic( key: 'ANTHROPIC_API_KEY', model: 'ANTHROPIC_MODEL', ); } public function instructions() { return "LLM system instructions."; } } ``` 接下来,你需要把工具附加到助手,这样它才能在应用上下文中执行任务,解决你或用户发送的问题。如果你需要实现与特定环境相关的动作,可以附加一个工具并创建自己的实现: ```ja vascript use NeuronAIAgent; use NeuronAIProvidersAIProviderInterface; use NeuronAIProvidersAnthropicAnthropic; use NeuronAIToolsTool; use NeuronAIToolsToolProperty; class MyAgent extends Agent { public function provider(): AIProviderInterface { return new Anthropic( key: 'ANTHROPIC_API_KEY', model: 'ANTHROPIC_MODEL', ); } public function instructions() { return "LLM system instructions."; } public function tools(): array { return [ Tool::make( "get_article_content", "Use the ID of the article to get its content." ) ->addProperty( new ToolProperty( name: 'article_id', type: 'integer', description: 'The ID of the article you want to analyze.', required: true ) ) ->setCallable(function (string $article_id) { // 在这里使用数据库层... $stm = $pdo->prepare("SELECT * FROM articles WHERE id=? LIMIT 1"); $stm->execute([$article_id]); return json_encode($stmt->fetch(PDO::FETCH_ASSOC)); }) ]; } } ``` 对于其他工具,你可以搜索现成的 MCP 服务器,并将暴露的工具附加到助手。Neuron 提供了 `McpConnector` 组件,可以自动从服务器收集可用工具并附加到助手: ```ja vascript use NeuronAIAgent; use NeuronAIProvidersAIProviderInterface; use NeuronAIProvidersAnthropicAnthropic; use NeuronAIToolsTool; use NeuronAIToolsToolProperty; class MyAgent extends Agent { public function provider(): AIProviderInterface { return new Anthropic( key: 'ANTHROPIC_API_KEY', model: 'ANTHROPIC_MODEL', ); } public function instructions() { return "LLM system instructions."; } public function tools(): array { return [ // 从MCP服务器加载工具... McpConnector::make([ 'command' => 'npx', 'args' => [ '-y', '@modelcontextprotocol/server-everything' ], ])->tools(), // 自定义工具 Tool::make( "get_article_content", "Use the ID of the article to get its content." ) ->addProperty( new ToolProperty( name: 'article_id', type: 'integer', description: 'The ID of the article you want to analyze.', required: true ) ) ->setCallable(function (string $article_id) { $stm = $pdo->prepare("SELECT * FROM articles WHERE id=? LIMIT 1"); $stm->execute([$article_id]); return json_encode($stmt->fetch(PDO::FETCH_ASSOC)); }) ]; } } ``` Neuron 会自动发现服务器暴露的工具,并把它们连接到你的助手。当助手决定运行某个工具时,Neuron 会生成合适的请求来调用 MCP 服务器上的工具,然后把结果返回给 LLM 以继续后续任务。整个过程用起来就跟使用你自己定义的工具一样,但背后你只用一行代码就能访问到助手可以执行的庞大预定义动作库。 从这个角度看,MCP 确实是一件大事——因为现在助手只需要极少的开发投入,就能完成数量惊人的任务。随着所有这些工具的可用性提升,产品开发机会也会呈指数级增长。实现检索增强生成(RAG)通常是 PHP 开发者在超越简单聊天脚本时遇到的第一个“障碍”。虽然“让 LLM 访问你自己的数据”这个概念很简单,但在 PHP 环境中可靠地实现它,所需完成的任务可能会让人感到沮丧——你得管理文档解析、向量嵌入,等等。
来源:https://cloud.tencent.com.cn/developer/article/2701197
上一篇转炉炼钢终点静态控制预测模型概述 下一篇PHP构建AI编码袋里Maestro实战指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
RAG四标融合企业知识资产体系四库协同GEO优化实践
AI教程 · 2026-07-01

RAG四标融合企业知识资产体系四库协同GEO优化实践

生成式AI正在彻底改写信息检索的底层逻辑。传统SEO依赖关键词堆砌和外链建设的策略,在大模型的内容采信规则下已经基本失效。取而代之的,是生成式引擎优化(GEO)。它不再关注外链数量,而是重点衡量你的知识是否结构化、证据链是否坚实、信源是否可靠——这些维度才是RAG(检索增强生成)架构真正看重的核心指

一个普通上班人分享WorkBuddy使用心得与真实体验
AI教程 · 2026-07-01

一个普通上班人分享WorkBuddy使用心得与真实体验

前言 最近我开始使用WorkBuddy——这是腾讯推出的一款AI办公工作台。差不多用了一周时间,趁印象还新鲜,把真实的使用感受记录下来,给还在犹豫的朋友做个参考。不吹不黑,只说实际体验。 初印象:不只是聊天机器人 之前用过不少AI工具,大多数就是个对话框,你问它答,答完就结束了。WorkBuddy不

AI幻觉变真功能实战教程:App Inventor 2视频录制拓展一周开发实录
AI教程 · 2026-07-01

AI幻觉变真功能实战教程:App Inventor 2视频录制拓展一周开发实录

先讲一个颇具戏剧性的开端。 这件事的开端颇显荒诞——有用户前来咨询,称AI Pro版的介绍中提到我们有一款“视频录制拓展”。团队全体成员都感到困惑,翻遍产品列表,发现根本不存在该组件。AI那种“一本正经胡说八道”的能力,这次确实让我们陷入尴尬。 按常理,此事到此便可结束——一句“抱歉,暂时没有这个拓

别再混淆OLAP和SQL-on-Hadoop两者查询本质不同
AI教程 · 2026-07-01

别再混淆OLAP和SQL-on-Hadoop两者查询本质不同

OLAP和SQL-on-Hadoop虽都使用SQL查询数据,但本质不同。SQL-on-Hadoop负责海量数据批量计算与ETL,查询速度秒级至分钟级;OLAP通过预聚合实现毫秒级多维分析,适合BI报表。两者在数据平台分工协作,前者是后厨加工,后者是前台快速服务。

GEO优化深度解析:AI偏好FAQ还是长文内容?
AI教程 · 2026-07-01

GEO优化深度解析:AI偏好FAQ还是长文内容?

在GEO优化中,AI对内容形式无统一偏好:FAQ在简单查询中引用率41%,长文在复杂查询中达58%。内容应基于用户意图选择形式,FAQ适配简单事实类问题,长文建立主题权威,两者互补而非替代。