MCP і LLM: інструменти

Вступ до Model Context Protocol (MCP)

James Chapman

AI Curriculum Manager, DataCamp

Інструменти MCP → інструменти LLM

 

Інтеграція інструментів з LLM сильно залежить від LLM

  • LLM приймають інструменти по-різному і з різним синтаксисом
  • Використаємо Claude через Messages API від Anthropic
  • Фокус: процеси та перетворення

llm_mcp.png

Вступ до Model Context Protocol (MCP)

Робочий процес виклику інструментів

fct1.jpg

Вступ до Model Context Protocol (MCP)

Робочий процес виклику інструментів

fct2.jpg

Вступ до Model Context Protocol (MCP)

Робочий процес виклику інструментів

fct3.jpg

Вступ до Model Context Protocol (MCP)

Робочий процес виклику інструментів

fct4.jpg

Вступ до Model Context Protocol (MCP)

Робочий процес виклику інструментів

fct5.jpg

Вступ до Model Context Protocol (MCP)

Робочий процес виклику інструментів

fct6.jpg

Вступ до Model Context Protocol (MCP)

Сервер MCP: 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)

Розширення коду клієнта

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)

Налаштування: форматування інструментів для 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. Надіслати запит і інструменти до 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. Перевірка виклику інструмента

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. Виклик інструмента | 4. Подальше повідомлення

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)

Робочий процес виклику інструментів

fct6.jpg

Вступ до Model Context Protocol (MCP)

Переходимо до практики!

Вступ до Model Context Protocol (MCP)

Preparing Video For Download...