AWS Thai Blog
แนะนำการใช้งาน Model Context Protocol (MCP) ที่จะช่วยเพิ่มขีดความสามารถให้ Amazon Q Developer CLI ทำงานกับเครื่องมือต่าง ๆ ได้
บทความนี้จะมาแนะนำการใช้งาน Amazon Q Developer CLI ร่วมกับ Model Context Protocol (MCP) ซึ่งเป็นเครื่องมือจะช่วยเพิ่มความสามารถของ Amazon Q ให้ทำงานได้หลากหลายและตอบโจทย์ความต้องการของนักพัฒนามากยิ่งขึ้น
ในบทความก่อนหน้านี้ เราได้แนะนำการใช้งาน Amazon Q Developer CLI พื้นฐาน ซึ่งมีความสามารถในการช่วยเหลือนักพัฒนาในหลาย ๆ ด้าน ไม่ว่าจะเป็นการเขียนโค้ด การให้คำแนะนำเกี่ยวกับ AWS Services การทำงานกับไฟล์และระบบ การสร้าง Infrastructure as Code และการแก้ไขปัญหาต่าง ๆ ที่ทำงานอยู่บน AWS หรือเครื่อง Local ของเรา
แต่ความสามารถของ Amazon Q ไม่ได้หยุดอยู่แค่นั้น ด้วย Model Context Protocol (MCP) ทำให้ Amazon Q สามารถขยายความสามารถได้มากขึ้น โดยการเชื่อมต่อกับ MCP Servers ที่มีเครื่องมือเฉพาะทางต่าง ๆ ทำให้ Amazon Q สามารถทำงานได้หลากหลายและตอบโจทย์ความต้องการของนักพัฒนามากยิ่งขึ้น
Model Context Protocol (MCP) คืออะไร?
Model Context Protocol (MCP) เป็นโปรโตคอลเปิด (Open Protocol) เริ่มต้นโดย Anthropic ที่ช่วยให้แอปพลิเคชันสามารถส่งข้อมูลบริบท (Context) ไปยัง Large Language Models (LLMs) ได้อย่างมีมาตรฐาน MCP ช่วยให้เกิดการสื่อสารระหว่างระบบและ MCP Servers ในตัวอย่างนี้จะทำงานในเครื่องของผู้ใช้ ซึ่งจะช่วยเพิ่มเครื่องมือและทรัพยากรเพื่อขยายความสามารถของ Amazon Q
MCP เปรียบเสมือนสะพานเชื่อมที่ขยายขีดความสามารถของ Amazon Q โดยเพิ่มความสามารถพิเศษที่หลากหลาย เช่น การประเมินวิเคราะห์ค่าใช้จ่าย AWS อย่างละเอียด การตรวจสอบและให้คำแนะนำเกี่ยวกับโครงสร้างโปรเจค และ AWS Services ต่าง ๆ แม้กระทั่งการเข้าถึงข้อมูลภายนอกที่ผู้ให้บริการต่าง ๆ เปิดให้ใช้ ทำให้ Amazon Q กลายเป็นผู้ช่วยอัจฉริยะที่ครบวงจรและตอบโจทย์การทำงานของนักพัฒนาได้อย่างไร้รอยต่อ
(AWS) MCP Servers
MCP Server เป็น Lightweight Program ที่ใช้ MCP โปรโตคอลในการทำงาน ซึ่ง MCP Hosts คือโปรแกรม เช่น Chatbots, IDEs, และเครื่องมือ AI อื่นๆ ในตัวอย่างนี้คือ Amazon Q Deverloper CLI และจะมี MCP Clients ที่เชื่อมต่อแบบ 1:1 กับ MCP Server
การทำงานของ MCP แบ่งออกเป็นสองส่วนหลักๆ คือ 1) MCP Hosts ที่มี MCP Client และ 2) MCP Server ซึ่งมีความแตกต่างและบทบาทที่สำคัญดังนี้
MCP Client คือส่วนที่ทำหน้าที่เป็นตัวกลางในการติดต่อระหว่างผู้ใช้งานกับ MCP Server ซึ่ง MCP Client ที่จะใช้ในตัวอย่างนี้จะติดตั้งมากับ MCP Hosts คือ Amazon Q Deverloper CLI โดยมีลักษณะสำคัญดังนี้:
– บทบาท: ทำหน้าที่รับคำสั่งจากผู้ใช้และส่งต่อไปยัง MCP Server ที่เหมาะสม
– การทำงาน: ทำงานในฝั่งของผู้ใช้งาน (Client-side) และจัดการการเชื่อมต่อกับ MCP Server ต่างๆ
– การติดตั้ง: ติดตั้งมาพร้อมกับ Amazon Q Developer CLI
– ตัวอย่างการใช้งาน: เมื่อคุณใช้คำสั่ง q chat
และถามคำถามที่ต้องใช้ความสามารถของ MCP Server MCP Client จะทำหน้าที่ส่งคำถามไปยัง MCP Server ที่เหมาะสม
MCP Server คือส่วนที่ให้บริการความสามารถเฉพาะทางเพิ่มเติมให้กับ Amazon Q โดยมีลักษณะสำคัญดังนี้:
– บทบาท: ให้บริการความสามารถเฉพาะทาง (Specialized capabilities) เช่น การวิเคราะห์ค่าใช้จ่าย AWS การวิเคราะห์โครงสร้างโปรเจค
– การทำงาน: ทำงานเป็น Server ที่รอรับคำสั่งจาก MCP Client และประมวลผลตามความสามารถที่มี
– การติดตั้ง: ต้องติดตั้งแยกต่างหากตามประเภทของ MCP Server ที่ต้องการใช้งาน สามารถดูตัวอย่างได้ในบทความนี้
– ตัวอย่างการใช้งาน: แล้วแต่ชนิดของ MCP Servers นั้น ๆ เช่น AWS Cost Analysis MCP Server ให้บริการวิเคราะห์ประเมินค่าใช้จ่าย AWS และให้คำแนะนำในการลดค่าใช้จ่าย
MCP Client และ MCP Server ทำงานร่วมกันดังนี้:
1. ผู้ใช้ส่งคำถามหรือคำสั่งผ่าน MCP Hosts
คือ Amazon Q Developer CLI
2. Amazon Q วิเคราะห์คำถามและตัดสินใจว่าต้องใช้ความสามารถของ MCP Server หรือไม่
3. หากต้องใช้ MCP Server, MCP Client จะส่งคำถามไปยัง MCP Server ที่เหมาะสม
4. MCP Server ประมวลผลคำถามและส่งผลลัพธ์กลับมายัง MCP Client
5. MCP Client ส่งผลลัพธ์กลับมายัง Amazon Q
6. Amazon Q วิเคราะห์ เพื่อหาทำงานขั้นต่อไปอาจเป็นการเรียก MCP Server อื่น ๆ หรือทำการแสดงผลลัพธ์สุดท้ายกลับไปให้ผู้ใช้
ตัวอย่าง MCP Architecture
AWS มี AWS MCP Server ซึ่งเป็น MCP Servers หลาย ๆ ประเภทที่ออกแบบมาเฉพาะทางเพื่อช่วยให้คุณใช้งานกับ AWS Services, Use cases, หรือเครื่องมืออื่น ๆ ได้อย่างมีประสิทธิภาพสูงสุด โดยในปัจจุบัน AWS MCP Server ประกอบไปด้วย 30+ MCP Servers และจะมีมากขึ้นเรื่อย ๆ เพื่อให้ผู้ใช้งานสามารถมีเครื่องมือที่จะช่วยให้การทำงานให้เกิดประสิทธิภาพสูงสุด
การตั้งค่า MCP บน Amazon Q Developer CLI
โดย Amazon Q Developer CLI จะทำงานเปรียบเสมือน MCP Client โดยการเริ่มต้นใช้งาน MCP Server กับ Amazon Q Developer CLI โดยหลัก ๆ แล้วสามารถ
1. ใช้งาน AWS MCP Server โดยใช้ uv
uv
คือเครื่องมือในการจัดการ Python Packages พัฒนาโดยใช้ Rust
จาก Astral ซึ่งหลาย Python Packages จะมาพร้อมกับแอปพลิเคชันที่สามารถใช้เป็นเครื่องมือได้ และ uv
ได้ออกแบบฟีเจอร์พิเศษที่ช่วยในการเรียกใช้และติดตั้งเครื่องมือเหล่านี้ โดยมีเฉพาะคำสั่ง uvx
ที่ช่วยให้สามารถรันแพ็คเกจ Python ได้โดยตรงโดยไม่ต้องติดตั้งก่อน ซึ่งทำให้การใช้งาน MCP Servers มีความยืดหยุ่นและมีประสิทธิภาพมากขึ้น
1.1 ติดตั้ง uv
วิธีการลงใน macOS, Linux ,Windows ได้ที่วิธีการติดตั้งนี้
ในตัวอย่างนี้ใช้ Homebrew
1.2 ติดตั้ง Python โดยใช้ uv
1.3 ตั้งค่า AWS Credentials
ตั้งค่า AWS credentials ที่มีสิทธิ์เข้าถึง AWS services ที่ต้องการใช้งานใน Terminal ของคุณ
1.4 ตั้งค่า MCP Client Configuration
สร้างไฟล์ Configuration สำหรับ Amazon Q CLI MCP ที่ ~/.aws/amazonq/mcp.json
:
{
"mcpServers": {
"awslabs.core-mcp-server": {
"command": "uvx",
"args": [
"awslabs.core-mcp-server@latest"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"autoApprove": [],
"disabled": false
},
"awslabs.cost-analysis-mcp-server": {
"command": "uvx",
"args": [
"awslabs.cost-analysis-mcp-server@latest"
],
"env": {
"AWS_PROFILE": "default",
"FASTMCP_LOG_LEVEL": "ERROR"
}
},
"awslabs.eks-mcp-server": {
"command": "uvx",
"args": ["awslabs.eks-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"autoApprove": [],
"disabled": false
}
}
}
จากในตัวอย่าง Configuration ไฟล์นี้จะเห็นว่ามีการเรียกใช้ MCP Server อยู่ 3 MCP Servers คือ
- Core MCP Server คือ MCP Server พื้นฐาน การวิเคราะห์ทำความเข้าใจคำถาม วางแผนที่ในการทำงานจะร่วมกัน AWS MCP Server อื่น ๆ และทำให้เข้าใจ AWS Services ต่างๆ
- Cost Analysis MCP Server คือ MCP Server เพื่อสำหรับการประมาณการค่าใช้จ่าย AWS Service ล่วงหน้าและให้ข้อมูลเชิงลึกด้านค่าใช้จ่าย
- Amazon EKS MCP Server คือ MCP Server ที่ช่วยในการจัดการและทำงานกับ Amazon EKS (Elastic Kubernetes Service) โดยให้ความสามารถในการดูแลและแก้ไขปัญหาคลัสเตอร์ Kubernetes บน AWS
ดู AWS MCP Server ทั้งหมดได้ที่ GitHub
1.5 เริ่มต้นใช้งาน MCP กับ Amazon Q
เมื่อตั้งค่า MCP เรียบร้อยแล้ว คุณสามารถเริ่มใช้งาน MCP กับ Amazon Q ได้โดยการเปิด Amazon Q Developer CLI และเริ่มต้นสนทนา
หรือ
สามารถตรวจดูเครื่องมือ (Tools) ทั้งหมดที่ Amazon Q Developer CLI สามารถใช้งานได้โดยพิมพ์
หรือ เราสามารถใช้คำสั่ง
โดยผลลัพธ์จะแสดง MCP ทั้งหมดที่สามารถใช้ได้ผ่าน Amazon Q Developer CLI ซึ่งจะเห็นว่าเราสามารถตั้งค่าได้เฉพาะใน workspace
และ global
เราสามารถตรวจดูว่ามี MCP Server อะไรที่กำลังทำงานอยู่บนเครื่องเราบ้าง อาจโดยใช้คำสั่ง
2. ใช้งาน AWS MCP Server ที่ทำงานเป็น Container
เราสามารถให้ MCP Server ทำงานเป็น Container ได้ ในตัวอย่างนี้จะใช้ AWS Core MCP Server โดยการสร้าง Docker Image จาก MCP Server ที่ต้องการ เช่น AWS Core MCP Server หรือจาก Docker Hub mcp/aws-core-mcp-server
{
"mcpServers": {
"awslabs.core-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"--interactive",
"--env",
"FASTMCP_LOG_LEVEL=ERROR",
"mcp/aws-core-mcp-server"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
เมื่อเริ่มต้นสนทนา q
เราก็จะเห็นว่ามี Process ของ Docker Container ทำงานอยู่
docker ps
ผลลัพธ์
ในตัวอย่างของบทความนี้จะใช้วิธีที่ 1 ใช้งาน AWS MCP Server โดยใช้ uv
ตัวอย่างที่ 1 การประเมินค่าใช้จ่ายโดยใช้ Cost Analysis MCP Server
เราสามารถใช้ Cost Analysis MCP Server เพื่อช่วยในการประเมินค่าใช้จ่ายในการทำงานบน AWS ได้ เช่น
โดยจะเห็นว่า Amazon Q Developer CLI จะเรียกใช้งาน MCP Server ทั้ง Core MCP Server เพื่อทำความเข้าใจ prompt และ Cost Analysis MCP Server เพื่อค้นหาราคาและทำการสร้างรายงาน
ซึ่งสุดท้ายแล้วเราก็จะได้รายงานการประเมินค่าใช้จ่ายในการใช้งานแอปพลิเคชันแบบ Serverless บน AWS
ตัวอย่างที่ 2 การจัดการ Amazon EKS Cluster
Amazon EKS MCP Server มี Action ให้เลือกใช้มากมายเพื่อจัดการ EKS Cluster ของเราได้ เช่น การแสดง Pods ทั้งหมดใน Cluster ดังนี้
ในบาง Action ที่ Tool เรียกใช้งาน เช่น การสร้าง, แก้ไข, ลบ Resouce ใน Cluster นั้น จำเป็นจะต้องเพิ่ม --allow-write
หรือ การเรียกดู Log ของ Pod, Event, หรือ CloudWatch Log ก็จะต้องเพิ่ม --allow-sensitive-data-access
เข้าไปใน Argument ของ Configuration
"awslabs.eks-mcp-server": {
"command": "uvx",
"args": [
"awslabs.eks-mcp-server@latest",
"--allow-write",
"--allow-sensitive-data-access"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"autoApprove": [],
"disabled": false
}
หลังจากที่เพิ่ม Argument และได้ทำการเริ่มต้นการใช้งาน Amazon Q โดยออก /quit
และเข้าใช้งาน q chat --resume
ใหม่แล้ว เราก็จะสามารถจัดการสร้าง, แก้ไข, ลบ Resouce ใน Cluster ได้ เช่น การ Restart pod ดังนี้
ผลลัพธ์
และยังสามารถ Logs หรือ Event ได้ เช่น
ผลลัพธ์
และเรายังสามารถให้ Amazon EKS MCP Server ตรวจดูปัญหาใน Cluster ของเราได้เช่นเดียวกัน
ผลลัพธ์
ตัวอย่างที่ 3 การใช้งานกับ MCP Server อื่น ๆ เช่น WhatsApp MCP
เราสามารถใช้ Amazon Q Developer CLI ใช้งานกับ MCP Server อื่น ๆ ได้ เช่น ในตัวอย่างนี้จะใช้กับ WhatsApp MCP ซึ่งเราก็สามารถทำการ Config ตามวิธีการที่ Provider ของ MCP Server กำหนดไว้ได้เลย
"whatsapp": {
"command": "{{PATH_TO_UV}}",
"args": [
"--directory",
"{{PATH_TO_SRC}}/whatsapp-mcp/whatsapp-mcp-server",
"run",
"main.py"
]
}
สำหรับ MCP Server ที่ใช้ในตัวอย่างนี้จะใช้งานคู่กับ WhatsApp Bridge ด้วย
ผลลัพธ์
และยังสามารถให้ WhatsApp MCP Server ดึงข้อมูล Chat ออกมาแล้วใช้ความสามารถของ Amazon Q Developer CLI ในการทำสรุป Chat ได้ เช่น
ช่วยสรุป Chat ในกลุ่ม <Your group name> ให้หน่อย
WhatsApp MCP ก็จะแสดงผลลัพธ์เป็นบทสนธนาและ Amazon Q Developer CLI จะทำการสรุปให้กับคุณ
นี่เป็นเพียงตัวอย่างหนึ่งที่แสดงให้เห็นถึงความยืดหยุ่นของ MCP ที่สามารถขยายความสามารถของ Amazon Q ให้ทำงานกับแพลตฟอร์มและบริการอื่นๆ นอกเหนือจาก AWS ได้อีกด้วย
สรุป
Model Context Protocol (MCP) เป็นเครื่องมือที่เพิ่มความสามารถของ Amazon Q Developer CLI ให้ทำงานได้หลากหลายและตอบโจทย์ความต้องการของนักพัฒนามากยิ่งขึ้น โดยการเชื่อมต่อกับ MCP Servers ที่มีความสามารถเฉพาะทางต่างๆ
การใช้งาน Amazon Q Developer CLI ร่วมกับ MCP ไม่ได้มาแทนที่นักพัฒนา แต่เป็นเครื่องมือที่ช่วยให้นักพัฒนาสามารถทำงานได้อย่างมีประสิทธิภาพมากขึ้น ลดเวลาในการค้นหาข้อมูลและการทำงานที่ซ้ำซ้อน และมุ่งเน้นไปที่การสร้างนวัตกรรม สร้างสรรค์โซลูชัน และการแก้ปัญหาที่ซับซ้อนได้มากขึ้น