Neon

resmi

Neon sunucusuz Postgres platformu ile etkileşim kurun

Neon MCP ile neler yapabilirsiniz?

  • Proje oluşturma ve yönetme — Yeni bir Postgres veritabanı başlatmak, mevcut projeleri listelemek veya create_project ya da list_projects ile bir projeyi silmek için istekte bulunun.
  • SQL sorguları ve işlemleri çalıştırmarun_sql veya run_sql_transaction kullanarak bir veritabanına karşı yazma işlemleri dahil tek veya çok deyimli SQL çalıştırın.
  • Performansı inceleme ve optimize etmelist_slow_queries, explain_sql_statement veya inspect_database ile yavaş sorguları belirleyin, yürütme planları alın veya önbellek isabet oranı gibi tanılamaları çalıştırın.
  • Şemaları güvenle taşıma — Geçici bir dalda geçiş başlatın, test edin ve prepare_database_migration ile complete_database_migration kullanarak ana dala aktarın.
  • Veritabanı yapısını keşfetmeget_database_tables, describe_table_schema veya compare_database_schema kullanarak tabloları listeleyin, sütun şemalarını tanımlayın veya dallar arasındaki şemaları karşılaştırın.

Barındırılan MCP Sunucusu

npx add-mcp 'https://mcp.neon.tech/mcp'

Claude Code, Codex, Cursor ve daha fazlasına kurulur

Dokümantasyon

Neon Logo fallback

Neon MCP Sunucusu

Install MCP Server in Cursor Add to Kiro

Neon MCP Sunucusu, Neon'daki Lakebase Postgres veritabanlarınızla doğal dil kullanarak etkileşim kurmanızı sağlayan açık kaynaklı bir araçtır.

License: MIT

