Laravel MCP服务器演示(WIP)
基于Laravel的模型上下文协议(MCP)服务器实现的演示。该项目展示了如何通过MCP界面创建和公开用户管理的自定义工具。
特性
- 用户管理API:用于用户操作的RESTful端点
- MCP工具集成:实现
get_usersMCP工具 - 高级过滤:按角色、活动状态等筛选用户
- 分页和排序:内置支持分页和基于字段的排序
- 认证:具有基于角色的访问控制的用户身份验证系统
先决条件
- PHP 8.4或更高版本
- 作曲家
- MySQL/PostgreSQL/SQLite
- Laravel 12.x
安装
- 克隆存储库:
git clone https://github.com/TapanDerasari/laravel-mcp-server-demo.git
cd laravel-mcp-server-demo- 安装依赖项:
composer install- 复制环境文件并配置数据库:
cp .env.example .env
php artisan key:generate- 运行迁移并为数据库设置种子:
php artisan migrate --seed配置
编辑 .env 配置数据库连接和其他设置的文件:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_mcp
DB_USERNAME=root
DB_PASSWORD=用法
MCP工具:获取用户
主MCP工具 get_users 提供具有过滤和排序功能的分页用户数据。
端点
GET /mcp/test查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
| search | string | 姓名或电子邮件的搜索词(可选) |
| role | string | 按用户角色筛选(管理员、主持人、用户) |
| is_active | boolean | 按活动状态筛选(true/false) |
| sort | string | 带可选前缀的降序排序字段 |
| per_page | integer | 每页项目数(默认值:20,最大值:100) |
| page | 整数 | 页码(默认值:1) |
示例请求
GET /mcp/test?search=john&role=admin&is_active=true&sort=-created_at&per_page=10&page=1示例响应
{
"data": [
{
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"role": "admin",
"is_active": true,
"created_at": "2023-01-01T00:00:00.000000Z",
"updated_at": "2023-01-01T00:00:00.000000Z"
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://localhost:8000/mcp/test",
"per_page": 10,
"to": 1,
"total": 1
}
}MCP客户端配置
要从客户端应用程序连接到此MCP服务器,请将以下配置添加到MCP客户端的配置文件中:
"laravel-mcp-server-demo": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:8000/mcp"
],
"disabledTools": [
"example",
"hello-world",
"check-version"
]
}贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
