Neon

resmi

Neon sunucusuz Postgres platformu ile etkileşim kurun

Neon MCP ile neler yapabilirsiniz?

  • Projeler ve dallar oluşturun — Asistandan yeni bir Postgres veritabanı veya feature-x adlı bir dal oluşturmasını isteyin ve işlem kaynaklarının hazır olmasını bekleyin.
  • SQL ve işlemleri çalıştırın — Seçilen bir Neon veritabanında tek bir sorgu veya bir işlem içinde bir dizi ifade yürütün.
  • Şemayı ve tabloları inceleyin — Bir veritabanındaki tabloları listeleyin, bir tablonun sütunlarını ve kısıtlamalarını açıklayın veya dallar arasındaki şemaları karşılaştırın.
  • Geçişleri güvenle test edin — Geçici bir dalda şema değişikliği hazırlayın, ardından geçişi ana dala uygulamak için işlemi tamamlayın.
  • Yavaş sorguları iyileştirin — Yavaş sorguları bulun, yürütme planlarını alın ve geçici bir dalda dizinler gibi önerilen iyileştirmeleri test edin.
  • Projeleri özetleyin — Neon projelerini ve kuruluşlarını listeleyin veya kimlikleri ve konsol bağlantılarını bulmak için projeler ve dallar arasında arama yapı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 Server

Install MCP Server in Cursor Add to Kiro

Neon MCP Server, Neon üzerindeki Lakebase Postgres veritabanlarınızla doğal dilde 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 uzak bir MCP Server sağlar.

Neon'un MCP server'ı, doğal dildeki istekler ile Neon API arasında köprü görevi görür. MCP üzerine kurulu olan bu server, isteklerinizi gerekli API çağrılarına dönüştürerek projeler ve dallar oluşturma, sorgu çalıştırma ve veritabanı geçişleri gerçekleştirme gibi görevleri sorunsuzca yönetmenizi sağlar.

Neon MCP server'ın temel özelliklerinden bazıları şunlardır:

  • Doğal dilde etkileşim: Sezgisel, konuşma dilindeki komutları kullanarak Neon veritabanlarını 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şi desteği: Doğal dil aracılığıyla başlatılan veritabanı şeması değişiklikleri için Neon'un dallanma özelliklerinden yararlanın.

Örneğin, Claude Code'da veya herhangi bir MCP Client'ta Neon ile aşağıdaki gibi işlemleri doğal dil kullanarak gerçekleştirebilirsiniz:

  • 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 Server güvenlik konuları
Neon MCP Server, doğal dildeki istekler aracılığıyla güçlü veritabanı yönetimi özellikleri sunar. LLM tarafından istenen işlemleri gerçekleştirmeden önce her zaman inceleyin ve onaylayın. Neon MCP Server'a yalnızca yetkili kullanıcıların ve uygulamaların erişebildiğinden emin olun.

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

Daha fazla bilgi için MCP güvenlik yönergelerine → bakın.

Neon MCP Server'ı kurma

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

  1. API Key ile hızlı kurulum (Cursor, VS Code ve Claude Code): Neon MCP Server'ı, agent skills özelliğini ve VS Code uzantısını tek komutla otomatik olarak yapılandırmak için neon@latest init komutunu çalıştırın.
  2. Uzak MCP Server (OAuth tabanlı kimlik doğrulama): Kimlik doğrulama için OAuth kullanarak Neon'un yönetilen MCP server'ına bağlanın. API key'leri yönetme gereksinimini ortadan kaldırdığı için bu yöntem daha kullanışlıdır. Ayrıca, en yeni özellik ve iyileştirmeler yayınlanır yayınlanmaz otomatik olarak edinirsiniz.
  3. Uzak MCP Server (API Key tabanlı kimlik doğrulama): Kimlik doğrulama için API key kullanarak Neon'un yönetilen MCP server'ına bağlanın. OAuth'un kullanılamadığı durumlarda uzak bir agent'ı Neon'a bağlamak istiyorsanız bu yöntem kullanışlıdır. Ayrıca, en yeni özellik ve iyileştirmeler yayınlanır yayınlanmaz otomatik olarak edinirsiniz.

Ön koşullar

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

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 Key ile hızlı kurulum

API key'i elle oluşturmak istemiyor musunuz?

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

npx neon@latest init

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

Seçenek 2. Uzak barındırılan MCP Server (OAuth tabanlı kimlik doğrulama)