Model Context Protocol (MCP), büyük dil modelleri (LLM'ler) ile harici sistemler arasındaki bağlamı yönetmek için tasarlanmış standartlaştırılmış bir protokoldür. Bu depo, Neon için uzaktan bir MCP Sunucusu sağlar.

Neon'un MCP sunucusu, doğal dil istekleri ile Neon API arasında bir köprü görevi görür. MCP üzerine inşa edilen bu sunucu, isteklerinizi gerekli API çağrılarına çevirerek proje ve dal oluşturma, sorgu çalıştırma ve veritabanı geçişlerini gerçekleştirme gibi görevleri sorunsuz bir şekilde yönetmenizi sağlar.

Neon MCP sunucusunun öne çıkan bazı özellikleri şunlardır:

  • Doğal dil etkileşimi: Neon veritabanlarını sezgisel, konuşma tabanlı komutlarla yönetin.
  • Basitleştirilmiş veritabanı yönetimi: SQL yazmadan veya Neon API'yi doğrudan kullanmadan karmaşık işlemler gerçekleştirin.
  • Geliştirici olmayanlar için erişilebilirlik: Farklı teknik geçmişlere sahip kullanıcıların Neon veritabanlarıyla etkileşim kurmasını sağlayın.
  • Veritabanı geçiş desteği: Doğal dil ile başlatılan veritabanı şeması değişiklikleri için Neon'un dallanma özelliklerinden yararlanın.

Örneğin, Claude Code veya herhangi bir MCP İstemcisinde, Neon ile şu tür işleri gerçekleştirmek için doğal dili kullanabilirsiniz:

  • Let's create a new Postgres database, and call it "my-database". Let's then create a table called users with the following columns: id, name, email, and password.
  • I want to run a migration on my project called "my-project" that alters the users table to add a new column called "created_at".
  • Can you give me a summary of all of my Neon projects and what data is in each one?

[!WARNING]
Neon MCP Sunucusu Güvenlik Hususları
Neon MCP Sunucusu, doğal dil istekleri aracılığıyla güçlü veritabanı yönetimi yetenekleri sağlar. Yürütmeden önce LLM tarafından istenen eylemleri her zaman gözden geçirin ve yetkilendirin. Neon MCP Sunucusuna yalnızca yetkili kullanıcıların ve uygulamaların erişebildiğinden emin olun.

Neon MCP Sunucusu yalnızca yerel geliştirme ve IDE entegrasyonları için tasarlanmıştır. Neon MCP Sunucusunu üretim ortamlarında kullanmanızı önermiyoruz. Kazara veya yetkisiz değişikliklere yol açabilecek güçlü işlemler gerçekleştirebilir.

Daha fazla bilgi için bkz. MCP güvenlik rehberi →.

Neon MCP Sunucusunu Kurma

Neon MCP Sunucusunu kurmak için birkaç seçenek vardır:

  1. API Anahtarı ile Hızlı Kurulum (Cursor, VS Code ve Claude Code): Neon'un MCP Sunucusunu, aracı becerilerini ve VS Code uzantısını tek komutla otomatik olarak yapılandırmak için neon@latest init komutunu çalıştırın.
  2. Uzaktan MCP Sunucusu (OAuth Tabanlı Kimlik Doğrulama): Kimlik doğrulama için OAuth kullanarak Neon'un yönetilen MCP sunucusuna bağlanın. Bu yöntem, API anahtarlarını yönetme ihtiyacını ortadan kaldırdığı için daha kullanışlıdır. Ayrıca, yayınlandıkları anda en son özellikleri ve iyileştirmeleri otomatik olarak alırsınız.
  3. Uzaktan MCP Sunucusu (API Anahtarı Tabanlı Kimlik Doğrulama): Kimlik doğrulama için API anahtarı kullanarak Neon'un yönetilen MCP sunucusuna bağlanın. Bu yöntem, OAuth'un bulunmadığı bir yerde Neon'a uzaktan bir aracı bağlamak istiyorsanız kullanışlıdır. Ayrıca, yayınlandıkları anda en son özellikleri ve iyileştirmeleri otomatik olarak alırsınız.

Ön Koşullar

  • Bir MCP İstemci uygulaması.
  • Bir Neon hesabı.
  • Node.js (>= v18.0.0): nodejs.org adresinden indirin.
  • IP İzin Listesi etkinse, izin listenize 34.192.103.46 ve 23.22.233.166 adreslerini ekleyin (mcp.neon.tech statik IP'leri).

Geliştirme için Node.js 22+ gerekir (pnpm, Corepack aracılığıyla sağlanır — etkinleştirmek için corepack enable komutunu çalıştırın).

Seçenek 1. API Anahtarı ile Hızlı Kurulum

API anahtarını manuel olarak oluşturmak istemiyor musunuz?

Neon'un MCP Sunucusunu tek komutla otomatik olarak yapılandırmak için neon@latest init komutunu çalıştırın:

npx neon@latest init

Bu, Cursor, VS Code (GitHub Copilot) ve Claude Code ile çalışır. OAuth ile kimlik doğrulaması yapar, sizin için bir Neon API anahtarı oluşturur ve düzenleyicinizi otomatik olarak yapılandırır.

Seçenek 2. Uzaktan Barındırılan MCP Sunucusu (OAuth Tabanlı Kimlik Doğrulama)

Kimlik doğrulama için OAuth kullanarak Neon'un yönetilen MCP sunucusuna bağlanın. Bu, en kolay kurulumdur, bu sunucunun yerel olarak kurulmasını gerektirmez ve istemcide yapılandırılmış bir Neon API anahtarı gerektirmez.

Çalışma alanınızdaki tespit edilen tüm aracılar ve düzenleyiciler için Neon MCP Sunucusunu eklemek üzere aşağıdaki komutu çalıştırın:

npx add-mcp "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema"

Bu URL; projeleri, dalları, bilgi işlem uç noktalarını, sorgulamayı ve şemayı yayınlar. /api/list-tools?category=projects&category=branches&category=endpoints&category=querying&category=schema ile önizleyin. Filtrelenmemiş URL tüm kategorileri yayınlar:

npx add-mcp https://mcp.neon.tech/mcp

Neon MCP Sunucusunu proje kapsamlı yerine genel MCP sunucu listesine eklemek için -g bayrağını ekleyin.

Alternatif olarak, istemcinizin MCP sunucu yapılandırma dosyasına (örn. mcp.json, mcp_config.json) aşağıdaki "Neon" girişini ekleyebilirsiniz:

{
  "mcpServers": {
    "Neon": {
      "type": "http",
      "url": "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema"
    }
  }
}

Kiro: Kiro MCP yapılandırma dosyanıza aşağıdakini ekleyin (genel için ~/.kiro/settings/mcp.json veya proje kapsamlı için .kiro/settings/mcp.json):

{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema"
    }
  }
}

