Google BigQuery entegrasyonu için sunucu uygulaması, doğrudan BigQuery veritabanına erişim ve sorgulama yetenekleri sunar.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"ergut-mcp-bigquery-server": {
"command": "node",
"args": [
"~/.mcp/mcp-bigquery-server/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/ergut/mcp-bigquery-server.git ~/.mcp/mcp-bigquery-server
cd ~/.mcp/mcp-bigquery-server Bu, LLM'lerinizin (Claude gibi) doğrudan BigQuery verilerinizle konuşmasını sağlayan bir sunucudur — salt okunur, deponuzu değiştirme yeteneği yoktur. Bunu, AI asistanınız ve veritabanınız arasında oturan ve güvenli ve verimli iletişim sağlayan dostça bir çevirmen olarak düşünün.
Siz: "Geçen ay en iyi 10 müşterimiz kimdi?"
Claude: *BigQuery veritabanını sorgular ve cevabı düz İngilizce olarak verir*
Artık manuel SQL sorguları yazmanıza gerek yok - sadece verilerinizle doğal olarak sohbet edin!
Bu sunucu, Model Context Protocol (MCP) kullanır; bu, yapay zeka-veritabanı iletişimi için evrensel bir çevirmen gibidir. MCP, Claude Desktop, Claude Code ve artan sayıda diğer yapay zeka istemcileri tarafından desteklenir.
Yapmanız gereken şeyler:
SELECT ifadeleri izin verilir. Her sorgu, yürütülmeden önce BigQuery'nin kendi dry-run planlayıcısı tarafından doğrulanır, bu nedenle INSERT, UPDATE, DELETE, DROP, TRUNCATE, EXPORT DATA ve MERGE hepsi reddedilir. AI ajanı deponuzu değiştiremez, nokta.config.json veya --maximum-bytes-billed aracılığıyla ayarlayın)EXCEPT cümlelerini kullanarak sorguları yeniden formüle etme hakkında açık rehberlik alır, bu nedenle faydalı kalır.config.json tarafından kontrol edilir. Kuruluşunuzun adlandırma kurallarına uyacak kendi algılama desenlerinizi ekleyin (ör. %guardian_name%, %beneficiary%), tarama sıklığını ayarlayın, faturalandırma limitlerini belirleyin ve tablo başına alan kısıtlamalarını tanımlayın. Tarayıcı, bir sonraki çalıştırmada özel desenlerinizi alır ve tüm veri setleri arasında eşleşen tüm sütunları otomatik olarak korur.| Basit Mod | Korumalı Mod | |
|---|---|---|
| Ne zaman kullanılır | Kişisel projeler, hassas olmayan veriler | PHI, PII, finansal veriler, HIPAA düzenlenmiş ortamlar |
| Kurulum | npx — yerel kurulum gerekmez |
npx veya config.json ile yerel derleme |
| Alan kısıtlamaları | Hiçbiri | Hassas sütunları engellemek için preventedFields tanımlayın |
| Otomatik tarayıcı | Kullanılamaz | Tüm veri setleri arasında hassas sütunları otomatik olarak keşfeder |
| Kurulum | Aşağıdaki Hızlı Kurulum | Aşağıdaki Korumalı Mod Kurulumu |
Hassas veriler için yerel dağıtımın neden önemli olduğu: LLM çıkarımı bulutta gerçekleşir. Bir AI ajanı BigQuery'yi sorguladığında, sonuçlar işlenmek üzere LLM sağlayıcısının sunucularına (Anthropic, OpenAI, vb.) gönderilir — ağınızı terk ederler. BigQuery IAM, verilerinize kimin ulaşabileceğini kontrol eder; alan kısıtlamaları, AI ajanının LLM yanıtlarına ne yüzeyleştireceğini kontrol eder. Bunlar farklı koruma sınırlarıdır. preventedFields yapılandırması, PHI ve PII'nin ajanın bağımsız olarak kaç sorgu çalıştırdığından bağımsız olarak LLM konuşma bağlamına asla girmemesini sağlar.
Google Cloud ile kimlik doğrulaması yapın:
gcloud auth application-default login
MCP istemcinizin config dosyasına ekleyin (ör. Claude Desktop için claude_desktop_config.json, Claude Code için .mcp.json):
{
"mcpServers": {
"bigquery": {
"command": "npx",
"args": [
"-y",
"@ergut/mcp-bigquery-server",
"--project-id",
"your-project-id"
]
}
}
}
Sohbet etmeye başlayın! MCP istemcinizi açın ve verileriniz hakkında sorular sorun.
Alan seviyesi kısıtlamalarıyla hassas veriler için:
Google Cloud ile kimlik doğrulaması yapın (bir yöntemi seçin):
gcloud auth application-default login
# Hizmet hesabı anahtar dosyanızı kaydedin ve --key-file parametresini kullanın
# Hizmet hesabı anahtar dosyanızı güvenli tutmayı ve asla sürüm kontrolüne vermeyi unutmayın
MCP istemcinizin config dosyasına ekleyin (ör. Claude Desktop için claude_desktop_config.json, Claude Code için .mcp.json):
Application Default Credentials ile:
{
"mcpServers": {
"bigquery": {
"command": "npx",
"args": [
"-y",
"@ergut/mcp-bigquery-server",
"--project-id",
"your-project-id",
"--location",
"us-central1",
"--config-file",
"/path/to/config.json"
]
}
}
}
Hizmet hesabı anahtar dosyası ile:
{
"mcpServers": {
"bigquery": {
"command": "npx",
"args": [
"-y",
"@ergut/mcp-bigquery-server",
"--project-id",
"your-project-id",
"--location",
"us-central1",
"--key-file",
"/path/to/service-account-key.json",
"--config-file",
"/path/to/config.json"
]
}
}
}
Sohbet etmeye başlayın! MCP istemcinizi açın ve verileriniz hakkında sorular sormaya başlayın.
Sunucu, gelişmiş yapılandırma için opsiyonel bir config.json dosyasını destekler. Config dosyası olmadan (yani --config-file bayrağı olmadan), sunucu güvenli varsayılanlarla Basit Mod'da çalışır (1GB sorgu limiti, alan kısıtlaması yok). Korumayı etkinleştirmek için, sunucuyu başlatırken --config-file /path/to/config.json iletin.
{
"maximumBytesBilled": "1000000000",
"preventedFields": {
"healthcare.patients": ["first_name", "last_name", "ssn", "date_of_birth", "email"],
"billing.transactions": ["credit_card_number", "bank_account"]
},
"sensitiveFieldPatterns": [
"%first_name%", "%last_name%", "%email%",
"%ssn%", "%date_of_birth%", "%password%"
],
"sensitiveFieldScanFrequencyDays": 1
}
| Ayar | Varsayılan | Açıklama |
|---|---|---|
maximumBytesBilled |
"1000000000" (1GB) |
Sorgu başına maksimum faturalandırılan bayt |
preventedFields |
{} |
Kısıtlı alanların tablo-sütun eşlemesi |
sensitiveFieldPatterns |
Yerleşik set | Otomatik keşif için SQL LIKE desenleri |
sensitiveFieldScanFrequencyDays |
1 |
Otomatik taramalar arasında günler (devre dışı bırakmak için 0) |
--project-id: (Gerekli) Google Cloud proje kimliğiniz--location: (İsteğe bağlı) BigQuery konumu, varsayılan 'US'--key-file: (İsteğe bağlı) Hizmet hesabı anahtar JSON dosyasının yolu--config-file: (İsteğe bağlı) Yapılandırma dosyasının yolu. Atlanırsa, sunucu koruma olmadan Basit Mod'da çalışır — ./config.json örtülü varsayılanı yoktur--maximum-bytes-billed: (İsteğe bağlı) Sorgular için maksimum faturalandırılan baytları geçersiz kılın, config.json değerini geçersiz kılarHizmet hesabı kullanma örneği:
npx @ergut/mcp-bigquery-server --project-id your-project-id --location europe-west1 --key-file /path/to/key.json --config-file /path/to/config.json --maximum-bytes-billed 2000000000
Veri ambarları genellikle oldukça hassas bilgiler içerir — hasta kayıtları, sosyal güvenlik numaraları, finansal veriler, kişisel iletişim ayrıntıları ve kimlik doğrulama sırları. Bir AI ajanı deponuzu sorgulamak için doğrudan erişime sahip olduğunda, hassas sütunları okumasını önlemek için insanın müdahalesi yoktur. Bir SELECT * FROM patients binlerce PII/PHI kaydını açığa çıkarabilir ve sonuçlar daha sonra işlenmek üzere LLM sağlayıcısına gönderilir — ağınızı terk ederler.
Bu sunucu, yöneticilere bir AI ajanının hangi sütunlara erişebileceğinin üzerine ince taneli kontrol verir. config.json'da preventedFields tanımlarsınız ve sunucu bu sütunları LLM yanıtlarına yüzeyleştiren sorguları engeller. Otomatik bir tarayıcı tüm veri setleriniz arasında hassas sütunları keşfeder, bu nedenle kapsam deponuz büyüdükçe güncel kalır.
Dürüst bir uyarı: Alan kısıtlamaları, AI ajanları için işbirliğine dayalı koruma rayları — düşmanca saldırganlar tarafından karşı bir sabit SQL güvenlik duvarı değil. Tam tehdit modeli için PROTECTION.md bakın.
Sunucu, config.json'da protectionMode aracılığıyla ayarlanan üç koruma modunu destekler:
| Mod | Açıklama |
|---|---|
off |
Koruma yok — tüm tablolar ve alanlar erişilebilir (config dosyası sağlanmadığında varsayılan) |
allowedTables |
Tablo beyaz listesi — yalnızca listelenen tablolar sorgulanabilir, onların içinde opsiyonel alan kısıtlamalarıyla |
autoProtect |
Veri setlerinizi hassas sütunlar için tarar ve preventedFields zorunlu kılar |
Tam yapılandırma, örnekler, sorgu deseni referansı, tarayıcı kurulumu ve gerekli IAM izinleri için PROTECTION.md bakın.
npx yerine yerel derleme çalıştırın — katkıda bulunmak, değişiklikleri test etmek veya sabitlenmiş bir sürüm çalıştırmak için kullanışlı. Hem Basit hem de Korumalı Mod'u destekler.
# Klonlayın ve yükleyin
git clone https://github.com/ergut/mcp-bigquery-server
cd mcp-bigquery-server
npm install
# Derleyin
npm run build
Ardından MCP istemciniz config'ini yerel derlemeye işaret edin:
{
"mcpServers": {
"bigquery": {
"command": "node",
"args": [
"/path/to/your/clone/mcp-bigquery-server/dist/index.js",
"--project-id",
"your-project-id",
"--location",
"us-central1"
]
}
}
}
Korumalı Mod için, args dizisine "--config-file", "/path/to/config.json" ekleyin (ve opsiyonel olarak hizmet hesabı kimlik doğrulaması için "--key-file", "/path/to/service-account-key.json").
config.json veya --maximum-bytes-billed aracılığıyla ayarlayın)MIT Lisansı - Detaylar için LICENSE dosyasına bakın.
Salih Ergüt
Bu proje gururla şu tarafından desteklenmektedir:
Güncellemeler ve sürüm tarihi için CHANGELOG.md bakın.
Veritabanları için kolay, hızlı ve güvenli araçlar sağlayan açık kaynak MCP sunucusu.
Baserow veritabanı entegrasyonu ile tablo arama, listeleme ve satır oluşturma, okuma, güncelleme ve silme işlemlerini gerçekleştirebilirsiniz.
Postgres geliştirme ve operasyonları için kapsamlı MCP sunucusu; performans analizi, ayarlama ve sağlık kontrolleri için araçlar içerir.
Supabase'in resmi MCP sunucusu, AI asistanlarını doğrudan Supabase projenize bağlayarak tablo yönetimi, config getirme ve veri sorgulama gibi işlemleri gerçekleştirmelerine olanak tanır.
NodeJS'de MySQL veritabanı entegrasyonu, yapılandırılabilir erişim kontrolleri ve schema incelemesi özellikleri ile sağlanır.
A Qdrant MCP server