Kimlik doğrulama için OAuth kullanarak Neon'un yönetilen MCP server'ına bağlanın. Bu, kurulumu en kolay seçenektir; bu server'ı yerel olarak yüklemeniz gerekmez ve istemcide Neon API key yapılandırmanız da gerekmez.

Çalışma alanınızdaki algılanan tüm agent ve düzenleyicilere Neon MCP Server'ı eklemek için 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ı, işlem uç noktalarını, sorgulamayı ve şemayı yayımlar. /api/list-tools?category=projects&category=branches&category=endpoints&category=querying&category=schema ile önizleyin. Filtrelenmemiş URL tüm kategorileri yayımlar:

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

Neon MCP Server'ı proje kapsamı yerine genel MCP server listesine eklemek için -g bayrağını ekleyin.

Alternatif olarak, istemcinizin MCP server yapılandırma dosyasına (ör. mcp.json, mcp_config.json) aşağıdaki "Neon" girdisini 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 kapsam için ~/.kiro/settings/mcp.json, proje kapsamı için .kiro/settings/mcp.json):

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

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

  • MCP Client'ınızı yeniden başlatın veya yenileyin.
  • Tarayıcınızda bir OAuth penceresi açılır. MCP Client'ınıza Neon hesabınıza erişme yetkisi vermek için yönergeleri izleyin.

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

Seçenek 3. Uzak barındırılan MCP Server (API Key tabanlı kimlik doğrulama)

İstemciniz destekliyorsa Uzak MCP Server, Authorization başlığında API key kullanarak kimlik doğrulamayı da destekler.

Neon Console'da bir Neon API key oluşturun. Ardından, çalışma alanınızdaki algılanan tüm agent ve düzenleyicilere Neon MCP Server'ı eklemek için 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 server yapılandırma dosyasına (ör. mcp.json, mcp_config.json) aşağıdaki "Neon" girdisini 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 kuruluşun API key'ini sağlayın.

Kapsamlar ve salt okunur mod

Neon MCP, read ve write OAuth kapsamlarını duyurur. MCP Client'ınız bunları isteyebilir veya seçimi OAuth izinleri arayüzünde yapabilirsiniz. İstemci yine de * gönderirse bu, yazma izni olarak değerlendirilir.

Salt okunur mod, kullanılabilir araçları kısıtlayarak proje veya dal oluşturma ya da geçiş çalıştırma gibi yazma işlemlerini devre dışı bırakır. Salt okunur araçlar arasında projeleri listeleme, şemaları açıklama, verileri sorgulama ve performans ölçümlerini görüntüleme bulunur.

Salt okunur modu iki şekilde ayarlayabilirsiniz:

  1. Varsayılan MCP URL'si (düzenlenebilir izin): https://mcp.neon.tech/mcp ile bağlanın ve yetkilendirme sayfasında Allow writes seçeneğinin işaretini kaldırın. Burada ayrıca tek bir proje, SQL için bir Postgres rolü ve araç kategorilerinin bir alt kümesini seçebilirsiniz.
  2. Parametreli MCP URL'si (sabit izin): MCP server URL'sine readonly, projectId, category ve/veya roleName ekleyin. Yetkilendirme sayfası bu izni onaylar ve düzenleme seçeneği sunmaz. İzni değiştirmek için URL'yi değiştirip yeniden yetkilendirin.
{
  "mcpServers": {
    "Neon": {
      "url": "https://mcp.neon.tech/mcp?readonly=true"
    }
  }
}

Sorgu parametresinin davranışı:

  • API key akışı: readonly=true, salt okunur modu etkinleştirmenin tek 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, readonly ve roleName, yetkilendirme sırasında onaylanan sabit bir izin oluşturur. Bu sayfada readonly=true yazma iznine genişletilemez. Bir token verildikten sonra URL'yi değiştirmek o token'ın izinlerini genişletmez; yeniden yetkilendirin.

OAuth kaydı için x-read-only, düzenlenebilir izin ekranında başlangıçtaki yazma izni varsayılanıdır. Onayı kilitlemez ve readonly=false içeren parametreli bir URL'nin izinlerini azaltmaz. API key istekleri, aşağıda açıklanan readonly sorgu parametresinden daha düşük öncelikle, her istek için x-read-only değerini dikkate almaya devam eder.

