Google Sheets ile etkileşim kurmak için bir Model Context Protocol sunucusu. Bu sunucu, Google Sheets API aracılığıyla elektronik tabloları oluşturmak, okumak, güncellemek ve yönetmek için araçlar sağlar.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"xing5-mcp-google-sheets": {
"command": "python",
"args": [
"-m",
"mcp_google_sheets"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/xing5/mcp-google-sheets.git ~/.mcp/mcp-google-sheets
cd ~/.mcp/mcp-google-sheets mcp-google-sheets, herhangi bir MCP uyumlu istemci (Claude Desktop gibi) ile Google Sheets API arasında bir köprü görevi gören Python tabanlı bir MCP sunucusudur. Tanımlanmış bir araç seti kullanarak Google Elektronik Tablolarınızla etkileşim kurmanızı, yapay zeka tarafından yönlendirilen güçlü otomasyon ve veri manipülasyonu iş akışlarını etkinleştirmenizi sağlar.
uvx Kullanarak)Sunucu temelde tek satırda çalışır: uvx mcp-google-sheets@latest.
Bu komut, en son kodu otomatik olarak indirecek ve çalıştıracaktır. Her zaman @latest kullanmanızı önerilir böylece en yeni sürümü en son özellikler ve hata düzeltmeleriyle elde edersiniz.
Aşağıda kullanılan kimlikler hakkında daha fazla bilgi için Kimlik Referans Kılavuzuna bakınız.
☁️ Ön Koşul: Google Cloud Kurulumu
🐍 uv Yükleyin
uvx, hızlı bir Python paket yükleyicisi ve çözücüsü olan uv'nin bir parçasıdır. Henüz yüklemediyseniz yükleyin:# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Veya pip kullanarak:
# pip install uv
Gerekirse uv öğesini PATH'inize eklemek için yükleyici çıktısındaki talimatları izleyin.🔑 Temel Ortam Değişkenlerini Ayarlayın (Hizmet Hesabı Önerilir)
# Google Kurulum adımından alınan GERÇEK yol ve klasör kimliğiniz ile değiştirin
export SERVICE_ACCOUNT_PATH="/path/to/your/service-account-key.json"
export DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
set SERVICE_ACCOUNT_PATH="C:\path\to\your\service-account-key.json"
set DRIVE_FOLDER_ID="YOUR_DRIVE_FOLDER_ID"
$env:SERVICE_ACCOUNT_PATH = "C:\path\to\your\service-account-key.json"
$env:DRIVE_FOLDER_ID = "YOUR_DRIVE_FOLDER_ID"
CREDENTIALS_CONFIG) için Ayrıntılı Kimlik Doğrulama & Ortam Değişkenleri bölümüne bakınız.🏃 Sunucuyu Çalıştırın!
uvx, mcp-google-sheets'in en son sürümünü otomatik olarak indirecek ve çalıştıracaktır:uvx mcp-google-sheets@latest
💡 Pro İpucu: En yeni sürümü hata düzeltmeleri ve özelliklerle aldığınızdan emin olmak için her zaman
@latestkullanın.@latestolmadan,uvxönbelleğe alınmış eski bir sürümü kullanabilir.
🔌 MCP İstemcinizi Bağlayın
⚡ İsteğe Bağlı: Araç Filtrelemesini Etkinleştirin (Bağlam Kullanımını Azaltın)
Hazırsınız! MCP istemciniz aracılığıyla komut vermeye başlayın.
uvx ile anında çalıştırın (sıfır kurulum hissi) veya geliştirme için uv kullanarak klonlayın.--include-tools veya ENABLED_TOOLS ortam değişkeni ile yalnızca ihtiyacınız olan araçları etkinleştirerek bağlam penceresi kullanımını azaltın.Sorun: Varsayılan olarak, bu MCP sunucusu tüm 19 aracı ortaya koymakta, herhangi bir konuşmaya başlamadan önce ~13.000 token tüketmektedir. Yalnızca birkaç aracı ihtiyacınız varsa, bu değerli bağlam penceresi alanını boşa harcar.
Çözüm: Yalnızca gerçekten kullandığınız araçları etkinleştirmek için araç filtrelemesini kullanın.
Araçları şu seçeneklerden biriyle filtreleyebilirsiniz:
Komut satırı argümanı --include-tools:
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": [
"mcp-google-sheets@latest",
"--include-tools",
"get_sheet_data,update_cells,list_spreadsheets,list_sheets"
],
"env": {
"SERVICE_ACCOUNT_PATH": "/path/to/credentials.json"
}
}
}
}
Ortam değişkeni ENABLED_TOOLS:
{
"mcpServers": {
"google-sheets": {
"command": "uvx",
"args": ["mcp-google-sheets@latest"],
"env": {
"SERVICE_ACCOUNT_PATH": "/path/to/credentials.json",
"ENABLED_TOOLS": "get_sheet_data,update_cells,list_spreadsheets,list_sheets"
}
}
}
}
Filtreleme sırasında, bu tam araç adlarını kullanın (virgülle ayrılmış, boşluksuz):
En Yaygın Araçlar (önerilen alt küme):
get_sheet_data - Elektronik tablolardan okuupdate_cells - Elektronik tablolara yazlist_spreadsheets - Elektronik tabloları bullist_sheets - Sekmelerde gezinTüm Kullanılabilir Araçlar:
add_columnsadd_rowsbatch_updatebatch_update_cellscopy_sheetcreate_sheetcreate_spreadsheetfind_in_spreadsheetget_multiple_sheet_dataget_multiple_spreadsheet_summaryget_sheet_dataget_sheet_formulaslist_folderslist_sheetslist_spreadsheetsrename_sheetsearch_spreadsheetsshare_spreadsheetupdate_cellsNot: --include-tools veya ENABLED_TOOLS belirtilmezse, tüm araçlar etkindir (varsayılan davranış).
Bu sunucu, Google Sheets ile etkileşim kurmak için aşağıdaki araçları ortaya koymaktadır:
Aşağıda kullanılan kimlikler hakkında daha fazla bilgi için Kimlik Referans Kılavuzuna bakınız.
(Giriş parametreleri aksi belirtilmedikçe genellikle dizelerdir)
list_spreadsheets: Yapılandırılmış Drive klasöründeki (Hizmet Hesabı) veya kullanıcı tarafından erişilebilen (OAuth) elektronik tabloları listeler.
folder_id (isteğe bağlı dize): Aramada kullanılacak Google Drive klasör kimliği. URL'sinden alın. Belirtilmezse, yapılandırılmış varsayılan klasörü veya 'My Drive'ı arar.[{id: string, title: string}]create_spreadsheet: Yeni bir elektronik tablo oluşturur.
title (dize): Elektronik tablo için istenen başlık. Örnek: "Quarterly Report Q4".folder_id (isteğe bağlı dize): Elektronik tablonun oluşturulması gereken Google Drive klasör kimliği. URL'sinden alın. Belirtilmezse, yapılandırılan varsayılanı veya kökü kullanır.spreadsheetId, title ve folder içeren elektronik tablo bilgisi nesnesi.get_sheet_data: Bir sayfadaki/sekmedeki bir aralıktan veri okur.
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).sheet (dize): Sayfanın/sekmenin adı (ör. "Sheet1").range (isteğe bağlı dize): A1 gösterimi (ör. 'A1:C10', 'Sheet1!B2:D'). Belirtilmezse, sheet tarafından belirtilen tüm sayfayı/sekmeyi okur.include_grid_data (isteğe bağlı boole, varsayılan False): True ise, biçimlendirme ve meta veriler dahil tam ızgara verileri döndürür (çok daha büyük). False ise, yalnızca değerleri döndürür (daha verimli).include_grid_data=True ise, meta verili tam ızgara verileri (get yanıtı). False ise, Values API'sinden bir değerler sonucu nesnesi (values.get yanıtı).get_sheet_formulas: Bir sayfadaki/sekmedeki bir aralıktan formülleri okur.
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).sheet (dize): Sayfanın/sekmenin adı (ör. "Sheet1").range (isteğe bağlı dize): A1 gösterimi (ör. 'A1:C10', 'Sheet1!B2:D'). Belirtilmezse, sheet tarafından belirtilen sayfadaki/sekmedeki tüm formülleri okur.values.get yanıtı).update_cells: Belirli bir aralığa veri yazar. Mevcut verilerin üzerine yazar.
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).sheet (dize): Sayfanın/sekmenin adı (ör. "Sheet1").range (dize): Yazılacak A1 gösterimi aralığı (ör. 'A1:C3').data (dizilerin dizisi): Yazılacak değerlerin 2D dizisi. Örnek: [[1, 2, 3], ["a", "b", "c"]].values.update yanıtı).batch_update_cells: Tek bir API çağrısında birden çok aralığı günceller.
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).sheet (dize): Sayfanın/sekmenin adı (ör. "Sheet1").ranges (nesne): Aralık dizelerini (A1 gösterimi) değerlerin 2D dizilerine eşleyen sözlük. Örnek: { "A1:B2": [[1, 2], [3, 4]], "D5": [["Hello"]] }.values.batchUpdate yanıtı).add_rows: Belirtilen dizine bir sayfaya/sekmeye boş satırlar ekler (ekler).
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).sheet (dize): Sayfanın/sekmenin adı (ör. "Sheet1").count (tam sayı): Eklenecek boş satır sayısı.start_row (isteğe bağlı tam sayı, varsayılan 0): Satırları eklemeye başlamak için 0 tabanlı satır dizini. Belirtilmezse, varsayılan olarak 0 (başın başına eklenir).batchUpdate yanıtı).list_sheets: Elektronik tablo içinde tüm sayfa/sekme adlarını listeler.
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).["Sheet1", "Sheet2"].create_sheet: Elektronik tabloya yeni bir sayfa/sekme ekler.
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).title (dize): Yeni sayfa/sekme adı.get_multiple_sheet_data: Tek bir çağrıda potansiyel olarak farklı elektronik tablolardaki birden çok aralıktan veri alır.
queries (nesne dizisi): Her nesne spreadsheet_id, sheet ve range'ı gerektirir. Örnek: [{"spreadsheet_id": "abc", "sheet": "Sheet1", "range": "A1:B2"}, ...].data'ı veya bir error'ı içeren nesne listesi. Her data, bir values.get yanıtı.get_multiple_spreadsheet_summary: Birden çok elektronik tablo için başlıkları, sayfa/sekme adlarını, başlıkları ve ilk birkaç satırı alır.
spreadsheet_ids (dize dizisi): Elektronik tabloların kimliği (URL'lerinden).rows_to_fetch (isteğe bağlı tam sayı, varsayılan 5): Kaç satır (başlık dahil) önizlenecek. Örnek: 5.share_spreadsheet: Elektronik tabloyu belirtilen kullanıcılar/e-postalar ve rollerle paylaşır.
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).recipients (nesne dizisi): [{"email_address": "user@example.com", "role": "writer"}, ...]. Roller: reader, commenter, writer.send_notification (isteğe bağlı boole, varsayılan True): Alıcılara e-posta bildirimleri gönder.successes ve failures listelerini içeren sözlük.add_columns: Belirtilen dizine bir sayfaya/sekmeye boş sütunlar ekler (ekler).
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).sheet (dize): Sayfanın/sekmenin adı (ör. "Sheet1").count (tam sayı): Eklenecek boş sütun sayısı.start_column (isteğe bağlı tam sayı, varsayılan 0): Eklemeye başlamak için 0 tabanlı sütun dizini. Belirtilmezse, varsayılan olarak 0 (başın başına eklenir).batchUpdate yanıtı).copy_sheet: Bir sayfayı/sekmeyi bir elektronik tablodan diğerine çoğaltır ve isteğe bağlı olarak yeniden adlandırır.
src_spreadsheet (dize): Kaynak elektronik tablo kimliği (URL'sinden).src_sheet (dize): Kaynak sayfanın/sekmenin adı (ör. "Sheet1").dst_spreadsheet (dize): Hedef elektronik tablo kimliği (URL'sinden).dst_sheet (dize): Hedef elektronik tablodaki istenen sayfa/sekme adı.rename_sheet: Mevcut bir sayfayı/sekmeyi yeniden adlandırır.
spreadsheet (dize): Elektronik tablo kimliği (URL'sinden).sheet (dize): Geçerli sayfa/sekme adı (ör. "Sheet1").new_name (dize): Yeni sayfa/sekme adı (ör. "Transactions").batchUpdate yanıtı).add_chart: Google Elektronik Tablasında belirtilen verilerden bir grafik oluşturur.
spreadsheet_id (dize): Elektronik tablo kimliği (URL'sinden).sheet (dize): Verileri içeren sayfanın/sekmenin adı (ör. "Sheet1").chart_type (dize): Oluşturulacak grafik türü. Seçenekler: COLUMN (dikey çubuklar), BAR (yatay çubuklar), LINE, AREA, PIE, SCATTER, COMBO, HISTOGRAM.data_range (dize): Grafik verileri için A1 gösterimi aralığı (ör. "A1:C10"). İlk satır başlık olarak kabul edilir.title (isteğe bağlı dize): Grafik başlığı.x_axis_label (isteğe bağlı dize): X ekseni etiketi (alt eksen). Pasta grafikleri için uygulanamaz.y_axis_label (isteğe bağlı dize): Y ekseni etiketi (sol eksen). Pasta grafikleri için uygulanamaz.position_x (isteğe bağlı tam sayı, varsayılan 0): Sol üst köşeden piksel cinsinden yatay konum ofseti.position_y (isteğe bağlı tam sayı, varsayılan 0): Sol üst köşeden piksel cinsinden dikey konum ofseti.width (isteğe bağlı tam sayı, varsayılan 600): Grafiğin piksel cinsinden genişliği.height (isteğe bağlı tam sayı, varsayılan 400): Grafiğin piksel cinsinden yüksekliği.MCP Kaynakları:
spreadsheet://{spreadsheet_id}/info: Google Elektronik Tablosu hakkında temel meta verileri alın.
Bu kurulum sunucuyu çalıştırmadan önce gereklidir.
Google Sheets APIGoogle Drive APISunucu, Google API'lerine erişmek için kimlik bilgilerine ihtiyaç duyar. Bir yöntem seçin:
Aşağıda kullanılan kimlikler hakkında daha fazla bilgi için Kimlik Referans Kılavuzuna bakınız.
mcp-sheets-service).Editor rolünü ekleyin veya daha dar izinler için (ör. roles/drive.file ve belirli Sheets rolleri) daha ayrıntılı roller ekleyin.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