Veya bu README'nin üst kısmındaki tek tıklamayla kurulum düğmesini kullanın. Daha fazla bilgi için Kiro MCP belgelerine bakın.

  • MCP istemcinizi yeniden başlatın veya yenileyin.
  • Tarayıcınızda bir OAuth penceresi açılacaktır. MCP istemcinizin Neon hesabınıza erişmesine izin vermek için istemleri izleyin.

OAuth tabanlı kimlik doğrulamada, MCP sunucusu varsayılan olarak kişisel Neon hesabınızdaki projeler üzerinde çalışır. Bir kuruluşa ait projelere erişmek veya bunları yönetmek için, MCP istemcisine verdiğiniz istemde açıkça org_id veya project_id belirtmeniz gerekir.

Seçenek 3. Uzaktan Barındırılan MCP Sunucusu (API Anahtarı Tabanlı Kimlik Doğrulama)

Uzaktan MCP Sunucusu, istemciniz destekliyorsa Authorization başlığında bir API anahtarı kullanarak kimlik doğrulamayı da destekler.

Neon Konsolu'nda bir Neon API anahtarı oluşturun. Ardından, çalışma alanınızdaki tespit edilen tüm aracılar ve düzenleyiciler için Neon MCP Sunucusunu eklemek üzere aşağıdaki komutu çalıştırın:

npx add-mcp "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema" --header "Authorization: Bearer <$NEON_API_KEY>"

Alternatif olarak, istemcinizin MCP sunucu yapılandırma dosyasına (örn. mcp.json, mcp_config.json) aşağıdaki "Neon" girişini ekleyebilirsiniz:

{
  "mcpServers": {
    "Neon": {
      "type": "http",
      "url": "https://mcp.neon.tech/mcp?category=projects&category=branches&category=endpoints&category=querying&category=schema",
      "headers": {
        "Authorization": "Bearer <$NEON_API_KEY>"
      }
    }
  }
}

Erişimi yalnızca kuruluş altındaki projelerle sınırlamak için bir kuruluşun API anahtarını sağlayın.

Kapsamlar ve Salt Okunur Mod

Neon MCP, read ve write OAuth kapsamlarını duyurur. MCP istemciniz bunları isteyebilir veya OAuth izinleri arayüzünde seçimi yapabilirsiniz. Bir istemci hâlâ gönderiyorsa * yazma olarak kabul edilir.

Salt okunur mod, hangi araçların kullanılabilir olduğunu kısıtlar; proje oluşturma, dal oluşturma veya geçiş çalıştırma gibi yazma işlemlerini devre dışı bırakır. Salt okunur araçlar; projeleri listeleme, şemaları tanımlama, veri sorgulama ve performans metriklerini görüntülemeyi içerir.

Salt okunur modu iki şekilde ayarlayabilirsiniz:

  1. Varsayılan MCP URL'si (düzenlenebilir onay): https://mcp.neon.tech/mcp ile bağlanın ve yetkilendirme sayfasında Yazmalara izin ver seçeneğinin işaretini kaldırın. Ayrıca orada bir proje ve bir araç kategorisi alt kümesi seçebilirsiniz.
  2. Parametreli MCP URL'si (sabit onay): MCP sunucu URL'sine readonly, projectId ve/veya category ekleyin. Yetkilendirme sayfası bu izni onaylar ve düzenleyici sunmaz. İzni değiştirmek için URL'yi değiştirin ve yeniden yetkilendirin.
{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?readonly=true"
    }
  }
}

Sorgu parametresinin davranışı:

  • API anahtarı akışı: readonly=true, salt okunur modu etkinleştirmenin yoludur (bu akışta OAuth kapsam değişimi yoktur). URL değişiklikleri bir sonraki istekte uygulanır.
  • OAuth akışı: MCP URL'sindeki projectId, category ve readonly, yetkilendirme sırasında onaylanan sabit bir izindir. readonly=true o sayfada yazmalara genişletilemez. Bir belirteç verildikten sonra URL'yi değiştirmek o belirteci genişletmez; yeniden yetkilendirin.

