Supabase
MCP server for interacting with the Supabase platform
作者による説明(英語の原文)
Guardrail for AI agents on SQL Server: statement blocking, optional read-only mode and an audit log.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
LOGCARVERGUARD_CONNECTION_STRING, LOGCARVERGUARD_READ_ONLY, LOGCARVERGUARD_AUDIT_DB_PATH, LOGCARVERGUARD_TRUNCATE_ALLOWLIST, LOGCARVERGUARD_EXEC_WHITELIST, LOGCARVERGUARD_ALTER_DROP_COLUMN_ALLOWLIST「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"logcarverguard": {
"command": "dnx",
"args": [
"LogCarverGuard.Local",
"--yes"
],
"env": {
"LOGCARVERGUARD_CONNECTION_STRING": "your-value",
"LOGCARVERGUARD_READ_ONLY": "your-value",
"LOGCARVERGUARD_AUDIT_DB_PATH": "your-value",
"LOGCARVERGUARD_TRUNCATE_ALLOWLIST": "your-value",
"LOGCARVERGUARD_EXEC_WHITELIST": "your-value",
"LOGCARVERGUARD_ALTER_DROP_COLUMN_ALLOWLIST": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add logcarverguard --env LOGCARVERGUARD_CONNECTION_STRING=your-value --env LOGCARVERGUARD_READ_ONLY=your-value --env LOGCARVERGUARD_AUDIT_DB_PATH=your-value --env LOGCARVERGUARD_TRUNCATE_ALLOWLIST=your-value --env LOGCARVERGUARD_EXEC_WHITELIST=your-value --env LOGCARVERGUARD_ALTER_DROP_COLUMN_ALLOWLIST=your-value -- dnx LogCarverGuard.Local --yes動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"logcarverguard": {
"command": "dnx",
"args": [
"LogCarverGuard.Local",
"--yes"
],
"env": {
"LOGCARVERGUARD_CONNECTION_STRING": "your-value",
"LOGCARVERGUARD_READ_ONLY": "your-value",
"LOGCARVERGUARD_AUDIT_DB_PATH": "your-value",
"LOGCARVERGUARD_TRUNCATE_ALLOWLIST": "your-value",
"LOGCARVERGUARD_EXEC_WHITELIST": "your-value",
"LOGCARVERGUARD_ALTER_DROP_COLUMN_ALLOWLIST": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"logcarverguard": {
"type": "stdio",
"command": "dnx",
"args": [
"LogCarverGuard.Local",
"--yes"
],
"env": {
"LOGCARVERGUARD_CONNECTION_STRING": "your-value",
"LOGCARVERGUARD_READ_ONLY": "your-value",
"LOGCARVERGUARD_AUDIT_DB_PATH": "your-value",
"LOGCARVERGUARD_TRUNCATE_ALLOWLIST": "your-value",
"LOGCARVERGUARD_EXEC_WHITELIST": "your-value",
"LOGCARVERGUARD_ALTER_DROP_COLUMN_ALLOWLIST": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
LOGCARVERGUARD_READ_ONLY envLOGCARVERGUARD_AUDIT_DB_PATH envLOGCARVERGUARD_TRUNCATE_ALLOWLIST envLOGCARVERGUARD_EXEC_WHITELIST envLOGCARVERGUARD_ALTER_DROP_COLUMN_ALLOWLIST envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント caiderek で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:LOGCARVERGUARD_CONNECTION_STRING
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは25 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンに.NETも必要です。
同じカテゴリには: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、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
English | [繁體中文](README.zh-TW.md)
An MCP proxy that lets an AI coding agent (Claude Code, Cursor, …) read and write a production SQL Server without handing it the real credentials or a free hand. Every statement runs under the caller's own SQL login and grants, dangerous statements are blocked before they reach the database, and everything is written to an audit log.
Status: early (v0.1).
AI agent --(MCP, API key)--> LogCarverGuard proxy --(EXECUTE AS the caller's own login)--> SQL Server
SELECT returns its rows (first 100 shown, with a count of the rest). A write is executed and audited.GRANT/DENY still decide what they can do.IMPERSONATE on each user's login, and a database user in the target database so it can connect. The host tests run SELECT, UPDATE and a permission-denied DELETE through a service account that is not sysadmin.INSERT / UPDATE / DELETE is rolled back as a whole if any statement fails. DDL (ALTER TABLE…), TRUNCATE and EXEC run as they are and are not rolled back as part of a batch. BEGIN TRAN / COMMIT / ROLLBACK from the caller is blocked.DROP TABLE, DROP DATABASE, RESTORE DATABASE / RESTORE LOG, ALTER DATABASE … SET, sp_executesql, xp_cmdshell, dynamic EXEC of a variable or string, identity switching (REVERT, EXECUTE AS, SETUSER), permission changes (GRANT, DENY, REVOKE), and caller-managed transactions (BEGIN TRAN, COMMIT, ROLLBACK, SAVE TRANSACTION).
TRUNCATE TABLE, ALTER TABLE … DROP COLUMN, and EXEC of a named stored procedure (including INSERT … EXEC). Allow-list entries are written as schema.name; a statement that names a database or a server (OtherDb.dbo.T, [srv].db.dbo.P) is never matched against them.
This list is deliberately narrow. It is not "everything an AI could break": DROP INDEX, sp_rename, BACKUP DATABASE, or a Linked Server OPENQUERY are not specially handled and run if the real login may run them. The real security boundary is the SQL login's own grants, so issue each API key against an account with the least privilege you can accept, never sysadmin or db_owner.
Runs on your own machine, started by your AI tool over stdio. No server, no Docker, no API keys. Settings come only from environment variables (not from appsettings.json or the command line). Tested on Windows with integrated authentication.
dotnet tool install -g LogCarverGuard.Local
claude mcp add logcarverguard --env LOGCARVERGUARD_CONNECTION_STRING="Server=localhost;Database=MyDb;Integrated Security=true;TrustServerCertificate=true" -- logcarverguard
Or run it without installing, through dnx (end the command with -- dotnet dnx LogCarverGuard.Local --yes).
| Variable | Purpose | Default |
|---|---|---|
LOGCARVERGUARD_CONNECTION_STRING (or _FILE) | The login the statements run as | required |
LOGCARVERGUARD_READ_ONLY | true allows queries only | false |
LOGCARVERGUARD_AUDIT_DB_PATH | Audit log SQLite file | LogCarverGuard/audit.db under your local application data folder |
LOGCARVERGUARD_TRUNCATE_ALLOWLIST, LOGCARVERGUARD_EXEC_WHITELIST, LOGCARVERGUARD_ALTER_DROP_COLUMN_ALLOWLIST | Same allow-lists as the central service | empty (all blocked) |
Read-only mode lets SELECT (without INTO) through, plus SET, DECLARE and PRINT. Everything else is blocked with a reason, including EXEC even when it is allow-listed, NEXT VALUE FOR, and the remote or file sources OPENQUERY, OPENROWSET and OPENDATASOURCE (they can run a write on another server). What read-only mode does not cover: a SELECT that calls a CLR or extended-procedure function with side effects, long-running or expensive queries, and locks. Also give the login only the permissions it needs; the guard is a second layer, not the first.
What local mode is, and is not. It is a guardrail against an agent doing something destructive by accident. It is not a security boundary:
Needs a Linux host with Docker (or the .NET 10 SDK for the native install below), and a SQL Server with TCP/IP enabled and mixed-mode authentication.
CREATE LOGIN logcarverguard_svc WITH PASSWORD = '…';
GRANT IMPERSONATE ON LOGIN::[alice_sql_login] TO logcarverguard_svc;
In the target database, create a database user for the service login and one for each person's login, then give each person the permissions they normally have; the proxy never widens them:
CREATE USER logcarverguard_svc FOR LOGIN logcarverguard_svc;
CREATE USER alice_sql_login FOR LOGIN alice_sql_login; GRANT SELECT, UPDATE ON dbo.Orders TO alice_sql_login;
git clone https://github.com/caiderek/LogCarverGuard
cd LogCarverGuard
Edit docker-compose.yml and set LOGCARVERGUARD_SQLSERVER_CONNECTION_STRING. For production prefer a mounted secret file and LOGCARVERGUARD_SQLSERVER_CONNECTION_STRING_FILE.
docker compose up -d --build
docker compose logs -f
--login is the user's own SQL login, not the service login). The key is printed once: docker compose exec logcarverguard dotnet cli/LogCarverGuard.Cli.dll \
issue-key --owner alice --login alice_sql_login
http:// :8080/ and send the key in the header X-LogCarverGuard-Key.Other key commands: list-keys (never prints the key itself) and revoke-key --id .
mcr.microsoft.com/dotnet/sdk:10.0 to build, aspnet:10.0 to run). It does not depend on a particular distribution. I have not tested this Docker setup on a specific distribution. Native (non-Docker) steps for Rocky Linux are below.docker-ce repository./data volume, so keep that volume and back it up.docker-compose.yml publishes the port on 127.0.0.1 only. To reach it from other machines, put a TLS-terminating reverse proxy in front, as described in Hardening for production. Opening port 8080 directly to the network sends the API key over plain HTTP.The steps below follow the guide I wrote for the Pro build, which I ran on a real Rocky Linux 9 VM and a real Rocky Linux 10 VM. That was an earlier Pro build: it adds undo on top of the same request handling, and it connected to SQL Server as sa, so the non-sysadmin service login described above was not part of those runs. I have not re-run these steps from this Free repo; if one fails, please open an issue.
# 1. .NET 10 SDK (Rocky 9 shown; on Rocky 10 use rhel/10 in the URL)
sudo dnf install -y https://packages.microsoft.com/config/rhel/9/packages-microsoft-prod.rpm sudo dnf install -y dotnet-sdk-10.0 git
sudo useradd --system --no-create-home --shell /usr/sbin/nologin logcarverguard sudo git clone https://github.com/caiderek/LogCarverGuard /opt/logcarverguard/src cd /opt/logcarverguard/src sudo dotnet publish src/LogCarverGuard.Server/LogCarverGuard.Server.csproj -c Release -o /opt/logcarverguard/server sudo dotnet publish src/LogCarverGuard.Cli/LogCarverGuard.Cli.csproj -c Release -o /opt/logcarverguard/cli
sudo mkdir -p /var/lib/logcarverguard /etc/logcarverguard sudo chown logcarverguard:logcarverguard /var/lib/logcarverguard sudo tee /etc/logcarverguard/sql-connstring.txt > /dev/null <<'EOF' Server=your-sql-server-host,1433;Initial Catalog=your-database;User Id=logcarverguard_svc;Password=CHANGE_ME;TrustServerCertificate=true; EOF sudo chown logcarverguard:logcarverguard /etc/logcarverguard/sql-connstring.txt sudo chmod 600 /etc/logcarverguard/sql-connstring.txt
Drop TrustServerCertificate=true once SQL Server has a certificate this host trusts (see Hardening for production).
Create /etc/systemd/system/logcarverguard.service:
[Unit]
Description=LogCarverGuard MCP proxy After=network.target
[Service] Type=simple User=logcarverguard Group=logcarverguard WorkingDirectory=/opt/logcarverguard/server ExecStart=/usr/bin/dotnet /opt/logcarverguard/server/LogCarverGuard.Server.dll Restart=on-failure RestartSec=5 Environment=ASPNETCORE_URLS=http://127.0.0.1:8080 Environment=LOGCARVERGUARD_SQLSERVER_CONNECTION_STRING_FILE=/etc/logcarverguard/sql-connstring.txt Environment=LOGCARVERGUARD_AUDIT_DB_PATH=/var/lib/logcarverguard/logcarverguard-audit.db Environment=LOGCARVERGUARD_APIKEYS_DB_PATH=/var/lib/logcarverguard/logcarverguard-apikeys.db
[Install] WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now logcarverguard sudo systemctl status logcarverguard --no-pager sudo journalctl -u logcarverguard -n 20 --no-pager # expect "Now listening on: http://127.0.0.1:8080"
sudo -u logcarverguard dotnet /opt/logcarverguard/cli/LogCarverGuard.Cli.dll \ issue-key --owner alice --login alice_sql_login \ --apikeys-db /var/lib/logcarverguard/logcarverguard-apikeys.db
ASPNETCORE_URLS above listens on 127.0.0.1 only. For access from other machines, put a TLS-terminating reverse proxy in front (see Hardening for production). In my Rocky tests the service listened on all interfaces (http://+:8080) and I opened the port with firewall-cmd --permanent --add-port=8080/tcp and --reload; that sends the API key over冒頭だけを表示しています。続きはリポジトリで読めます