MySQL模型上下文协议服务器

一个基于PHP的MySQL数据库只读访问中间件,为AI模型提供通过HTTP API端点访问结构化数据的能力。

  • by rahnas
  • PHP
  • 本地部署
  • 更新于
在 GitHub 查看 rahnas/mysql-mcp-server-php

使用说明

MySQL模型上下文协议(MCP)服务器

这是一个基于PHP的模型上下文协议服务器的实现,它提供对MySQL数据库的只读访问。它作为MySQL数据库和AI模型(LLM)之间的中间件接口,需要通过HTTP API端点访问结构化数据。

特性

  • ✅ API密钥验证
  • ✅ 只读数据库访问
  • ✅ 查询验证和消毒
  • ✅ CORS支持
  • ✅ 标准MCP端点
  • ✅ 分页支持
  • ✅ 查询执行时间跟踪

需求

  • PHP 8.1或更高版本
  • MySQL/MariaDB
  • 作曲家

安装

  1. 克隆存储库
  2. 安装依赖项:
    composer install
    
  3. 复制 .env.example 向 .env 并配置您的设置:
    cp .env.example .env
    
  4. 在中配置MySQL凭据和API密钥 .env

配置

编辑 .env 使用您的设置文件:

DB_HOST=localhost
DB_PORT=3306
DB_USER=readonly_user
DB_PASSWORD=your_password
DB_NAME=your_database

# API Authentication
API_KEY=your_api_key_here

API终点

GET/数据库

列出所有可访问的数据库

GET/桌子?数据库={db_name}

列出指定数据库中的所有表

GET/模式?数据库={db_name}&表={table_name}

返回指定表的架构信息

获取/数据?数据库={db_name}&表={table_name}&限制=20&偏移=0

从指定表返回分页数据

POST/查询

执行只读SQL查询

{
  "database": "your_database",
  "query": "SELECT * FROM users LIMIT 10"
}

安全功能

  • 需要MySQL只读用户
  • API密钥验证
  • 查询验证和清理
  • 为防止SQL注入而准备的语句
  • CORS标头配置

用法示例

# Get list of databases
curl -X GET http://localhost:8080/databases \
  -H "Authorization: Bearer your_api_key_here"

# Execute a custom query
curl -X POST http://localhost:8080/query \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "database": "your_database",
    "query": "SELECT name, email FROM users WHERE status = '\''active'\''"
  }'

发展

要启动开发服务器,请执行以下操作:

php -S localhost:8080 -t public

许可证

GNU通用公共许可证版本32007年6月29日

安全

出于安全考虑,请提交问题或直接联系维护人员。