{"id":43300,"library":"mysql-mcp-server","title":"MySQL MCP Server","description":"An MCP (Model Context Protocol) server providing read-only access to MySQL databases for AI assistants like Claude. Version 0.1.3, actively maintained. Enables LLMs to list databases, tables, describe schemas, and execute read-only SQL queries with security features including query validation, timeout, and row limits. Differentiates from direct database access by enforcing read-only operations and preventing modifications.","status":"active","version":"0.1.3","language":"javascript","source_language":"en","source_url":"https://github.com/dpflucas/mysql-mcp-server","tags":["javascript","mcp","mysql","database","model-context-protocol","ai","llm"],"install":[{"cmd":"npm install mysql-mcp-server","lang":"bash","label":"npm"},{"cmd":"yarn add mysql-mcp-server","lang":"bash","label":"yarn"},{"cmd":"pnpm add mysql-mcp-server","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core MCP SDK for implementing the server and tool interfaces","package":"@modelcontextprotocol/sdk","optional":false},{"reason":"MySQL database driver for executing queries and connecting to MySQL","package":"mysql2","optional":false}],"imports":[{"note":"ESM-only package. CommonJS require() will fail unless using dynamic import.","wrong":"const mysqlMcpServer = require('mysql-mcp-server')","symbol":"default export","correct":"import mysqlMcpServer from 'mysql-mcp-server'"},{"note":"Tools are exported from 'mysql-mcp-server/tools' subpath. Tool names are camelCase in exports, snake_case in JSON.","wrong":"import { list_databases } from 'mysql-mcp-server'","symbol":"Tool names","correct":"import { listDatabases, listTables, describeTable, executeQuery } from 'mysql-mcp-server/tools'"},{"note":"The main server class is a named export, not default.","wrong":"import McpServer from 'mysql-mcp-server'","symbol":"Server class","correct":"import { McpServer } from 'mysql-mcp-server'"}],"quickstart":{"code":"import { McpServer } from 'mysql-mcp-server';\nconst server = new McpServer({\n  host: process.env.MYSQL_HOST ?? 'localhost',\n  port: parseInt(process.env.MYSQL_PORT ?? '3306'),\n  user: process.env.MYSQL_USER ?? '',\n  password: process.env.MYSQL_PASSWORD ?? '',\n  database: process.env.MYSQL_DATABASE ?? ''\n});\nawait server.start();","lang":"typescript","description":"Initializes and starts a MySQL MCP server with environment variable configuration for database connection."},"warnings":[{"fix":"Use MYSQL_HOST instead of DB_HOST, MYSQL_PORT instead of DB_PORT.","message":"Environment variables renamed between versions","severity":"breaking","affected_versions":"<0.1.0"},{"fix":"Ensure queries are SELECT, SHOW, DESCRIBE, or EXPLAIN. Use a separate write-capable server for modifications.","message":"execute_query tool is read-only only; any INSERT/UPDATE/DELETE will be rejected","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Adjust timeout and row limit via server options or env vars if needed. Check results for truncation.","message":"Query timeout and row limit may truncate results without warning","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Always specify a database name to avoid ambiguity, or set MYSQL_DATABASE in env.","message":"The 'database' parameter in list_tables and describe_table is optional; omitting it uses the default database or errors if none set","severity":"deprecated","affected_versions":">=0.1.0"}],"env_vars":null,"search_vec":"'0.1.3':24 'access':14,56 'activ':25 'ai':19,74 'assist':20 'claud':22 'context':7,72 'databas':17,31,55,69 'describ':33 'differenti':52 'direct':54 'enabl':27 'enforc':58 'execut':36 'featur':44 'includ':45 'javascript':66 'like':21 'limit':51 'list':30 'llm':75 'llms':28 'maintain':26 'mcp':2,5,67 'model':6,71 'model-context-protocol':70 'modif':65 'mysql':1,16,68 'oper':62 'prevent':64 'protocol':8,73 'provid':10 'queri':41,46 'read':12,38,60 'read-on':11,37,59 'row':50 'schema':34 'secur':43 'server':3,9 'sql':40 'tabl':32 'timeout':48 'valid':47 'version':23","created_at":"2026-06-05T16:59:08.789292+00:00","updated_at":"2026-06-05T16:59:08.789292+00:00","problems":[{"fix":"Run 'npm install mysql-mcp-server' in your project directory.","cause":"Package not installed or missing from node_modules","error":"Error: Cannot find module 'mysql-mcp-server'"},{"fix":"Verify MySQL is started and MYSQL_HOST/MYSQL_PORT env vars are correct.","cause":"MySQL server not running or incorrect host/port","error":"Connection refused: connect ECONNREFUSED 127.0.0.1:3306"},{"fix":"Check MYSQL_USER and MYSQL_PASSWORD, and ensure user has SELECT privileges on target databases.","cause":"Invalid MySQL credentials or user lacks permissions","error":"Access denied for user 'user'@'host' (using password: YES)"},{"fix":"Modify the query to be read-only, or use a different server that allows writes.","cause":"Attempted a non-SELECT/SHOW/DESCRIBE/EXPLAIN query","error":"Query validation failed: Only read-only queries are allowed"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/dpflucas/mysql-mcp-server#readme","github":"https://github.com/dpflucas/mysql-mcp-server","docs":null,"changelog":null,"pypi":null,"npm":"mysql-mcp-server","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}