🚀 Laravel MCP 示例演示
  
构建和集成(某系统/功能)的实际演示 MCP 服务器 在Laravel 12中,(模型上下文协议)。本项目展示了如何为AI代理创建API,使您的Laravel应用程序能够提供工具、资源和上下文,以便AI系统能够智能地进行交互。
可以将其视为构建一个API——但这个API是专门为AI代理设计的,以便它们能够理解和使用您的应用程序的功能。
______________________________________________________________________
📖 什么是MCP?
这个(或“该”) 模型上下文协议(MCP) 这是一个新标准,允许AI代理与您的应用程序进行连接。MCP(微服务通信协议)不仅让您能够构建传统的REST API,还允许您暴露:
- 工具 - 人工智能可以执行的操作(如货币兑换)
- 资源 - AI可访问的数据(如常见问题解答文档)
- 提示 - 为复杂任务(如货币分析)预定义的工作流程
这个演示实现了一个 货币兑换MCP服务器 为AI代理提供实时汇率和分析见解。
______________________________________________________________________
✨ 特点
🛠️ MCP 工具
- 货币兑换工具 - 货币实时转换(例如,XAU兑换EGP)
- 流工具 - 展示流式响应
📚 MCP 资源
- 货币常见问题解答资源 - 关于货币兑换操作的全面问答文档
- 可通过URI访问:
currencies://resources/faq
💡 MCP 提示(或指令)
- 货币分析助手 - 分析10天的历史趋势
- 提供关于上升趋势、下降趋势和市场动态的见解
- 基于历史数据生成预测
______________________________________________________________________
🏗️ 建筑学
app/
├── Mcp/
│ ├── Servers/
│ │ └── CurrencyServer.php # Main MCP server definition
│ ├── Tools/
│ │ ├── CurrencyTool.php # Currency conversion tool
│ │ └── StreamTool.php # Streaming response demo
│ ├── Resources/
│ │ └── CurrencyMCPFAQResource.php # FAQ resource
│ └── Prompts/
│ └── AnalysisCurrencyPrompt.php # Currency analysis prompt
├── Services/
│ └── CurrencyService.php # Core currency logic______________________________________________________________________
🚀 开始使用
先决条件
- PHP 8.2 或更高版本
- Composer(注:Composer在编程领域通常指用于PHP等语言的依赖管理工具,此处直接保留原词,不翻译为中文的具体含义,以保持专业术语的准确性)
- Node.js & NPM
- SQLite(或您偏好的数据库)
安装
- 克隆仓库
git clone
cd laravel-mcp-demo- 安装依赖项
composer install
npm install- 设置环境
cp .env.example .env
php artisan key:generate- 运行迁移
php artisan migrate- 安装Passport(用于MCP认证的OAuth)
php artisan passport:install- 构建资产
npm run build- 启动开发服务器
php artisan serve______________________________________________________________________
🔧 使用方法
访问MCP服务器
货币MCP服务器注册于:
GET /mcp/currency认证需要通过Laravel Passport进行OAuth认证auth:api 中间件)
示例工具:货币转换
这个(或:该) get-currency-exchange-rate 工具接受:
{
"fromCurrency": "XAU",
"toCurrency": "EGP",
"amount": 1
}回答:
"1 XAU is equal to 85,234.5678 EGP."示例提示:货币分析
这个(或“该”) analysis-currency-assistant 提示分析历史趋势:
{
"firstCurrency": "USD",
"secondCurrency": "EGP"
}返回包含以下内容的详细分析:
- 趋势识别(上升趋势/下降趋势/横盘趋势)
- 市场洞察
- 短期预测
示例资源:常见问题解答(FAQ)
访问全面的常见问题解答文档:
URI: currencies://resources/faq______________________________________________________________________
🎯 工作原理
1. 货币服务
这个(或“该”) CurrencyService 该类处理所有货币操作:
- 从(某处)获取实时汇率 法瓦兹·艾哈迈德货币API
- 缓存结果30分钟以优化性能
- 提供历史汇率分析(7-10天趋势)
2. MCP服务器注册
在 routes/ai.php:
Mcp::web('/currency', CurrencyServer::class)
->middleware(['auth:api']);3. 工具实施
每个工具都有其扩展功能 Laravel\Mcp\Server\Tool 并定义为:
- 名字唯一标识符
- 描述这个工具的作用
- 模式/架构输入参数(带验证)
- 手柄业务逻辑
4. OAuth 安全性
MCP 路由通过 Laravel Passport OAuth 进行保护,确保只有经过身份验证的人工智能代理才能访问您的工具。
______________________________________________________________________
📝 关键概念
工具、资源与提示
| 组件 | 用途 | 示例 |
|---|---|---|
| 工具 | 可执行操作 | 货币转换,数据更新 |
| 资源 | 静态/动态数据 | 常见问题解答文档,配置文件 |
| 提示 | AI 工作流 | 分析助手,报告生成器 |
缓存策略
该服务使用 Laravel 的缓存来:
- 存储汇率30分钟
- 减少外部API调用
- 提高响应时间
Cache::remember('currencies_egp_latest', 30, function() {
return Http::get($this->getURL())->json();
});______________________________________________________________________
🔐 认证
这个演示使用了 Laravel Passport(注:Laravel是一个PHP框架,Passport通常指的是该框架下的一个OAuth2服务器包,用于实现用户认证和授权功能,但直接翻译为“Laravel通行证”或“Laravel护照”在中文语境下可能不够准确,通常我们会根据上下文理解为“Laravel的OAuth2服务器包”或保持原英文术语,因为技术术语在中文中常直接使用英文原词) 用于OAuth2认证。MCP客户端需要:
- 注册为OAuth客户端
- 获取访问令牌
- 在(内容/请求中)包含令牌
Authorization: Bearer头球
______________________________________________________________________
🛣️ 路由
MCP路由在(某处/某文件中)定义 routes/ai.php:
// OAuth routes for client registration
Mcp::oauthRoutes();
// Currency MCP Server
Mcp::web('/currency', CurrencyServer::class)
->middleware(['auth:api']);______________________________________________________________________
📊 技术栈
- Laravel 12 - 框架
- Laravel MCP - 模型上下文协议实现
- Laravel Passport(注:Laravel是一个PHP框架,Passport通常指与其配套的OAuth2服务器包,用于实现API认证) - OAuth2 认证
- Laravel Jetstream - 应用程序脚手架
- Livewire(莱维线/利维线,具体译名可能根据上下文有所调整) - 动态界面
- Tailwind CSS - 搭配/造型
- SQLite - 数据库
______________________________________________________________________
📚 了解更多
______________________________________________________________________
🤝 贡献
欢迎贡献!这是一个用于学习和实验的演示项目。
- 克隆仓库
- 创建你的特性分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 提交一个拉取请求
______________________________________________________________________
📄 许可证
这个项目是开源软件,遵循以下许可协议: 麻省理工学院许可证(MIT License)。
______________________________________________________________________
🙏 致谢
- Laravel团队,感谢你们提供的出色框架和MCP包
- 法瓦兹·艾哈迈德提供的免费货币API
- 推动AI集成标准的MCP社区
______________________________________________________________________
💬 有问题吗?
查看随附的常见问题解答资源,网址为 storage/currencies_mcp_fqa.md 关于以下问题的详细回答:
- MCP架构与设计模式
- 货币兑换实施细节
- 缓存策略与性能优化
- 人工智能集成与预测能力
______________________________________________________________________
快乐大楼! 🎉(庆祝、欢呼的意思,可具体翻译为“庆祝”、“欢呼”或根据上下文保持为表情符号)
*这个演示展示了使用Laravel 12和MCP构建AI就绪应用程序是多么容易。今天就开始让您的应用程序功能暴露给AI代理吧!*
