mcp-mysql mcp

v1.1.0 · MCP Tool · database · registry.pascalai.org

MySQL and MariaDB via FireDAC native driver. Operations: query (SELECT → rows JSON), execute (INSERT/UPDATE/DELETE/DDL), execute_tx (multiple statements in transaction), list_tables, describe (table columns), list_databases. Supports charset/collation config.

mysqlmariadbdatabasesqlfiredac

Input Parameters

ParameterTypeDescription
operationrequired string Operation to perform. One of: query, execute, execute_tx, list_tables, describe, list_databases.
hostrequired string MySQL/MariaDB host or IP address (e.g. 'localhost', '192.168.1.10').
portoptional integer MySQL port. Default: 3306. Default: 3306.
databaserequired string Database/schema name (e.g. 'myapp', 'wordpress').
usernameoptional string MySQL username (e.g. 'root', 'app_user').
passwordoptional string MySQL password.
sQLoptional string SQL statement. Required for query and execute operations.
sQLListoptional string JSON array string of SQL statements for execute_tx (e.g. '["INSERT ...","UPDATE ..."]'). All executed in a single transaction.
tableoptional string Table name. Required for describe operation.
schemaoptional string Schema/database filter. Optional for list_tables and describe (defaults to current database).
maxRowsoptional integer Maximum rows to return for query. Default: 100. Default: 100.
timeoutoptional integer Query timeout in seconds. Default: 30. Default: 30.
charsetoptional string Character set for connection (e.g. 'utf8mb4'). Recommended for Unicode support.

Output Fields

FieldTypeDescription
ok boolean
rows array[object]
affected integer
tables array[object]
columns array[object]
databases array[string]
error string

Examples

Run a SELECT query

// Input
{
  "operation": "query",
  "host": "localhost",
  "database": "shop",
  "username": "root",
  "password": "secret",
  "sQL": "SELECT id, email, created_at FROM users WHERE active = 1 ORDER BY created_at DESC",
  "maxRows": 20
}

// Output
{
  "ok": true,
  "rows": [
    {
      "id": 1,
      "email": "alice@example.com"
    }
  ]
}

Insert a record

// Input
{
  "operation": "execute",
  "host": "localhost",
  "database": "shop",
  "username": "root",
  "password": "secret",
  "sQL": "INSERT INTO products (name, price) VALUES ('Widget', 9.99)"
}

// Output
{
  "ok": true,
  "affected": 1
}

Execute multiple statements in a transaction

// Input
{
  "operation": "execute_tx",
  "host": "localhost",
  "database": "shop",
  "username": "root",
  "password": "secret",
  "sQLList": "[\"UPDATE orders SET status='shipped' WHERE id=42\",\"INSERT INTO audit_log (action) VALUES ('ship_42')\"]"
}

// Output
{
  "ok": true,
  "affected": 2
}

List tables in a database

// Input
{
  "operation": "list_tables",
  "host": "localhost",
  "database": "shop",
  "username": "root",
  "password": "secret"
}

// Output
{
  "ok": true,
  "tables": [
    {
      "TABLE_NAME": "orders"
    },
    {
      "TABLE_NAME": "products"
    }
  ]
}

Describe table columns

// Input
{
  "operation": "describe",
  "host": "localhost",
  "database": "shop",
  "username": "root",
  "password": "secret",
  "table": "orders"
}

// Output
{
  "ok": true,
  "columns": [
    {
      "COLUMN_NAME": "id",
      "DATA_TYPE": "int"
    }
  ]
}

List all databases

// Input
{
  "operation": "list_databases",
  "host": "localhost",
  "database": "mysql",
  "username": "root",
  "password": "secret"
}

// Output
{
  "ok": true,
  "databases": [
    "shop",
    "wordpress",
    "mysql"
  ]
}

Install & Discovery

Install

ppm install mcp-mysql

Get JSON Schema

GET /v1/packages/mcp-mysql/1.1.0/schema

Discover by keyword

GET /v1/mcp/discover?q=mysql
Discovery hint: Install with ppm install mcp-mysql or invoke remotely via POST /v1/invoke/mcp-mysql on the MCP Service.