用户管理API服务

一个基于Laravel的模型上下文协议(MCP)服务器实现,提供用户管理API和MCP工具集成,支持高级过滤、分页、排序和基于角色的访问控制。

  • by TapanDerasari
  • PHP
  • 本地部署
  • 更新于
在 GitHub 查看 tapanderasari/laravel-mcp-server-demo

使用说明

Laravel MCP服务器演示(WIP)

基于Laravel的模型上下文协议(MCP)服务器实现的演示。该项目展示了如何通过MCP界面创建和公开用户管理的自定义工具。

特性

  • 用户管理API:用于用户操作的RESTful端点
  • MCP工具集成:实现 get_users MCP工具
  • 高级过滤:按角色、活动状态等筛选用户
  • 分页和排序:内置支持分页和基于字段的排序
  • 认证:具有基于角色的访问控制的用户身份验证系统

先决条件

  • PHP 8.4或更高版本
  • 作曲家
  • MySQL/PostgreSQL/SQLite
  • Laravel 12.x

安装

  1. 克隆存储库:

    git clone https://github.com/TapanDerasari/laravel-mcp-server-demo.git
    cd laravel-mcp-server-demo
    
  2. 安装依赖项:

    composer install
    
  3. 复制环境文件并配置数据库:

    cp .env.example .env
    php artisan key:generate
    
  4. 运行迁移并为数据库设置种子:

    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"
  ]
}

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求