MySQL MCP Server
MySQL MCP Server with Kimi AI
基于 NestJS + TypeScript + MySQL 的 MCP 服务器,集成 Kimi AI 实现自然语言数据库操作。
功能特性
✅ 严格遵循 MCP 协议标准
✅ 支持数据库增删查改操作
✅ 集成 Kimi AI(通过 prompt 工程实现工具调用)
✅ SSE 流式响应
✅ 生产级安全措施(SQL 注入防护、表白名单、查询限制)
✅ 前端聊天测试界面
项目结构
mysql-mcp-server/
├── src/
│ ├── main.ts # 应用入口
│ ├── app.module.ts # 根模块
│ ├── config/ # 配置模块
│ │ ├── config.module.ts
│ │ └── config.service.ts
│ ├── database/ # 数据库模块
│ │ ├── database.module.ts
│ │ └── database.service.ts
│ ├── mcp/ # MCP 服务模块
│ │ ├── mcp.module.ts
│ │ └── mcp-server.service.ts
│ └── chat/ # 聊天 API 模块
│ ├── chat.module.ts
│ ├── chat.controller.ts
│ ├── chat.service.ts
│ └── kimi.service.ts
├── frontend/ # 前端测试界面
│ ├── index.html
│ └── app.js
├── init-database.sql # 数据库初始化脚本
├── .env # 环境变量配置
└── package.json快速开始
1. 初始化数据库
mysql -u root -p123456 < init-database.sql2. 安装依赖
pnpm install3. 配置环境变量
已创建 .env 文件,包含:
数据库连接信息
Kimi API 密钥
安全配置
4. 编译项目
pnpm run build5. 启动服务
方式 A:Chat API 服务(带前端 SSE)
pnpm start服务将启动:
Chat API: http://localhost:3000
MCP Server: 自动启动(子进程)
前端测试:打开
frontend/index.html
方式 B:独立 MCP Server(给 Kiro/Claude 用)
pnpm run start:mcp这会启动一个通过 stdio 通信的 MCP Server,可以被 Kiro IDE、Claude Desktop 等 MCP 客户端调用。
详细配置请查看 MCP-SETUP.md
MCP 工具列表
list_tables - 列出所有表
get_schema - 获取表结构
query_database - 执行 SELECT 查询
insert_record - 插入数据
update_record - 更新数据
delete_record - 删除数据
安全特性
✅ SQL 注入防护(参数化查询)
✅ 表权限控制(可配置允许访问的表和只读表)
✅ 操作权限控制(可配置每个表允许的操作)
✅ 查询结果限制(最多 1000 条)
✅ 禁止危险 SQL 关键字(DROP TABLE, DROP DATABASE, TRUNCATE 等)
✅ 审计日志(记录所有操作和数据变更)
✅ 数据变更追踪(记录修改前后的数据对比)
✅ 输入验证
详细配置请查看 PERMISSIONS.md
使用示例
在聊天界面中输入:
"查询所有用户"
"插入一个新用户,用户名是 test,邮箱是 test@example.com,年龄是 25"
"更新 id 为 1 的用户年龄为 30"
"删除 id 为 3 的用户"
"显示 users 表的结构"
架构说明
本项目采用真正的 MCP 协议架构:
┌─────────────────┐ ┌──────────────────┐
│ MCP Server │ │ Chat API │
│ (独立进程) │←────────│ (NestJS) │
│ stdio 通信 │ MCP │ SSE to 前端 │
└─────────────────┘ Client └──────────────────┘
↑
│ stdio
┌────┴─────┐
│ Kiro │
│ Claude │
└──────────┘MCP Server:独立运行,通过 stdio 通信,符合 MCP 标准
Chat API:作为 MCP Client,连接到 MCP Server
前端 SSE:通过 Chat API 获取流式响应
技术栈
NestJS 10.x
TypeScript 5.x
TypeORM 0.3.x
MySQL 8.x
@modelcontextprotocol/sdk(标准 MCP 协议)
Kimi API (Moonshot AI)
开发模式
pnpm run dev配置文档
MCP-SETUP.md - MCP Server 配置指南(Kiro/Claude)
PERMISSIONS.md - 权限和安全配置
注意事项
确保 MySQL 服务已启动
确保 Kimi API Key 有效
生产环境请修改 API_KEY 和数据库密码
可通过
database-permissions.json调整表权限所有操作都会记录到
logs/audit.log
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/QiPanTanYi/mysql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server