สร้าง MCP Server สำหรับ OpenClaw
เรียนรู้วิธีสร้าง MCP (Model Context Protocol) Server เพื่อเพิ่มความสามารถให้ OpenClaw เชื่อมต่อกับ tools และ data sources ของคุณเอง
MCP คืออะไร?
MCP (Model Context Protocol) คือโปรโตคอลมาตรฐานที่ช่วยให้ AI agents สื่อสารกับ tools ภายนอกได้อย่างปลอดภัยและเป็นระบบ — คุณสามารถสร้าง MCP Server เพื่อให้ OpenClaw เรียกใช้ฟังก์ชันที่คุณกำหนดเอง เช่น ดึงข้อมูลจาก API, อ่าน database หรือควบคุมบริการภายในองค์กร
ติดตั้ง SDK
เลือก SDK ตามภาษาที่ต้องการ:
pip install fastmcpตัวอย่างโค้ด
ตัวอย่าง MCP Server ที่มี 2 tools — ดูสภาพอากาศและแปลภาษา:
from fastmcp import FastMCP
mcp = FastMCP("my-server")
@mcp.tool()
def get_weather(city: str) -> str:
"""ดูสภาพอากาศของเมืองที่ระบุ"""
# ตัวอย่าง: เชื่อมต่อ API จริงได้ที่นี่
return f"สภาพอากาศที่ {city}: แดดออก 32°C"
@mcp.tool()
def translate_text(text: str, target_lang: str) -> str:
"""แปลข้อความเป็นภาษาที่ต้องการ"""
# ตัวอย่าง: เชื่อมต่อ translation API
return f"[{target_lang}] {text}"
if __name__ == "__main__":
mcp.run()คอนฟิก OpenClaw
เพิ่ม MCP Server ของคุณในไฟล์ config ของ OpenClaw:
{
"mcpServers": {
"my-server": {
"command": "python",
"args": ["my_server.py"]
}
}
}ทดสอบ MCP Server
ทดสอบ MCP Server ด้วย Inspector หรือผ่าน OpenClaw โดยตรง:
# ทดสอบด้วย MCP Inspector
npx @modelcontextprotocol/inspector my_server.py
# ทดสอบผ่าน OpenClaw
openclaw "ดูสภาพอากาศที่กรุงเทพ"Best Practices
แนวทางปฏิบัติที่ดีในการสร้าง MCP Server:
- ตั้งชื่อ tool ให้ชัดเจน — ใช้ชื่อที่บอกหน้าที่ได้ทันที เช่น
get_weather,create_issue - เขียน description ให้ละเอียด — AI จะใช้ description ในการตัดสินใจเรียก tool
- จัดการ error อย่างเหมาะสม — return ข้อความ error ที่ชัดเจนแทน exception
- ใช้ type validation — กำหนด input schema ให้ชัดเจนทั้ง Python (type hints) และ TypeScript (zod)
- แยก server ตามหน้าที่ — อย่ารวม tools ทุกอย่างไว้ใน server เดียว
- ทดสอบด้วย MCP Inspector — ใช้ Inspector ตรวจสอบก่อนเชื่อมต่อกับ OpenClaw