OAuth kaydı için x-read-only, düzenlenebilir onayda başlangıçtaki Yazmalara izin ver varsayılanıdır. Onayı kilitlemez ve readonly=false içeren parametreli bir URL'yi azaltmaz. API anahtarı istekleri, readonly sorgu parametresinin altında, istek başına x-read-only değerini yine de dikkate alır.

Not: Salt okunur mod, hangi araçların kullanılabilir olduğunu kısıtlar. Ayrıca, run_sql aracı yalnızca salt okunur sorgular için kullanılabilir durumda kalır.

Erişim Kontrolü için URL Sorgu Parametreleri

İzin bağlamı (kapsam kategorileri, proje kapsamı, salt okunur mod), MCP sunucu URL'sindeki URL sorgu parametreleri aracılığıyla yapılandırılır. API anahtarı istekleri bu parametreleri her istekte uygular. OAuth belirteçleri, yetkilendirme sırasında onaylanan veya düzenlenen izni saklar.

ParametreAçıklamaÖrnek
readonlySalt okunur modu etkinleştir (true/false)?readonly=true
categoryBelirli araç kategorileriyle sınırla (tekrarlanan veya CSV)?category=querying&category=schema
projectIdTüm işlemleri tek bir projeye kapsamla?projectId=proj-123

Salt okunur + proje kapsamlı örnek:

{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?readonly=true&projectId=my-project-id"
    }
  }
}

Kategori filtreli örnek (yalnızca sorgulama ve şema araçları):

{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?category=querying&category=schema"
    }
  }
}

Herhangi bir yapılandırma için hangi araçların görünür olduğunu /api/list-tools uç noktasını kullanarak önizleyebilirsiniz (kimlik doğrulama gerekmez):

curl "https://mcp.neon.tech/api/list-tools?readonly=true&category=querying"
Salt okunur modda kullanılabilen araçlar

Ana bilgisayar araçları: list_organizations, describe_branch, run_sql, run_sql_transaction, get_database_tables, describe_table_schema, list_slow_queries, explain_sql_statement, inspect_database, get_neon_auth_config, search, fetch, list_docs_resources, get_doc_resource.

GET olan ve sır döndürmeyen oluşturulan Yönetim API araçları, ayrıca query_logs (POST, salt okunur). Tam seti /api/list-tools?readonly=true ile önizleyin.

Yazma erişimi gerektiren araçlar:

  • Oluşturulan Yönetim API yazmaları (create_project, create_branch, delete_project, …)
  • get_connection_string (bağlantı dizesi ayrıcalıklı bir rol parolası taşır, bu nedenle salt okunur modda gizlenir; bunun yerine Neon Konsolundan kopyalayın)
  • prepare_database_migration, complete_database_migration
  • prepare_query_tuning, complete_query_tuning

Sunucu Tarafından Gönderilen Olaylar (SSE) Aktarımı (Kullanımdan Kaldırıldı)

MCP iki uzaktan sunucu aktarımını destekler: kullanımdan kaldırılan Sunucu Tarafından Gönderilen Olaylar (SSE) ve daha yeni, önerilen Akışkan HTTP. LLM istemciniz henüz Akışkan HTTP'yi desteklemiyorsa, SSE kullanmak için uç noktayı https://mcp.neon.tech/mcp adresinden https://mcp.neon.tech/sse adresine değiştirebilirsiniz.

SSE aktarımını kullanarak çalışma alanınızdaki tespit edilen tüm aracılar ve düzenleyiciler için Neon MCP Sunucusunu eklemek üzere aşağıdaki komutu çalıştırın:

npx add-mcp https://mcp.neon.tech/sse --type sse

Uzaktan Sunucu Mimarisi

Uzaktan sunucu, Vercel'de mcp.neon.tech adresinde bir Next.js App Router uygulaması olarak çalışır.

[!NOTE] Kök / yolu Neon MCP Sunucusu belgelerine yönlendirir. Açılış sayfası yoktur.