Not: Salt okunur mod, hangi araçların kullanılabileceğini kısıtlar. run_sql kullanılabilir durumda kalır ve her sorguyu bir READ ONLY işlemi içinde çalıştırır. run_sql_transaction kullanılamaz; her ifadeyi run_sql ile çalıştırın. Bu çağrılar ayrı ayrı çalışır ve aynı işlemi paylaşmaz. İşlem semantiği için yazma izni olan bir bağlantı kullanın.

Erişim denetimi için URL sorgu parametreleri

İzin bağlamı (kapsam kategorileri, proje kapsamı, salt okunur mod, sabitlenmiş Postgres rolü), MCP server URL'sindeki URL sorgu parametreleri aracılığıyla yapılandırılır. API key istekleri bu parametreleri her istekte uygular. OAuth token'ları, 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 (tekrarlı veya CSV)?category=querying&category=schema
projectIdTüm işlemleri tek bir projeyle sınırla?projectId=proj-123
roleNameTüm SQL'i veritabanı sahibi yerine bu Postgres rolüyle çalıştır?roleName=app_reader

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"
    }
  }
}

Sabitlenmiş Postgres rolü örneği (salt okunur, tek proje, SQL app_reader olarak):

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

roleName, tüm bağlantı için Postgres oturum açma rolünü sabitler. Server'ın sizin için çalıştırdığı tüm SQL'ler (run_sql, run_sql_transaction, explain_sql_statement, get_database_tables, describe_table_schema, describe_branch, list_slow_queries, inspect_database ve geçişler ile sorgu ayarlama işlemlerinin içindeki SQL) bu rolle oturum açar; böylece agent'ın neleri okuyabileceğini veya değiştirebileceğini Postgres izinleri belirler. Bu ayar olmadan SQL, veritabanı sahibi olarak çalışır. Salt okunur mod sorguları yine bir READ ONLY işlemi içine alır; sabitlenmiş rol, Postgres'in oturum açma sırasında uyguladığı bir kısıtlama ekler. Böylece SQL işlem dışına çıksa bile rolün ayrıcalıklarıyla sınırlı kalır.

  • Sunucu, rolün kimlik bilgilerini kendi içinde çözümler ve bunları hiçbir zaman döndürmez. get_connection_string sabitlenmiş bir bağlantıda kullanılamaz.
  • Sabitlenmiş rolden farklı bir role_name araç bağımsız değişkeni reddedilir. Bu bağımsız değişkeni belirtmemek, sahip rolünü değil, sabitlenmiş rolü kullanır.
  • Rol mevcut değilse veya oturum açamıyorsa (örneğin ALTER ROLE … NOLOGIN), çağrı herhangi bir SQL çalıştırılmadan önce başarısız olur. Başka bir rolü denemez.
  • Değer, tam olarak bir Postgres rol adı olmalıdır: harfler, rakamlar, _ veya $; bir harf ya da _ ile başlamalı ve en fazla 63 karakter olmalıdır. Diğer her şey (boş, yinelenen, tırnak içine alınmış veya tireli değerler) yok sayılmak yerine 400 ile reddedilir.
  • Rol oturum açabilmeli (LOGIN) ve sorguladığınız her dalda mevcut olmalıdır. SQL ile oluşturulan roller (CREATE ROLE app_reader LOGIN PASSWORD '…') çalışır; Neon Console veya API'de oluşturulan roller de çalışır. Gerekli ayrıcalıklara sahip olan ve daha fazlasına sahip olmayan bir rol, sabitlemeyi kullanışlı kılar: salt okunur aracılar için, görmeleri gereken tablolara SELECT verin ve bunu neon_superuser öğesine eklemeyin. create_postgres_role, access: "read_only" ile birlikte, roleName içermeyen bir bağlantıdan böyle bir rol oluşturur; access olmadan oluşturduğu roller neon_superuser öğesine katılır.
  • OAuth: MCP URL'sindeki roleName sabit bir yetkilendirme verir. Yetkilendirme sayfasında rol gösterilir ve verilen belirteç, yenileme boyunca bu rolü korur. URL'yi daha sonra değiştirmek belirteci değiştirmez; yeniden yetkilendirin. Varsayılan URL'de (düzenlenebilir izin ekranı) bunun yerine rolü isteğe bağlı Postgres role alanına girin; veritabanı sahibi rolünü korumak için alanı boş bırakın. Bu seçenekten önce verilen belirteçlerde sabitlenmiş rol yoktur ve önceki gibi çalışırlar.
  • API key: Rol, her istekte URL'den okunur. Bağlantı URL'sini düzenleyebilen ve API anahtarına sahip olan herkes rolü değiştirebilir veya kaldırabilir; bu nedenle URL'yi aracının denetleyemediği bir yapılandırmada tutun.
  • Sabitleme yalnızca SQL bağlantıları için geçerlidir. Yönetim API araçları, API anahtarının veya OAuth belirtecinin kendi erişimiyle çalışmaya devam eder; örneğin compare_database_schema, Neon API tarafından hesaplanır ve rolün izinleriyle sınırlandırılmaz. Bu araçları da sınırlandırmak için roleName öğesini readonly=true ve category ile birlikte kullanın.

