MCP服务器-灾难记录管理
基于Symfony 7.3的MCP(模型上下文协议)服务器,用于管理灾难文件夹。
安装
- 安装依赖项:
composer install- 创建文件
.env(复制自.env.example如果可用):
APP_ENV=dev
APP_SECRET=change-this-secret-key-in-production- 使MCP脚本可执行:
chmod +x bin/mcp-server项目结构
mcp-latrach/
├── bin/
│ ├── console # Console Symfony
│ └── mcp-server # Script principal du serveur MCP
├── config/ # Configuration Symfony
├── src/
│ ├── Entity/
│ │ └── Sinistre.php # Entité représentant un dossier sinistre
│ ├── Service/
│ │ └── SinistreService.php # Service de gestion des sinistres
│ ├── Mcp/
│ │ └── McpServer.php # Serveur MCP principal
│ └── Kernel.php
├── var/
│ └── data/ # Stockage des dossiers sinistres (JSON)
└── public/使用
MCP服务器的运行
MCP服务器从stdin读取请求并将响应写入stdout:
php bin/mcp-server可用行动
1.创建灾难文件夹
工具: creer_dossier_sinistre
设置 :
assure(必填):被保险人姓名description(必需):损失描述montant(可选):损失金额numero(可选):索赔编号(如果未提供,则自动生成)statut(可选):灾难状态(默认:“打开”)
请求示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "creer_dossier_sinistre",
"arguments": {
"assure": "Jean Dupont",
"description": "Accident de voiture sur l'autoroute A1",
"montant": 5000.00,
"statut": "ouvert"
}
}
}2.查阅中国档案
工具: consulter_dossier_sinistre
设置 :
id(可选):灾难IDnumero(可选):索赔编号
必须提供两个参数中的至少一个。
请求示例:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "consulter_dossier_sinistre",
"arguments": {
"numero": "SIN-2024-000001"
}
}
}答复格式
成功
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "{\"success\": true, \"sinistre\": {...}}"
}
]
}
}错误
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32603,
"message": "Description de l'erreur"
}
}数据存储
索赔文件存储在目录中 var/data/ 作为单个JSON文件。每个文件都被命名 sinistre_{id}.json.
发展
测试
要手动测试MCP服务器:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | php bin/mcp-server中国档案结构
灾难文件夹包含以下字段:
id:灾难的唯一标识符numero:索赔编号(格式:SIN-YYYY-NNNNNN)dateCreation:创建日期(格式:YYYY-MM-DD HH:MM:SS)assure:被保险人姓名description:灾难描述statut:灾难状态(打开、正在进行、关闭、拒绝)montant:损失金额
许可证
麻省理工学院
