Kontent.ai
ทางการสร้าง จัดการ และสำรวจเนื้อหาและโมเดลเนื้อหาของคุณโดยใช้ภาษาธรรมชาติในเครื่องมือ AI ที่รองรับ MCP ใดๆ
คุณทำอะไรได้บ้างด้วย Kontent Ai MCP?
- สำรวจโครงสร้างเนื้อหา — ขอให้แสดงรายการประเภทเนื้อหา สนับเพลส กลุ่มแท็กโซโนมี หรือแอสเซ็ตทั้งหมดในโปรเจกต์ Kontent.ai ของคุณ
- สร้างและแก้ไขโมเดลเนื้อหา — สั่งให้ผู้ช่วยสร้างหรือแก้ไขประเภทเนื้อหา สนับเพลส และกลุ่มแท็กโซโนมีโดยใช้การดำเนินการที่บันทึกไว้
- จัดการรายการเนื้อหาและรูปแบบภาษา — ให้ผู้ช่วยสร้าง อัปเดต หรือดึงข้อมูลรายการเนื้อหาและรูปแบบภาษาของรายการเหล่านั้น รวมถึงเวอร์ชันที่เผยแพร่หรือฉบับร่าง
- เผยแพร่และกำหนดเวลาการเผยแพร่เนื้อหา — สั่งให้ผู้ช่วยเผยแพร่ ยกเลิกการเผยแพร่ หรือกำหนดเวลารูปแบบรายการเนื้อหา และจัดการขั้นตอนเวิร์กโฟลว์
- ค้นหาและดึงข้อมูลเนื้อหา — ใช้การค้นหาเชิงความหมายเพื่อค้นหาเนื้อหาตามความหมาย หรือดึงข้อมูลรายการและคู่ภาษาที่เฉพาะเจาะจงเป็นชุด
เอกสาร
เซิร์ฟเวอร์ MCP ของ Kontent.ai
ปรับเปลี่ยนการดำเนินงานด้านคอนเทนต์ของคุณด้วยเครื่องมือที่ขับเคลื่อนด้วย AI สำหรับ Kontent.ai สร้าง จัดการ และสำรวจคอนเทนต์ที่มีโครงสร้างของคุณผ่านการสนทนาด้วยภาษาธรรมชาติในโปรแกรมแก้ไขที่รองรับ AI ที่คุณชื่นชอบ
เซิร์ฟเวอร์ MCP ของ Kontent.ai ใช้ Model Context Protocol เพื่อเชื่อมต่อโปรเจกต์ Kontent.ai ของคุณกับเครื่องมือ AI เช่น Claude, Cursor และ VS Code ช่วยให้โมเดล AI เข้าใจโครงสร้างคอนเทนต์ของคุณและดำเนินการต่างๆ ผ่านคำสั่งภาษาธรรมชาติ
✨ คุณสมบัติหลัก
- 🚀 การสร้างต้นแบบอย่างรวดเร็ว: เปลี่ยนไดอะแกรมของคุณให้เป็นโมเดลคอนเทนต์ที่ใช้งานได้ภายในไม่กี่วินาที
- 📈 การแสดงภาพข้อมูล: แสดงภาพโมเดลคอนเทนต์ของคุณในรูปแบบที่คุณต้องการ
สารบัญ
- ✨ คุณสมบัติหลัก
- 🔌 เริ่มต้นใช้งานอย่างรวดเร็ว
- 🛠️ เครื่องมือที่มีให้ใช้งาน
- ⚙️ การกำหนดค่า
- 🔒 ความปลอดภัย
- 🚀 ตัวเลือกการขนส่ง
- 💻 การพัฒนา
- สัญญาอนุญาต
🔌 เริ่มต้นใช้งานอย่างรวดเร็ว
🔑 ข้อกำหนดเบื้องต้น
ก่อนที่คุณจะใช้เซิร์ฟเวอร์ MCP ได้ คุณต้องมี:
- บัญชี Kontent.ai - ลงทะเบียน หากคุณยังไม่มีบัญชี
- โปรเจกต์ - สร้างโปรเจกต์ เพื่อใช้งาน
- คีย์ Management API - สร้างคีย์ ที่มีสิทธิ์ที่เหมาะสม
- Environment ID - รับ Environment ID ของคุณ
🛠 ตัวเลือกการตั้งค่า
คุณสามารถรันเซิร์ฟเวอร์ MCP ของ Kontent.ai ด้วย npx:
การขนส่งแบบ STDIO
npx @kontent-ai/mcp-server@latest stdio
การขนส่งแบบ 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 ทั้งหมด
- list-content-type-usages – แสดงรายการตำแหน่งที่ใช้ประเภทคอนเทนต์ 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
การจัดการ Taxonomy
- get-taxonomy-group – รับกลุ่ม taxonomy Kontent.ai ตาม ID
- list-taxonomy-groups – รับกลุ่ม taxonomy Kontent.ai ทั้งหมด
- create-taxonomy-group – สร้างกลุ่ม taxonomy Kontent.ai ใหม่
- patch-taxonomy-group – อัปเดตกลุ่ม taxonomy Kontent.ai โดยใช้การดำเนินการ patch (addInto, move, remove, replace)
- delete-taxonomy-group – ลบกลุ่ม taxonomy Kontent.ai ตาม ID
การจัดการรายการคอนเทนต์
- get-content-item – รับรายการคอนเทนต์ Kontent.ai ตาม ID
- get-content-item-variant – ดึงข้อมูล variant ของรายการคอนเทนต์ Kontent.ai (เวอร์ชันภาษา/คำแปล) คืนค่าเวอร์ชันปัจจุบัน — ฉบับร่างหากมีอยู่ มิฉะนั้นจะคืนค่าเวอร์ชันที่เผยแพร่
- get-published-content-item-variant-version – ดึงข้อมูลเวอร์ชันที่เผยแพร่ของ variant รายการคอนเทนต์ 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 คืนผลลัพธ์แบบแบ่งหน้า พร้อม 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 เพื่อเปลี่ยนชื่อ)
การจัดการพื้นที่
- list-spaces – รับพื้นที่ทั้งหมดของ Kontent.ai
- create-space – สร้างพื้นที่ Kontent.ai ใหม่สำหรับจัดการเว็บไซต์หรือช่องทาง
- patch-space – แก้ไขพื้นที่ Kontent.ai โดยใช้การดำเนินการ replace
- delete-space – ลบพื้นที่ Kontent.ai
การจัดการบทบาท
- list-roles – รับบทบาททั้งหมดของ Kontent.ai ต้องมีแผน Enterprise หรือ Flex ที่มีสิทธิ์ "จัดการบทบาทที่กำหนดเอง"
การจัดการเวิร์กโฟลว์
- 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 ที่ถูกกำหนดเวลาเผยแพร่กลับไปยังขั้นตอนเวิร์กโฟลว์ก่อนหน้า ช่วยให้สามารถแก้ไขเพิ่มเติมได้
⚙️ การกำหนดค่า
เซิร์ฟเวอร์รองรับสองโหมด แต่ละโหมดเชื่อมโยงกับการขนส่งของตน:
| การขนส่ง | โหมด | การรับรองความถูกต้อง | กรณีการใช้งาน |
|---|---|---|---|
| STDIO | ผู้เช่ารายเดียว | ตัวแปรสภาพแวดล้อม | การสื่อสารในเครื่องกับสภาพแวดล้อม Kontent.ai เดียว |
| HTTP ที่สตรีมได้ | หลายผู้เช่า | Bearer token ต่อคำขอ | เซิร์ฟเวอร์ระยะไกล/ที่ใช้ร่วมกันจัดการหลายสภาพแวดล้อม |
โหมดผู้เช่ารายเดียว (STDIO)
กำหนดค่าข้อมูลประจำตัวผ่านตัวแปรสภาพแวดล้อม:
| ตัวแปร | คำอธิบาย | จำเป็น |
|---|---|---|
| KONTENT_API_KEY | คีย์ Kontent.ai ของคุณ | ✅ |
| KONTENT_ENVIRONMENT_ID | Environment ID ของคุณ | ✅ |
| appInsightsConnectionString | สตริงการเชื่อมต่อ Application Insights สำหรับ telemetry | ❌ |
| projectLocation | ตัวระบุตำแหน่งโปรเจกต์สำหรับการติดตาม telemetry | ❌ |
| manageApiUrl | URL ฐานที่กำหนดเอง (สำหรับสภาพแวดล้อมตัวอย่าง) | ❌ |
โหมดหลายผู้เช่า (HTTP ที่สตรีมได้)
สำหรับการขนส่งแบบ HTTP ที่สตรีมได้ ข้อมูลประจำตัวจะถูกระบุต่อคำขอ:
- Environment ID เป็นพารามิเตอร์เส้นทาง URL:
/{environmentId}/mcp - คีย์ API ผ่าน Bearer token ในส่วนหัว Authorization:
Authorization: Bearer <api-key>
这使得เซิร์ฟเวอร์อินสแตนซ์เดียวสามารถจัดการคำขอสำหรับสภาพแวดล้อม Kontent.ai หลายรายการได้โดยไม่ต้องใช้ตัวแปรสภาพแวดล้อมข้อมูลประจำตัว
KONTENT_API_KEY และ KONTENT_ENVIRONMENT_ID จะถูกละเว้นในการขนส่งนี้ แม้ว่าจะถูกตั้งค่าในสภาพแวดล้อมของเซิร์ฟเวอร์ก็ตาม ทุกคำขอต้องมีข้อมูลประจำตัวของตัวเอง คำขอที่ไม่มีจะถูกปฏิเสธแทนที่จะให้บริการด้วยข้อมูลของเซิร์ฟเวอร์
| ตัวแปร | คำอธิบาย | จำเป็น |
|---|---|---|
| PORT | พอร์ตสำหรับการขนส่ง HTTP (ค่าเริ่มต้นคือ 3001) | ❌ |
| appInsightsConnectionString | สตริงการเชื่อมต่อ Application Insights สำหรับ telemetry | ❌ |
| projectLocation | ตัวระบุตำแหน่งโปรเจกต์สำหรับการติดตาม telemetry | ❌ |
| manageApiUrl | URL ฐานที่กำหนดเอง (สำหรับสภาพแวดล้อมตัวอย่าง) | ❌ |
🔒 ความปลอดภัย
การฉีดพรอมต์โดยอ้อม
เนื้อหาที่เซิร์ฟเวอร์นี้ส่งคืน (เช่น องค์ประกอบที่เขียนโดยบรรณาธิการ) อาจมีข้อความที่ LLM ที่เชื่อมต่อตีความว่าเป็นคำสั่ง — การฉีดพรอมป์ทางอ้อม เอเจนต์ที่ถูกยึดครองอาจถูกชักนำให้เรียกใช้เครื่องมือที่ก่อให้เกิดความเสียหาย (ลบ / ยกเลิกการเผยแพร่ / เขียนทับ) หรือรั่วไหลร่างที่ยังไม่ได้เผยแพร่ นี่เป็นปัญหาที่เกิดขึ้นทั่วทั้งอุตสาหกรรมและยังไม่ได้รับการแก้ไข ซึ่งเซิร์ฟเวอร์ไม่สามารถแก้ไขได้อย่างน่าเชื่อถือด้วยการแปลงเนื้อหาที่ส่งคืน ดังนั้นการป้องกันจึงเป็นแบบหลายชั้น:
- ใช้คีย์ Management API แบบสิทธิ์น้อยที่สุด เซิร์ฟเวอร์ทำงานด้วยคีย์ที่ได้รับมา หากใช้คีย์แบบอ่านอย่างเดียว การเรียกที่ก่อให้เกิดความเสียหายของเอเจนต์ที่ถูกยึดครองจะล้มเหลวที่ขอบเขต API — ซึ่งเป็นการควบคุมที่แข็งแกร่งที่สุด เพราะใช้ได้ไม่ว่าพฤติกรรมของโมเดลจะเป็นอย่างไร
- ให้มนุษย์อยู่ในวงจร ทุกเครื่องมือมีคำอธิบายประกอบ MCP — การอ่านคือ
readOnlyHint, เครื่องมือที่สร้างอย่างเดียวเป็นการเพิ่มข้อมูล และเครื่องมือที่เขียนทับหรือลบข้อมูลคือdestructiveHint— ซึ่งไคลเอนต์ที่ปฏิบัติตามจะใช้เพื่ออนุมัติการอ่านโดยอัตโนมัติและแจ้งเตือนก่อนการเรียกที่ก่อให้เกิดความเสียหาย เรียกใช้เซิร์ฟเวอร์กับไคลเอนต์ดังกล่าวและหลีกเลี่ยงการตั้งค่าแบบ headless ที่อนุมัติอัตโนมัติกับคีย์ที่เขียนได้ - เพิ่มเกตฝั่งไคลเอนต์หากไคลเอนต์ของคุณรองรับ ไคลเอนต์บางตัว (เช่น Claude Code hooks) ให้คุณกำหนดพรอมป์ก่อนที่เครื่องมือที่ก่อให้เกิดความเสียหายจะทำงานได้อย่างแน่นอน โดยไม่ขึ้นกับโมเดล ซึ่งกำหนดค่าที่เครื่องท้องถิ่น เซิร์ฟเวอร์ไม่สามารถบังคับใช้ได้
สิ่งเหล่านี้เป็นคำแนะนำ ไม่ใช่การรับประกัน รายงานปัญหาด้านความปลอดภัยเป็นการส่วนตัวไปที่ security@kontent.ai
🚀 ตัวเลือกการขนส่ง
📟 การขนส่งแบบ STDIO
เพื่อเรียกใช้เซิร์ฟเวอร์ด้วยการขนส่งแบบ STDIO ให้กำหนดค่าไคลเอนต์ MCP ของคุณด้วย:
{
"kontent-ai-stdio": {
"command": "npx",
"args": ["@kontent-ai/mcp-server@latest", "stdio"],
"env": {
"KONTENT_API_KEY": "<management-api-key>",
"KONTENT_ENVIRONMENT_ID": "<environment-id>"
}
}
}
🌊 การขนส่งแบบ HTTP ที่สตรีมได้ (หลายผู้เช่า)
การขนส่งแบบ HTTP ที่สตรีมได้ให้บริการสภาพแวดล้อม 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 เป็นพร็อกซีเพื่อเพิ่มส่วนหัวการรับรองความถูกต้อง:
{
"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- ยูทิลิตี้การโยนข้อผิดพลาดทั่วไป
app.ts- โรงงานแอป Express สำหรับการขนส่งแบบ HTTP ที่สตรีมได้server.ts- การตั้งค่าเซิร์ฟเวอร์หลักและการลงทะเบียนเครื่องมือbin.ts- จุดเข้าอื่นเดียวที่จัดการการขนส่งทั้งสองประเภท
🔍 การดีบัก
สำหรับการดีบัก คุณสามารถใช้ MCP inspector:
npx @modelcontextprotocol/inspector -e KONTENT_API_KEY=<key> -e KONTENT_ENVIRONMENT_ID=<env-id> node path/to/build/bin.js
หรือใช้ MCP inspector บนเซิร์ฟเวอร์ HTTP ที่สตรีมได้ซึ่งกำลังทำงานอยู่:
npx @modelcontextprotocol/inspector
สิ่งนี้ให้อินเทอร์เฟซเว็บสำหรับการตรวจสอบและทดสอบเครื่องมือที่มีอยู่
📦 กระบวนการเผยแพร่
เพื่อเผยแพร่เวอร์ชันใหม่:
- เพิ่มเวอร์ชันโดยใช้
npm version [patch|minor|major]- สิ่งนี้อัปเดตpackage.json,package-lock.json, และซิงค์ไปยังserver.json - ผลักคอมมิตไปยังสาขาของคุณและสร้างคำขอดึง
- รวมคำขอดึง
- สร้าง GitHub release ใหม่ด้วยหมายเลขเวอร์ชันเป็นทั้งชื่อและแท็ก โดยใช้บันทึกการเผยแพร่ที่สร้างอัตโนมัติ
- การเผยแพร่จะทริกเกอร์เวิร์กโฟลว์อัตโนมัติที่เผยแพร่ไปยัง npm และ GitHub MCP registry
สัญญาอนุญาต
MIT