使用说明
用户CRUD MCP服务器
一种模型上下文协议(MCP)服务器,通过HTTP/SSE传输为用户管理提供CRUD操作。此服务器连接到BasicRud API以执行数据库操作,并将其公开为MCP工具,供n8n和其他MCP客户端使用。
特性
- 完成CRUD操作:创建、读取、更新、删除用户
- MCP协议支持:MCP通信的HTTP/SSE传输
- 会话管理:具有自动清理功能的多客户端支持
- Docker集成:与容器化BasicRud API和PostgreSQL配合使用
- 土耳其身份验证:为用户验证11位TC编号
可用工具
- setup_database -初始化/重置数据库表
- create_user -创建新用户(需要:姓名、年龄、TC编号)
- 获取所有用户 -从数据库中检索所有用户
- update_user -更新现有用户信息(需要:ID、姓名、年龄、TC编号)
- 删除用户 -按ID删除用户
先决条件
- Node.js 18+
- Docker和Docker Compose
- BasicRud API(包含在docker-compose中)
- PostgreSQL数据库(包含在docker compose中)
安装
- 克隆存储库:
git clone <repository-url>
cd user-crud-mcp-server
- 安装依赖项:
npm install
- 启动数据库和BasicRud API:
docker-compose up -d
- 构建TypeScript代码:
npm run build
- 启动MCP服务器:
选项A:标准MCP服务器(用于n8n/编程用途):
npm start
选项B:带Web界面的MCP服务器(便于测试):
npm run start:web
配置
环境变量:
CRUD_API_URL:BasicRud API URL(默认值:http://localhost:3000)HTTP_PORT:MCP服务器端口(默认值:8080)
Docker服务
这 docker-compose.yaml 包括:
- PostgreSQL数据库 (端口5433)
- API基础原油 (端口3000)
MCP服务器在本地运行并连接到这些服务。
API终点
- GET/sse -为MCP建立SSE连接
- POST/消息?会话ID= -发送MCP JSON-RPC消息
- GET/健康 -健康检查和服务器状态
使用选项
选项1:Web界面(易于测试)
使用时 npm run start:web,您可以访问漂亮的web界面 http://localhost:8080 它提供:
- 视觉形式 对于每个CRUD操作
- 实时结果 显示
- 输入验证 TC编号和年龄范围
- 颜色编码的成功/错误消息
- 响应式设计 适用于台式机和移动设备
这非常适合测试MCP工具和演示功能。
选项2:程序化访问(n8n集成)
使用时 npm start,您将获得用于编程的标准MCP服务器:
- 连接到SSE端点:
http://localhost:8080/sse - 将JSON-RPC消息发送到:
http://localhost:8080/messages?sessionId=<session_id> - 使用可用的工具进行用户管理操作
工具使用示例
创建用户
{
"method": "tools/call",
"params": {
"name": "create_user",
"arguments": {
"isim": "John Doe",
"yas": 30,
"tc": "12345678901"
}
}
}
获取所有用户
{
"method": "tools/call",
"params": {
"name": "get_all_users",
"arguments": {}
}
}
发展
脚本
npm run build-编译TypeScriptnpm start-启动标准MCP服务器(适用于n8n)npm run start:web-使用web界面启动MCP服务器npm test-运行测试(未实现)
项目结构
├── src/
│ ├── index.ts # Standard MCP server (for n8n)
│ └── indexNew.ts # MCP server with web interface
├── public/
│ └── index.html # Web interface for testing tools
├── basicCrud/ # BasicCrud API source
├── docker-compose.yaml # Docker services
├── Dockerfile # MCP server container (unused in current setup)
├── package.json # Dependencies and scripts
└── tsconfig.json # TypeScript configuration
故障排除
- 端口冲突:更改
HTTP_PORT环境变量 - 数据库连接问题:确保Docker服务正在运行
- API错误:使用检查BasicRud API日志
docker-compose logs basiccrud
许可证
国际协调委员会
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
