Supabase
MCP server for interacting with the Supabase platform
作者による説明(英語の原文)
Read-only SQL, plans, schema for AI agents: PostgreSQL, Oracle, SQL Server, Firebird, SQLite, JDBC
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
JDBC_MCP_RESOURCES_ENABLED必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"jdbc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JDBC_MCP_RESOURCES_ENABLED",
"ghcr.io/igorolv/jdbc-mcp-server:0.2.0"
],
"env": {
"JDBC_MCP_RESOURCES_ENABLED": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add jdbc --env JDBC_MCP_RESOURCES_ENABLED=your-value -- docker run -i --rm -e JDBC_MCP_RESOURCES_ENABLED ghcr.io/igorolv/jdbc-mcp-server:0.2.0動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"jdbc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JDBC_MCP_RESOURCES_ENABLED",
"ghcr.io/igorolv/jdbc-mcp-server:0.2.0"
],
"env": {
"JDBC_MCP_RESOURCES_ENABLED": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"jdbc": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JDBC_MCP_RESOURCES_ENABLED",
"ghcr.io/igorolv/jdbc-mcp-server:0.2.0"
],
"env": {
"JDBC_MCP_RESOURCES_ENABLED": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
JDBC_MCP_RESOURCES_ENABLED envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント igorolv で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは42 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。
同じカテゴリには: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、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
MCP server (stdio) that exposes read-only access to relational databases over JDBC: schema metadata, SELECT execution, execution plans, statistics and index analysis. Built-in dialects for PostgreSQL, Oracle, SQL Server, Firebird and SQLite (drivers bundled); other databases are served through DatabaseMetaData with an external driver.
Contents: Features · Typical Scenarios · Quickstart · Architecture · MCP Tools · MCP Resources · Read-only Protection · Server Environment Variables · Build · Stack · Troubleshooting · License
driverPath. Capabilities per engine: Supported Databases.SELECT / WITH / EXPLAIN), plus session-, transaction- or file-level read-only mode where the engine supports it. Details: Read-only Protection.connections.json; every tool takes a connection argument; pools are created on first use. Credentials are not read from the environment.The agent picks the tools itself; these are the chains it usually follows. Every tool is described in MCP Tools.
| Scenario | Example request | Tools |
|---|---|---|
| Answer a data question | "How many orders did each region ship last month?" | queryContext or schemaBrief → describeTable → findJoinPaths → validateQuery → executeQuery |
| Explore an unfamiliar schema | "What does the billing schema hold, and how are its tables related?" | schemaBrief → tableContext → sampleRows → schemaGraphDot |
| Check a query before running it | "Is this report query correct, and which tables does it really read?" | inspectQuery → queryLint → resolveQueryLineage → analyzePlan |
| Speed up a slow query | "Why is this query slow, and which index would help?" | analyzePlan → tableStats, indexStats → estimateSelectivity, columnDistribution, joinCardinality → benchmarkQuery |
| Audit indexes and schema | "Find missing and redundant indexes in the orders schema." | fkIndexCoverage, redundantIndexes, unusedIndexes, schemaLint |
| Learn from existing application SQL | "How does the application usually join customers and invoices?" | findQueriesByTable, findQueriesByColumn, observedRelationships |
1. Get the jar — download jdbc-mcp-server.jar from the latest release (JDK 21+ required; all JDBC drivers are bundled), or build it yourself:
./gradlew bootJar # → build/libs/jdbc-mcp-server.jar
No local JDK? Use the Docker image ghcr.io/igorolv/jdbc-mcp-server instead — see Docker.
2. Describe your databases in ~/.jdbc-mcp-server/connections.json (%USERPROFILE%\.jdbc-mcp-server\connections.json on Windows, /data/connections.json in the Docker image) — one entry per database, keyed by the connection name:
{
"connections": { "orders": { "url": "jdbc:postgresql://db.example.com:5432/orders", "username": "ai_readonly", "password": "secret", "defaultSchema": "public", "description": "Order service — customers, orders, shipments", "structureSnapshotSchemas": ["public", "nsi"] }, "billing": { "url": "jdbc:oracle:thin:@//oracle.example.com:1521/BILLING", "username": "AI_READONLY", "password": "${BILLING_DB_PASSWORD}", "defaultSchema": "BILLING_OWNER", "description": "Legacy billing (Oracle)" }, "crm": { "url": "jdbc:sqlserver://sql.example.com:1433;databaseName=crm;encrypt=true", "username": "ai_readonly", "password": "secret", "defaultSchema": "dbo", "description": "CRM (SQL Server)" }, "legacy": { "url": "jdbc:firebirdsql://fb.example.com:3050//var/lib/firebird/data/app.fdb", "username": "SYSDBA", "password": "secret", "description": "Pre-2010 warehouse app (Firebird)" }, "archive": { "url": "jdbc:firebirdsql:embedded:/srv/data/archive-copy.fdb?nativeLibraryPath=/opt/firebird/lib", "username": "SYSDBA", "password": "secret", "description": "Copy of the warehouse archive, opened in-process (Firebird embedded)" }, "analytics": { "url": "jdbc:sqlite:/srv/data/analytics.db", "description": "Nightly analytics extract (SQLite)" }, "shop": { "url": "jdbc:mysql://mysql.example.com:3306/shop", "username": "ai_readonly", "password": "secret", "driverPath": "drivers/mysql-connector-j-9.1.0.jar", "description": "Web shop (MySQL, generic JDBC)" } } }
url is the only required field; the engine is detected from its prefix. Any other URL needs a driverPath to a driver jar and is served as generic JDBC.description is returned by listConnections, so an agent picks a database by meaning; name the stand and any restriction ("PRODUCTION — keep queries small").archive opens a local Firebird file in-process: nativeLibraryPath is the directory holding libfbclient.so / fbclient.dll with its engine and plugins. Point it at a copy of the file — see Firebird.Every field, naming rules, ${VAR} secrets and several stands of one service: docs/connections.md.
3. Register the server with your MCP client — with no database settings in the client config:
{
"command": "java", "args": ["-jar", " /jdbc-mcp-server.jar"], "env": {} }
For Claude Code and Codex CLI that is one command:
claude mcp add --scope user jdbc -- java -jar /path/to/jdbc-mcp-server.jar
codex mcp add jdbc -- java -jar /path/to/jdbc-mcp-server.jar
OpenCode, VS Code with Copilot, Copilot CLI, Cursor, Claude Desktop, Qwen Code, and tips that apply to every client: docs/clients.md.
4. Try it. Ask the agent in plain words:
listConnections and lists the entries of your connections.json with their descriptions.orders?"* — it calls listTables on that connection and counts them.If the first call against a database fails, see Checking a configuration.
MCP client (Claude Code, Codex, VS Code, Cursor, ...)
| JSON-RPC over stdin / stdout, no network port v +- jdbc-mcp-server: one JVM, started by the client ------------------------------+ | | | MCP layer 49 tools in switchable groups, optional resources | | | every call names its connection | | v | | Connection registry <-- connections.json, read once at startup | | | a connection is built on its first call, then reused | | v | | Per-connection context | | +- read-only guard (JSqlParser AST) -> SQL executor (row cap, timeout) | | +- dialect: PostgreSQL, Oracle, SQL Server, Firebird, SQLite, generic | | +- metadata, statistics, plan parser and analyzer | | +- local catalog / / .db (SQLite, WAL): | | | structure snapshot + usage index of known queries | | +- Hikari pool of read-only JDBC connections -----------------> database | +--------------------------------------------------------------------------------+
connections.json; a connection's pool, local catalog and services are created only when a tool call first names it, so a database that is down or misconfigured affects only the calls made against it.DatabaseMetaData and portable SQL — see Supported Databases.describeTable, the schema context tools and searchObjects read covered schemas from it and fall back to the live database otherwise. The same file holds the usage index. Live statistics, samples and plans are never cached. See Persistent Structure Snapshot and Usage Catalog.immediateExecution(true) until the SDK fixes this. A client's notifications/cancelled is not propagated to JDBC Statement.cancel(); the configured queryTimeoutSeconds (or a tool call's timeoutSeconds override) remains the server-side limit for a running SQL statement.The 49 tools are grouped below by purpose.
Every tool takes connection as its first, required argument, naming the database to run against — including installations that ser
冒頭だけを表示しています。続きはリポジトリで読めます