Herhangi bir yapılandırmada hangi araçların görünür olduğunu, kimlik doğrulaması gerektirmeyen /api/list-tools uç noktasını kullanarak önizleyebilirsiniz:

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

Ana makine araçları: list_organizations, describe_branch, run_sql, get_database_tables, describe_table_schema, list_slow_queries, explain_sql_statement, inspect_database, get_neon_auth_config, search, fetch, search_docs, get_doc, send_feedback.

GET isteği yapan ve gizli bilgi döndürmeyen oluşturulmuş Yönetim API araçları ile query_logs (POST, salt okunur). Tam kümeyi /api/list-tools?readonly=true ile önizleyin.

Yazma erişimi gerektiren araçlar:

  • Oluşturulmuş Yönetim API yazma işlemleri (create_project, create_branch, delete_project, …)
  • get_connection_string (bağlantı dizesi ayrıcalıklı bir rol parolası içerdiğinden salt okunur modda gizlenir; bunun yerine Neon Console üzerinden kopyalayın)
  • run_sql_transaction (ifadeleri tek bir oturumda çalıştırır; bu nedenle bir COMMIT veya SET TRANSACTION READ WRITE ifadesi salt okunur işlemi sonlandırır)
  • prepare_database_migration, complete_database_migration
  • prepare_query_tuning, complete_query_tuning

Taşıma uyumluluğu

https://mcp.neon.tech/mcp, durumsuz Streamable HTTP kullanır. MCP 2026-07-28 protokolünü ve 2025 dönemi istemcileri için durumsuz bir geri dönüş seçeneğini destekler. Kullanımdan kaldırılmış HTTP+SSE /sse ve /message uç noktaları 410 Gone döndürür.

Streamable HTTP istemcilerini https://mcp.neon.tech/mcp adresine bağlayın. Yalnızca yerel stdio sunucularını destekleyen istemciler için, mcp-remote Streamable HTTP'ye köprü kuracak şekilde istemci yapılandırmasına şunu ekleyin:

{
  "mcpServers": {
    "Neon": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.neon.tech/mcp"]
    }
  }
}

Biçimi bozuk bir Origin başlığı içeren istek 403 Forbidden alır. Web sayfaları, tarayıcı uzantıları, masaüstü webview'ları ve null dahil olmak üzere serileştirilmiş tüm kaynaklar kabul edilir; böylece tarayıcı tabanlı istemciler bağlanabilir. Origin içermeyen istekler etkilenmez.

Uzak Sunucu Mimarisi

Uzak sunucu, Vercel üzerinde mcp.neon.tech adresinde Next.js App Router uygulaması olarak çalışır.

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

Temel uygulama alanları:

  • app/api/[transport]/route.ts: durumsuz Streamable HTTP uç noktası (/mcp)
  • 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, analizler 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

Kılavuzlar

Özellikler

Desteklenen Araçlar

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

Araç Kapsamı Meta Verileri

Her araç tanımı, izin tabanlı araç filtreleme ve izin 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
  • realtime
  • null (kapsam kategorisi olmayan araçlar: search, fetch, send_feedback)

