Keboola
ทางการสร้างเวิร์กโฟลว์ข้อมูล การผสานรวม และการวิเคราะห์ที่แข็งแกร่งบนแพลตฟอร์มที่ใช้งานง่ายเพียงแพลตฟอร์มเดียว
คุณทำอะไรได้บ้างด้วย Keboola MCP?
- ค้นหาตารางจัดเก็บข้อมูล — ขอให้ผู้ช่วยค้นหาตาราง Keboola โดยตรง และจัดการคำอธิบายตารางหรือบักเก็ต
- สร้างทรานส์ฟอร์เมชัน — สร้างทรานส์ฟอร์เมชัน SQL จากภาษาธรรมชาติ และตรวจสอบการกำหนดค่าของ extractor, writer และ data app
- เรียกใช้และตรวจสอบงาน — เรียกใช้งานคอมโพเนนต์และทรานส์ฟอร์เมชัน จากนั้นดึงรายละเอียดการทำงาน
- จัดการโฟลว์ — สร้างและจัดการไปป์ไลน์เวิร์กโฟลว์โดยใช้ Conditional Flows และ Orchestrator Flows
- ทำงานในสาขาพัฒนา — กำหนดขอบเขตการดำเนินการทั้งหมดให้อยู่ในสาขาพัฒนา เพื่อไม่ให้การเปลี่ยนแปลงกระทบกับระบบจริง
- ค้นหาข้อมูลเมตา — ค้นหา อ่าน และอัปเดตเอกสารประกอบโครงการและข้อมูลเมตาของออบเจ็กต์ด้วยภาษาธรรมชาติ
เอกสาร
Keboola MCP Server
เชื่อมต่อเอเจนต์ AI, ไคลเอ็นต์ MCP (Cursor, Claude, Windsurf, VS Code ...) และผู้ช่วย AI อื่น ๆ ของคุณกับ Keboola เปิดให้เข้าถึงข้อมูล การแปลงข้อมูล คิวรี SQL และการเรียกใช้งานงาน โดยไม่ต้องเขียนโค้ดเชื่อมต่อ ส่งมอบข้อมูลที่เหมาะสมให้เอเจนต์ในเวลาและสถานที่ที่ต้องการ
ภาพรวม
Keboola MCP Server เป็นตัวกลางแบบโอเพนซอร์สระหว่างโปรเจกต์ Keboola ของคุณกับเครื่องมือ AI สมัยใหม่ โดยแปลงฟีเจอร์ของ Keboola เช่น การเข้าถึงพื้นที่จัดเก็บ การแปลงข้อมูลด้วย SQL และการเรียกใช้งานงาน ให้เป็นเครื่องมือที่เรียกใช้ได้สำหรับ Claude, Cursor, CrewAI, LangChain, Amazon Q และอื่น ๆ
ฟีเจอร์
เมื่อใช้ AI Agent และ MCP Server คุณสามารถทำสิ่งต่อไปนี้ได้:
- พื้นที่จัดเก็บ: คิวรีตารางได้โดยตรง และจัดการคำอธิบายตารางหรือบักเก็ต
- คอมโพเนนต์: สร้าง แสดงรายการ และตรวจสอบตัวดึงข้อมูล ตัวเขียน แอปข้อมูล และการกำหนดค่าการแปลงข้อมูล
- SQL: สร้างการแปลงข้อมูลด้วย SQL โดยใช้ภาษาธรรมชาติ
- งาน: เรียกใช้คอมโพเนนต์และการแปลงข้อมูล พร้อมดึงรายละเอียดการทำงานของงาน
- โฟลว์: สร้างและจัดการไปป์ไลน์เวิร์กโฟลว์โดยใช้ Conditional Flows และ Orchestrator Flows
- แอปข้อมูล: สร้าง ปรับใช้ และจัดการ Keboola Data Apps ที่แสดงคิวรีของคุณบนข้อมูลในพื้นที่จัดเก็บ — แอป python-js บนรีโพซิทอรีที่ Keboola จัดการ หรือบนรีโพซิทอรี GitHub ของลูกค้า (โคลนผ่านการเชื่อมต่อ GitHub ขององค์กร โดยไม่มีการจัดเก็บข้อมูลรับรอง) และแอป Streamlit
- เมทาดาทา: ค้นหา อ่าน และอัปเดตเอกสารประกอบของโปรเจกต์และเมทาดาทาของออบเจ็กต์โดยใช้ภาษาธรรมชาติ
- สาขาสำหรับพัฒนา: ทำงานอย่างปลอดภัยในสาขาสำหรับพัฒนาโดยไม่กระทบกับโปรดักชัน โดยการดำเนินการทั้งหมดจะจำกัดอยู่ในสาขาที่เลือก
🚀 เริ่มต้นใช้งานอย่างรวดเร็ว: Remote MCP Server (วิธีที่ง่ายที่สุด)
วิธีที่ง่ายที่สุดในการใช้ Keboola MCP Server คือผ่าน Remote MCP Server โซลูชันที่โฮสต์นี้ช่วยให้ไม่ต้องตั้งค่าในเครื่อง กำหนดค่า หรือติดตั้ง
Remote MCP Server คืออะไร
เซิร์ฟเวอร์ระยะไกลของเราโฮสต์อยู่บนสแต็ก Keboola แบบหลายผู้เช่าทุกแห่ง และรองรับการยืนยันตัวตน OAuth คุณสามารถเชื่อมต่อจากผู้ช่วย AI ใดก็ได้ที่รองรับการเชื่อมต่อ Streamable HTTP ระยะไกลและการยืนยันตัวตน OAuth
วิธีเชื่อมต่อ
- รับ URL ของเซิร์ฟเวอร์ระยะไกล: ไปที่การตั้งค่าโปรเจกต์ Keboola → แท็บ
MCP Server - คัดลอก URL ของเซิร์ฟเวอร์: URL จะมีลักษณะดังนี้
https://mcp.<YOUR_REGION>.keboola.com/mcp - กำหนดค่าผู้ช่วย AI: วาง URL ลงในการตั้งค่า MCP ของผู้ช่วย AI
- ยืนยันตัวตน: ระบบจะแจ้งให้คุณเข้าสู่ระบบด้วยบัญชี Keboola จากนั้นเลือกโปรเจกต์ที่จะใช้งานในบทสนทนา (เช่น "list my Keboola projects" / "use project X")
ไคลเอ็นต์ที่รองรับ
- Cursor: ใช้ปุ่ม "Install In Cursor" ในการตั้งค่า MCP Server ของโปรเจกต์ หรือคลิกปุ่มนี้
- Claude Desktop: เพิ่มการผสานการทำงานผ่าน Settings → Integrations
- Claude Code: ติดตั้งโดยใช้
claude mcp add --transport http keboola <URL>(ดูรายละเอียดด้านล่าง) - Windsurf: กำหนดค่าด้วย URL ของเซิร์ฟเวอร์ระยะไกล
- Make: กำหนดค่าด้วย URL ของเซิร์ฟเวอร์ระยะไกล
- ไคลเอ็นต์ MCP อื่น ๆ: กำหนดค่าด้วย URL ของเซิร์ฟเวอร์ระยะไกล
การตั้งค่า Claude Code
Claude Code เป็นเครื่องมืออินเทอร์เฟซบรรทัดคำสั่งที่ช่วยให้คุณโต้ตอบกับ Claude ผ่านเทอร์มินัลได้ คุณสามารถติดตั้งการผสานการทำงานกับ Keboola MCP Server ได้ด้วยคำสั่งง่าย ๆ
การติดตั้ง:
เรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล โดยแทนที่ <YOUR_REGION> ด้วยรีเจียน Keboola ของคุณ:
claude mcp add --transport http keboola https://mcp.<YOUR_REGION>.keboola.com/mcp
คำสั่งแยกตามรีเจียน:
| รีเจียน | คำสั่งติดตั้ง |
|---|---|
| US Virginia AWS | claude mcp add --transport http keboola https://mcp.keboola.com/mcp |
| US Virginia GCP | claude mcp add --transport http keboola https://mcp.us-east4.gcp.keboola.com/mcp |
| EU Frankfurt AWS | claude mcp add --transport http keboola https://mcp.eu-central-1.keboola.com/mcp |
| EU Ireland Azure | claude mcp add --transport http keboola https://mcp.north-europe.azure.keboola.com/mcp |
| EU Frankfurt GCP | claude mcp add --transport http keboola https://mcp.europe-west3.gcp.keboola.com/mcp |
การใช้งาน:
เมื่อติดตั้งแล้ว คุณสามารถใช้ Keboola MCP Server ใน Claude Code ได้โดยพิมพ์ /mcp ในบทสนทนา แล้วเลือกเครื่องมือ Keboola ที่ต้องการใช้
การยืนยันตัวตน:
เมื่อใช้ Keboola MCP Server ใน Claude Code เป็นครั้งแรก หน้าต่างเบราว์เซอร์จะเปิดขึ้นและแจ้งให้คุณ:
- เข้าสู่ระบบด้วยบัญชี Keboola
- อนุญาตการเชื่อมต่อ
หลังจากยืนยันตัวตนแล้ว คุณจะเริ่มใช้เครื่องมือ Keboola ได้โดยตรงจาก Claude Code การเลือกโปรเจกต์จะทำภายหลังในบทสนทนา — เพียงถาม Claude ว่าต้องการใช้โปรเจกต์ Keboola ใดบ้าง
ดูคำแนะนำการตั้งค่าโดยละเอียดและ URL แยกตามรีเจียนได้ที่เอกสารการตั้งค่า Remote Server
การใช้สาขาสำหรับพัฒนา
คุณสามารถทำงานอย่างปลอดภัยในสาขาสำหรับพัฒนาของ Keboola โดยไม่กระทบกับข้อมูลโปรดักชันของคุณ MCP Server ที่โฮสต์จากระยะไกลจะใช้พารามิเตอร์ KBC_BRANCH_ID และจำกัดการดำเนินการทั้งหมดให้อยู่ในสาขาที่ระบุ คุณสามารถดู ID ของสาขาสำหรับพัฒนาได้จาก URL เมื่อไปยังสาขาสำหรับพัฒนาใน UI เช่น https://connection.us-east4.gcp.keboola.com/admin/projects/PROJECT_ID/branch/BRANCH_ID/dashboard ต้องระบุ ID ของสาขาในทุกคำขอโดยใช้เฮดเดอร์ X-Branch-Id: <branchId> มิฉะนั้น MCP Server จะใช้สาขาโปรดักชันเป็นค่าเริ่มต้น ไคลเอ็นต์ AI หรือสภาพแวดล้อมที่จัดการการเชื่อมต่อกับเซิร์ฟเวอร์ควรเป็นผู้จัดการส่วนนี้
การอนุญาตใช้เครื่องมือและการควบคุมการเข้าถึง
เมื่อใช้ทรานสปอร์ตที่ทำงานผ่าน HTTP (Streamable HTTP) คุณสามารถควบคุมเครื่องมือที่ไคลเอ็นต์ใช้ได้โดยใช้เฮดเดอร์ HTTP ซึ่งมีประโยชน์สำหรับการจำกัดความสามารถของเอเจนต์ AI หรือบังคับใช้นโยบายการปฏิบัติตามข้อกำหนด
เฮดเดอร์การอนุญาต
| เฮดเดอร์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
X-Allowed-Tools | รายชื่อเครื่องมือที่อนุญาต คั่นด้วยจุลภาค | get_configs,get_buckets,query_data |
X-Disallowed-Tools | รายชื่อเครื่องมือที่ไม่อนุญาต คั่นด้วยจุลภาค | create_config,run_job |
X-Read-Only-Mode | จำกัดให้ใช้เฉพาะเครื่องมือแบบอ่านอย่างเดียว | true, 1 หรือ yes |
ลักษณะการทำงานของตัวกรอง
ตัวกรองจะทำงานตามลำดับ: เครื่องมือที่อนุญาต → ส่วนตัดกับเครื่องมือแบบอ่านอย่างเดียว → ตัดเครื่องมือที่ไม่อนุญาตออก เฮดเดอร์ว่าง = ไม่มีข้อจำกัด
เครื่องมือแบบอ่านอย่างเดียว
เครื่องมือแบบอ่านอย่างเดียวคือเครื่องมือที่มีคำอธิบายประกอบเป็น readOnlyHint=True เครื่องมือเหล่านี้ดึงข้อมูลเท่านั้น โดยไม่เปลี่ยนแปลงโปรเจกต์ Keboola ของคุณ ดูรายชื่อเครื่องมือแบบอ่านอย่างเดียวปัจจุบันได้ในไฟล์ TOOLS.md ซึ่งเป็นภาพรวมที่สร้างขึ้นโดยอัตโนมัติจากชุดเครื่องมือจริง
ตัวอย่าง: การเข้าถึงแบบอ่านอย่างเดียว
X-Read-Only-Mode: true
การโหลดเครื่องมือแบบเลื่อนเวลา
| เฮดเดอร์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
X-Deferred-Tools | รายชื่อเครื่องมือที่จะแสดงด้วย _meta["anthropic/alwaysLoad"] = false คั่นด้วยจุลภาค | run_sync_action,get_flow_schema |
ไคลเอ็นต์ Claude Code / Claude Agent SDK ที่ลงทะเบียนเซิร์ฟเวอร์ด้วย alwaysLoad: true จะคงเครื่องมือเหล่านี้ไว้เบื้องหลังการค้นหาเครื่องมือ แทนที่จะโหลดคำจำกัดความของเครื่องมือตั้งแต่ต้น เฮดเดอร์นี้เปลี่ยนเฉพาะเมทาดาทา tools/list เท่านั้น ไม่ได้ซ่อนหรืออนุญาตให้ใช้เครื่องมือ เฮดเดอร์ว่างหรือชื่อเครื่องมือที่ไม่รู้จัก = ไม่มีการเปลี่ยนแปลง
ดูเอกสารโดยละเอียดได้ที่ developers.keboola.com/integrate/mcp/#tool-authorization-and-access-control
ความปลอดภัยระดับแถวและระดับคอลัมน์
นโยบายระดับแถวและระดับคอลัมน์เป็นออบเจ็กต์ของ Keboola Metastore (rls-policy, cls-policy) ซึ่งเขียนผ่าน Metastore
API (คำสั่ง kbagent rls / kbagent cls ยังไม่มีใน kbagent รุ่นใด) เซิร์ฟเวอร์นี้ไม่อ่านและไม่นำนโยบายเหล่านี้ไปใช้ ในโปรเจกต์ที่มีฟีเจอร์ row-level-security เซิร์ฟเวอร์จะสร้างเวิร์กสเปซ (การกำหนดค่า mcp-workspace-<hex> ของคอมโพเนนต์ keboola.mcp-server-tool) โดยใช้ประเภทการเข้าสู่ระบบ Connection เป็น governed เวิร์กสเปซที่อยู่ภายใต้การกำกับดูแลจะไม่มีข้อมูลรับรอง: มีเพียง Query Service เท่านั้นที่อ่านได้ และ Query Service จะกรองผลลัพธ์ query_data ทุกรายการตามนโยบายของโปรเจกต์ เซิร์ฟเวอร์นี้ไม่มีการเขียนคำขอใหม่และไม่มีทางเลือกสำรอง: หาก Query Service ปฏิเสธ query_data จะแสดงข้อผิดพลาด
- สิ่งที่ทำให้เปิดใช้งาน ฟีเจอร์ของโปรเจกต์นี้จะถูกตรวจสอบโดยเซิร์ฟเวอร์นี้เท่านั้น Connection ไม่จำเป็นต้องมีฟีเจอร์หรือบทบาทใดเพื่อสร้าง workspace ที่อยู่ภายใต้การกำกับดูแล (Snowflake หรือ BigQuery โดยไม่มี public key) Connection ของ stack ต้องรองรับประเภทการเข้าสู่ระบบ
governedสำหรับ backend ของโปรเจกต์: หาก stack ไม่รองรับ การสร้างจะถูกปฏิเสธ และเครื่องมือทุกตัวที่ต้องใช้ workspace ก็จะทำงานล้มเหลว (ไม่มีการย้อนกลับไปใช้ workspace ทั่วไป) ยังไม่มีการตรวจสอบการบังคับใช้นี้บน BigQuery แบบครบวงจรใน stack สำหรับใช้งานจริง ระบบจะไม่ลบ MCP workspace ทั่วไปที่เก่ากว่า แต่จะข้าม workspace นั้นทันทีเมื่อเปิดฟีเจอร์นี้ เมื่อเปิดฟีเจอร์แล้ว จะยอมรับการปักหมุดworkspace_schemaหรือX-Workspace-Idเฉพาะสำหรับ workspace ที่อยู่ภายใต้การกำกับดูแลเท่านั้น (workspace ทั่วไปจะอ่านข้ามนโยบายได้) ดังนั้นระบบจะปฏิเสธการปักหมุดไปยัง workspace เก่า หรือ workspace ทั่วไปของ data app เอง ให้ลบ workspace เก่า - ปฏิเสธโดยปริยาย ตารางที่ไม่มีทั้ง
rls-policyและcls-policyครอบคลุม จะถูกปฏิเสธสำหรับผู้ดูแลระบบ (agent จะเห็นRow-level security does not allow this query) และจะอ่านได้เป็นไม่มีแถวสำหรับผู้อ่านทั่วไป เช่น ผู้ใช้ปลายทางของ data app (กฎ"*"จะเปิดตารางให้ผู้อ่านที่ระบุตัวตนได้ทุกคน) มีเพียงcls-policyอย่างเดียวก็เปิดตารางของกฎนั้นได้ โดยเปิดทุกแถวแต่เฉพาะคอลัมน์ที่กำหนด สำหรับผู้อ่านที่ระบุชื่อไว้เท่านั้น ส่วนผู้อ่านอื่นจะถูกปฏิเสธ คำสั่งที่ไม่อ่านตารางใดเลย (SELECT 1) จะทำงานได้ - คำสั่งที่ถูกปฏิเสธ คำสั่งที่อยู่ภายใต้การกำกับดูแลจะถูกปฏิเสธ (403 โดยใช้ข้อความทั่วไปเดียวกันไม่ว่าจะด้วยเหตุผลใด) เมื่อใช้
IDENTIFIER(),TABLE()นอกFROM, ฟังก์ชัน AI (AI_*, BigQueryAI.*),TO_FILE,READ_CSV/READ_PARQUET,SECRET, ฟังก์ชันบริบทเซสชัน (CURRENT_USER,CURRENT_ROLE,CURRENT_STATEMENT, ...),NEXTVAL,$xหรือ@@x, อักขระควบคุม หรือชื่อที่ไม่ใส่เครื่องหมายอัญประกาศซึ่งมีอักขระที่ไม่ใช่ ASCII หรือ$$หรือเมื่อมีขนาดเกิน 32 KiB, 200 CTE หรือการอ้างอิงตาราง 300 รายการCURRENT_DATE,CURRENT_TIMEและCURRENT_TIMESTAMPยังคงใช้ได้ (ณ Query Service 1.25 และ policy engine 0.1.8) ข้อผิดพลาด 503Row-level security could not be applied to this workspaceหมายความว่าไม่มีการทำงานใดเกิดขึ้น เพราะไม่สามารถใช้นโยบายได้ ซึ่งอาจเกิดขึ้นชั่วคราว คำสั่งที่อยู่ภายใต้การกำกับดูแลและทำงานล้มเหลวจะส่งคืนThe statement failed. Its error text is not shown for a workspace with row-level security - ผู้อ่านคือใคร Query Service จะระบุผู้อ่านจากโทเค็นของโปรเจกต์ที่ผู้ดูแลระบบใช้เอง ได้แก่ โทเค็นแบบ programmatic ที่เซิร์ฟเวอร์นี้ส่งต่อ (
kbc_at_/kbc_pat_รวมถึง child PAT ของขอบเขตหลายโปรเจกต์ ซึ่งส่งมาพร้อมX-KBC-ProjectId) หรือ Storage token หลักของผู้ดูแลระบบเอง โทเค็นอื่นใด (integration, data app, Kai) จะไม่ระบุผู้ใช้ปลายทาง ไม่มีข้อมูลยืนยันตัวตนที่ตรวจสอบได้ และอ่านข้อมูลจากตารางที่อยู่ภายใต้การกำกับดูแลไม่ได้ subject ของผู้ดูแลระบบคือkeboola|<adminId>และข้อมูลระบุตัวตนไม่มี groups ดังนั้นกฎของกลุ่มจึงไม่ตรงกัน - การผูกนโยบาย หากไม่มีการผูก workspace จะได้รับนโยบายทั้งหมดของโปรเจกต์ และเซิร์ฟเวอร์นี้จะไม่สร้างการผูกนโยบาย หากต้องการให้ workspace ใช้เฉพาะบางนโยบาย ให้ผูกนโยบายเหล่านั้นกับ KID ของ workspace:
KID:<stack-id>:project-<project-id>:workspace-<workspace-id>(workspace ของ branch เริ่มต้น; workspace ของ branch ยังมีbranch-<branch-id>ก่อนproject) stack id คือค่าที่ Query Service กำหนดค่าไว้ (QUERY_RLS_STACK_IDเช่นdev-keboola-aws-eu-west-1) workspace id อยู่ในผลลัพธ์get_project_infoและออบเจ็กต์ Metastorepolicy-bindingที่มี KID นั้นจะเขียนการผูกนโยบาย (ยังไม่มีการเผยแพร่คำสั่ง kbagent สำหรับการดำเนินการนี้) การผูกนโยบายเป็น allowlist โดยจะเก็บไว้เฉพาะนโยบายที่ระบุ จึงสามารถละนโยบายใดก็ได้ รวมถึงนโยบายระดับองค์กร และทำให้การเข้าถึงผ่อนคลายลง การผูกนโยบายที่ไม่ระบุrls-policyเลยจะลบนโยบายระดับแถวทั้งหมด ดังนั้นตารางที่มีcls-policyที่ยังคงอยู่ครอบคลุมจะเปิดให้เห็นทุกแถว การผูกนโยบายมีผลกับคำสั่งถัดไป และจะไม่ติดตามเซสชันไปยัง workspace อื่น: เซสชันของ branch หรือ workspace ที่สร้างขึ้นใหม่จะมี KID ใหม่และเริ่มต้นด้วยนโยบายทั้งหมดอีกครั้ง - ข้อจำกัด workspace id ของ workspace ที่เซิร์ฟเวอร์ใช้จะเป็นค่า
WORKSPACE_IDที่ data app ได้รับด้วย หากไม่มีการจัดเตรียม workspace แยกให้แอป แอปจะส่งคำสั่งค้นหาด้วยโทเค็นของตนเอง ไม่มีข้อมูลยืนยันตัวตนที่ตรวจสอบได้ และอ่านข้อมูลจากตารางที่อยู่ภายใต้การกำกับดูแลไม่ได้ - ข้อมูลเมตา เครื่องมือข้อมูลเมตาจะแสดงเฉพาะสิ่งที่ Query Service อนุญาตให้ผู้อ่านอ่านได้
get_tablesและsearch(ซึ่งจะไม่ใช้การค้นหาส่วนกลาง เนื่องจากจำนวนที่แสดงรวมตารางที่ซ่อนอยู่) จะไม่แสดงตารางที่ผู้อ่านไม่มีสิทธิ์อ่าน และget_tablesจะแจ้งว่าไม่พบตารางที่ร้องขอด้วย ID ตารางที่มีนโยบายระดับคอลัมน์จะแสดงเฉพาะคอลัมน์ตามนโยบาย (รวมถึงในคีย์หลักและผลลัพธ์ที่searchตรงกัน) ตารางที่อ่านได้จะแสดงโดยไม่มีจำนวนแถวและขนาด เนื่องจากค่าดังกล่าวนับรวมแถวที่นโยบายระดับแถวซ่อนไว้get_bucketsยังคงแสดง bucket ทั้งหมด แต่ไม่แสดงจำนวนตารางและขนาด ซึ่งนับรวมตารางที่ซ่อนอยู่ด้วย ฟีเจอร์นี้ต้องใช้ endpoint ของ Query ServicePOST /api/v1/branches/{branch}/workspaces/{workspace}/rls/scopeและจะปิดกั้นเมื่อเกิดข้อผิดพลาด: เมื่อ Query Service ไม่สามารถระบุได้ เครื่องมือของโปรเจกต์ที่อยู่ภายใต้การกำกับดูแลจะส่งคืนข้อผิดพลาดพร้อมข้อความสั้น ๆ และไม่มีตาราง โปรเจกต์ที่ไม่ได้เปิดฟีเจอร์นี้จะไม่ได้รับผลกระทบและไม่มีการเรียกเพิ่มเติม
การตั้งค่า MCP Server ในเครื่อง (วิธีแบบกำหนดเองหรือสำหรับพัฒนา)
เรียกใช้ MCP server บนเครื่องของคุณเองเพื่อควบคุมและพัฒนาได้อย่างสะดวก เลือกวิธีนี้เมื่อต้องการปรับแต่งเครื่องมือ ดีบักในเครื่อง หรือพัฒนาแบบรวดเร็ว คุณจะติดตั้งเซิร์ฟเวอร์ ยืนยันตัวตน (เข้าสู่ระบบผ่านเบราว์เซอร์ครั้งเดียว โดยไม่ต้องวางโทเค็น) แล้วเริ่มใช้งาน วิธีนี้ให้ความยืดหยุ่นสูงสุด (เครื่องมือแบบกำหนดเอง การบันทึก log ในเครื่อง การพัฒนาแบบออฟไลน์) แต่ต้องตั้งค่าด้วยตนเอง และคุณต้องจัดการการอัปเดตกับข้อมูลลับเอง
เซิร์ฟเวอร์รองรับตัวเลือก transport หลายแบบ ซึ่งเลือกได้โดยระบุอาร์กิวเมนต์ --transport <transport> เมื่อเริ่มเซิร์ฟเวอร์:
stdio- ค่าเริ่มต้นเมื่อไม่ได้ระบุ--transportใช้ standard input/output โดยทั่วไปใช้สำหรับการติดตั้งในเครื่องที่มีไคลเอ็นต์เดียวstreamable-http- เรียกใช้เซิร์ฟเวอร์จากระยะไกลผ่าน HTTP พร้อมช่องทางสตรีมแบบสองทิศทาง ทำให้ไคลเอ็นต์และเซิร์ฟเวอร์แลกเปลี่ยนข้อความกันได้อย่างต่อเนื่อง เชื่อมต่อผ่าน /mcp (เช่น http://localhost:8000/mcp)http-compat- ชื่อเรียกอีกแบบของstreamable-httpซึ่งคงไว้เพื่อความเข้ากันได้ย้อนหลัง
หากต้องการทำงานกับโปรเจกต์ Keboola ของคุณ เซิร์ฟเวอร์ต้องใช้ข้อมูลสองอย่าง ได้แก่ Keboola Region ของคุณ (KBC_STORAGE_API_URL) และวิธี ยืนยันตัวตน วิธีที่แนะนำคือ เข้าสู่ระบบ ผ่านเบราว์เซอร์ครั้งเดียว โดยไม่ต้องสร้าง คัดลอก หรือวางโทเค็น คุณสามารถตั้งค่า KBC_BRANCH_ID เพื่อทำงานภายใน development branch ได้ตามต้องการ
ตัวแปรบางตัวไม่ได้รับค่าจาก request headers:
KBC_STORAGE_API_URL: เซิร์ฟเวอร์ที่เริ่มทำงานพร้อม URL ของ Storage API ของตัวเอง (พารามิเตอร์--api-urlหรือ environment variableKBC_STORAGE_API_URL) จะให้บริการเฉพาะ Keboola stack นั้นเท่านั้น หากมี headerX-Storage-Api-Urlที่ขอ host อื่น ระบบจะไม่สนใจ (และบันทึกคำเตือน) โดยเซิร์ฟเวอร์จะใช้ URL ของตัวเองสำหรับ request นั้น หากต้องการให้แต่ละ request เลือก stack ได้ ให้เริ่มเซิร์ฟเวอร์โดยไม่กำหนด URL ของ Storage API เองKBC_KUBERNETES_TOKEN_PATH(เฉพาะเซิร์ฟเวอร์ที่ติดตั้งใช้งานแล้ว ดู docs/kubernetes-sa-auth.md): อ่านค่าจาก environment เท่านั้น ไม่อ่านจาก headerKBC_WORKSPACE_ID/KBC_WORKSPACE_SCHEMA: ทำงานเช่นเดียวกับ URL ของ Storage API ข้างต้น เซิร์ฟเวอร์ที่เริ่มทำงานพร้อมการปักหมุด workspace ของตัวเอง (ผ่านตัวแปรใดตัวแปรหนึ่ง หรือ--workspace-id) จะใช้การปักหมุดนั้นกับทุก request หากมี headerX-Workspace-IdหรือX-Workspace-Schemaที่ขอ workspace อื่น ระบบจะไม่สนใจ (และบันทึกคำเตือน) เซิร์ฟเวอร์ที่ไม่มีการปักหมุดของตัวเอง (กรณีใช้ร่วมกันหลายผู้ใช้) จะยังคงรับการปักหมุดจาก request แยกตามแต่ละ request ตามที่อธิบายไว้ด้านล่าง
การเข้าสู่ระบบ
เข้าสู่ระบบผ่านเบราว์เซอร์เพียงครั้งเดียว เซิร์ฟเวอร์จะจัดเก็บเซสชันและต่ออายุให้อัตโนมัติ คุณจึงไม่ต้องจัดการโทเค็น:
uvx keboola_mcp_server login --api-url https://connection.YOUR_REGION.keboola.com
คำสั่งนี้จะเปิดเบราว์เซอร์เพื่อเข้าสู่ระบบ Keboola จากนั้นบันทึกเซสชันที่ใช้ได้ทั้ง stack ไว้ที่ ~/.keboola/mcp/credentials.json (อ่านได้เฉพาะคุณ โดยมีหนึ่งรายการต่อ stack) หลังจากนั้น ให้เริ่มเซิร์ฟเวอร์โดยตั้งค่าเฉพาะ KBC_STORAGE_API_URL โดยไม่ต้องใช้โทเค็น คุณจะเลือกโปรเจกต์ที่จะทำงานด้วยภายหลังในการสนทนา (get_accessible_projects / set_project_scope) ไม่ใช่ระหว่างเข้าสู่ระบบ
| คำสั่ง | การทำงาน |
|---|---|
login --api-url <url> | เข้าสู่ระบบ stack |
login --force | เข้าสู่ระบบอีกครั้ง / เปลี่ยนบัญชี |
login --show-token | พิมพ์โทเค็นเซสชันปัจจุบัน (สำหรับดีบัก) |
logout [--api-url <url>] [--all] | ลบเซสชันที่จัดเก็บไว้ของ stack (หรือทุก stack) |
เมื่อเริ่มเซิร์ฟเวอร์ผ่าน stdio ในเทอร์มินัลแบบโต้ตอบ โดยไม่มีเซสชันที่จัดเก็บไว้ ระบบจะเข้าสู่ระบบผ่านเบราว์เซอร์โดยอัตโนมัติเมื่อเริ่มครั้งแรก ไคลเอ็นต์ MCP (Claude, Cursor, …) จะเปิดเซิร์ฟเวอร์ในเบื้องหลัง ซึ่งไม่สามารถเปิดเบราว์เซอร์ได้ ดังนั้นให้เรียกใช้ login ด้วยตนเองก่อนหนึ่งครั้ง
เริ่มต้นใช้งานโดยไม่มีบัญชี Keboola
คุณยังสามารถเริ่มเซิร์ฟเวอร์โดยตั้งค่าเฉพาะ KBC_STORAGE_API_URL และไม่ต้องมีข้อมูลรับรองใด ๆ ได้ เซิร์ฟเวอร์จะเริ่มทำงานใน โหมด bootstrap: เครื่องมือที่ต้องเข้าถึง Keboola จะอธิบายวิธีรับข้อมูลรับรอง และมีเครื่องมือหนึ่งที่ทำงานได้โดยไม่ต้องใช้ข้อมูลรับรอง นั่นคือ create_project เครื่องมือนี้จะสร้างโปรเจกต์ Keboola ใหม่ ลงชื่อเข้าใช้เซสชันในโปรเจกต์นั้น และส่งคืน URL สำหรับยืนยัน การเปิด URL นั้นในเบราว์เซอร์และเข้าสู่ระบบจะทำให้โปรเจกต์เป็นของคุณอย่างถาวร ก่อนยืนยัน โปรเจกต์จะเป็นโปรเจกต์ชั่วคราวและ Keboola อาจเรียกคืนได้ เมื่อยืนยันแล้ว เซสชันที่เครื่องมือสร้างขึ้นจะถูกเพิกถอน และคุณจะดำเนินการต่อด้วย login ของคุณเอง
ฟีเจอร์นี้ต้องใช้ stack ที่เปิดใช้งานการจัดเตรียม agent มิฉะนั้นเครื่องมือจะแจ้งว่าไม่พร้อมใช้งาน
คุณสามารถทำแบบเดียวกันได้โดยไม่ต้องเรียกใช้เซิร์ฟเวอร์เลย บน MCP server ที่ โฮสต์จากระยะไกล ซึ่งผู้ให้บริการเปิดใช้งานฟีเจอร์นี้ไว้ (KBC_ALLOW_ANONYMOUS_PROVISIONING): การติดตั้งใช้งานดังกล่าวยังให้บริการ https://mcp.<stack>/mcp-anonymous ซึ่งไม่ต้องใช้ข้อมูลรับรองใด ๆ ตั้งค่าไคลเอ็นต์ให้เชื่อมต่อที่นั่นโดยไม่ต้องยืนยันตัวตน เรียกใช้ create_project แล้วทำงานต่อในโปรเจกต์ที่การเรียกนั้นสร้างขึ้น เซิร์ฟเวอร์จะเก็บข้อมูลรับรองไว้ให้คุณ และเครื่องมือจะส่งคืน scope_token แบบทึบแสงเพื่อให้ส่งซ้ำในการเรียกครั้งต่อ ๆ ไป โดยใช้ URL แยกต่างหาก เพราะ endpoint /mcp ปกติต้องปฏิเสธ request ที่ไม่ยืนยันตัวตนต่อไป การปฏิเสธนี้ทำให้ไคลเอ็นต์ MCP ทราบว่าต้องเริ่มเข้าสู่ระบบ OAuth เมื่อคุณรับสิทธิ์เป็นเจ้าของโปรเจกต์แล้ว ให้เปลี่ยนไปใช้ /mcp และเข้าสู่ระบบด้วยบัญชีที่เป็นเจ้าของโปรเจกต์ในขณะนั้น
การยืนยันตัวตนโดยไม่ใช้เบราว์เซอร์
สำหรับ container หรือ CI ที่ไม่สามารถเข้าสู่ระบบผ่านเบราว์เซอร์ได้ ให้ระบุ access token หรือ personal access token ของ Keboola โดยตรง ตั้งค่า KBC_STORAGE_TOKEN (env var) หรือส่ง header X-StorageAPI-Token พร้อมกับ KBC_PROJECT_ID (หรือ header X-KBC-ProjectId) เพื่อเลือกโปรเจกต์ สำหรับ HTTP transport สามารถส่งค่าเหล่านี้เป็น headers แยกตาม request ได้ ดังนั้นแต่ละ request จึงมีข้อมูลรับรองของตัวเอง
KBC_WORKSPACE_ID
ปักหมุดการค้นหาไปยัง workspace ที่มีอยู่แล้วโดยระบุ ID แทนการค้นหาตาม schema ที่อธิบายไว้ข้างต้น และมีลำดับความสำคัญเหนือ KBC_WORKSPACE_SCHEMA เมื่อกำหนดทั้งสองค่า นี่คือตัวเลือกที่ผู้เรียกจาก Data App / kai-agent ระบุผ่าน header X-Workspace-Id เพื่อให้ Kai ที่ฝังอยู่ในแอปค้นหาผ่าน workspace ของตัวเองเท่านั้น
ตั้งค่าผ่าน environment variable KBC_WORKSPACE_ID, CLI flag --workspace-id หรือ header X-Workspace-Id (ต่อ request สำหรับการติดตั้งใช้งานแบบหลายผู้ใช้)
KBC_WORKSPACE_SCOPE
strict จำกัดเซสชันให้อยู่ใน workspace ที่ปักหมุดไว้ สำหรับ Kai ใน Data App ที่ workspace มี direct-grant input mapping จากนั้นเซสชันจะ:
- แสดงเฉพาะ
query_data,get_buckets,get_tables,get_project_infoและdocs_queryไม่ว่า authorization headers จะระบุไว้อย่างไร (headers เหล่านี้จำกัดรายการให้แคบลงได้ แต่ขยายให้กว้างขึ้นไม่ได้) - ไม่ค้นหาหรือสร้าง workspace ที่ MCP จัดการ และไม่กระจายการทำงานข้ามโปรเจกต์
- ปฏิเสธ workspace ที่มีสิทธิ์อ่าน Storage ทั้งหมดแบบอ่านอย่างเดียว และปฏิเสธการแสดงตัวอย่างการกำหนดค่า
ต้องระบุ workspace pin (
KBC_WORKSPACE_ID/X-Workspace-Id) โดยยอมรับเฉพาะค่าstrictเท่านั้น ดังนั้นคำขอจึงสามารถเพิ่มความเข้มงวดให้กับเซสชันได้ แต่ไม่สามารถผ่อนปรนstrictฝั่งเซิร์ฟเวอร์ได้ ตั้งค่าผ่านตัวแปรสภาพแวดล้อมKBC_WORKSPACE_SCOPEหรือระบุในแต่ละคำขอผ่านส่วนหัวX-Workspace-Scope
KBC_STORAGE_API_URL (ภูมิภาค Keboola)
URL API ของภูมิภาค Keboola ขึ้นอยู่กับภูมิภาคที่คุณติดตั้งใช้งาน คุณสามารถตรวจสอบภูมิภาคของคุณได้จาก URL ในเบราว์เซอร์ขณะเข้าสู่ระบบโปรเจกต์ Keboola:
| ภูมิภาค | URL API |
|---|---|
| AWS อเมริกาเหนือ | https://connection.keboola.com |
| AWS ยุโรป | https://connection.eu-central-1.keboola.com |
| Google Cloud EU | https://connection.europe-west3.gcp.keboola.com |
| Google Cloud US | https://connection.us-east4.gcp.keboola.com |
| Azure EU | https://connection.north-europe.azure.keboola.com |
KBC_BRANCH_ID (ไม่บังคับ)
หากต้องการทำงานกับ สาขาพัฒนาของ Keboola โดยเฉพาะ ให้ตั้งค่า ID ของสาขาด้วยพารามิเตอร์ KBC_BRANCH_ID เซิร์ฟเวอร์ MCP จะจำกัดขอบเขตการทำงานไว้ที่สาขาที่ระบุ เพื่อให้แน่ใจว่าการเปลี่ยนแปลงทั้งหมดแยกเป็นอิสระและไม่ส่งผลกระทบต่อสาขา production
- หากไม่ระบุ เซิร์ฟเวอร์จะใช้สาขา production เป็นค่าเริ่มต้น
- สำหรับงานพัฒนา ให้ตั้งค่า
KBC_BRANCH_IDเป็น ID ตัวเลขของสาขาของคุณ (เช่น123456) คุณสามารถดู ID ของสาขาพัฒนาได้จาก URL เมื่อไปยังสาขาพัฒนาใน UI ตัวอย่างเช่นhttps://connection.us-east4.gcp.keboola.com/admin/projects/PROJECT_ID/branch/BRANCH_ID/dashboard - สำหรับการเชื่อมต่อระยะไกล คุณสามารถกำหนดค่าใหม่ในแต่ละคำขอได้ด้วยส่วนหัว HTTP
X-Branch-Id: <branchId>หรือKBC_BRANCH_ID: <branchId>
การติดตั้ง
ตรวจสอบว่าคุณมีสิ่งต่อไปนี้:
- ติดตั้ง Python 3.11 ขึ้นไปแล้ว
- เข้าถึงโปรเจกต์ Keboola ที่มีสิทธิ์ผู้ดูแลระบบ
- ไคลเอ็นต์ MCP ที่ต้องการ (Claude, Cursor ฯลฯ)
หมายเหตุ: ตรวจสอบว่าติดตั้ง uv แล้ว ไคลเอ็นต์ MCP จะใช้โปรแกรมนี้ดาวน์โหลดและเรียกใช้ Keboola MCP Server โดยอัตโนมัติ
การติดตั้ง uv:
macOS/Linux:
#if homebrew is not installed on your machine use:
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install using Homebrew
brew install uv
Windows:
# Using the installer script
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# Or using pip
pip install uv
# Or using winget
winget install --id=astral-sh.uv -e
ดูตัวเลือกการติดตั้งเพิ่มเติมได้ที่ เอกสาร uv อย่างเป็นทางการ
การเรียกใช้ Keboola MCP Server
คุณสามารถใช้ Keboola MCP Server ได้สี่วิธี ขึ้นอยู่กับความต้องการของคุณ:
ตัวเลือก A: โหมดผสานรวม (แนะนำ)
ในโหมดนี้ Claude หรือ Cursor จะเริ่มเซิร์ฟเวอร์ MCP ให้คุณโดยอัตโนมัติ
- เข้าสู่ระบบหนึ่งครั้ง ในเทอร์มินัลเพื่อบันทึกเซสชัน (ไคลเอ็นต์จะเปิดเซิร์ฟเวอร์ในเบื้องหลัง ซึ่งไม่สามารถเปิดเบราว์เซอร์ได้):
uvx keboola_mcp_server login --api-url https://connection.YOUR_REGION.keboola.com - กำหนดค่าไคลเอ็นต์ MCP (Claude/Cursor) ด้วยการตั้งค่าด้านล่าง — ต้องใช้เพียง
KBC_STORAGE_API_URL - ไคลเอ็นต์จะเปิดเซิร์ฟเวอร์ MCP โดยอัตโนมัติเมื่อจำเป็น
การกำหนดค่า Claude Desktop
- ไปที่ Claude (มุมซ้ายบนของหน้าจอ) -> Settings → Developer → Edit Config (หากไม่พบ claude_desktop_config.json ให้สร้างไฟล์นี้)
- เพิ่มการกำหนดค่าต่อไปนี้:
- รีสตาร์ต Claude desktop เพื่อให้การเปลี่ยนแปลงมีผล
{
"mcpServers": {
"keboola": {
"command": "uvx",
"args": ["keboola_mcp_server --transport <transport>"],
"env": {
"KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
"KBC_BRANCH_ID": "your_branch_id_optional"
}
}
}
}
ตำแหน่งไฟล์กำหนดค่า:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
การกำหนดค่า Cursor
- ไปที่ Settings → MCP
- คลิก "+ Add new global MCP Server"
- กำหนดค่าด้วยการตั้งค่าเหล่านี้:
{
"mcpServers": {
"keboola": {
"command": "uvx",
"args": ["keboola_mcp_server --transport <transport>"],
"env": {
"KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
"KBC_BRANCH_ID": "your_branch_id_optional"
}
}
}
}
หมายเหตุ: ใช้ชื่อเซิร์ฟเวอร์ MCP ที่สั้นและสื่อความหมาย เนื่องจากชื่อเครื่องมือแบบเต็มจะประกอบด้วยชื่อเซิร์ฟเวอร์และต้องมีความยาวไม่เกินประมาณ 60 อักขระ ชื่อที่ยาวกว่านี้อาจถูกกรองออกใน Cursor และไม่แสดงให้ Agent เห็น
การกำหนดค่า Cursor สำหรับ Windows WSL
เมื่อเรียกใช้เซิร์ฟเวอร์ MCP จาก Windows Subsystem for Linux ด้วย Cursor AI ให้ใช้การกำหนดค่านี้:
{
"mcpServers": {
"keboola":{
"command": "wsl.exe",
"args": [
"bash",
"-c '",
"export KBC_STORAGE_API_URL=https://connection.YOUR_REGION.keboola.com &&",
"export KBC_BRANCH_ID=your_branch_id_optional &&",
"/snap/bin/uvx keboola_mcp_server --transport <transport>",
"'"
]
}
}
}
ตัวเลือก B: โหมดพัฒนาในเครื่อง
สำหรับนักพัฒนาที่ทำงานกับโค้ดของเซิร์ฟเวอร์ MCP โดยตรง:
- โคลน repository และตั้งค่าสภาพแวดล้อมในเครื่อง
- กำหนดค่า Claude/Cursor ให้ใช้เส้นทาง Python ในเครื่องของคุณ:
{
"mcpServers": {
"keboola": {
"command": "/absolute/path/to/.venv/bin/python",
"args": [
"-m",
"keboola_mcp_server --transport <transport>"
],
"env": {
"KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
"KBC_BRANCH_ID": "your_branch_id_optional"
}
}
}
}
ตัวเลือก C: โหมด CLI ด้วยตนเอง (สำหรับการทดสอบเท่านั้น)
คุณสามารถเรียกใช้เซิร์ฟเวอร์ด้วยตนเองในเทอร์มินัลเพื่อทดสอบหรือแก้ไขข้อบกพร่องได้:
# Sign in once (stores a session under ~/.keboola/mcp), then start the server.
export KBC_STORAGE_API_URL=https://connection.YOUR_REGION.keboola.com
uvx keboola_mcp_server login --api-url "$KBC_STORAGE_API_URL"
uvx keboola_mcp_server --transport streamable-http
หมายเหตุ: โหมดนี้มีไว้สำหรับการแก้ไขข้อบกพร่องหรือการทดสอบเป็นหลัก สำหรับการใช้งานทั่วไปกับ Claude หรือ Cursor คุณไม่จำเป็นต้องเรียกใช้เซิร์ฟเวอร์ด้วยตนเอง
หมายเหตุ: เซิร์ฟเวอร์จะใช้การเชื่อมต่อแบบ Streamable HTTP และรอรับการเชื่อมต่อที่
/mcpบนlocalhost:8000คุณสามารถใช้พารามิเตอร์--portและ--hostเพื่อเปลี่ยนตำแหน่งที่เซิร์ฟเวอร์รอรับการเชื่อมต่อได้
ตัวเลือก D: ใช้ Docker
คอนเทนเนอร์ไม่สามารถเปิดเบราว์เซอร์ได้ ดังนั้นให้ยืนยันตัวตนด้วยโทเค็น (ดู การยืนยันตัวตนโดยไม่ใช้เบราว์เซอร์): ตั้งค่า KBC_STORAGE_TOKEN เป็นโทเค็นการเข้าถึง/โทเค็นการเข้าถึงส่วนบุคคลของ Keboola และตั้งค่า KBC_PROJECT_ID เป็นโปรเจกต์เป้าหมาย (หากใช้ HTTP คุณสามารถส่งส่วนหัว X-StorageAPI-Token / X-KBC-ProjectId ในแต่ละคำขอแทน และไม่ต้องระบุค่าเหล่านี้)
docker pull keboola/mcp-server:latest
docker run \
--name keboola_mcp_server \
--rm \
-it \
-p 127.0.0.1:8000:8000 \
-e KBC_STORAGE_API_URL="https://connection.YOUR_REGION.keboola.com" \
-e KBC_STORAGE_TOKEN="YOUR_KEBOOLA_TOKEN" \
-e KBC_PROJECT_ID="YOUR_PROJECT_ID" \
-e KBC_BRANCH_ID="YOUR_BRANCH_ID_OPTIONAL" \
keboola/mcp-server:latest \
--transport streamable-http \
--host 0.0.0.0
หมายเหตุ: เซิร์ฟเวอร์จะใช้การเชื่อมต่อแบบ Streamable HTTP และรอรับการเชื่อมต่อที่
/mcpบนlocalhost:8000คุณสามารถเปลี่ยน-pเพื่อแมปพอร์ตของคอนเทนเนอร์ไปยังตำแหน่งอื่นได้
ฉันต้องเริ่มเซิร์ฟเวอร์เองหรือไม่?
| สถานการณ์ | ต้องเรียกใช้ด้วยตนเองหรือไม่? | ใช้การตั้งค่านี้ |
|---|---|---|
| ใช้ Claude/Cursor | ไม่ | กำหนดค่า MCP ในการตั้งค่าแอป |
| พัฒนา MCP ในเครื่อง | ไม่ (Claude จะเริ่มให้) | ชี้การกำหนดค่าไปยังเส้นทาง python |
| ทดสอบ CLI ด้วยตนเอง | ใช่ | เรียกใช้ผ่านเทอร์มินัล |
| ใช้ Docker | ใช่ | เรียกใช้คอนเทนเนอร์ docker |
การใช้ MCP Server
เมื่อกำหนดค่าและเรียกใช้ไคลเอ็นต์ MCP (Claude/Cursor) แล้ว คุณสามารถเริ่มค้นหาข้อมูลใน Keboola ได้:
ตรวจสอบการตั้งค่า
เริ่มด้วยคำค้นหาง่าย ๆ เพื่อยืนยันว่าทุกอย่างทำงานได้:
What buckets and tables are in my Keboola project?
ตัวอย่างสิ่งที่คุณทำได้
สำรวจข้อมูล:
- "ตารางใดมีข้อมูลลูกค้า?"
- "เรียกใช้คำค้นหาเพื่อหาลูกค้า 10 อันดับแรกตามรายได้"
วิเคราะห์ข้อมูล:
- "วิเคราะห์ข้อมูลยอดขายตามภูมิภาคสำหรับไตรมาสที่ผ่านมา"
- "ค้นหาความสัมพันธ์ระหว่างอายุลูกค้ากับความถี่ในการซื้อ"
ไปป์ไลน์ข้อมูล:
- "สร้างการแปลง SQL ที่รวมตารางลูกค้าและคำสั่งซื้อ"
- "เริ่มงานดึงข้อมูลสำหรับคอมโพเนนต์ Salesforce ของฉัน"
ความเข้ากันได้
การรองรับไคลเอ็นต์ MCP
| ไคลเอ็นต์ MCP | สถานะการรองรับ | วิธีเชื่อมต่อ |
|---|---|---|
| Claude (Desktop และ Web) | ✅ รองรับ | stdio |
| Cursor | ✅ รองรับ | stdio |
| Windsurf, Zed, Replit | ✅ รองรับ | stdio |
| Codeium, Sourcegraph | ✅ รองรับ | Streamable HTTP |
| ไคลเอ็นต์ MCP แบบกำหนดเอง | ✅ รองรับ | Streamable HTTP หรือ stdio |
เครื่องมือที่รองรับ
หมายเหตุ: Agent AI ของคุณจะปรับให้เข้ากับเครื่องมือใหม่โดยอัตโนมัติ
ดูรายการเครื่องมือที่มีทั้งหมด พร้อมคำอธิบายโดยละเอียด พารามิเตอร์ และตัวอย่างการใช้งานได้ที่ TOOLS.md
การแก้ไขปัญหา
ปัญหาที่พบบ่อย
| ปัญหา | วิธีแก้ไข |
|---|---|
| ข้อผิดพลาดในการยืนยันตัวตน | เรียกใช้ keboola_mcp_server login อีกครั้ง (หรือหากยืนยันตัวตนด้วยโทเค็น ให้ตรวจสอบโทเค็นและ KBC_PROJECT_ID) |
| หมดเวลาการเชื่อมต่อ | ตรวจสอบการเชื่อมต่อเครือข่าย |
การพัฒนา
การติดตั้ง
การตั้งค่าพื้นฐาน:
uv sync --extra dev
เมื่อตั้งค่าพื้นฐานแล้ว คุณสามารถใช้ uv run tox เพื่อเรียกใช้การทดสอบและตรวจสอบรูปแบบโค้ดได้
การตั้งค่าที่แนะนำ:
uv sync --extra dev --extra tests --extra integtests --extra codestyle
การตั้งค่าที่แนะนำจะติดตั้งแพ็กเกจสำหรับการทดสอบและตรวจสอบรูปแบบโค้ด ซึ่งช่วยให้ IDE อย่าง VsCode หรือ Cursor ตรวจสอบโค้ดหรือเรียกใช้การทดสอบระหว่างการพัฒนาได้
การทดสอบการผสานรวม
หากต้องการเรียกใช้การทดสอบการผสานรวมในเครื่อง ให้ใช้ uv run tox -e integtests
หมายเหตุ: คุณต้องตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
INTEGTEST_POOL_STORAGE_API_URLINTEGTEST_STORAGE_TOKENSINTEGTEST_STORAGE_TOKEN_STORAGE_BRANCHES
คุณต้องมีโปรเจกต์ Keboola ที่จัดไว้สำหรับการทดสอบการผสานรวมโดยเฉพาะเพื่อรับค่าเหล่านี้
แต่ละเซสชันทดสอบจะสร้าง workspace แบบอ่านอย่างเดียวของตนเอง จึงไม่จำเป็นต้อง
กำหนดค่าสคีมาของ workspace ดู integtests/README.md สำหรับคำแนะนำการตั้งค่าและเอกสารการออกแบบโดยละเอียด
การอัปเดต uv.lock
อัปเดตไฟล์ uv.lock หากคุณเพิ่มหรือลบ dependency นอกจากนี้ควรพิจารณาอัปเดต lock ให้ใช้เวอร์ชัน dependency ที่ใหม่ขึ้นเมื่อสร้างรีลีส (uv lock --upgrade)
การอัปเดตเอกสารเครื่องมือ
เมื่อเปลี่ยนแปลงคำอธิบายเครื่องมือใด ๆ (docstring ในฟังก์ชันเครื่องมือ) คุณต้องสร้างไฟล์เอกสาร TOOLS.md ใหม่เพื่อให้สอดคล้องกับการเปลี่ยนแปลงเหล่านี้:
uv run python -m src.keboola_mcp_server.generate_tool_docs
การเผยแพร่รีลีส
เรา ไม่ได้สร้างรีลีสสำหรับทุก PR ที่ merge แล้ว งานจะถูกรวมเข้ากับ trunk (main)
อย่างต่อเนื่อง และเราจะเผยแพร่เป็นระยะเมื่อทดสอบการเปลี่ยนแปลงร่วมกันอีกครั้งแล้ว —
วิธีนี้ช่วยหลีกเลี่ยงการทำให้การตั้งค่าที่ใช้งานได้ของผู้ใช้เสียหาย
การสร้างรีลีสทำได้โดย push git tag หนึ่งหรือสองรายการ:
vX.Y.Z— รีลีสของ MCP server (ทุกครั้ง)agent-vX.Y.Z— รีลีสของ In Platform Agent (เฉพาะเมื่อมีการเผยแพร่ agent ด้วย)
แท็กใดแท็กหนึ่งจะเรียกใช้ release.yml CI ซึ่งจะสร้างและเผยแพร่ Docker image KaiBench
จะทำงานเฉพาะกับแท็ก vX.Y.Z สำหรับ production เท่านั้น (ไม่ทำงานกับ agent-vX.Y.Z และไม่ทำงานกับ prerelease ของ -dev.) ใช้
สกิล release-notes ซึ่งจะเตรียมบันทึกรีลีสและ PR ฉบับร่าง พร้อมแนะนำขั้นตอนการติดแท็กทั้ง vX.Y.Z และ agent-vX.Y.Z
การสนับสนุนและข้อเสนอแนะ
⭐ วิธีหลักในการขอความช่วยเหลือ รายงานข้อบกพร่อง หรือขอฟีเจอร์ คือ เปิด issue บน GitHub ⭐
ทีมพัฒนาติดตาม issue อย่างใกล้ชิดและจะตอบกลับโดยเร็วที่สุด หากต้องการข้อมูลทั่วไปเกี่ยวกับ Keboola โปรดดูแหล่งข้อมูลด้านล่าง
แหล่งข้อมูล
- เอกสารสำหรับผู้ใช้
- เอกสารสำหรับนักพัฒนา
- แพลตฟอร์ม Keboola
- ตัวติดตาม issue ← ช่องทางติดต่อหลักสำหรับ MCP Server