MCP และ LLM: Tools

Model Context Protocol (MCP) เบื้องต้น

James Chapman

AI Curriculum Manager, DataCamp

จาก MCP Tools สู่ LLM Tools

 

การผสาน Tool กับ LLM ขึ้นอยู่กับ LLM แต่ละตัว

  • LLM แต่ละตัวรับ tool ในรูปแบบและ syntax ที่แตกต่างกัน
  • ใช้ Claude ผ่าน Anthropic's Messages API
  • จุดเน้น: กระบวนการและการแปลงข้อมูล

llm_mcp.png

Model Context Protocol (MCP) เบื้องต้น

ขั้นตอนการเรียกใช้ Tool

fct1.jpg

Model Context Protocol (MCP) เบื้องต้น

ขั้นตอนการเรียกใช้ Tool

fct2.jpg

Model Context Protocol (MCP) เบื้องต้น

ขั้นตอนการเรียกใช้ Tool

fct3.jpg

Model Context Protocol (MCP) เบื้องต้น

ขั้นตอนการเรียกใช้ Tool

fct4.jpg

Model Context Protocol (MCP) เบื้องต้น

ขั้นตอนการเรียกใช้ Tool

fct5.jpg

Model Context Protocol (MCP) เบื้องต้น

ขั้นตอนการเรียกใช้ Tool

fct6.jpg

Model Context Protocol (MCP) เบื้องต้น

MCP Server: timezone_server.py

from mcp.server.fastmcp import FastMCP
import requests

mcp = FastMCP("Timezone Converter")

@mcp.tool()
def convert_timezone(date_time: str, from_timezone: str, to_timezone: str) -> str:
    ...

if __name__ == "__main__":
    mcp.run(transport="stdio")
Model Context Protocol (MCP) เบื้องต้น

ขยาย Client Code

async def get_tools_from_mcp():
            # ... 
            return response.tools

async def call_mcp_tool(tool_name: str, arguments: dict) -> str:        
            # ...
            result = await session.call_tool(tool_name, arguments)
            return str(result.content[0].text)

async def call_anthropic_llm(user_query: str):
Model Context Protocol (MCP) เบื้องต้น

ตั้งค่า: จัดรูปแบบ Tools สำหรับ LLM

async def call_anthropic_llm(user_query: str):
    """Call Claude with MCP tools."""

mcp_tools = await get_tools_from_mcp()
anthropic_tools = [] for tool in mcp_tools:
anthropic_tool = { "name": tool.name, "description": tool.description or "", "input_schema": tool.inputSchema, # MCP uses JSON Schema format }
anthropic_tools.append(anthropic_tool)
Model Context Protocol (MCP) เบื้องต้น

1. ส่ง Query และ Tools ไปยัง LLM

from anthropic import AsyncAnthropic
async def call_anthropic_llm(user_query: str):
    # ...

client = AsyncAnthropic(api_key="<ANTHROPIC_API_TOKEN>")
response = await client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[{"role": "user", "content": user_query}], tools=anthropic_tools, )
Model Context Protocol (MCP) เบื้องต้น

2. ตรวจสอบการเรียกใช้ Tool

async def call_anthropic_llm(user_query: str):
    # ...

    if response.stop_reason == "tool_use":

tool_use = next(b for b in response.content if b.type == "tool_use") name = tool_use.name args = tool_use.input print(f"Model decided to call: {name}") print(f"Arguments: {args}\n")
Model Context Protocol (MCP) เบื้องต้น

3. เรียกใช้ Tool | 4. ส่ง Follow-Up Message

async def call_anthropic_llm(user_query: str):
    # ...

    if response.stop_reason == "tool_use":
        # ...

result = await call_mcp_tool(name, args)
tool_result = {"type": "tool_result", "tool_use_id": tool_use.id, "content": result} followup = await client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[ {"role": "user", "content": user_query}, {"role": "assistant", "content": response.content}, {"role": "user", "content": [tool_result]}, ], tools=anthropic_tools, )
Model Context Protocol (MCP) เบื้องต้น

5. การตอบกลับขั้นสุดท้าย

async def call_anthropic_llm(user_query: str):
    # ...

    if response.stop_reason == "tool_use":
        # ...

final = next((b.text for b in followup.content if b.type == "text"), None) if final: print(f"\nAssistant: {final}") else: print("No follow-up message from model.")
else: text = next((b.text for b in response.content if b.type == "text"), "") print(f"\nAssistant: {text}") return str(text)
Model Context Protocol (MCP) เบื้องต้น

ทดสอบฟังก์ชัน

if __name__ == "__main__":
    asyncio.run(call_anthropic_llm("It is 9:50 AM in the UK in January. What time 
    is it in Lisbon, Portugal?"))
Assistant: It's 9:50 AM in Lisbon as well.
Model Context Protocol (MCP) เบื้องต้น

ขั้นตอนการเรียกใช้ Tool

fct6.jpg

Model Context Protocol (MCP) เบื้องต้น

มาฝึกกันเถอะ!

Model Context Protocol (MCP) เบื้องต้น

Preparing Video For Download...