Notlar:

  • Yönetim API araçları @neon/tools kaynağından gelir. Seçiciler SDK yollarıdır (projects.list); yayımlanan MCP adları fiille başlar (list_projects, delete_project, query_logs). Geçmiş adlar, önceden kullanıldıkları yerde 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ı (list_postgres_roles, create_postgres_database, …) içerir. branches için önceden verilmiş bir belirteç bu yazma işlemlerini de kullanabilir. Compute listeleme işlemi ?category=endpoints şeklindedir. Anlık görüntü geri yükleme işlemi ?category=snapshots şeklindedir.
  • Proje üyesi ve izin yazma işlemleri yayımlanmaz. list_project_members ve list_project_permissions okuma işlemleridir.
  • Şema araçları (?category=schema), ana makine araçları get_database_tables ve describe_table_schema ile oluşturulmuş compare_database_schema aracıdır.
  • Salt okunur uygulaması hâlâ readOnlySafe ve sunucu tarafındaki salt okunur mantığına dayanır; scope kategori meta verisidir, tek başına bir okuma/yazma anahtarı değildir.
  • Proje kapsamlı modda (?projectId=...), proje yolu olmayan araçlar (list_projects, count_projects, create_project, get_project_consumption, get_branch_consumption, list_organizations, list_regions, search, fetch, …) gizlenir. delete_project de gizlenir.

Proje Yönetimi:

  • list_projects: Neon projelerini listeler. limit, döndürülen öğe sayısını sınırlar.
  • count_projects: Bir kuruluştaki etkin proje sayısını döndürür. org_id isteğe bağlıdır ve list_projects ile aynı şekilde çözümlenir.
  • describe_project: Neon projesini kimliğine ({ "project_id": "…" }) göre getirir.
  • get_project_consumption, get_branch_consumption: Faturalandırma dönemine göre gruplandırılmış, proje veya dal başına tüketim ölçümleri. org_id, metrics, from, to ve granularity değerlerini alır; Launch, Scale, Agent, Business veya Enterprise planı gerektirir. get_branch_consumption ayrıca project_ids gerektirir, extra_branches_month ve snapshot_storage_bytes_month ölçümlerini reddeder ve Business planında kullanılamaz. Eski plan uç noktası /consumption_history/projects yayımlanmaz.
  • create_project: Neon projesi oluşturur ve varsayılan compute'un hazır olmasını bekler. Bağlantı dizesi döndürmez. Bağımsız değişkenleri { "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şkenleri { "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. Dal adını br-… kimliğine dönüştürmek için kullanın.
  • list_credentials, create_credential, revoke_credential, rotate_credential: Object Storage ve AI Gateway için dala kapsamlandırılmış kimlik bilgileri. reveal bir araç değildir; döndürme işlemi sırları yerinde değiştirir ve idempotent değildir.
  • create_branch: Okuma-yazma compute'u olan bir dal oluşturur ve hazır olana kadar bekler. Bağlantı dizesi döndürmez. Bağımsız değişkenleri { "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'ine ({ "project_id": "…", "branch_id": "br-…" }) sıfırlar. Dal ayrıldığından beri yapılan yazma işlemlerini siler. Dalın alt dalları varsa preserve_under_name gereklidir; bu alt dallar yeni dala taşınır. Yalnızca üst dalın HEAD'i kullanılabilir; belirli bir zamana geri yükleme için restore_snapshot kullanılır.
  • delete_branch: Bir dalı siler ({ "project_id": "…", "branch_id": "br-…" }).
  • describe_branch: Bir daldaki veritabanları, şemalar, tablolar, görünümler ve işlevlerden oluşan bir ağaç getirir.
  • Oluşturulmuş dal araçları, dal adı değil, dal kimliği (br-...) olarak branch_id alır.
  • 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 dal oluşturmak için bu değeri belirtmeyin.

Compute 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 SQL şemasını başka bir daldakiyle karşılaştırır. database_name gereklidir. base_branch_id belirtilmezse üst dal ile karşılaştırır. İsteğe bağlı lsn, timestamp, base_lsn, base_timestamp yalnızca belirli bir zamana yönelik işlemlerde kullanılabilir.

