聊天支持数据库服务

一个基于PHP MCP协议的服务器,为聊天支持服务提供MySQL数据库数据访问功能。

  • by mnarushevich
  • PHP
  • 本地部署
  • 更新于
在 GitHub 查看 mnarushevich/mcp-support-chat-server

使用说明

PHP MCP聊天机器人服务器

一个PHP MCP(模型上下文协议)服务器,它从MySQL数据库向聊天支持服务提供数据。

特性

  • MCP工具:用于聊天支持的数据库查询工具
  • MCP资源:访问用户数据、聊天记录和支持票
  • MCP提示:常见支持场景的预定义提示
  • MySQL集成:使用PDO保护数据库访问
  • 测试:全面的PHPUnit测试套件

需求

  • PHP>=8.4
  • MySQL>=8.0
  • 作曲家

安装

  1. 克隆存储库:
git clone <repository-url>
cd mcp-support-chat-server
  1. 安装依赖项:
composer install

OR if using Laravel Herd

herd composer install
  1. 复制环境文件并配置数据库:
cp .env.example .env
  1. 创建数据库并运行迁移:
docker compose up -d
docker exec -i mcp_db_mysql sh -c 'mysql -uroot mcp_chat' < ./database/schema.sql

用法

运行MCP服务器

STDIO运输(建议开发)

php server.php

OR if using Laravel Herd

herd php server.php

HTTP传输

php server.php --transport=http

OR if using Laravel Herd

herd php server.php --transport=http

MCP工具

数据库工具

  • get_user_info:按ID检索用户信息
  • search_users:按姓名或电子邮件搜索用户
  • get_chat_history:获取用户的聊天记录
  • get_support_tickets:通过过滤获取支持票
  • create_support_ticket:创建新的支持票

资源工具

  • user://{userId}/profile:用户配置文件数据
  • chat://{userId}/history:用户的聊天记录

鼓励

  • user_context:为支持提供用户上下文

数据库模式

服务器需要以下数据库表:

  • users:用户信息
  • chat_messages:聊天消息历史记录

看 database/schema.sql 对于完整的模式。

配置

服务器可以通过环境变量进行配置:

  • DB_HOST:数据库主机(默认:localhost)
  • DB_PORT:数据库端口(默认值:3306)
  • DB_DATABASE:数据库名称
  • DB_USERNAME:数据库用户名
  • DB_PASSWORD:数据库密码
  • MCP_SERVER_NAME:MCP服务器名称(默认:“聊天支持MCP服务器”)
  • MCP_SERVER_VERSION:MCP服务器版本(默认:“1.0.0”)

发展

项目结构

├── src/
│   ├── Config/
│   │   └── Environment.php
│   ├── Core/
│   │   ├── Container.php
│   │   └── ErrorHandler.php
│   ├── Exceptions/
│   │   └── SystemExitException.php
│   ├── Factories/
│   │   ├── Builders/
│   │   │   ├── ChatFactoryBuilder.php
│   │   │   └── UserFactoryBuilder.php
│   │   ├── ChatFactory.php
│   │   └── UserFactory.php
│   ├── Mcp/
│   │   ├── McpConfig.php
│   │   ├── McpServer.php
│   │   ├── Prompts/
│   │   │   └── SupportPrompts.php
│   │   ├── Resources/
│   │   │   ├── ChatResources.php
│   │   │   └── UserResources.php
│   │   └── Tools/
│   │       ├── ChatTools.php
│   │       └── UserTools.php
│   └── Models/
│       ├── Chat.php
│       └── User.php
├── tests/
│   ├── Integration/
│   │   ├── Prompts/
│   │   │   └── SupportPromptsTest.php
│   │   ├── Resources/
│   │   │   ├── ChatResourcesTest.php
│   │   │   └── UserResourcesTest.php
│   │   └── Tools/
│   │       ├── ChatToolsTest.php
│   │       └── UserToolsTest.php
│   ├── Unit/
│   │   ├── ErrorHandlerTest.php
│   │   └── McpServerTest.php
│   ├── Pest.php
│   └── TestCase.php
├── database/
│   └── schema.sql
├── docker/
│   └── mysql/
│       └── create-testing-database.sh
├── bootstrap.php
├── composer.json
├── composer.lock
├── docker-compose.yml
├── phpunit.xml
├── rector.php
└── server.php

添加新的MCP工具

  1. 在中创建新类 src/Mcp/Tools/
  2. 使用 #[McpTool] 定义工具的属性
  3. 将该工具添加到服务器注册中 server.php

例子:

#[McpTool(name: 'custom_tool', description: 'A custom tool')]
public function customTool(string $parameter): array
{
    // Tool implementation
    return ['result' => 'success'];
}

许可证

MIT许可证-有关详细信息,请参阅许可证文件。