Çekirdek uygulama alanları:

  • app/api/[transport]/route.ts: Akışkan HTTP (/mcp) ve SSE (/sse) için MCP aktarım uç noktası
  • app/api/authorize/, app/callback/, app/api/token/, app/api/revoke/: OAuth akış uç noktaları
  • app/.well-known/: OAuth keşif meta verisi uç noktaları
  • mcp/: MCP sunucusu, araçlar, işleyiciler, analitik ve Sentry entegrasyonu
  • lib/: Next.js uyumlu yardımcılar (OAuth, yapılandırma, hata işleme)
  • mcp/utils/read-only.ts: salt okunur mod ve kapsam işleme

Rehberler

Özellikler

Desteklenen Araçlar

Neon MCP Sunucusu, MCP İstemcilerine "araçlar" olarak sunulan aşağıdaki eylemleri sağlar. Bu araçları, doğal dil komutlarını kullanarak Neon projeleriniz ve veritabanlarınızla etkileşim kurmak için kullanabilirsiniz.

Araç Kapsamı Meta Verileri

Her araç tanımı, izin tabanlı araç filtreleme ve onay deneyimi için kullanılan bir scope kategorisi içerir. Geçerli kategoriler şunlardır:

  • projects
  • branches
  • endpoints
  • snapshots
  • schema
  • querying
  • neon_auth
  • data_api
  • observability
  • docs
  • functions
  • storage
  • null (kapsam kategorisi olmayan araçlar)

Notlar:

  • Yönetim API araçları @neon/tools kaynağından gelir. Seçiciler SDK yollarıdır (projects.list); yayınlanan MCP adları fiil-önceliklidir (list_projects, delete_project, query_logs). Tarihsel adlar, zaten var oldukları yerlerde kalır (describe_project, create_branch, reset_from_parent, compare_database_schema, provision_neon_auth, provision_neon_data_api, list_branch_computes).
  • ?category=branches, dal, rol ve veritabanı araçlarını içerir (list_postgres_roles, create_postgres_database, …). branches için zaten verilmiş bir belirteç bu yazma işlemlerini kazanır. Bilgi işlem listeleme ?category=endpoints şeklindedir. Anlık görüntü geri yükleme ?category=snapshots şeklindedir.
  • Proje üyesi ve izin yazma işlemleri yayınlanmaz. list_project_members ve list_project_permissions okuma işlemleridir.
  • Şema araçları (?category=schema), ana bilgisayar araçları get_database_tables ve describe_table_schema ile oluşturulan compare_database_schema öğesidir.
  • Salt okunur zorlama hâlâ readOnlySafe ve sunucu tarafı salt okunur mantığına dayanır; scope kategori meta verisidir, bağımsız bir okuma/yazma anahtarı değildir.
  • Proje kapsamlı modda (?projectId=...), proje yolu olmayan araçlar (list_projects, create_project, list_organizations, list_regions, search, fetch, …) gizlenir. delete_project da gizlenir.

Proje Yönetimi:

  • list_projects: Neon projelerini listeler. limit, kaç öğenin geri döneceğini sınırlar.
  • describe_project: Bir Neon projesini kimliğe göre getirir ({ "project_id": "…" }).
  • create_project: Bir Neon projesi oluşturur ve varsayılan bilgi işlemin hazır olmasını bekler. Bağlantı dizesi döndürmez. Bağımsız değişkenler { "name": "…", "org_id": "…", "region_id": "…" } şeklindedir. Başarılı olduktan sonra get_connection_string çağrısını yapın.
  • delete_project: Mevcut bir Neon projesini siler. Bağımsız değişkenler { "project_id": "…" } şeklindedir.
  • list_organizations: Geçerli kullanıcının erişebildiği tüm kuruluşları listeler. İsteğe bağlı olarak, arama parametresini kullanarak kuruluş adına veya kimliğine göre filtreleyin.