SQL Sorgusu Yürütme:

  • get_connection_string: Veritabanı bağlantı dizenizi döndürür.
  • run_sql: Belirtilen bir Neon veritabanında tek bir SQL sorgusu yürütür. Hem okuma hem de yazma işlemlerini destekler. İsteğe bağlı role_name, veritabanı sahibi yerine belirtilen Postgres rolüyle oturum açar; compute_id ise compute'u seçer. Kimlik bilgileri sunucuda kalır. ?roleName= içeren bir bağlantıda role_name belirtilmemeli veya bu değerle eşleşmelidir.
  • run_sql_transaction: Bir Neon veritabanında tek bir işlem içinde bir dizi SQL sorgusu yürütür. run_sql ile aynı isteğe bağlı role_name ve compute_id değerlerini alır.
  • get_database_tables: Belirtilen bir Neon veritabanındaki tüm tabloları listeler.
  • describe_table_schema: Belirli bir tablonun şema tanımını; sütunları, veri türlerini ve kısıtlamaları ayrıntılı olarak getirir.

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

  • prepare_database_migration: Veritabanı geçişi sürecini başlatır. Önemli olarak, geçişi ana dalı etkilemeden güvenli bir şekilde uygulamak ve test etmek için geçici bir dal oluşturur.
  • complete_database_migration: Hazırlanan veritabanı geçişini tamamlar ve ana dala uygular. Bu işlem, 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ılamasından birini çalıştırır — ilişki ve indeks boyutları, indeks 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, autovacuum ve şişme tahminleri ve çoğaltma durumu. neon inspect db CLI komutuyla aynı kontrolleri yapar. Daldaki tüm veritabanlarını kapsamak için database_name parametresini belirtmeyin; tek bir veritabanını incelemek için adını girin. Bunlardan dördü pg_stat_statements veya neon uzantısını gerektirir.
  • list_slow_queries: Veritabanındaki en yavaş sorguları bulup 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ının ayrıntılı yürütme planlarını sağlar.
  • prepare_query_tuning: Sorgu performansını analiz eder ve indeks 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 bunları iptal ederek sorgu ayarlama işlemini tamamlar. Geçici ayarlama dalını temizler.

Neon Auth (?category=neon_auth):

  • provision_neon_auth, get_auth, disable_auth, update_auth_config
  • get_neon_auth_config: Ana makine aracı; gizli bilgiler sansürlenir. Güvenilir kaynakları, localhost erişimini, e-posta ve parolayı, OAuth sağlayıcılarını, e-posta sağlayıcısını, kuruluşu, sihirli bağlantı ve telefon numarası eklentilerini ve webhook'u okur.
  • update_auth_allow_localhost, update_auth_email_and_password, update_auth_email_provider, send_auth_test_email, update_auth_plugins_organization, update_auth_plugins_magic_link, update_auth_plugins_phone_number, update_auth_webhooks: Bu ayarları değiştirir. update_auth_webhooks, webhook yapılandırmasının tamamını değiştirir.
  • list_auth_oauth_providers, add_auth_oauth_provider, update_auth_oauth_provider, delete_auth_oauth_provider
  • get_auth_oauth_server, update_auth_oauth_server: Neon Auth'u bir OAuth 2.1 yetkilendirme sunucusu olarak yapılandırır (MCP sunucuları için de). Yukarıdaki sosyal oturum açma sağlayıcılarından ayrıdır.
  • list_auth_oauth_clients, get_auth_oauth_client, create_auth_oauth_client, update_auth_oauth_client, delete_auth_oauth_client, rotate_auth_oauth_client_secret: Bu sunucunun OAuth istemcilerini yönetir. create_auth_oauth_client ve rotate_auth_oauth_client_secret, client_secret değerini bir kez döndürür.
  • list_auth_trusted_domains, add_auth_trusted_domain, delete_auth_trusted_domain
  • create_auth_user, delete_auth_user, update_auth_user_role

Neon Data API (?category=data_api):

  • provision_neon_data_api, get_data_api, update_data_api, delete_data_api: Bir dal veritabanının Data API'sini yönetir.

Arama ve Keşif:

  • search: Sorguyla eşleşen kuruluşlarda, projelerde ve dallarda arama yapar. Neon Console'a doğrudan bağlantılarla birlikte kimlikleri ve başlıkları 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 alınır).

Geri Bildirim (oturum açma gerektirmeyen ?category=docs uç noktası da dahil olmak üzere her zaman kullanılabilir):

  • send_feedback: Neon ekibine anonim geri bildirim gönderir. Hesap, proje veya bağlantı ayrıntıları gönderilmez; yalnızca geri bildirim metni iletilir. Mesajlar en fazla 10.000 karakter olabilir.

Gözlemlenebilirlik (?category=observability): Bu araçlar Neon Platform Beta'yı gerektirir ve şu anda yalnızca aws-us-east-2 bölgesindeki projelerde kullanılabilir. Günlük erişimi olmayan bir dal, telemetry_not_enabled nedeni ile HTTP 404 döndürür.

  • query_logs: Bir dal için OpenTelemetry günlüklerini sorgular. Management API'de POST kullanır; bu sunucu tarafından salt okunur olarak değerlendirilir.
  • list_log_fields: Bir dalda değerlerini listeleyebileceğiniz günlük alanlarını listeler.
  • list_log_field_values: Bir dal ve zaman aralığı içinde bir günlük alanının farklı değerlerini listeler.

