Kontent.ai

ทางการ

สร้าง จัดการ และสำรวจเนื้อหาและโมเดลเนื้อหาของคุณโดยใช้ภาษาธรรมชาติในเครื่องมือ AI ที่รองรับ MCP ใดๆ

GitHub
9
ลองใช้ 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

NPM Version Contributors Forks Stargazers Issues MIT License Discord

ปฏิวัติการดำเนินงานด้านคอนเทนต์ของคุณด้วยเครื่องมือที่ขับเคลื่อนด้วย AI สำหรับ Kontent.ai สร้าง จัดการ และสำรวจคอนเทนต์ที่มีโครงสร้างของคุณผ่านการสนทนาด้วยภาษาธรรมชาติในโปรแกรมแก้ไขที่รองรับ AI ที่คุณชื่นชอบ

เซิร์ฟเวอร์ Kontent.ai MCP ใช้ Model Context Protocol เพื่อเชื่อมต่อโปรเจกต์ Kontent.ai ของคุณกับเครื่องมือ AI เช่น Claude, Cursor และ VS Code ช่วยให้โมเดล AI เข้าใจโครงสร้างคอนเทนต์ของคุณและดำเนินการต่าง ๆ ผ่านคำสั่งภาษาธรรมชาติ

✨ คุณสมบัติหลัก

  • 🚀 การสร้างต้นแบบอย่างรวดเร็ว: เปลี่ยนไดอะแกรมของคุณให้เป็นโมเดลคอนเทนต์ที่ใช้งานได้จริงภายในไม่กี่วินาที
  • 📈 การแสดงภาพข้อมูล: แสดงภาพโมเดลคอนเทนต์ของคุณในรูปแบบใดก็ได้ที่ต้องการ

สารบัญ

🔌 เริ่มต้นใช้งานอย่างรวดเร็ว

🔑 ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะใช้เซิร์ฟเวอร์ MCP ได้ คุณต้องมี:

  1. บัญชี Kontent.ai - สมัครสมาชิก หากคุณยังไม่มีบัญชี
  2. โปรเจกต์ - สร้างโปรเจกต์ เพื่อใช้งาน
  3. คีย์ Management API - สร้างคีย์ พร้อมสิทธิ์ที่เหมาะสม
  4. รหัสสภาพแวดล้อม (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ตัวระบุตำแหน่งโปรเจกต์สำหรับการติดตามเทเลเมทรี
manageApiUrlURL ฐานแบบกำหนดเอง (สำหรับสภาพแวดล้อมพรีวิว)

โหมดหลายผู้เช่า (Streamable HTTP)

สำหรับการส่งข้อมูลแบบ Streamable HTTP ข้อมูลรับรองจะถูกระบุในแต่ละคำขอ:

  • รหัสสภาพแวดล้อม เป็นพารามิเตอร์พาธของ URL: /{environmentId}/mcp
  • คีย์ API ผ่าน Bearer token ในส่วนหัว Authorization: Authorization: Bearer <api-key>

วิธีนี้ช่วยให้อินสแตนซ์เซิร์ฟเวอร์เดียวจัดการคำขอสำหรับสภาพแวดล้อม Kontent.ai หลายรายการได้โดยไม่ต้องใช้ตัวแปรสภาพแวดล้อมสำหรับข้อมูลรับรอง

ตัวแปรคำอธิบายจำเป็น
PORTพอร์ตสำหรับการส่งข้อมูลแบบ HTTP (ค่าเริ่มต้นคือ 3001)
appInsightsConnectionStringสตริงการเชื่อมต่อ Application Insights สำหรับเทเลเมทรี
projectLocationตัวระบุตำแหน่งโปรเจกต์สำหรับการติดตามเทเลเมทรี
manageApiUrlURL ฐานแบบกำหนดเอง (สำหรับสภาพแวดล้อมพรีวิว)

🔒 ความปลอดภัย

การฉีดพรอมป์โดยอ้อม (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/ - การใช้งานเครื่องมือ MCP
    • clients/ - การตั้งค่าไคลเอนต์ API ของ Kontent.ai
    • schemas/ - สคีมาการตรวจสอบข้อมูล
    • utils/ - ฟังก์ชันยูทิลิตี้
      • errorHandler.ts - การจัดการข้อผิดพลาดมาตรฐานสำหรับเครื่องมือ MCP
      • throwError.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

สิ่งนี้ให้อินเทอร์เฟซเว็บสำหรับตรวจสอบและทดสอบเครื่องมือที่มีอยู่

📦 กระบวนการเผยแพร่

ในการเผยแพร่เวอร์ชันใหม่:

  1. เพิ่มเวอร์ชันโดยใช้ npm version [patch|minor|major] - คำสั่งนี้จะอัปเดต package.json, package-lock.json, และซิงก์ไปยัง server.json
  2. Push commit ไปยัง branch ของคุณและสร้าง pull request
  3. Merge pull request
  4. สร้าง GitHub release ใหม่โดยใช้หมายเลขเวอร์ชันเป็นทั้งชื่อและแท็ก พร้อมใช้บันทึก release ที่สร้างอัตโนมัติ
  5. การเผยแพร่ release จะทริกเกอร์เวิร์กโฟลว์อัตโนมัติที่เผยแพร่ไปยัง npm และ GitHub MCP registry

License

MIT