Dal Yönetimi:

  • list_branches: Bir projedeki dalları listeler. Bir dal adını br-… kimliğine çözmek için kullanın.
  • list_credentials, create_credential, revoke_credential, rotate_credential: Nesne Depolama ve AI Ağ Geçidi için dal kapsamlı kimlik bilgileri. reveal bir araç değildir; döndürme, sırları yerinde değiştirir ve idempotent değildir.
  • create_branch: Okuma-yazma bilgi işlemi olan bir dal oluşturur ve hazır olana kadar bekler. Bağlantı dizesi döndürmez. Bağımsız değişkenler { "project_id": "…", "name": "feature-x" } şeklindedir. Uç noktayı atlamak için no_compute: true değerini iletin. Başarılı olduktan sonra get_connection_string çağrısını yapın.
  • reset_from_parent: Bir dalı, üst dalının geçerli HEAD konumuna sıfırlar ({ "project_id": "…", "branch_id": "br-…" }). Dal ayrıldığından beri yapılan yazma işlemlerini atar. Dalın alt dalları varsa preserve_under_name gereklidir; bu alt dallar yeni dala taşınır. Yalnızca üst HEAD; zamanda nokta geri yükleme restore_snapshot şeklindedir.
  • delete_branch: Bir dalı siler ({ "project_id": "…", "branch_id": "br-…" }).
  • describe_branch: Bir dalda veritabanları, şemalar, tablolar, görünümler ve işlevlerden oluşan bir ağaç alır.
  • Oluşturulan dal araçları, branch_id değerini bir dal kimliği olarak alır (br-...), bir ad olarak değil.
  • restore_snapshot: Bir anlık görüntüyü geri yükler. Mevcut bir dala geri yüklemek için target_branch_id değerini iletin; yeni bir tane oluşturmak için atlayın.

Bilgi işlem uç noktaları (?category=endpoints):

  • list_postgres_endpoints, list_branch_computes, get_postgres_endpoint, create_postgres_endpoint, update_postgres_endpoint, delete_postgres_endpoint, start_postgres_endpoint, suspend_postgres_endpoint, restart_postgres_endpoint

Anlık Görüntüler (?category=snapshots):

  • list_snapshots, get_snapshot_schedule, set_snapshot_schedule, create_snapshot, update_snapshot, delete_snapshot, restore_snapshot

Şema (?category=schema):

  • get_database_tables, describe_table_schema
  • compare_database_schema: Bir veritabanının başka bir dala karşı SQL şema farkı. database_name gereklidir. base_branch_id atlanırsa üst dala karşı karşılaştırır. İsteğe bağlı lsn, timestamp, base_lsn, base_timestamp yalnızca zamanda nokta içindir.

SQL Sorgu Yürütme:

  • get_connection_string: Veritabanı bağlantı dizenizi döndürür.
  • run_sql: Belirtilen bir Neon veritabanına karşı tek bir SQL sorgusu yürütür. Hem okuma hem de yazma işlemlerini destekler.
  • run_sql_transaction: Bir Neon veritabanına karşı tek bir işlem içinde bir dizi SQL sorgusu yürütür.
  • get_database_tables: Belirtilen bir Neon veritabanındaki tüm tabloları listeler.
  • describe_table_schema: Belirli bir tablonun şema tanımını alır; sütunları, veri türlerini ve kısıtlamaları ayrıntılarıyla açıklar.

Veritabanı Geçişleri (Şema Değişiklikleri):

  • prepare_database_migration: Bir veritabanı geçiş sürecini başlatır. Kritik olarak, ana dalı etkilemeden önce geçişi güvenli bir şekilde uygulamak ve test etmek için geçici bir dal oluşturur.
  • complete_database_migration: Hazırlanmış bir veritabanı geçişini ana dala uygular ve sonuçlandırır. Bu eylem, geçici geçiş dalındaki değişiklikleri birleştirir ve geçici kaynakları temizler.

SQL Sorgulama ve Optimizasyon:

  • inspect_database: Bir dala karşı önceden tanımlanmış 15 salt okunur Postgres tanılama aracından birini çalıştırır — ilişki ve dizin boyutları, dizin ve sıralı tarama kullanımı, etkin sorgular ve kilitler, en ağır ve en sık sorgular, önbellek isabet oranı ve çalışma kümesi boyutu, otomatik vakum ve şişkinlik tahminleri ve çoğaltma durumu. neon inspect db CLI komutuyla aynı kontroller. Tüm veritabanlarını kapsamak için database_name atlayın; birini incelemek için bir ad iletin. Bunlardan dördü pg_stat_statements veya neon uzantısını gerektirir.
  • list_slow_queries: Bir veritabanındaki en yavaş sorguları bularak performans darboğazlarını belirler. pg_stat_statements uzantısını gerektirir.
  • explain_sql_statement: Performans darboğazlarını belirlemeye yardımcı olmak için SQL sorguları için ayrıntılı yürütme planları sağlar.
  • prepare_query_tuning: Sorgu performansını analiz eder ve dizin oluşturma gibi optimizasyonlar önerir. Bu optimizasyonları güvenli bir şekilde test etmek için geçici bir dal oluşturur.
  • complete_query_tuning: Optimizasyonları ana dala uygulayarak veya atarak sorgu ayarını sonuçlandırır. Geçici ayar dalını temizler.

