Skip to main content
Glama
sajithrw

MCP MySQL Server

by sajithrw

mysql_query

Execute SQL queries on MySQL databases to retrieve, modify, or manage data, supporting prepared statements for secure parameter handling.

Instructions

Execute a SQL query on the connected MySQL database

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSQL query to execute
parametersNoParameters for prepared statement (optional)

Implementation Reference

  • The handler function that executes the provided SQL query (with optional parameters) on the connected MySQL database using the pool.execute method. Handles both SELECT (returns rows) and other queries (affected rows, insert ID).
    private async handleQuery(args: any) { if (!this.pool) { throw new Error("Not connected to MySQL. Use mysql_connect first."); } const { query, parameters = [] } = args; if (!query || typeof query !== "string") { throw new Error("Query is required and must be a string"); } try { const [results, fields] = await this.pool.execute(query, parameters); // Handle different types of results if (Array.isArray(results)) { return { content: [ { type: "text", text: `Query executed successfully. ${results.length} rows affected.\n\nResults:\n${JSON.stringify(results, null, 2)}`, }, ], }; } else { const resultInfo = results as mysql.ResultSetHeader; return { content: [ { type: "text", text: `Query executed successfully.\nAffected rows: ${resultInfo.affectedRows}\nInserted ID: ${resultInfo.insertId || "N/A"}`, }, ], }; } } catch (error) { throw new Error(`Query execution failed: ${error instanceof Error ? error.message : String(error)}`); } }
  • The input schema for the mysql_query tool, defining the expected parameters: query (required string) and optional parameters array.
    { name: "mysql_query", description: "Execute a SQL query on the connected MySQL database", inputSchema: { type: "object", properties: { query: { type: "string", description: "SQL query to execute", }, parameters: { type: "array", description: "Parameters for prepared statement (optional)", items: { type: "string", }, }, }, required: ["query"], }, },
  • src/index.ts:251-252 (registration)
    The switch case that registers and dispatches calls to the mysql_query handler function within the CallToolRequestSchema handler.
    case "mysql_query": return await this.handleQuery(args);

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

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