Supabase
Supabase’s official server lets AI create tables, query data and review project settings in your Supabase database.
Description from the maker (original English)
MCP server for MySQL/MariaDB — pooled async queries with destructive-query safety
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
The maker has not listed install details in the registry. See the maker’s README below.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account codeChap, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.0) reached the registry 4 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code.
In the same category: Supabase, MongoDB MCP Server, Elasticsearch MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Supabase’s official server lets AI create tables, query data and review project settings in your Supabase database.
MongoDB Model Context Protocol Server
MCP server for interacting with Elasticsearch
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A high-quality Model Context Protocol (MCP) server implementation for MySQL databases. This server enables AI assistants like Claude to interact with MySQL databases through a standardized protocol.
Version: 0.2.0 | Protocol: MCP 2025-03-26 | Rust: 1.70+ | Status: Production Ready
git clone <repository-url>
cd mcp-server-mysql cargo build --release
The compiled binary will be available at target/release/mcp-server-mysql.
# Extract the package
tar -xzf mcp-server-mysql-v0.2.0-linux-x86_64.tar.gz
sudo cp mcp-server-mysql /usr/local/bin/
mcp-server-mysql --version
cargo build --release
The binary will be at target/release/mcp-server-mysql
./target/release/mcp-server-mysql \
--host localhost \ --username root \ --password yourpassword \ --database testdb
You should see: "MCP MySQL Server started and ready to accept connections"
Edit your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd this configuration:
{
"mcpServers": { "mysql": { "command": "/absolute/path/to/mcp-server-mysql", "args": [ "--host", "localhost", "--port", "3306", "--username", "your_username", "--password", "your_password", "--database", "your_database" ] } } }
Security Note: For production use, consider using environment variables or a secure secrets management solution instead of hardcoding passwords in the configuration file.
Close and reopen Claude Desktop completely. You should see a small hammer icon indicating the MCP server is connected.
Ask Claude:
mcp-server-mysql \
--host localhost \ --port 3306 \ --username your_username \ --password your_password \ --database your_database \ --allow-dangerous-queries false
| Argument | Description | Default | Required |
|---|---|---|---|
--host | MySQL server hostname | localhost | No |
--port | MySQL server port | 3306 | No |
--username | MySQL username | - | Yes |
--password | MySQL password | (empty) | No |
--database | Database name to connect to | - | Yes |
--allow-dangerous-queries | Allow INSERT/UPDATE/DELETE queries | false | No |
Add this configuration to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": { "mysql": { "command": "/path/to/mcp-server-mysql", "args": [ "--host", "localhost", "--port", "3306", "--username", "your_username", "--password", "your_password", "--database", "your_database" ] } } }
Retrieve database schema information for tables.
Parameters:
table_name (string): Name of the table to inspect, or "all-tables" to get all table schemasExample:
{
"table_name": "users" }
Returns:
Execute SQL queries on the database.
Parameters:
query (string): SQL query to executedatabase (string, optional): Database name to use for this specific queryExample:
{
"query": "SELECT * FROM users WHERE active = 1 LIMIT 10", "database": "my_database" }
Safety:
--allow-dangerous-queries flag to enable INSERT/UPDATE/DELETEInsert data into a specified table.
Parameters:
table_name (string): Name of the tabledata (object): Key-value pairs of column names and valuesExample:
{
"table_name": "users", "data": { "username": "john_doe", "email": "john@example.com", "active": true } }
Returns: Last insert ID
Update data in a specified table based on conditions.
Parameters:
table_name (string): Name of the tabledata (object): Key-value pairs of columns to updateconditions (object): Key-value pairs for WHERE clauseExample:
{
"table_name": "users", "data": { "email": "newemail@example.com", "updated_at": "2024-01-15 10:30:00" }, "conditions": { "id": 123 } }
Returns: Number of affected rows
Delete data from a specified table based on conditions.
Parameters:
table_name (string): Name of the tableconditions (object): Key-value pairs for WHERE clauseExample:
{
"table_name": "users", "conditions": { "id": 123 } }
Returns: Number of affected rows
Warning: Always specify conditions to avoid deleting all rows!
Previously, database context was not maintained between queries:
-- Query 1
USE dev_database; -- Succeeds
-- Query 2 (new connection from pool) SELECT * FROM my_table; -- ❌ Fails: context was lost
Use the optional database parameter on each query:
{
"query": "SELECT * FROM my_table", "database": "dev_database" }
"database": "name" to query arguments{
"query": "SELECT * FROM crm_sites LIMIT 10", "database": "dev_smartConnect_za" }
{
"query": "SELECT * FROM users WHERE active = 1" }
Uses the database specified in --database startup argument.
// Query database 1
{ "query": "SELECT COUNT(*) FROM customers", "database": "production_db" }
// Query database 2 { "query": "SELECT COUNT(*) FROM test_data", "database": "test_db" }
Before (Required fully qualified names):
SELECT * FROM dev_smartConnect_za.crm_sites
JOIN dev_smartConnect_za.crm_orgs ON ... WHERE dev_smartConnect_za.crm_sites.active = 1;
After (Clean and simple):
{
"query": "SELECT * FROM crm_sites JOIN crm_orgs ON ... WHERE active = 1", "database": "dev_smartConnect_za" }
Set default database and omit the parameter:
# Startup
--database my_project_db
{ "query": "SELECT * FROM users" }
Specify database for each query:
// Customer database
{ "query": "...", "database": "customers_db" }
// Orders database { "query": "...", "database": "orders_db" }
// Analytics database { "query": "...", "database": "analytics_db" }
Error Code -32005: Connection Acquisition Failed
Cause: Connection pool exhausted
Solution: Retry after a moment
Error Code -32006: Database Context Switch Failed
Cause: Database doesn't exist or user lacks permissions
Solution: Verify database exists and user has access
✅ DO
SELECT DATABASE() to verify context❌ DON'T
By default, the server operates in read-only mode, allowing only SELECT queries. This prevents accidental data modification or deletion.
Enable write operations with --allow-dangerous-queries:
mcp-server-mysql --username user --password pass --database mydb --allow-dangerous-queries true
Use with caution! This enables:
CREATE USER 'mcp_user'@'localhost' IDENTIFIED BY 'secure_password';
GRANT SELECT ON your_database.* TO 'mcp_user'@'localhost'; FLUSH PRIVILEGES;
--allow-dangerous-queries true # Use with caution!
┌─────────────────────────────────────────────────────┐
│ MCP Client (e.g., Claude) │ │ Sends: {query, database} │ └────────────────────────┬────────────────────────────┘ │ JSON-RPC 2.0 (stdio) ▼ ┌─────────────────────────────────────────────────────┐ │ MCP MySQL Server (Rust) │ │ │ │ execute_query(query, database, poo
Only the beginning is shown; read the rest in the repo