Files

Model Context Protocol (MCP) Python Implementation

ที่เก็บนี้ประกอบด้วยการใช้งาน Model Context Protocol (MCP) ด้วยภาษา Python โดยแสดงตัวอย่างการสร้างทั้งแอปเซิร์ฟเวอร์และไคลเอนต์ที่สื่อสารกันตามมาตรฐาน MCP

ภาพรวม

การใช้งาน MCP ประกอบด้วยส่วนหลักสองส่วน:

  1. MCP Server (server.py) - เซิร์ฟเวอร์ที่เปิดเผย:

    • Tools: ฟังก์ชันที่สามารถเรียกใช้งานจากระยะไกล
    • Resources: ข้อมูลที่สามารถดึงมาใช้ได้
    • Prompts: เทมเพลตสำหรับสร้างคำสั่งสำหรับโมเดลภาษา
  2. MCP Client (client.py) - แอปไคลเอนต์ที่เชื่อมต่อกับเซิร์ฟเวอร์และใช้ฟีเจอร์ต่างๆ

ฟีเจอร์

การใช้งานนี้แสดงฟีเจอร์หลักของ MCP หลายอย่าง:

Tools

  • completion - สร้างข้อความเติมเต็มจากโมเดล AI (จำลอง)
  • add - เครื่องคิดเลขง่ายๆ ที่บวกเลขสองจำนวน

Resources

  • models:// - คืนข้อมูลเกี่ยวกับโมเดล AI ที่มีให้ใช้งาน
  • greeting://{name} - ส่งคืนคำทักทายส่วนตัวสำหรับชื่อที่ระบุ

Prompts

  • review_code - สร้างคำสั่งสำหรับการตรวจสอบโค้ด

การติดตั้ง

เพื่อใช้งาน MCP นี้ ให้ติดตั้งแพ็กเกจที่จำเป็น:

pip install mcp-server mcp-client

การรันเซิร์ฟเวอร์และไคลเอนต์

การเริ่มต้นเซิร์ฟเวอร์

รันเซิร์ฟเวอร์ในหน้าต่างเทอร์มินัลหนึ่ง:

python server.py

เซิร์ฟเวอร์ยังสามารถรันในโหมดพัฒนาโดยใช้ MCP CLI ได้:

mcp dev server.py

หรือจะติดตั้งใน Claude Desktop (ถ้ามี):

mcp install server.py

การรันไคลเอนต์

รันไคลเอนต์ในหน้าต่างเทอร์มินัลอีกอัน:

python client.py

ซึ่งจะเชื่อมต่อกับเซิร์ฟเวอร์และสาธิตฟีเจอร์ทั้งหมดที่มี

การใช้งานไคลเอนต์

ไคลเอนต์ (client.py) แสดงความสามารถทั้งหมดของ MCP:

python client.py

ซึ่งจะเชื่อมต่อกับเซิร์ฟเวอร์และใช้งานฟีเจอร์ทั้งหมดรวมถึง tools, resources และ prompts ผลลัพธ์จะแสดง:

  1. ผลลัพธ์เครื่องคิดเลข (5 + 7 = 12)
  2. การตอบกลับจากเครื่องมือ completion สำหรับคำถาม "What is the meaning of life?"
  3. รายชื่อโมเดล AI ที่มีให้ใช้งาน
  4. คำทักทายส่วนตัวสำหรับ "MCP Explorer"
  5. เทมเพลตคำสั่งสำหรับตรวจสอบโค้ด

รายละเอียดการใช้งาน

เซิร์ฟเวอร์ถูกพัฒนาด้วย FastMCP API ซึ่งให้การจัดการระดับสูงสำหรับการกำหนดบริการ MCP ตัวอย่างง่ายๆ ของการกำหนด tools มีดังนี้:

@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers together
    
    Args:
        a: First number
        b: Second number
    
    Returns:
        The sum of the two numbers
    """
    logger.info(f"Adding {a} and {b}")
    return a + b

ไคลเอนต์ใช้ไลบรารี MCP client เพื่อเชื่อมต่อและเรียกใช้งานเซิร์ฟเวอร์:

async with stdio_client(server_params) as (reader, writer):
    async with ClientSession(reader, writer) as session:
        await session.initialize()
        result = await session.call_tool("add", arguments={"a": 5, "b": 7})

เรียนรู้เพิ่มเติม

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ MCP เยี่ยมชม: https://modelcontextprotocol.io/

ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ Co-op Translator แม้เราจะพยายามให้ความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลโดยผู้เชี่ยวชาญมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใด ๆ ที่เกิดจากการใช้การแปลนี้