Neon Auth (?category=neon_auth):

  • provision_neon_auth, get_auth, disable_auth, update_auth_config
  • get_neon_auth_config: ana bilgisayar aracı; sırlar gizlenir. Ayarları değiştirmek için oluşturulan Auth yazma araçlarını kullanın.
  • list_auth_oauth_providers, add_auth_oauth_provider, update_auth_oauth_provider, delete_auth_oauth_provider
  • list_auth_trusted_domains, add_auth_trusted_domain, delete_auth_trusted_domain
  • create_auth_user, delete_auth_user, update_auth_user_role

Neon Veri API'si (?category=data_api):

  • provision_neon_data_api, get_data_api, update_data_api, delete_data_api: Bir dal veritabanı için Veri API'sini yönetin.

Arama ve Keşif:

  • search: Bir sorguyla eşleşen kuruluşlar, projeler ve dallar arasında arama yapar. Kimlikleri, başlıkları ve Neon Konsolu'na doğrudan bağlantıları döndürür.
  • fetch: Bir kimlik kullanarak belirli bir kuruluş, proje veya dal hakkında ayrıntılı bilgi getirir (genellikle arama aracından).

Gözlemlenebilirlik (?category=observability): bu araçlar Neon Platform Beta sürümünü gerektirir ve şu anda yalnızca aws-us-east-2 bölgesindeki projeler için kullanılabilir. Günlük erişimi olmayan bir dal, telemetry_not_enabled nedeniyle HTTP 404 döndürür.

  • query_logs: Bir dal için OpenTelemetry günlüklerini sorgular. Yönetim API'sinde POST; bu sunucu tarafından salt okunur olarak ele alınır.
  • list_log_fields: Bir dalda değerlerini numaralandırabileceğiniz günlük alanlarını listeler.
  • list_log_field_values: Bir dal ve zaman penceresi içindeki bir günlük alanının farklı değerlerini listeler.

Belgeler ve Kaynaklar (?category=docs):

  • list_docs_resources: https://neon.com/docs/llms.txt adresinden dizini getirerek mevcut tüm Neon belgeleri sayfalarını listeler. Sayfa URL'lerini ve başlıklarını döndürür; bunlar get_doc_resource aracı kullanılarak tek tek getirilebilir.
  • get_doc_resource: Belirli bir Neon belgeleri sayfasını markdown içeriği olarak getirir. Kullanılabilir sayfa kısa adlarını keşfetmek için önce list_docs_resources aracını kullanın, ardından kısa adı bu araca iletin.

İşlevler (?category=functions):

  • list_functions, get_function, update_function, delete_function, deploy_function
  • list_functions_custom_domains, register_functions_custom_domain, delete_functions_custom_domain
  • list_triggers, get_trigger, create_trigger, update_trigger, delete_trigger: Zamanlanmış işlev tetikleyicileri (type: "schedule", beş alanlı UTC cron).

Depolama (?category=storage):

  • list_storage_buckets, create_storage_bucket, delete_storage_bucket
  • list_storage_objects, delete_storage_object, delete_storage_objects_by_prefix
  • presign_storage_object, get_storage

Geçişler

Geçişler, veritabanı şemanızda zaman içinde yapılan değişiklikleri yönetmenin bir yoludur. Neon MCP sunucusuyla, LLM'ler ayrı "Başlat" (prepare_database_migration) ve "Kaydet" (complete_database_migration) komutlarıyla geçişleri güvenli bir şekilde yapma yetkisine sahiptir.

"Başlat" komutu bir geçişi kabul eder ve yeni bir geçici dalda çalıştırır. Geri döndüğünde, bu komut LLM'ye geçişi bu dalda test etmesi gerektiğini ima eder. LLM daha sonra geçişi orijinal dala uygulamak için "Kaydet" komutunu çalıştırabilir.

