Neon
resmiNeon sunucusuz Postgres platformu ile etkileşim kurun
Neon MCP ile neler yapabilirsiniz?
- Projeler ve dallar oluşturun — Asistandan yeni bir Postgres veritabanı veya
feature-xadlı 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 MCP Server
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.
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:
- 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 initkomutunu çalıştırın. - 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.
- 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.46ve23.22.233.166adreslerini izin listenize ekleyin (mcp.neon.techstatik 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_idveyaproject_idbelirtmeniz 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:
- Varsayılan MCP URL'si (düzenlenebilir izin):
https://mcp.neon.tech/mcpile 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. - Parametreli MCP URL'si (sabit izin): MCP server URL'sine
readonly,projectId,categoryve/veyaroleNameekleyin. 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,readonlyveroleName, yetkilendirme sırasında onaylanan sabit bir izin oluşturur. Bu sayfadareadonly=trueyazma 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_sqlkullanılabilir durumda kalır ve her sorguyu birREAD ONLYişlemi içinde çalıştırır.run_sql_transactionkullanılamaz; her ifadeyirun_sqlile ç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.
| Parametre | Açıklama | Örnek |
|---|---|---|
readonly | Salt okunur modu etkinleştir (true/false) | ?readonly=true |
category | Belirli araç kategorileriyle sınırla (tekrarlı veya CSV) | ?category=querying&category=schema |
projectId | Tüm işlemleri tek bir projeyle sınırla | ?projectId=proj-123 |
roleName | Tü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_stringsabitlenmiş bir bağlantıda kullanılamaz. - Sabitlenmiş rolden farklı bir
role_namearaç 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 yerine400ile 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 tablolaraSELECTverin ve bununeon_superuseröğesine eklemeyin.create_postgres_role,access: "read_only"ile birlikte,roleNameiçermeyen bir bağlantıdan böyle bir rol oluşturur;accessolmadan oluşturduğu rollerneon_superuseröğesine katılır. - OAuth: MCP URL'sindeki
roleNamesabit 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çinroleNameöğesinireadonly=truevecategoryile 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 birCOMMITveyaSET TRANSACTION READ WRITEifadesi salt okunur işlemi sonlandırır)prepare_database_migration,complete_database_migrationprepare_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 entegrasyonulib/: 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
- Neon MCP Server Kılavuzu
- MCP İstemcilerini Neon'a Bağlama
- Neon MCP Server ile Cursor
- Neon MCP Server ile Claude Code
- Neon MCP Server ile Claude Desktop
- Neon MCP Server ile Cline
- Neon MCP Server ile Windsurf
- Neon MCP Server ile Zed
Ö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:
projectsbranchesendpointssnapshotsschemaqueryingneon_authdata_apiobservabilitydocsfunctionsstoragerealtimenull(kapsam kategorisi olmayan araçlar:search,fetch,send_feedback)
Notlar:
- Yönetim API araçları
@neon/toolskaynağı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.branchesiç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_membersvelist_project_permissionsokuma işlemleridir. - Şema araçları (
?category=schema), ana makine araçlarıget_database_tablesvedescribe_table_schemaile oluşturulmuşcompare_database_schemaaracıdır. - Salt okunur uygulaması hâlâ
readOnlySafeve sunucu tarafındaki salt okunur mantığına dayanır;scopekategori 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_projectde 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_idisteğe bağlıdır velist_projectsile 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,tovegranularitydeğerlerini alır; Launch, Scale, Agent, Business veya Enterprise planı gerektirir.get_branch_consumptionayrıcaproject_idsgerektirir,extra_branches_monthvesnapshot_storage_bytes_monthölçümlerini reddeder ve Business planında kullanılamaz. Eski plan uç noktası/consumption_history/projectsyayı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 sonraget_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.revealbir 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çinno_compute: truedeğerini iletin. Başarılı olduktan sonraget_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ı varsapreserve_under_namegereklidir; bu alt dallar yeni dala taşınır. Yalnızca üst dalın HEAD'i kullanılabilir; belirli bir zamana geri yükleme içinrestore_snapshotkullanı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-...) olarakbranch_idalır. restore_snapshot: Bir anlık görüntüyü geri yükler. Mevcut bir dala geri yüklemek içintarget_branch_iddeğ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_schemacompare_database_schema: Bir veritabanının SQL şemasını başka bir daldakiyle karşılaştırır.database_namegereklidir.base_branch_idbelirtilmezse üst dal ile karşılaştırır. İsteğe bağlılsn,timestamp,base_lsn,base_timestampyalnı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_idise compute'u seçer. Kimlik bilgileri sunucuda kalır.?roleName=içeren bir bağlantıdarole_namebelirtilmemeli 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_sqlile aynı isteğe bağlırole_namevecompute_iddeğ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 dbCLI komutuyla aynı kontrolleri yapar. Daldaki tüm veritabanlarını kapsamak içindatabase_nameparametresini belirtmeyin; tek bir veritabanını incelemek için adını girin. Bunlardan dördüpg_stat_statementsveyaneonuzantı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_configget_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_providerget_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_clientverotate_auth_oauth_client_secret,client_secretdeğerini bir kez döndürür.list_auth_trusted_domains,add_auth_trusted_domain,delete_auth_trusted_domaincreate_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.querydeğerini, isteğe bağlıcategoriesparametresini (docs,api,postgresql,guides,faqs,blog,changelog) ve isteğe bağlılimitparametresini (1-40, varsayılan 10) alır.title,url,slug,category,breadcrumb,headingveexcerptdeğerlerini içeren, sıralanmış sayfaları döndürür; sayfayı okumak içinslugdeğeriniget_docaracına iletin.get_doc: Bir neon.com sayfasını Markdown olarak getirir. Birsearch_docsarama sonucundan alınanslugdeğerini alır (örneğindocs/guides/prismaveyapostgresql/tutorial/inner-join).
İşlevler (?category=functions):
list_functions,get_function,update_function,delete_function,deploy_functionlist_functions_custom_domains,register_functions_custom_domain,delete_functions_custom_domainlist_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_bucketlist_storage_objects,delete_storage_object,delete_storage_objects_by_prefixpresign_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ındanget_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şken | Açıklama |
|---|---|
SERVER_HOST | Sunucu URL'si (varsayılan: VERCEL_URL) |
UPSTREAM_OAUTH_HOST | Neon OAuth sağlayıcı URL'si |
CLIENT_ID | OAuth istemci kimliği |
CLIENT_SECRET | OAuth istemci gizli anahtarı |
KV_URL | Upstash Redis URL'si (geçiş kilidi) |
OAUTH_DATABASE_URL | Belirteç depolama için Postgres URL'si |
İsteğe bağlı:
| Değişken | Açıklama |
|---|---|
LOG_LEVEL | Winston 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
identifyolayı 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ı olantrack.neon.techadresine 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.