使用说明
PHP MCP聊天机器人服务器
一个PHP MCP(模型上下文协议)服务器,它从MySQL数据库向聊天支持服务提供数据。
特性
- MCP工具:用于聊天支持的数据库查询工具
- MCP资源:访问用户数据、聊天记录和支持票
- MCP提示:常见支持场景的预定义提示
- MySQL集成:使用PDO保护数据库访问
- 测试:全面的PHPUnit测试套件
需求
- PHP>=8.4
- MySQL>=8.0
- 作曲家
安装
- 克隆存储库:
git clone <repository-url>
cd mcp-support-chat-server
- 安装依赖项:
composer install
OR if using Laravel Herd
herd composer install
- 复制环境文件并配置数据库:
cp .env.example .env
- 创建数据库并运行迁移:
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工具
- 在中创建新类
src/Mcp/Tools/ - 使用
#[McpTool]定义工具的属性 - 将该工具添加到服务器注册中
server.php
例子:
#[McpTool(name: 'custom_tool', description: 'A custom tool')]
public function customTool(string $parameter): array
{
// Tool implementation
return ['result' => 'success'];
}
许可证
MIT许可证-有关详细信息,请参阅许可证文件。