Supabase
MCP server for interacting with the Supabase platform
作者による説明(英語の原文)
MCP server for MySQL/MariaDB — pooled async queries with destructive-query safety
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
作者はレジストリにインストール情報を載せていません。下にある作者のREADMEをご覧ください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント codeChap で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは4 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。
同じカテゴリには:Supabase, MongoDB MCP Server, Elasticsearch MCP Server
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP server for interacting with the Supabase platform
MongoDB Model Context Protocol Server
MCP server for interacting with Elasticsearch
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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
冒頭だけを表示しています。続きはリポジトリで読めます