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.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
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 스타i세 기둥: 리뷰 · 점검 · 사용 정도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앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요