Geliştirme

Bu proje, Corepack aracılığıyla sabitlenmiş paket yöneticisi olarak pnpm kullanır.

Proje Yapısı

MCP sunucu kodu, mcp.neon.tech adresinde Vercel'e dağıtılan bir Next.js uygulaması olan depo kökünde bulunur.

corepack enable
pnpm install

Araçların nasıl ekleneceği için CONTRIBUTING.md dosyasına bakın. Araç bağımsız değişkenleri snake_case şeklindedir.

Yerel Geliştirme

# Start the Next.js dev server (for the remote MCP server)
pnpm dev

Lint ve Tip Kontrolü

pnpm lint
pnpm typecheck

Ortam Değişkenleri

Uzak sunucu çalışma zamanı için gereklidir:

DeğişkenAçıklama
SERVER_HOSTSunucu URL'si (varsayılan VERCEL_URL)
UPSTREAM_OAUTH_HOSTNeon OAuth sağlayıcı URL'si
CLIENT_IDOAuth istemci kimliği
CLIENT_SECRETOAuth istemci sırrı
KV_URLVercel KV (Upstash Redis) URL'si
OAUTH_DATABASE_URLBelirteç depolama için Postgres URL'si

İsteğe bağlı:

DeğişkenAçıklama
LOG_LEVELWinston günlük seviyesi: error, warn, info (varsayılan), debug, verbose, silly
NEON_MCP_DISABLE_ANALYTICSÜrün analitiğini devre dışı bırakmak için 1 olarak ayarlayın

Test Piramidi

Tüm testler depo kök dizininden çalıştırılır.

# Unit tests
pnpm test:unit

# Integration tests
pnpm test:integration

# MCP protocol end-to-end tests (real MCP client/server tool calls)
pnpm test:e2e:mcp

# Website end-to-end tests (Playwright; provisions/validates ephemeral DB first)
pnpm test:e2e:web

# Full end-to-end suite
pnpm test:e2e

# Full test pyramid (unit + integration + e2e; used in CI)
pnpm test

Test stratejisi:

  • Taşıma/protokol ve kullanıcı tarafından görülebilir davranışlar için E2E tercih edin.
  • Belirleyici araç sözleşmeleri ve iş akışı davranışları için entegrasyon testlerini kullanın.
  • Saf mantık ve uç durumlar için birim testlerini kullanın.
  • Birleştirme kapısı testlerinde üçüncü taraf çalışma süresine güvenmekten kaçının; entegrasyon/birim katmanlarında harici bağımlılıkları taklit edin.

Dağıtım

Vercel, uzak sunucuyu depo dal yapılandırmasından otomatik olarak dağıtır. Çekme istekleri için önizleme ortamları mevcuttur.

Telemetri

Neon MCP sunucusu, kullanımı anlamamıza ve güvenilirliği artırmamıza yardımcı olmak için ürün analitiği ve hata raporları toplar:

  • Ürün analitiği (Segment): kimliği doğrulanmış bir hesapla bağlandığınızda, sunucu Neon hesap kimliğiniz, adınız ve e-posta adresinizle bir identify olayı gönderir. Ayrıca oturum başlangıcını (server_init), her araç çağrısını (tool_call) ve beklenmeyen sunucu hatalarını (server_error) izler. Bir araç çağrısı olayı, araç adını, kimlik doğrulama yöntemini ve istemciyi içerir; araç bağımsız değişkenlerini veya sorgu sonuçlarını içermez. Hesap olmadan yalnızca belge amaçlı araç çağrıları anonim olarak izlenir. Olaylar, Neon'un kendi analitik uç noktası olan track.neon.tech adresine gider.
  • Hata raporlama (Sentry): beklenmeyen sunucu hataları, yığın izleri ve istek bağlamıyla birlikte raporlanır.

Bu toplama, Neon Gizlilik Politikası kapsamındadır. Sunucuyu kendiniz çalıştırırken analitiği devre dışı bırakmak için NEON_MCP_DISABLE_ANALYTICS=1 ayarlayın. Bu bayrak Sentry'yi devre dışı bırakmaz.