🧾 Laravel MCP费用跟踪器
使用Laravel和模型上下文协议(MCP)构建的综合费用跟踪系统。该项目演示了如何为人工智能驱动的费用管理创建MCP服务器。
🚀 特性
核心功能
- ✅ 添加费用 -创建新的支出记录
- ✅ 获取费用 -检索和过滤费用
- ✅ 更新费用 -修改现有费用记录
- ✅ 删除费用 -删除费用记录
- ✅ 高级过滤 -按日期范围、付款方式、搜索词筛选
- ✅ 概要统计 -总金额、计数和平均值
MCP集成
- 🤖 AI驱动 -专为AI助手集成而设计
- 🔧 MCP工具 -四种全面的MCP工具
- 📊 JSON响应 -用于人工智能消费的结构化数据
- ✅ 验证 -强大的输入验证和错误处理
🛠️ 技术栈
- 后端:Laravel 12
- 数据库:MySQL/SQLite
- 测试:害虫PHP
- 主控程序:Laravel MCP包
- 代码质量:Laravel Pint
📋 需求
- PHP 8.4+
- 作曲家
- MySQL或SQLite
- Node.js(用于MCP检查器)
🚀 安装
1.克隆存储库
git clone https://github.com/yourusername/mcp-expense-tracker.git
cd mcp-expense-tracker2.安装依赖项
composer install
npm install3.环境设置
cp .env.example .env
php artisan key:generate4.数据库配置
更新您的 .env 文件:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=expense_tracker
DB_USERNAME=your_username
DB_PASSWORD=your_password5.运行迁移
php artisan migrate6.启动服务器
php artisan serve🧪 测试
运行所有测试
php artisan test运行MCP测试
php artisan test tests/Feature/ExpenseTrackerMcpTest.php🤖 使用AI助手进行测试
游标IDE(推荐)✅
步骤1:配置MCP服务器 创建 .cursor/mcp.json 在项目根目录中:
{
"mcpServers": {
"expense-tracker": {
"command": "php",
"args": [
"artisan",
"mcp:start",
"expense-tracker"
],
"cwd": "."
}
}
}步骤2:重新启动Cursor IDE
- 关闭并重新打开Cursor IDE
- 检查MCP面板上的“费用跟踪器”服务器(应显示绿色状态)
步骤3:测试命令 在Cursor聊天中,尝试以下命令:
Add a 450 rupee grocery expense paid with debit card today
Show me all expenses from this month
Find all credit card expenses over 500 rupees
Update expense ID 5 to 475 rupees
Delete expense ID 3预期结果: Cursor将直接使用您的MCP工具与您的费用跟踪器进行交互。
MCP检查员(有限支持)⚠️
已知问题和解决方案:
问题1:路径分隔符问题(Windows)
Error: Could not open input file: D:projectsuserlaravelmcp-demoartisan根本原因: MCP检查器使用正斜杠(D:/projects/user/...)但Windows预计会出现反斜杠(D:\projects\user\...)
问题2:SSE连接错误
Error: Error POSTing to endpoint (HTTP 500): SSE connection not established根本原因: MCP检查器和本地MCP服务器之间的服务器发送事件连接失败
问题3:命令生成错误
Error: spawn mcp-server-everything ENOENT根本原因: MCP检查器试图生成不存在的命令
为什么它在Cursor中有效,但在Inspector中无效:
- ✅ 光标IDE:使用适当的Windows路径处理和直接MCP集成
- ❌ MCP检查员:存在跨平台兼容性问题,尤其是在Windows上
我的测试经验:
我在以下两个方面测试了此MCP服务器 光标IDE 和 MCP检查员:
- ✅ 光标IDE:工作得很好!所有MCP工具功能正常
- ❌ MCP检查员:单击“连接”时遇到各种连接错误
🎯 快速测试命令
对于游标IDE:
"Add a 100 rupee expense for snacks paid with cash today"
"Show me all my expenses"
"Find expenses paid with credit card"
"Update expense ID 2 to have amount 10 rupees"
"Delete expense ID 3"🏗️ 项目结构
app/
├── Mcp/
│ ├── Servers/
│ │ └── ExpenseServer.php
│ └── Tools/
│ ├── AddExpenseTool.php
│ ├── GetExpensesTool.php
│ ├── UpdateExpenseTool.php
│ └── DeleteExpenseTool.php
├── Models/
│ └── Expense.php
database/
├── factories/
│ └── ExpenseFactory.php
├── migrations/
│ └── create_expenses_table.php
└── seeders/
└── ExpenseSeeder.php
tests/
└── Feature/
└── ExpenseTrackerMcpTest.php
routes/
├── web.php
└── ai.php🧪 测试覆盖
- ✅ CRUD操作 -所有创建、读取、更新、删除操作
- ✅ 验证 -输入验证和错误处理
- ✅ 过滤 -日期范围、付款方式、搜索过滤
- ✅ 边缘案例 -ID无效、字段缺失、边界条件
- ✅ 数据库 -数据库断言和数据完整性
______________________________________________________________________
内置于❤️ 使用Laravel和MCP
