Copilot Datagate
概览
作者提供的说明(英文原文)
Policy-driven, read-only MCP server for safe database access from AI tools.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i2 项中通过 2 项依据公开信息检查;尚未扫描代码
- 使用情况i非常新↓ 42/周 · ★ 0
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 数据库与数据集
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:2 项中通过 2 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 需要你自己填写:
DATAGATE_PROJECT_ROOT
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"copilot-datagate": {
"command": "npx",
"args": [
"-y",
"@copilot-datagate/cli"
],
"env": {
"DATAGATE_PROJECT_ROOT": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add copilot-datagate --env DATAGATE_PROJECT_ROOT=your-value -- npx -y @copilot-datagate/cli运行前请先填写空着的值。
或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"copilot-datagate": {
"command": "npx",
"args": [
"-y",
"@copilot-datagate/cli"
],
"env": {
"DATAGATE_PROJECT_ROOT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"copilot-datagate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@copilot-datagate/cli"
],
"env": {
"DATAGATE_PROJECT_ROOT": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
需要你填写的值
DATAGATE_PROJECT_ROOTenvWorkspace root used to resolve .datagate/datagate.toml, datagate.toml, or user-level config.
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
哪些应用可以使用它
依据这个服务器的连接方式和各应用自己的文档,检查于 2026年11月10日。
在你的电脑上运行,适用于
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月10日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 afurlane 验证,该账户拥有此仓库
- ✓ 通过
仍在维护
代码最后更新于9天前
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“数据库与数据集”中的其他服务器比较i
- 星标数多于此分类中其他 1160 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 1160 个服务器的 24% 更新
- 基础检查结果等于或优于此分类中其他 1160 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
Copilot Datagate 安全吗?
它在 2 项适用的基础检查中通过了 2 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于9天前,最新版本(0.4.0)于3个月前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
有什么可以替代它?
同一分类中有:Dbx, MCP Toolbox for Databases, MCP Toolbox for Databases
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
MCP Toolbox for Databases
MCP Toolbox for Databases enables your agent to connect to your database.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
📘 DataGate — Secure AI-Ready Data Gateway
DataGate è un gateway headless, sicuro e policy-driven che espone basi dati a strumenti AI (come GitHub Copilot) in modo controllato, prevedibile e privo di SQL libero.
DataGate funge da intermediario tra un LLM e una base dati reale: non permette accesso diretto al database, non espone query arbitrarie, non consente operazioni di scrittura. È progettato per essere read-only, schema-aware, multi-database, e completamente LLM-safe.
🎯 Obiettivi principali
- Accesso sicuro ai dati — read-only garantito tramite ruoli DB, policy engine e query builder controllato.
- Astrazione del database — il modello non genera SQL: DataGate costruisce query sicure e validate.
- Multi-database — può collegarsi a diverse basi dati di diverse applicazioni, come un DBeaver headless.
- Policy engine — controllo granulare su tabelle, colonne, filtri, limiti e complessità delle operazioni.
- Schema awareness — carica automaticamente lo schema del database e applica regole di sicurezza.
- Concorrenza reale — architettura asincrona e sicura, ideale per richieste parallele da Copilot.
- Metriche e audit — tracciamento di richieste, tempi, errori e limiti per debugging e osservabilità.
- Profilazione performance — profilo latenza in-process (min/media/p50/p95/p99/max) per monitoraggio evolutivo delle performance.
- Backend astratto — trait read-only comune per backend database, con implementazioni concrete per PostgreSQL, MySQL/MariaDB e SQLite.
🧩 Funzionalità principali
- Query builder controllato — operazioni semantiche come
select,search,aggregate, con validazione automatica. - MCP `select` tipizzato — contratto JSON, esecuzione read-only con righe JSON, policy, audit ed errori sanitizzati; il transport MCP resta lo step successivo.
- MCP `search` tipizzato — ricerca semantica con
ILIKEsu colonne consentite, query parametrizzate, policy/rate-limit/metriche/audit e output limit server-side. - MCP `aggregate` tipizzato —
count,sum,avg,minemaxsu colonne consentite, con filtri parametrizzati e senza supporto a SQL libero oGROUP BY. - API MCP versionata — descriptor stabile per versione API e tool disponibili.
- Transport MCP stdio — handshake, discovery e chiamate
select,searcheaggregatesopra il percorso policy-safe. - Filtri avanzati — supporto a pattern (
LIKE/ILIKE), range (BETWEEN) e full-text (to_tsvector+plainto_tsquery) sempre parametrizzati e validati da policy. - Catalogo schema controllato — introspezione policy-filtered di tabelle, viste, indici, vincoli (PK/FK/UNIQUE/CHECK/EXCLUSION), trigger, funzioni, procedure e sequenze; definizioni DDL solo quando sicure.
- Rate limiting — protezione contro loop del modello e query troppo pesanti.
- Limiti di output — risposte sempre contenute, sicure e strutturate.
- Errori deterministici — nessun leak di schema, nessun SQL esposto, nessun stack trace.
- Errori strutturati — envelope stabile con codice, messaggio generico e indicazione
retryable. - Configurazione esterna — file TOML per policy, limiti e profili nominati (dev/staging/prod).
- Hardening input MCP — validazione
request_id, limiti su payload testuali e cardinalità per ridurre superfici DoS/input abuse. - Policy dinamica — la policy attiva può essere sostituita atomicamente, anche ricaricandola da TOML, senza ricreare i tool MCP.
DataGate non espone una funzione MCP di query SQL libera: l'agente invia esclusivamente parametri strutturati, validati contro schema e policy prima della costruzione della query parametrizzata.
Gli errori pubblici usano i codici invalid_request, policy_denied, backend_unavailable e internal_error. SQL, stack trace, password, valori dei filtri e nomi di oggetti non autorizzati non attraversano il confine MCP.
Configurazione PostgreSQL
Le credenziali PostgreSQL non vengono salvate nei file di configurazione o nel codice. Il servizio legge la connessione dall'ambiente runtime:
- modalità compatta:
DB_URL - modalità a componenti:
DB_HOST,DB_PORT(default5432),DB_USER,DB_PASSWORD,DB_NAME - opzioni PostgreSQL:
DB_OPTIONS, nel formatokey=value&key=value - pool:
DB_MAX_CONNECTIONSeDB_ACQUIRE_TIMEOUT_SECS
Configurazione SQLite
Per usare SQLite in modalità read-only, configura una delle due varianti:
- URL completo:
SQLITE_URL - path file:
SQLITE_PATH
Opzioni pool SQLite:
SQLITE_MAX_CONNECTIONSSQLITE_ACQUIRE_TIMEOUT_SECS
Configurazione MySQL/MariaDB
Per usare MySQL o MariaDB in modalità read-only, configura una delle due varianti:
- URL completo:
MYSQL_URL - modalità a componenti:
MYSQL_HOST,MYSQL_PORT(default3306),MYSQL_USER,MYSQL_PASSWORD,MYSQL_DATABASE
Opzioni pool MySQL/MariaDB:
MYSQL_MAX_CONNECTIONSMYSQL_ACQUIRE_TIMEOUT_SECS
Selezione backend multi-database
Per scegliere esplicitamente quale backend attivare, imposta DATAGATE_BACKEND:
auto(default): precedenzapostgres->mysql->sqlitepostgresmysql(omariadb)sqlite
Quando DATAGATE_BACKEND è impostato a un backend specifico, DataGate richiede la relativa configurazione ambiente; in caso contrario termina con errore esplicito.
Precedenza backend in bootstrap:
- PostgreSQL
- MySQL/MariaDB
- SQLite
Il primo backend configurato nella lista viene attivato.
Il rate limiting server-side opzionale usa RATE_LIMIT_REQUESTS e RATE_LIMIT_WINDOW_SECS. Il limite è applicato per request_id prima di policy, query builder e database; richieste oltre soglia ricevono rate_limited e non generano SQL.
Il query builder applica anche un budget massimo configurabile nella policy tramite max_query_complexity: ogni colonna costa 1 e ogni filtro costa 2. Le richieste oltre budget vengono rifiutate prima di generare SQL.
La risposta select è soggetta anche a max_output_bytes nella policy: se il payload JSON finale supera il limite, DataGate rifiuta la richiesta con errore di policy senza esporre SQL o dettagli interni.
Il layer metriche registra anche contatori e latenza lato server per il tool select: richieste totali/accettate/rifiutate, errori backend, p95 latenza in memoria e snapshot del pool PostgreSQL (size, idle).
Il logging applicativo supporta due formati:
LOG_FORMAT=pretty(default)LOG_FORMAT=json(strutturato, adatto a log collector)
Il livello minimo dei log può essere configurato con LOG_LEVEL (trace|debug|info|warn|error) oppure tramite RUST_LOG.
Se DB_URL è presente ha precedenza sui componenti. Il ruolo PostgreSQL deve avere solo permessi di lettura; inoltre ogni connessione imposta default_transaction_read_only = on.
Il profilo attivo si seleziona con profile = "dev" e può definire la policy in [profiles.dev.policy]. Se non sono presenti profili nominati, resta supportata la forma legacy [policy]. Un profilo dichiarato ma inesistente attiva una policy deny-all, senza avviare operazioni sul database.
Le release pubblicate includono binari per Linux x64/ARM64, Windows x64/ARM64 e macOS Intel/Apple Silicon, con archivi nominati per piattaforma e file SHA256SUMS-* per la verifica degli artifact.
🛡️ Perché DataGate?
Gli LLM non devono parlare direttamente ai database. Serve un layer sicuro, prevedibile, controllato, auditabile, estensibile e multi-applicazione. DataGate è questo layer.
🔧 Tecnologie
- Linguaggio: Rust
- Database: PostgreSQL, MySQL/MariaDB e SQLite (oggi), altri DB domani
- Protocollo: MCP (Model Context Protocol)
- Architettura: asincrona, policy-driven, schema-aware
🚀 Stato del progetto
DataGate è in fase di progettazione. Il repository contiene la struttura iniziale, la documentazione e la roadmap tecnica.
🧪 Test integrazione multi-backend
I test di integrazione backend usano variabili ambiente opzionali:
DATAGATE_TEST_POSTGRES_URLDATAGATE_TEST_MYSQL_URL
Quando una variabile è presente, il relativo test verifica che il backend read-only esegua SELECT controllate e rifiuti statement di scrittura. Se la variabile non è presente, il test viene saltato senza errore.
Documentazione completa:
- Architecture.md — design principles e architettura a layer
- ROADMAP.md — roadmap dettagliata verso la 1.0
- docs/configuration.md — quick start, backend, policy e operazioni
- docs/benchmarks.md — benchmark locali SQLite e PostgreSQL reale
- docs/hardening.md — checklist hardening finale per il confine MCP/database
- docs/http-transport-decision.md — decisione sicurezza sul transport MCP HTTP remoto
- docs/editor-registry-evaluation.md — valutazione requisiti MCP Registry e client cross-editor
- docs/packaging.md — canali packaging e sorgente canonica degli artifact
- docs/postgres-mcp-comparison.md — confronto con altri server MCP PostgreSQL
- docs/registry-publication.md — strategia MCP Registry, installazione cross-editor e connessioni nominate
- docs/mcp-registry-metadata.json — metadata candidate per registry/gallerie MCP
- docs/release-candidate.md — criteri e gate della 1.0 candidate
- docs/mcp-tools.md — contratti interni e regole dei tool MCP
- CONTRIBUTING.md — regole di contribuzione, commit e branch
- SECURITY.md — policy di sicurezza e segnalazione vulnerabilità
Per l'avvio da VS Code con MCP:
- il transport locale di default è
stdio - i template
mcp.jsonper stdio locale sono in docs/mcp-tools.md e docs/configuration.md - HTTP remoto è fuori dal default 1.0 e richiede una decisione di sicurezza dedicata
📍 Roadmap (sintesi)
- Definizione del policy engine
- Implementazione del query builder controllato (select parametrizzato)
- Connessione read-only garantita
- Schema awareness automatica (catalogo interno PostgreSQL)
- Audit log foundation (JSONL via
AUDIT_LOG_PATH) - Tool MCP (
select,search,aggregate) - Supporto multi-database (PostgreSQL, MySQL/MariaDB, SQLite)
- Enterprise layer iniziale (osservabilità, hardening, policy dinamica)
- Stabilità API MCP (descriptor versionato; transport stdio)
- Transport MCP stdio
- Benchmark
- Hardening finale
- Versione 1.0 candidate