Skip to main content
Glama
log6262635

MySQL MCP Server

by log6262635
index.js2.34 kB
import express from 'express'; import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'; import dotenv from 'dotenv'; import { initDB } from './db/connection.js'; import { registerResources } from './resources/index.js'; import { registerTools } from './tools/index.js'; import { registerPrompts } from './prompts/index.js'; // 加载环境变量 dotenv.config(); // 创建 MCP 服务器 const server = new McpServer({ name: "MySQL数据库服务", version: "1.0.0", description: "一个用于通过Cursor与MySQL数据库交互的MCP服务" }); // 注册资源、工具和提示 registerResources(server); registerTools(server); registerPrompts(server); // 创建Express应用 const app = express(); const PORT = process.env.PORT || 3001; // 用于保存会话传输的映射 const transports = {}; // SSE端点 app.get('/sse', async (_, res) => { // 创建SSE传输 const transport = new SSEServerTransport('/messages', res); transports[transport.sessionId] = transport; // 关闭连接时清理 res.on('close', () => { delete transports[transport.sessionId]; console.log(`会话 ${transport.sessionId} 已关闭`); }); // 连接MCP服务器 await server.connect(transport); }); // 消息处理端点 app.post('/messages', async (req, res) => { const sessionId = req.query.sessionId; const transport = transports[sessionId]; if (transport) { await transport.handlePostMessage(req, res); } else { res.status(400).send('未找到会话'); } }); // 启动服务器 const startServer = async () => { // 初始化数据库连接 const dbConnected = await initDB(); if (dbConnected) { app.listen(PORT, () => { console.log(`MCP服务器运行在 http://localhost:${PORT}`); console.log('使用 GET /sse 获取SSE连接'); console.log('使用 POST /messages?sessionId={sessionId} 发送消息'); }); } else { console.error('无法启动服务器:数据库连接失败'); process.exit(1); } }; // 错误处理 process.on('unhandledRejection', (error) => { console.error('未处理的Promise拒绝:', error); }); process.on('uncaughtException', (error) => { console.error('未捕获的异常:', error); }); // 启动服务器 startServer();

Latest Blog Posts

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/log6262635/mcp-mysql'

If you have feedback or need assistance with the MCP directory API, please join our Discord server