Neon MCP Server
ทางการโต้ตอบกับแพลตฟอร์ม Postgres แบบไร้เซิร์ฟเวอร์ของ Neon
เอกสาร
Neon MCP Server
Neon MCP Server เป็นเครื่องมือโอเพนซอร์สที่ให้คุณโต้ตอบกับฐานข้อมูล Neon Postgres ของคุณด้วยภาษาธรรมชาติ
Model Context Protocol (MCP) เป็นโปรโตคอลมาตรฐานที่ออกแบบมาเพื่อจัดการบริบทระหว่างโมเดลภาษาขนาดใหญ่ (LLM) และระบบภายนอก ที่เก็บนี้ให้บริการ MCP Server ระยะไกลสำหรับ Neon
Neon MCP server ทำหน้าที่เป็นสะพานเชื่อมระหว่างคำขอภาษาธรรมชาติกับ Neon API โดยสร้างขึ้นบน MCP มันจะแปลคำขอของคุณเป็นการเรียก API ที่จำเป็น ทำให้คุณสามารถจัดการงานต่างๆ เช่น การสร้างโปรเจกต์และสาขา การรันคิวรี และการดำเนินการย้ายฐานข้อมูลได้อย่างราบรื่น
คุณสมบัติหลักบางประการของ Neon MCP server ได้แก่:
- การโต้ตอบด้วยภาษาธรรมชาติ: จัดการฐานข้อมูล Neon โดยใช้คำสั่งที่เข้าใจง่ายและเป็นธรรมชาติ
- การจัดการฐานข้อมูลที่ง่ายขึ้น: ดำเนินการที่ซับซ้อนโดยไม่ต้องเขียน SQL หรือใช้ Neon API โดยตรง
- การเข้าถึงสำหรับผู้ที่ไม่ใช่นักพัฒนา: ช่วยให้ผู้ใช้ที่มีพื้นฐานทางเทคนิคที่หลากหลายสามารถโต้ตอบกับฐานข้อมูล Neon ได้
- การสนับสนุนการย้ายฐานข้อมูล: ใช้ประโยชน์จากความสามารถในการแยกสาขาของ Neon สำหรับการเปลี่ยนแปลงสคีมาฐานข้อมูลที่เริ่มต้นผ่านภาษาธรรมชาติ
ตัวอย่างเช่น ใน Claude Code หรือ MCP Client ใดๆ คุณสามารถใช้ภาษาธรรมชาติเพื่อทำงานกับ Neon ได้ เช่น:
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
Neon MCP Server มอบความสามารถในการจัดการฐานข้อมูลที่มีประสิทธิภาพผ่านคำขอภาษาธรรมชาติ โปรดตรวจสอบและอนุญาตการดำเนินการที่ LLM ร้องขอก่อนดำเนินการเสมอ ตรวจสอบให้แน่ใจว่าเฉพาะผู้ใช้และแอปพลิเคชันที่ได้รับอนุญาตเท่านั้นที่สามารถเข้าถึง Neon MCP Server ได้Neon MCP Server มีไว้สำหรับการพัฒนาในเครื่องและการผสานรวมกับ IDE เท่านั้น เราไม่แนะนำให้ใช้ Neon MCP Server ในสภาพแวดล้อมการผลิต มันสามารถดำเนินการที่มีประสิทธิภาพซึ่งอาจนำไปสู่การเปลี่ยนแปลงโดยไม่ได้ตั้งใจหรือไม่ได้รับอนุญาต
สำหรับข้อมูลเพิ่มเติม โปรดดู คำแนะนำด้านความปลอดภัยของ MCP →
การตั้งค่า Neon MCP Server
มีตัวเลือกสองสามอย่างสำหรับการตั้งค่า Neon MCP Server:
- การตั้งค่าด่วนด้วย API Key (Cursor, VS Code และ Claude Code): รัน
neonctl@latest initเพื่อกำหนดค่า Neon MCP Server, ทักษะเอเจนต์ และส่วนขยาย VS Code โดยอัตโนมัติด้วยคำสั่งเดียว - Remote MCP Server (การตรวจสอบสิทธิ์แบบ OAuth): เชื่อมต่อกับ MCP server ที่จัดการโดย Neon โดยใช้ OAuth สำหรับการตรวจสอบสิทธิ์ วิธีนี้สะดวกกว่าเพราะไม่จำเป็นต้องจัดการ API key นอกจากนี้ คุณจะได้รับฟีเจอร์และการปรับปรุงล่าสุดโดยอัตโนมัติทันทีที่เผยแพร่
- Remote MCP Server (การตรวจสอบสิทธิ์แบบ API Key): เชื่อมต่อกับ MCP server ที่จัดการโดย Neon โดยใช้ API key สำหรับการตรวจสอบสิทธิ์ วิธีนี้มีประโยชน์หากคุณต้องการเชื่อมต่อเอเจนต์ระยะไกลกับ Neon ในที่ที่ไม่มี OAuth นอกจากนี้ คุณจะได้รับฟีเจอร์และการปรับปรุงล่าสุดโดยอัตโนมัติทันทีที่เผยแพร่
ข้อกำหนดเบื้องต้น
- แอปพลิเคชัน MCP Client
- บัญชี Neon
- Node.js (>= v18.0.0): ดาวน์โหลดจาก nodejs.org
สำหรับการพัฒนา คุณจะต้องใช้ Node.js 22+ (มี pnpm ให้ผ่าน Corepack — รัน corepack enable เพื่อเปิดใช้งาน)
ตัวเลือก 1. การตั้งค่าด่วนด้วย API Key
ไม่ต้องการสร้าง API key ด้วยตนเอง?
รัน neonctl@latest init เพื่อกำหนดค่า Neon MCP Server โดยอัตโนมัติด้วยคำสั่งเดียว:
npx neonctl@latest init
วิธีนี้ใช้ได้กับ Cursor, VS Code (GitHub Copilot) และ Claude Code มันจะตรวจสอบสิทธิ์ผ่าน OAuth สร้าง Neon API key ให้คุณ และกำหนดค่าเอดิเตอร์ของคุณโดยอัตโนมัติ
ตัวเลือก 2. Remote Hosted MCP Server (การตรวจสอบสิทธิ์แบบ OAuth)
เชื่อมต่อกับ MCP server ที่จัดการโดย Neon โดยใช้ OAuth สำหรับการตรวจสอบสิทธิ์ นี่คือการตั้งค่าที่ง่ายที่สุด ไม่ต้องติดตั้งเซิร์ฟเวอร์นี้ในเครื่อง และไม่จำเป็นต้องกำหนดค่า Neon API key ในไคลเอนต์
รันคำสั่งต่อไปนี้เพื่อเพิ่ม Neon MCP Server สำหรับเอเจนต์และเอดิเตอร์ที่ตรวจพบทั้งหมดในพื้นที่ทำงานของคุณ:
npx add-mcp https://mcp.neon.tech/mcp
เพิ่มแฟล็ก -g เพื่อเพิ่ม Neon MCP Server ลงในรายการ MCP server ส่วนกลางแทนที่จะเป็นขอบเขตของโปรเจกต์
หรือคุณสามารถเพิ่มรายการ "Neon" ต่อไปนี้ลงในไฟล์การกำหนดค่า MCP server ของไคลเอนต์ของคุณ (เช่น mcp.json, mcp_config.json):
{
"mcpServers": {
"Neon": {
"type": "http",
"url": "https://mcp.neon.tech/mcp"
}
}
}
Kiro: เพิ่มสิ่งต่อไปนี้ลงในไฟล์การกำหนดค่า Kiro MCP ของคุณ (~/.kiro/settings/mcp.json สำหรับส่วนกลาง หรือ .kiro/settings/mcp.json สำหรับขอบเขตของโปรเจกต์):
{
"mcpServers": {
"Neon": {
"url": "https://mcp.neon.tech/mcp"
}
}
}
หรือใช้ปุ่มติดตั้งในคลิกเดียวที่ด้านบนของ README นี้ สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสาร Kiro MCP
- รีสตาร์ทหรือรีเฟรช MCP client ของคุณ
- หน้าต่าง OAuth จะเปิดขึ้นในเบราว์เซอร์ของคุณ ทำตามคำแนะนำเพื่ออนุญาตให้ MCP client ของคุณเข้าถึงบัญชี Neon ของคุณ
ด้วยการตรวจสอบสิทธิ์แบบ OAuth โดยค่าเริ่มต้น MCP server จะทำงานกับโปรเจกต์ภายใต้บัญชี Neon ส่วนตัวของคุณ ในการเข้าถึงหรือจัดการโปรเจกต์ที่เป็นขององค์กร คุณต้องระบุ
org_idหรือproject_idอย่างชัดเจนในพรอมต์ของคุณไปยัง MCP client
ตัวเลือก 3. Remote Hosted MCP Server (การตรวจสอบสิทธิ์แบบ API Key)
Remote MCP Server ยังรองรับการตรวจสอบสิทธิ์โดยใช้ API key ในส่วนหัว Authorization หากไคลเอนต์ของคุณรองรับ
สร้าง Neon API key ใน Neon Console จากนั้นรันคำสั่งต่อไปนี้เพื่อเพิ่ม Neon MCP Server สำหรับเอเจนต์และเอดิเตอร์ที่ตรวจพบทั้งหมดในพื้นที่ทำงานของคุณ:
npx add-mcp https://mcp.neon.tech/mcp --header "Authorization: Bearer <$NEON_API_KEY>"
หรือคุณสามารถเพิ่มรายการ "Neon" ต่อไปนี้ลงในไฟล์การกำหนดค่า MCP server ของไคลเอนต์ของคุณ (เช่น mcp.json, mcp_config.json):
{
"mcpServers": {
"Neon": {
"type": "http",
"url": "https://mcp.neon.tech/mcp",
"headers": {
"Authorization": "Bearer <$NEON_API_KEY>"
}
}
}
}
ระบุ API key ขององค์กรเพื่อจำกัดการเข้าถึงเฉพาะโปรเจกต์ภายใต้องค์กรนั้น
ขอบเขตและโหมดอ่านอย่างเดียว
Neon MCP รองรับขอบเขต OAuth read, write และ * (* หมายถึงทั้งสองอย่าง) MCP client ของคุณสามารถขอขอบเขตเหล่านี้ได้โดยตรง หรือคุณสามารถเลือกได้ใน UI การอนุญาต OAuth
โหมดอ่านอย่างเดียว จะจำกัดเครื่องมือที่พร้อมใช้งาน โดยปิดใช้งานการดำเนินการเขียน เช่น การสร้างโปรเจกต์ สาขา หรือการรันการย้ายข้อมูล เครื่องมืออ่านอย่างเดียวรวมถึงการแสดงรายการโปรเจกต์ การอธิบายสคีมา การคิวรีข้อมูล และการดูเมตริกประสิทธิภาพ
คุณสามารถตั้งค่าโหมดอ่านอย่างเดียวได้สองวิธี:
- การเลือกขอบเขต OAuth (แนะนำ): ใน OAuth เลือกอ่านอย่างเดียวโดยยกเลิกการเลือก การเข้าถึงแบบเต็ม ใน UI การอนุญาต
- พารามิเตอร์คิวรี
readonly: เพิ่ม?readonly=trueลงใน URL MCP server ของคุณ:
{
"mcpServers": {
"Neon": {
"url": "https://mcp.neon.tech/mcp?readonly=true"
}
}
}
ลักษณะการทำงานของพารามิเตอร์คิวรี:
- โฟลว์ API key:
readonly=trueเป็นวิธีเปิดใช้งานโหมดอ่านอย่างเดียว (ไม่มีการแลกเปลี่ยนขอบเขต OAuth ในโฟลว์นี้) - โฟลว์ OAuth:
readonly=trueจะแทนที่ขอบเขต OAuth หากไม่มี การอ่านอย่างเดียวจะถูกกำหนดโดยขอบเขตที่เลือกใน UI การยินยอม OAuth
ส่วนหัว HTTP เดิม x-read-only ยังรองรับเป็นทางเลือกสำรอง (มีลำดับความสำคัญต่ำกว่าพารามิเตอร์คิวรี)
หมายเหตุ: โหมดอ่านอย่างเดียวจะจำกัดว่า เครื่องมือ ใดที่พร้อมใช้งาน นอกจากนี้ เครื่องมือ
run_sqlยังคงพร้อมใช้งานสำหรับคิวรีแบบอ่านอย่างเดียวเท่านั้น
พารามิเตอร์คิวรี URL สำหรับการควบคุมการเข้าถึง
บริบทการให้สิทธิ์ (หมวดหมู่ขอบเขต, การกำหนดขอบเขตโปรเจกต์, โหมดอ่านอย่างเดียว) ถูกกำหนดค่าผ่านพารามิเตอร์คิวรี URL บน URL MCP server การกำหนดค่าจะเดินทางไปกับทุกคำขอและมีผลทันที — ไม่จำเป็นต้องตรวจสอบสิทธิ์ใหม่
| พารามิเตอร์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
readonly | เปิดใช้งานโหมดอ่านอย่างเดียว (true/false) | ?readonly=true |
category | จำกัดเฉพาะหมวดหมู่เครื่องมือที่ระบุ (ซ้ำหรือ CSV) | ?category=querying&category=schema |
projectId | กำหนดขอบเขตการดำเนินการทั้งหมดไปยังโปรเจกต์เดียว | ?projectId=proj-123 |
ตัวอย่างโหมดอ่านอย่างเดียว + ขอบเขตโปรเจกต์:
{
"mcpServers": {
"Neon": {
"url": "https://mcp.neon.tech/mcp?readonly=true&projectId=my-project-id"
}
}
}
ตัวอย่างการกรองตามหมวดหมู่ (เฉพาะเครื่องมือคิวรีและสคีมา):
{
"mcpServers": {
"Neon": {
"url": "https://mcp.neon.tech/mcp?category=querying&category=schema"
}
}
}
คุณสามารถดูตัวอย่างว่าเครื่องมือใดที่มองเห็นได้สำหรับการกำหนดค่าใดๆ โดยใช้ปลายทาง /api/list-tools (ไม่ต้องตรวจสอบสิทธิ์):
curl "https://mcp.neon.tech/api/list-tools?readonly=true&category=querying"
เครื่องมือที่พร้อมใช้งานในโหมดอ่านอย่างเดียว
list_projects,list_shared_projects,describe_project,list_organizationsdescribe_branch,list_branch_computes,compare_database_schemarun_sql,run_sql_transaction,get_database_tables,describe_table_schemalist_slow_queries,explain_sql_statementget_connection_stringsearch,fetch,list_docs_resources,get_doc_resource
เครื่องมือที่ต้องการสิทธิ์การเขียน:
create_project,delete_projectcreate_branch,delete_branch,reset_from_parentprovision_neon_auth,provision_neon_data_apiprepare_database_migration,complete_database_migrationprepare_query_tuning,complete_query_tuning
การขนส่ง Server-Sent Events (SSE) (เลิกใช้แล้ว)
MCP รองรับการขนส่งเซิร์ฟเวอร์ระยะไกลสองแบบ: Server-Sent Events (SSE) ที่เลิกใช้แล้ว และ Streamable HTTP ที่ใหม่กว่าและแนะนำให้ใช้ หาก LLM client ของคุณยังไม่รองรับ Streamable HTTP คุณสามารถเปลี่ยนปลายทางจาก https://mcp.neon.tech/mcp เป็น https://mcp.neon.tech/sse เพื่อใช้ SSE แทน
รันคำสั่งต่อไปนี้เพื่อเพิ่ม Neon MCP Server สำหรับเอเจนต์และเอดิเตอร์ที่ตรวจพบทั้งหมดในพื้นที่ทำงานของคุณโดยใช้การขนส่ง SSE:
npx add-mcp https://mcp.neon.tech/sse --type sse
สถาปัตยกรรมเซิร์ฟเวอร์ระยะไกล
เซิร์ฟเวอร์ระยะไกลทำงานเป็นแอปพลิเคชัน Next.js App Router บน Vercel ที่ mcp.neon.tech
[!NOTE] เส้นทาง root
/เปลี่ยนเส้นทางไปยัง เอกสาร Neon MCP Server ไม่มีหน้า Landing Page
พื้นที่การใช้งานหลัก:
landing/app/api/[transport]/route.ts: ปลายทางการขนส่ง MCP สำหรับ Streamable HTTP (/mcp) และ SSE (/sse)landing/app/api/authorize/,landing/app/callback/,landing/app/api/token/,landing/app/api/revoke/: ปลายทางโฟลว์ OAuthlanding/app/.well-known/: ปลายทางเมตาดาต้าการค้นพบ OAuthlanding/mcp-src/: MCP server, เครื่องมือ, ตัวจัดการ, การวิเคราะห์ และการผสานรวม Sentrylanding/lib/: ตัวช่วยที่เข้ากันได้กับ Next.js (OAuth, การกำหนดค่า, การจัดการข้อผิดพลาด)landing/mcp-src/utils/read-only.ts: การจัดการโหมดอ่านอย่างเดียวและขอบเขต
คู่มือ
- คู่มือ Neon MCP Server
- เชื่อมต่อ MCP Clients กับ Neon
- Cursor กับ Neon MCP Server
- Claude Desktop กับ Neon MCP Server
- Cline กับ Neon MCP Server
- Windsurf กับ Neon MCP Server
- Zed กับ Neon MCP Server
คุณสมบัติ
เครื่องมือที่รองรับ
Neon MCP Server มีการดำเนินการต่อไปนี้ ซึ่งถูกเปิดเผยเป็น "เครื่องมือ" แก่ MCP Clients คุณสามารถใช้เครื่องมือเหล่านี้เพื่อโต้ตอบกับโปรเจกต์และฐานข้อมูล Neon ของคุณโดยใช้คำสั่งภาษาธรรมชาติ
ข้อมูลเมตาขอบเขตเครื่องมือ
แต่ละนิยามเครื่องมือรวมถึงหมวดหมู่ scope ที่ใช้สำหรับการกรองเครื่องมือตามการให้สิทธิ์และ UX การยินยอม หมวดหมู่ปัจจุบันคือ:
projectsbranchesschemaqueryingneon_authdata_apidocsnull(เครื่องมือที่ไม่มีหมวดหมู่ขอบเขต)
หมายเหตุ:
compare_database_schemaถูกจัดหมวดหมู่ภายใต้schemaprovision_neon_data_apiถูกจัดหมวดหมู่ภายใต้data_api(แยกจากneon_auth)- การบังคับใช้การอ่านอย่างเดียวยังคงขึ้นอยู่กับ
readOnlySafeและตรรกะการอ่านอย่างเดียวฝั่งเซิร์ฟเวอร์scopeเป็นข้อมูลเมตาหมวดหมู่ ไม่ใช่สวิตช์อ่าน/เขียนแบบสแตนด์อโลน - ในโหมดขอบเขตโปรเจกต์ (
?projectId=...)searchและfetchจะไม่พร้อมใช้งาน
การจัดการโปรเจกต์:
list_projects: แสดงรายการโปรเจกต์ Neon 10 รายการแรกในบัญชีของคุณ พร้อมสรุปข้อมูลของแต่ละโปรเจกต์ หากไม่พบโปรเจกต์ที่ต้องการ ให้เพิ่มขีดจำกัดโดยส่งค่าที่สูงกว่าไปยังพารามิเตอร์limitlist_shared_projects: แสดงรายการโปรเจกต์ Neon ที่แชร์กับผู้ใช้ปัจจุบัน รองรับพารามิเตอร์ค้นหาและจำกัดจำนวนโปรเจกต์ที่ส่งคืน (ค่าเริ่มต้น: 10)describe_project: ดึงข้อมูลโดยละเอียดของโปรเจกต์ Neon ที่ระบุ รวมถึง ID, ชื่อ, และ branch กับฐานข้อมูลที่เกี่ยวข้องcreate_project: สร้างโปรเจกต์ Neon ใหม่ในบัญชี Neon ของคุณ โปรเจกต์ทำหน้าที่เป็นคอนเทนเนอร์สำหรับ branch, ฐานข้อมูล, roles, และ computesdelete_project: ลบโปรเจกต์ Neon ที่มีอยู่และทรัพยากรที่เกี่ยวข้องทั้งหมดlist_organizations: แสดงรายการองค์กรทั้งหมดที่ผู้ใช้ปัจจุบันมีสิทธิ์เข้าถึง สามารถกรองตามชื่อหรือ ID องค์กรได้โดยใช้พารามิเตอร์ค้นหา
การจัดการ Branch:
create_branch: สร้าง branch ใหม่ภายในโปรเจกต์ Neon ที่ระบุ ใช้ประโยชน์จากฟีเจอร์ การสร้าง branch ของ Neon สำหรับการพัฒนา, ทดสอบ, หรือการย้ายข้อมูลdelete_branch: ลบ branch ที่มีอยู่ออกจากโปรเจกต์ Neondescribe_branch: ดึงรายละเอียดเกี่ยวกับ branch ที่ระบุ เช่น ชื่อ, ID, และ branch หลักlist_branch_computes: แสดงรายการ compute endpoints สำหรับโปรเจกต์หรือ branch ที่ระบุ รวมถึง compute ID, ประเภท, ขนาด, เวลาที่ใช้งานล่าสุด, และข้อมูลการปรับขนาดอัตโนมัติcompare_database_schema: แสดงความแตกต่างของ schema ระหว่าง branch ลูกและ branch หลักreset_from_parent: รีเซ็ต branch ปัจจุบันกลับไปยังสถานะของ branch หลัก โดยละทิ้งการเปลี่ยนแปลงในเครื่อง จะสำรองข้อมูลอัตโนมัติหาก branch มีลูก หรือสามารถเลือกสำรองข้อมูลเมื่อร้องขอด้วยชื่อที่กำหนดเอง
การดำเนินการคำสั่ง SQL:
get_connection_string: ส่งคืนสตริงการเชื่อมต่อฐานข้อมูลของคุณrun_sql: ดำเนินการคำสั่ง SQL เดี่ยวกับฐานข้อมูล Neon ที่ระบุ รองรับทั้งการอ่านและเขียนrun_sql_transaction: ดำเนินการชุดคำสั่ง SQL ภายใน transaction เดียวกับฐานข้อมูล Neonget_database_tables: แสดงรายการตารางทั้งหมดภายในฐานข้อมูล Neon ที่ระบุdescribe_table_schema: ดึงคำจำกัดความ schema ของตารางที่ระบุ โดยให้รายละเอียดคอลัมน์, ชนิดข้อมูล, และข้อจำกัด
การย้ายฐานข้อมูล (การเปลี่ยนแปลง Schema):
prepare_database_migration: เริ่มกระบวนการย้ายฐานข้อมูล ที่สำคัญคือจะสร้าง branch ชั่วคราวเพื่อปรับใช้และทดสอบการย้ายข้อมูลอย่างปลอดภัยก่อนที่จะส่งผลกระทบต่อ branch หลักcomplete_database_migration: สรุปผลและปรับใช้การย้ายฐานข้อมูลที่เตรียมไว้กับ branch หลัก การดำเนินการนี้จะรวมการเปลี่ยนแปลงจาก branch ชั่วคราวสำหรับการย้ายข้อมูลและล้างทรัพยากรชั่วคราว
การค้นหาและเพิ่มประสิทธิภาพ SQL:
list_slow_queries: ระบุคอขวดด้านประสิทธิภาพโดยค้นหาคำสั่งที่ช้าที่สุดในฐานข้อมูล ต้องใช้ส่วนขยาย pg_stat_statementsexplain_sql_statement: ให้แผนการดำเนินการโดยละเอียดสำหรับคำสั่ง SQL เพื่อช่วยระบุคอขวดด้านประสิทธิภาพprepare_query_tuning: วิเคราะห์ประสิทธิภาพของคำสั่งและแนะนำการเพิ่มประสิทธิภาพ เช่น การสร้าง index สร้าง branch ชั่วคราวเพื่อทดสอบการเพิ่มประสิทธิภาพเหล่านี้อย่างปลอดภัยcomplete_query_tuning: สรุปผลการปรับแต่งคำสั่งโดยปรับใช้การเพิ่มประสิทธิภาพกับ branch หลักหรือละทิ้งการเปลี่ยนแปลง ล้าง branch ชั่วคราวสำหรับการปรับแต่ง
Neon Auth:
provision_neon_auth: จัดเตรียม Neon Auth สำหรับโปรเจกต์ Neon ช่วยให้นักพัฒนาสามารถตั้งค่าโครงสร้างพื้นฐานการรับรองความถูกต้องได้อย่างง่ายดายโดยสร้างการผสานรวมกับผู้ให้บริการ Auth
Neon Data API:
provision_neon_data_api: จัดเตรียม Neon Data API สำหรับการเข้าถึงฐานข้อมูลผ่าน HTTP พร้อมการรับรองความถูกต้องด้วย JWT เสริมผ่าน Neon Auth หรือผู้ให้บริการ JWKS ภายนอก
การค้นหาและค้นพบ:
search: ค้นหาทั่วทั้งองค์กร, โปรเจกต์, และ branch ที่ตรงกับคำค้นหา ส่งคืน ID, ชื่อ, และลิงก์ตรงไปยัง Neon Consolefetch: ดึงข้อมูลโดยละเอียดเกี่ยวกับองค์กร, โปรเจกต์, หรือ branch ที่ระบุโดยใช้ ID (โดยทั่วไปมาจากเครื่องมือค้นหา)
เอกสารและทรัพยากร:
list_docs_resources: แสดงรายการหน้าเอกสาร Neon ที่มีอยู่ทั้งหมดโดยดึงดัชนีจากhttps://neon.com/docs/llms.txtส่งคืน URL และชื่อหน้าที่สามารถดึงทีละหน้าได้โดยใช้เครื่องมือget_doc_resourceget_doc_resource: ดึงหน้าเอกสาร Neon ที่ระบุเป็นเนื้อหา markdown ใช้เครื่องมือlist_docs_resourcesก่อนเพื่อค้นหา page slugs ที่มีอยู่ จากนั้นส่ง slug ไปยังเครื่องมือนี้
การย้ายข้อมูล
การย้ายข้อมูลเป็นวิธีจัดการการเปลี่ยนแปลง schema ฐานข้อมูลของคุณเมื่อเวลาผ่านไป ด้วยเซิร์ฟเวอร์ Neon MCP, LLM สามารถทำการย้ายข้อมูลได้อย่างปลอดภัยด้วยคำสั่ง "Start" (prepare_database_migration) และ "Commit" (complete_database_migration) ที่แยกจากกัน
คำสั่ง "Start" รับการย้ายข้อมูลและรันใน branch ชั่วคราวใหม่ เมื่อส่งคืน คำสั่งนี้จะบอกใบ้ให้ LLM ทดสอบการย้ายข้อมูลบน branch นี้ จากนั้น LLM สามารถรันคำสั่ง "Commit" เพื่อปรับใช้การย้ายข้อมูลกับ branch เดิม
การพัฒนา
โปรเจกต์นี้ใช้ pnpm เป็นตัวจัดการแพ็กเกจ ตรึงเวอร์ชันผ่าน Corepack
โครงสร้างโปรเจกต์
โค้ดเซิร์ฟเวอร์ MCP อยู่ในไดเรกทอรี landing/ ซึ่งเป็นแอปพลิเคชัน Next.js ที่ปรับใช้กับ Vercel ที่ mcp.neon.tech
cd landing
corepack enable
pnpm install
การพัฒนาในเครื่อง
# Start the Next.js dev server (for the remote MCP server)
pnpm run dev
การตรวจสอบโค้ดและตรวจสอบชนิดข้อมูล
pnpm run lint
pnpm run typecheck
ตัวแปรสภาพแวดล้อม
จำเป็นสำหรับรันไทม์เซิร์ฟเวอร์ระยะไกล:
| ตัวแปร | คำอธิบาย |
|---|---|
SERVER_HOST | URL เซิร์ฟเวอร์ (ค่าเริ่มต้นคือ VERCEL_URL) |
UPSTREAM_OAUTH_HOST | URL ผู้ให้บริการ Neon OAuth |
CLIENT_ID | OAuth client ID |
CLIENT_SECRET | OAuth client secret |
COOKIE_SECRET | Secret สำหรับ signed cookies |
KV_URL | Vercel KV (Upstash Redis) URL |
OAUTH_DATABASE_URL | Postgres URL สำหรับการจัดเก็บ token |
ตัวเลือกเสริม:
| ตัวแปร | คำอธิบาย |
|---|---|
LOG_LEVEL | ระดับบันทึกของ Winston: error, warn, info (ค่าเริ่มต้น), debug, verbose, silly |
พีระมิดการทดสอบ
การทดสอบทั้งหมดรันจาก landing/
cd landing
# Unit tests
pnpm run test:unit
# Integration tests
pnpm run test:integration
# MCP protocol end-to-end tests (real MCP client/server tool calls)
pnpm run test:e2e:mcp
# Website end-to-end tests (Playwright; provisions/validates ephemeral DB first)
pnpm run test:e2e:web
# Full end-to-end suite
pnpm run test:e2e
# Full test pyramid (unit + integration + e2e; used in CI)
pnpm run test
กลยุทธ์การทดสอบ:
- เน้น E2E สำหรับ transport/protocol และพฤติกรรมที่ผู้ใช้มองเห็น
- ใช้การทดสอบ integration สำหรับสัญญาเครื่องมือที่แน่นอนและพฤติกรรมเวิร์กโฟลว์
- ใช้การทดสอบ unit สำหรับตรรกะล้วนและกรณีขอบ
- หลีกเลี่ยงการพึ่งพาเวลาทำงานของบุคคลที่สามในการทดสอบ merge-gating; จำลองการพึ่งพาภายนอกในระดับ integration/unit
การปรับใช้
Vercel ปรับใช้เซิร์ฟเวอร์ระยะไกลโดยอัตโนมัติจากการกำหนดค่า branch ของที่เก็บ สภาพแวดล้อมตัวอย่างพร้อมใช้งานสำหรับ pull requests