Belgeler ve Kaynaklar (?category=docs):

  • search_docs: neon.com'da (belgeler, API başvurusu, PostgreSQL öğreticisi, kılavuzlar, SSS, değişiklik günlüğü ve blog) neon.com arama kutusuyla aynı aramayı yapar. query değerini, isteğe bağlı categories parametresini (docs, api, postgresql, guides, faqs, blog, changelog) ve isteğe bağlı limit parametresini (1-40, varsayılan 10) alır. title, url, slug, category, breadcrumb, heading ve excerpt değerlerini içeren, sıralanmış sayfaları döndürür; sayfayı okumak için slug değerini get_doc aracına iletin.
  • get_doc: Bir neon.com sayfasını Markdown olarak getirir. Bir search_docs arama sonucundan alınan slug değerini alır (örneğin docs/guides/prisma veya postgresql/tutorial/inner-join).

İş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

Gerçek Zamanlı (?category=realtime):

  • get_realtime, enable_realtime, disable_realtime: Dalın Realtime durumunu görüntüler, etkinleştirir (isteğe bağlı allowed_origins) ve devre dışı bırakır. Etkinleştirme ve devre dışı bırakma işlemleri, değişiklik uygulanana kadar bekler.
  • get_realtime_secret: Uygulama arka ucunun Realtime belirteçleri oluştururken kullandığı paylaşılan gizli anahtar. Salt okunur modda kullanılamaz.
  • rotate_realtime_secret: Paylaşılan gizli anahtarı değiştirir ve değişiklik uygulanana kadar bekler. İdempotent değildir. Yeni değeri almak için ardından get_realtime_secret çağrısını yapın.

Geçişler

Geçişler, veritabanı şemanızdaki değişiklikleri zaman içinde yönetmenin bir yoludur. Neon MCP sunucusu sayesinde LLM'ler, ayrı "Başlat" (prepare_database_migration) ve "İşle" (complete_database_migration) komutlarıyla geçişleri güvenli bir şekilde gerçekleştirebilir.

"Başlat" komutu bir geçişi alır ve yeni bir geçici dalda çalıştırır. Komut tamamlandığında LLM'ye geçişi bu dalda test etmesi gerektiğini belirtir. LLM daha sonra "İşle" komutunu çalıştırarak geçişi özgün dala uygulayabilir.

Geliştirme

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

Proje Yapısı

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

corepack enable
pnpm install

Araç ekleme hakkında bilgi için CONTRIBUTING.md dosyasına bakın. Araç bağımsız değişkenleri snake_case.

Yerel Geliştirme

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

Lint ve Tür Denetimi

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 gizli anahtarı
KV_URLUpstash Redis URL'si (geçiş kilidi)
OAUTH_DATABASE_URLBelirteç depolama için Postgres URL'si

İsteğe bağlı:

DeğişkenAçıklama
LOG_LEVELWinston günlük düzeyi: error, warn, info (varsayılan), debug, verbose, silly
NEON_MCP_DISABLE_ANALYTICSÜrün analizlerini 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ıya görünen davranışlar için E2E testlerini 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ştirmeyi engelleyen testlerde üçüncü tarafların çalışma süresine güvenmeyin; entegrasyon/birim test katmanlarında harici bağımlılıkları taklit edin.

Dağıtım

Vercel, uzak sunucuyu depo dalı yapılandırmasına göre otomatik olarak dağıtır. Çekme istekleri için önizleme ortamları kullanılabilir.

Telemetri

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

  • Ürün analizleri (Segment): Kimliği doğrulanmış bir hesapla bağlandığınızda sunucu, Neon hesap kimliğinizi, adınızı ve e-posta adresinizi içeren 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. Araç çağrısı olayı; araç adını, kimlik doğrulama yöntemini ve istemciyi içerir, ancak araç bağımsız değişkenlerini veya sorgu sonuçlarını içermez. Hesap olmadan yapılan yalnızca belge araç çağrıları anonim olarak izlenir. Olaylar, Neon'un kendi analiz uç noktası olan track.neon.tech adresine gönderilir.
  • Hata raporlama (Sentry): Beklenmeyen sunucu hataları, yığın izleri ve istek bağlamıyla birlikte raporlanır.

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