Kontent.ai
ทางการสร้าง จัดการ และสำรวจเนื้อหาและโมเดลเนื้อหาของคุณโดยใช้ภาษาธรรมชาติในเครื่องมือ AI ที่รองรับ MCP ใดๆ
คุณทำอะไรได้บ้างด้วย Kontent Ai MCP?
- สำรวจโครงสร้างเนื้อหา — ขอให้แสดงรายการประเภทเนื้อหา สนิบเพชร แท็กโซโนมี หรือแอสเซทผ่าน
list-content-types,list-content-type-snippets,list-taxonomy-groupsหรือlist-assets - สร้างและแก้ไขโมเดลเนื้อหา — สั่งให้ผู้ช่วยสร้างประเภทเนื้อหา สนิบเพชร หรือกลุ่มแท็กโซโนมีใหม่ หรืออัปเดตโดยใช้
create-content-type,patch-content-typeหรือpatch-taxonomy-group - จัดการรายการเนื้อหาและรูปแบบต่างๆ — ให้ผู้ช่วยสร้าง อัปเดต ค้นหา หรือดึงรายการเนื้อหาและรูปแบบภาษาต่างๆ โดยใช้
list-content-item-variants,update-content-item-variantหรือsearch-content-item-variants - ควบคุมการเผยแพร่และเวิร์กโฟลว์ — ขอให้เผยแพร่ ยกเลิกการเผยแพร่ กำหนดเวลา หรือย้ายเนื้อหาผ่านขั้นตอนวงจรชีวิตด้วย
publish-content-item-variant,change-content-item-variant-workflow-stepหรือcancel-scheduled-publishing-content-item-variant - จัดการการตั้งค่าสภาพแวดล้อม — สั่งให้ผู้ช่วยจัดการภาษา คอลเลกชัน สเปซ หรือเวิร์กโฟลว์โดยใช้
create-language,patch-collections,create-spaceหรือcreate-workflow
เอกสาร
เซิร์ฟเวอร์ Kontent.ai MCP
ปฏิวัติการดำเนินงานด้านคอนเทนต์ของคุณด้วยเครื่องมือที่ขับเคลื่อนด้วย AI สำหรับ Kontent.ai สร้าง จัดการ และสำรวจคอนเทนต์ที่มีโครงสร้างของคุณผ่านการสนทนาด้วยภาษาธรรมชาติในโปรแกรมแก้ไขที่รองรับ AI ที่คุณชื่นชอบ
เซิร์ฟเวอร์ Kontent.ai MCP ใช้ Model Context Protocol เพื่อเชื่อมต่อโปรเจกต์ Kontent.ai ของคุณกับเครื่องมือ AI เช่น Claude, Cursor และ VS Code ช่วยให้โมเดล AI เข้าใจโครงสร้างคอนเทนต์ของคุณและดำเนินการต่าง ๆ ผ่านคำสั่งภาษาธรรมชาติ
✨ คุณสมบัติหลัก
- 🚀 การสร้างต้นแบบอย่างรวดเร็ว: เปลี่ยนไดอะแกรมของคุณให้เป็นโมเดลคอนเทนต์ที่ใช้งานได้จริงภายในไม่กี่วินาที
- 📈 การแสดงภาพข้อมูล: แสดงภาพโมเดลคอนเทนต์ของคุณในรูปแบบใดก็ได้ที่ต้องการ
สารบัญ
- ✨ คุณสมบัติหลัก
- 🔌 เริ่มต้นใช้งานอย่างรวดเร็ว
- 🛠️ เครื่องมือที่มีให้ใช้งาน
- ⚙️ การกำหนดค่า
- 🔒 ความปลอดภัย
- 🚀 ตัวเลือกการส่งข้อมูล (Transport)
- 💻 การพัฒนา
- สัญญาอนุญาต
🔌 เริ่มต้นใช้งานอย่างรวดเร็ว
🔑 ข้อกำหนดเบื้องต้น
ก่อนที่คุณจะใช้เซิร์ฟเวอร์ MCP ได้ คุณต้องมี:
- บัญชี Kontent.ai - สมัครสมาชิก หากคุณยังไม่มีบัญชี
- โปรเจกต์ - สร้างโปรเจกต์ เพื่อใช้งาน
- คีย์ Management API - สร้างคีย์ พร้อมสิทธิ์ที่เหมาะสม
- รหัสสภาพแวดล้อม (Environment ID) - รับรหัสสภาพแวดล้อมของคุณ
🛠 ตัวเลือกการติดตั้ง
คุณสามารถรันเซิร์ฟเวอร์ Kontent.ai MCP ด้วย npx:
การส่งข้อมูลแบบ STDIO
npx @kontent-ai/mcp-server@latest stdio
การส่งข้อมูลแบบ Streamable HTTP
npx @kontent-ai/mcp-server@latest shttp
🛠️ เครื่องมือที่มีให้ใช้งาน
คู่มือการดำเนินการแบบ Patch
- get-patch-guide – 🚨 จำเป็นก่อนการดำเนินการแบบ patch ใด ๆ รับคู่มือการดำเนินการแบบ patch สำหรับ Kontent.ai ตามประเภทเอนทิตี
การจัดการประเภทคอนเทนต์
- get-content-type – รับประเภทคอนเทนต์ Kontent.ai ตาม ID
- list-content-types – รับประเภทคอนเทนต์ Kontent.ai ทั้งหมด
- create-content-type – สร้างประเภทคอนเทนต์ Kontent.ai ใหม่
- patch-content-type – อัปเดตประเภทคอนเทนต์ Kontent.ai ที่มีอยู่ตาม codename โดยใช้การดำเนินการแบบ patch (move, addInto, remove, replace)
- delete-content-type – ลบประเภทคอนเทนต์ Kontent.ai ตาม ID
การจัดการสไนปเปตประเภทคอนเทนต์
- get-content-type-snippet – รับสไนปเปตประเภทคอนเทนต์ Kontent.ai ตาม ID
- list-content-type-snippets – รับสไนปเปตประเภทคอนเทนต์ Kontent.ai ทั้งหมด
- create-content-type-snippet – สร้างสไนปเปตประเภทคอนเทนต์ Kontent.ai ใหม่
- patch-content-type-snippet – อัปเดตสไนปเปตประเภทคอนเทนต์ Kontent.ai ที่มีอยู่ตาม ID โดยใช้การดำเนินการแบบ patch (move, addInto, remove, replace)
- delete-content-type-snippet – ลบสไนปเปตประเภทคอนเทนต์ Kontent.ai ตาม ID
การจัดการแท็กโซโนมี
- get-taxonomy-group – รับกลุ่มแท็กโซโนมี Kontent.ai ตาม ID
- list-taxonomy-groups – รับกลุ่มแท็กโซโนมี Kontent.ai ทั้งหมด
- create-taxonomy-group – สร้างกลุ่มแท็กโซโนมี Kontent.ai ใหม่
- patch-taxonomy-group – อัปเดตกลุ่มแท็กโซโนมี Kontent.ai โดยใช้การดำเนินการแบบ patch (addInto, move, remove, replace)
- delete-taxonomy-group – ลบกลุ่มแท็กโซโนมี Kontent.ai ตาม ID
การจัดการรายการคอนเทนต์
- get-content-item – รับรายการคอนเทนต์ Kontent.ai ตาม ID
- get-content-item-variant – ดึงข้อมูลรายการคอนเทนต์รูปแบบย่อย (variant) ของ Kontent.ai (เวอร์ชันภาษา/คำแปล) คืนค่าเวอร์ชันปัจจุบัน — ฉบับร่างหากมีอยู่ มิฉะนั้นคืนค่าเวอร์ชันที่เผยแพร่แล้ว
- get-published-content-item-variant-version – ดึงข้อมูลเวอร์ชันที่เผยแพร่แล้วของรายการคอนเทนต์รูปแบบย่อยของ Kontent.ai ใช้เมื่อมีเวอร์ชันร่างที่ใหม่กว่าแต่คุณต้องการคอนเทนต์ที่เผยแพร่แล้ว (ออนไลน์) ในปัจจุบัน
- get-content-item-translations – รับคำแปลทั้งหมดของรายการคอนเทนต์ Kontent.ai — ทุกเวอร์ชันภาษา (variant) ของรายการคอนเทนต์เฉพาะ
- list-content-item-variants – แสดงรายการ กรอง และค้นหารายการคอนเทนต์ Kontent.ai พร้อม variant ของรายการคอนเทนต์ (เวอร์ชันภาษา/คำแปล)
- create-content-item – สร้างรายการคอนเทนต์ Kontent.ai ใหม่ (สร้างเฉพาะคอนเทนเนอร์เท่านั้น ใช้ create-content-item-variant เพื่อเพิ่มเวอร์ชันภาษา/คำแปล)
- update-content-item – อัปเดตรายการคอนเทนต์ Kontent.ai ที่มีอยู่ตาม ID รายการคอนเทนต์ต้องมีอยู่แล้ว - เครื่องมือนี้จะไม่สร้างรายการใหม่
- delete-content-item – ลบรายการคอนเทนต์ Kontent.ai ตาม ID
- create-content-item-variant – สร้าง variant ของรายการคอนเทนต์ Kontent.ai โดยกำหนดให้ผู้ใช้ปัจจุบันเป็นผู้มีส่วนร่วม ค่าขององค์ประกอบต้องเป็นไปตามข้อจำกัดและแนวทางที่กำหนดในประเภทคอนเทนต์ ส่งเฉพาะองค์ประกอบที่ต้องการตั้งค่าเท่านั้น องค์ประกอบที่ไม่ส่งจะเริ่มต้นเป็นค่าว่าง
- update-content-item-variant – อัปเดต variant ของรายการคอนเทนต์ Kontent.ai ค่าขององค์ประกอบต้องเป็นไปตามข้อจำกัดและแนวทางที่กำหนดในประเภทคอนเทนต์ ส่งเฉพาะองค์ประกอบที่ต้องการเปลี่ยนแปลง — องค์ประกอบที่ไม่ส่งจะไม่ถูกแก้ไข สำหรับองค์ประกอบ rich-text ที่มีคอมโพเนนต์ ให้ส่งองค์ประกอบทั้งหมด (ค่าพร้อมอาร์เรย์คอมโพเนนต์ที่สมบูรณ์ รวมถึงคอมโพเนนต์ที่ไม่ต้องการแก้ไข)
- create-new-content-item-variant-version – สร้างเวอร์ชันใหม่ของ variant รายการคอนเทนต์ Kontent.ai การดำเนินการนี้จะสร้างเวอร์ชันใหม่ของ variant รายการคอนเทนต์ที่มีอยู่ มีประโยชน์สำหรับการจัดการเวอร์ชันคอนเทนต์และการสร้างฉบับร่างใหม่จากคอนเทนต์ที่เผยแพร่แล้ว
- delete-content-item-variant – ลบ variant ของรายการคอนเทนต์ Kontent.ai
- bulk-get-content-item-variants – ดึงข้อมูลรายการคอนเทนต์ Kontent.ai จำนวนมากพร้อม variant ของรายการคอนเทนต์ตามคู่ของการอ้างอิงรายการและภาษา ใช้หลังจาก list-content-item-variants เพื่อดึงข้อมูลคอนเทนต์แบบเต็มสำหรับคู่รายการ+ภาษาเฉพาะ รายการที่ไม่มี variant ในภาษาที่ต้องการจะคืนค่ารายการโดยไม่มีคุณสมบัติ variant คืนผลลัพธ์แบบแบ่งหน้า (pagination) พร้อม continuation token
- search-content-item-variants – ค้นหาเชิงความหมายที่ขับเคลื่อนด้วย AI เพื่อค้นหาคอนเทนต์ตามความหมายและแนวคิดใน variant ของรายการคอนเทนต์เฉพาะ ใช้สำหรับ: การค้นหาเชิงแนวคิดเมื่อคุณไม่ทราบคำหลักที่แน่นอน มีตัวเลือกการกรองจำกัด (เฉพาะ variant ID)
การจัดการแอสเซท
- get-asset – รับแอสเซท Kontent.ai เฉพาะตาม ID
- list-assets – รับแอสเซท Kontent.ai ทั้งหมด
- update-asset – อัปเดตแอสเซท Kontent.ai ตาม ID
การจัดการโฟลเดอร์แอสเซท
- list-asset-folders – แสดงรายการโฟลเดอร์แอสเซท Kontent.ai ทั้งหมด
- patch-asset-folders – แก้ไขโฟลเดอร์แอสเซท Kontent.ai โดยใช้การดำเนินการแบบ patch (addInto เพื่อเพิ่มโฟลเดอร์ใหม่, rename เพื่อเปลี่ยนชื่อ, remove เพื่อลบโฟลเดอร์)
การจัดการภาษา
- list-languages – รับภาษาทั้งหมดของ Kontent.ai (รวมทั้งภาษาที่ใช้งานอยู่และไม่ใช้งาน - ตรวจสอบคุณสมบัติ is_active)
- create-language – สร้างภาษา Kontent.ai ใหม่ (ภาษาจะถูกสร้างเป็นภาษาที่ใช้งานอยู่เสมอ)
- patch-language – อัปเดตภาษา Kontent.ai โดยใช้การดำเนินการแบบ replace (เฉพาะภาษาที่ใช้งานอยู่เท่านั้นที่สามารถแก้ไขได้ - หากต้องการเปิด/ปิดการใช้งาน ให้ใช้เว็บ UI ของ Kontent.ai)
การจัดการคอลเลกชัน
- list-collections – รับคอลเลกชันทั้งหมดของ Kontent.ai คอลเลกชันกำหนดขอบเขตสำหรับรายการคอนเทนต์ในสภาพแวดล้อมของคุณและช่วยจัดระเบียบคอนเทนต์ตามทีม แบรนด์ หรือโปรเจกต์
- patch-collections – อัปเดตคอลเลกชัน Kontent.ai โดยใช้การดำเนินการแบบ patch (addInto เพื่อเพิ่มคอลเลกชันใหม่, move เพื่อจัดลำดับใหม่, remove เพื่อลบคอลเลกชันที่ว่างเปล่า, replace เพื่อเปลี่ยนชื่อ)
การจัดการพื้นที่ (Space)
- list-spaces – รับพื้นที่ทั้งหมดของ Kontent.ai
- create-space – สร้างพื้นที่ Kontent.ai ใหม่สำหรับจัดการเว็บไซต์หรือช่องทาง
- patch-space – แก้ไขพื้นที่ Kontent.ai โดยใช้การดำเนินการแบบ replace
- delete-space – ลบพื้นที่ Kontent.ai
การจัดการบทบาท
- list-roles – รับบทบาททั้งหมดของ Kontent.ai ต้องใช้แผน Enterprise หรือ Flex พร้อมสิทธิ์ "Manage custom roles"
การจัดการเวิร์กโฟลว์
- list-workflows – รับเวิร์กโฟลว์ทั้งหมดของ Kontent.ai เวิร์กโฟลว์กำหนดขั้นตอนของวงจรชีวิตคอนเทนต์และการเปลี่ยนผ่านระหว่างขั้นตอนเหล่านั้น
- create-workflow – สร้างเวิร์กโฟลว์ Kontent.ai ใหม่พร้อมขั้นตอน การเปลี่ยนผ่าน ขอบเขต และสิทธิ์บทบาทที่กำหนดเอง
- update-workflow – อัปเดตเวิร์กโฟลว์ Kontent.ai ที่มีอยู่ตาม ID แก้ไขขั้นตอน การเปลี่ยนผ่าน ขอบเขต และสิทธิ์บทบาท ไม่สามารถลบขั้นตอนที่กำลังใช้งานอยู่ได้
- delete-workflow – ลบเวิร์กโฟลว์ Kontent.ai ตาม ID เวิร์กโฟลว์ต้องไม่ถูกใช้งานโดยรายการคอนเทนต์ใด ๆ
- change-content-item-variant-workflow-step – เปลี่ยนขั้นตอนเวิร์กโฟลว์ของ variant รายการคอนเทนต์ใน Kontent.ai การดำเนินการนี้ย้าย variant รายการคอนเทนต์ไปยังขั้นตอนที่แตกต่างกันในเวิร์กโฟลว์ ช่วยให้สามารถจัดการวงจรชีวิตคอนเทนต์ เช่น การย้ายคอนเทนต์จากฉบับร่างไปยังการตรวจทาน การตรวจทานไปยังการเผยแพร่ เป็นต้น
- publish-content-item-variant – เผยแพร่หรือกำหนดเวลาการเผยแพร่ variant ของรายการคอนเทนต์ใน Kontent.ai การดำเนินการนี้สามารถเผยแพร่ variant ทันทีหรือกำหนดเวลาให้เผยแพร่ในวันที่และเวลาในอนาคตที่ระบุ พร้อมการระบุเขตเวลาได้
- unpublish-content-item-variant – เลิกเผยแพร่หรือกำหนดเวลาการเลิกเผยแพร่ variant ของรายการคอนเทนต์ใน Kontent.ai การดำเนินการนี้สามารถเลิกเผยแพร่ variant ทันที (ทำให้ไม่สามารถเข้าถึงได้ผ่าน Delivery API) หรือกำหนดเวลาให้เลิกเผยแพร่ในวันที่และเวลาในอนาคตที่ระบุ พร้อมการระบุเขตเวลาได้
- cancel-scheduled-publishing-content-item-variant – ยกเลิกการเผยแพร่ตามกำหนดเวลาของ variant รายการคอนเทนต์ใน Kontent.ai การดำเนินการนี้จะคืนค่า variant ที่ถูกกำหนดเวลาให้เผยแพร่กลับไปยังขั้นตอนเวิร์กโฟลว์ก่อนหน้า ช่วยให้สามารถแก้ไขเพิ่มเติมได้
⚙️ การกำหนดค่า
เซิร์ฟเวอร์รองรับสองโหมด แต่ละโหมดเชื่อมโยงกับวิธีการส่งข้อมูล (transport):
| การส่งข้อมูล | โหมด | การรับรองความถูกต้อง | กรณีการใช้งาน |
|---|---|---|---|
| STDIO | ผู้เช่าเดียว (Single-tenant) | ตัวแปรสภาพแวดล้อม | การสื่อสารในเครื่องกับสภาพแวดล้อม Kontent.ai เดียว |
| Streamable HTTP | หลายผู้เช่า (Multi-tenant) | Bearer token ต่อคำขอ | เซิร์ฟเวอร์ระยะไกล/ที่ใช้ร่วมกันจัดการหลายสภาพแวดล้อม |
โหมดผู้เช่าเดียว (STDIO)
กำหนดค่าข้อมูลรับรองผ่านตัวแปรสภาพแวดล้อม:
| ตัวแปร | คำอธิบาย | จำเป็น |
|---|---|---|
| KONTENT_API_KEY | คีย์ Kontent.ai ของคุณ | ✅ |
| KONTENT_ENVIRONMENT_ID | รหัสสภาพแวดล้อมของคุณ | ✅ |
| appInsightsConnectionString | สตริงการเชื่อมต่อ Application Insights สำหรับเทเลเมทรี | ❌ |
| projectLocation | ตัวระบุตำแหน่งโปรเจกต์สำหรับการติดตามเทเลเมทรี | ❌ |
| manageApiUrl | URL ฐานแบบกำหนดเอง (สำหรับสภาพแวดล้อมพรีวิว) | ❌ |
โหมดหลายผู้เช่า (Streamable HTTP)
สำหรับการส่งข้อมูลแบบ Streamable HTTP ข้อมูลรับรองจะถูกระบุในแต่ละคำขอ:
- รหัสสภาพแวดล้อม เป็นพารามิเตอร์พาธของ URL:
/{environmentId}/mcp - คีย์ API ผ่าน Bearer token ในส่วนหัว Authorization:
Authorization: Bearer <api-key>
วิธีนี้ช่วยให้อินสแตนซ์เซิร์ฟเวอร์เดียวจัดการคำขอสำหรับสภาพแวดล้อม Kontent.ai หลายรายการได้โดยไม่ต้องใช้ตัวแปรสภาพแวดล้อมสำหรับข้อมูลรับรอง
| ตัวแปร | คำอธิบาย | จำเป็น |
|---|---|---|
| PORT | พอร์ตสำหรับการส่งข้อมูลแบบ HTTP (ค่าเริ่มต้นคือ 3001) | ❌ |
| appInsightsConnectionString | สตริงการเชื่อมต่อ Application Insights สำหรับเทเลเมทรี | ❌ |
| projectLocation | ตัวระบุตำแหน่งโปรเจกต์สำหรับการติดตามเทเลเมทรี | ❌ |
| manageApiUrl | URL ฐานแบบกำหนดเอง (สำหรับสภาพแวดล้อมพรีวิว) | ❌ |
🔒 ความปลอดภัย
การฉีดพรอมป์โดยอ้อม (Indirect prompt injection)
คอนเทนต์ที่คืนโดยเซิร์ฟเวอร์นี้ (เช่น องค์ประกอบที่เขียนโดยบรรณาธิการ) อาจมีข้อความที่ LLM ที่เชื่อมต่ออยู่ตีความเป็นคำสั่ง — การฉีดพรอมป์โดยอ้อม เอเจนต์ที่ถูกโจมตีอาจถูกชี้นำให้เรียกใช้เครื่องมือที่ก่อให้เกิดความเสียหาย (ลบ / เลิกเผยแพร่ / เขียนทับ) หรือทำให้ฉบับร่างที่ไม่ได้รับการเผยแพร่รั่วไหล นี่เป็นปัญหาที่เกิดขึ้นทั่วทั้งอุตสาหกรรมและยังไม่ได้รับการแก้ไข ซึ่งเซิร์ฟเวอร์ไม่สามารถแก้ไขได้อย่างน่าเชื่อถือโดยการแปลงคอนเทนต์ที่ส่งคืน ดังนั้นการป้องกันจึงเป็นแบบหลายชั้น:
- ใช้คีย์ Management API แบบสิทธิ์น้อยที่สุด (least-privilege) เซิร์ฟเวอร์จะทำงานด้วยคีย์ที่ได้รับมอบให้เท่านั้น ด้วยคีย์แบบอ่านอย่างเดียว การเรียกที่ทำลายข้อมูลจากเอเจนต์ที่ถูกแย่งชิงจะล้มเหลวที่ขอบเขต API — ซึ่งเป็นการควบคุมที่แข็งแกร่งที่สุด เพราะยังคงมีผลไม่ว่าโมเดลจะมีพฤติกรรมอย่างไร
- ให้มนุษย์อยู่ในวงจรการทำงาน (human in the loop) ทุกเครื่องมือมี MCP annotations — การอ่านข้อมูลคือ
readOnlyHint, เครื่องมือที่สร้างอย่างเดียวเป็นแบบเพิ่มข้อมูล และเครื่องมือที่เขียนทับหรือลบข้อมูลคือdestructiveHint— ซึ่งไคลเอนต์ที่รองรับจะใช้เพื่ออนุมัติการอ่านอัตโนมัติและแจ้งเตือนก่อนการเรียกที่ทำลายข้อมูล ควรรันเซิร์ฟเวอร์กับไคลเอนต์แบบนั้น และหลีกเลี่ยงการตั้งค่า auto-approve แบบ headless กับคีย์ที่เขียนได้ - เพิ่มเกตฝั่งไคลเอนต์หากไคลเอนต์ของคุณรองรับ ไคลเอนต์บางตัว (เช่น hooks ของ Claude Code) ช่วยให้คุณกำหนดให้มีการแจ้งเตือนก่อนที่เครื่องมือที่ทำลายข้อมูลจะทำงานได้อย่างแน่นอน โดยไม่ขึ้นกับโมเดล การตั้งค่านี้ทำในเครื่องของคุณ เซิร์ฟเวอร์ไม่สามารถบังคับได้
สิ่งเหล่านี้เป็นข้อแนะนำ ไม่ใช่การรับประกัน โปรดรายงานปัญหาด้านความปลอดภัยเป็นการส่วนตัวไปที่ security@kontent.ai
🚀 ตัวเลือกการขนส่ง (Transport Options)
📟 STDIO Transport
ในการรันเซิร์ฟเวอร์ด้วย STDIO transport ให้กำหนดค่า MCP client ของคุณด้วย:
{
"kontent-ai-stdio": {
"command": "npx",
"args": ["@kontent-ai/mcp-server@latest", "stdio"],
"env": {
"KONTENT_API_KEY": "<management-api-key>",
"KONTENT_ENVIRONMENT_ID": "<environment-id>"
}
}
}
🌊 Streamable HTTP Transport (หลายผู้เช่า)
Streamable HTTP transport รองรับหลายสภาพแวดล้อมของ Kontent.ai จากอินสแตนซ์เซิร์ฟเวอร์เดียว แต่ละคำขอจะส่งข้อมูลรับรองผ่านพารามิเตอร์ในเส้นทาง URL และการตรวจสอบสิทธิ์แบบ Bearer
เริ่มต้นด้วยการรันเซิร์ฟเวอร์:
npx @kontent-ai/mcp-server@latest shttp
VS Code
สร้างไฟล์ .vscode/mcp.json ในเวิร์กสเปซของคุณ:
{
"servers": {
"kontent-ai-multi": {
"uri": "http://localhost:3001/<environment-id>/mcp",
"headers": {
"Authorization": "Bearer <management-api-key>"
}
}
}
}
สำหรับการกำหนดค่าที่ปลอดภัยพร้อมพรอมต์รับอินพุต:
{
"inputs": [
{
"id": "apiKey",
"type": "password",
"description": "Kontent.ai API Key"
},
{
"id": "environmentId",
"type": "text",
"description": "Environment ID"
}
],
"servers": {
"kontent-ai-multi": {
"uri": "http://localhost:3001/${inputs.environmentId}/mcp",
"headers": {
"Authorization": "Bearer ${inputs.apiKey}"
}
}
}
}
Claude Desktop
อัปเดตไฟล์การกำหนดค่าของ Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
ใช้ mcp-remote เป็นพร็อกซีเพื่อเพิ่ม header การตรวจสอบสิทธิ์:
{
"mcpServers": {
"kontent-ai-multi": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:3001/<environment-id>/mcp",
"--header",
"Authorization: Bearer <management-api-key>"
]
}
}
}
Claude Code
เพิ่มเซิร์ฟเวอร์โดยใช้ CLI:
claude mcp add --transport http kontent-ai-multi \
"http://localhost:3001/<environment-id>/mcp" \
--header "Authorization: Bearer <management-api-key>"
หมายเหตุ: คุณยังสามารถกำหนดค่านี้ใน JSON การตั้งค่าของ Claude Code ด้วยคุณสมบัติ
urlและheaders
[!IMPORTANT] เปลี่ยน
<environment-id>เป็น ID สภาพแวดล้อม Kontent.ai ของคุณ (GUID) และ<management-api-key>เป็นคีย์ของคุณ
💻 การพัฒนา
🛠 การติดตั้งในเครื่อง
# Clone the repository
git clone https://github.com/kontent-ai/mcp-server.git
cd mcp-server
# Install dependencies
npm ci
# Build the project
npm run build
# Start the server
npm run start:stdio # For STDIO transport
npm run start:shttp # For Streamable HTTP transport
# Start the server with automatic reloading (no need to build first)
npm run dev:stdio # For STDIO transport
npm run dev:shttp # For Streamable HTTP transport
📂 โครงสร้างโปรเจกต์
src/- โค้ดต้นฉบับtools/- การใช้งานเครื่องมือ MCPclients/- การตั้งค่าไคลเอนต์ API ของ Kontent.aischemas/- สคีมาการตรวจสอบข้อมูลutils/- ฟังก์ชันยูทิลิตี้errorHandler.ts- การจัดการข้อผิดพลาดมาตรฐานสำหรับเครื่องมือ MCPthrowError.ts- ยูทิลิตี้สำหรับส่งข้อผิดพลาดทั่วไป
server.ts- การตั้งค่าเซิร์ฟเวอร์หลักและการลงทะเบียนเครื่องมือbin.ts- จุดเข้าอินสแตนซ์เดียวที่จัดการ transport ทั้งสองแบบ
🔍 การดีบั๊ก
สำหรับการดีบั๊ก คุณสามารถใช้ MCP inspector:
npx @modelcontextprotocol/inspector -e KONTENT_API_KEY=<key> -e KONTENT_ENVIRONMENT_ID=<env-id> node path/to/build/bin.js
หรือใช้ MCP inspector บนเซิร์ฟเวอร์ streamable HTTP ที่กำลังรันอยู่:
npx @modelcontextprotocol/inspector
สิ่งนี้ให้อินเทอร์เฟซเว็บสำหรับตรวจสอบและทดสอบเครื่องมือที่มีอยู่
📦 กระบวนการเผยแพร่
ในการเผยแพร่เวอร์ชันใหม่:
- เพิ่มเวอร์ชันโดยใช้
npm version [patch|minor|major]- คำสั่งนี้จะอัปเดตpackage.json,package-lock.json, และซิงก์ไปยังserver.json - Push commit ไปยัง branch ของคุณและสร้าง pull request
- Merge pull request
- สร้าง GitHub release ใหม่โดยใช้หมายเลขเวอร์ชันเป็นทั้งชื่อและแท็ก พร้อมใช้บันทึก release ที่สร้างอัตโนมัติ
- การเผยแพร่ release จะทริกเกอร์เวิร์กโฟลว์อัตโนมัติที่เผยแพร่ไปยัง npm และ GitHub MCP registry
License
MIT