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

brew install uv

1.2 ติดตั้ง Python โดยใช้ uv

uv python install 3.10

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 คือ

  1. Core MCP Server คือ MCP Server พื้นฐาน การวิเคราะห์ทำความเข้าใจคำถาม วางแผนที่ในการทำงานจะร่วมกัน AWS MCP Server อื่น ๆ และทำให้เข้าใจ AWS Services ต่างๆ
  2. Cost Analysis MCP Server คือ MCP Server เพื่อสำหรับการประมาณการค่าใช้จ่าย AWS Service ล่วงหน้าและให้ข้อมูลเชิงลึกด้านค่าใช้จ่าย
  3. 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 และเริ่มต้นสนทนา

q

หรือ

q chat

สามารถตรวจดูเครื่องมือ (Tools) ทั้งหมดที่ Amazon Q Developer CLI สามารถใช้งานได้โดยพิมพ์

/tools

หรือ เราสามารถใช้คำสั่ง

!q mcp list

โดยผลลัพธ์จะแสดง MCP ทั้งหมดที่สามารถใช้ได้ผ่าน Amazon Q Developer CLI ซึ่งจะเห็นว่าเราสามารถตั้งค่าได้เฉพาะใน workspace และ global

เราสามารถตรวจดูว่ามี MCP Server อะไรที่กำลังทำงานอยู่บนเครื่องเราบ้าง อาจโดยใช้คำสั่ง

ps -o pid,args | grep -i "mcp-server" | grep -v grep

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 ได้ เช่น

I want to build serverless application which receive transaction 100 request per minute.
Please estimate cost and save in html.

โดยจะเห็นว่า 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 ดังนี้

list all pods in eks-automode-default


ในบาง 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 ดังนี้

ช่วย restart pod inflate-5c5b856447-vfftb ใน eks-automode-default หน่อย

ผลลัพธ์

และยังสามารถ Logs หรือ Event ได้ เช่น

ขอดู event ของ pod inflate-5c5b856447-c7pld หน่อย

ผลลัพธ์

และเรายังสามารถให้ Amazon EKS MCP Server ตรวจดูปัญหาใน Cluster ของเราได้เช่นเดียวกัน

ช่วยดูว่า pod ใน EKS 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 ด้วย

Use whatsapp send Say Hi <Your Contact> and please tell him your are from Amazon Q Developer CLI!

ผลลัพธ์

และยังสามารถให้ 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 ไม่ได้มาแทนที่นักพัฒนา แต่เป็นเครื่องมือที่ช่วยให้นักพัฒนาสามารถทำงานได้อย่างมีประสิทธิภาพมากขึ้น ลดเวลาในการค้นหาข้อมูลและการทำงานที่ซ้ำซ้อน และมุ่งเน้นไปที่การสร้างนวัตกรรม สร้างสรรค์โซลูชัน และการแก้ปัญหาที่ซับซ้อนได้มากขึ้น