MCP ve LLM'ler: İstemler ve Kaynaklar

Model Context Protocol (MCP) Giriş

James Chapman

AI Curriculum Manager, DataCamp

LLM Akışında Kaynaklar ve İstemler

 

  • Kaynaklar: salt-okunur bağlam
  • İstemler: davranışı ayarlayan ve modeli göreve uyarlayan talimat şablonları

 

Anthropic Messages API ile devam edin

 

LLM ilkel öğeleri

Model Context Protocol (MCP) Giriş

İstem-Kaynak İş Akışı

 

İstem-kaynak iş akışı1

Model Context Protocol (MCP) Giriş

İstem-Kaynak İş Akışı

 

İstem-kaynak iş akışı2

Model Context Protocol (MCP) Giriş

İstem-Kaynak İş Akışı

 

İstem-kaynak iş akışı3

Model Context Protocol (MCP) Giriş

İstem-Kaynak İş Akışı

 

İstem-kaynak iş akışı4

Model Context Protocol (MCP) Giriş
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Timezone Converter")

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

@mcp.resource("file://locations.txt")
def get_locations() -> str:
    # ...

@mcp.prompt(title="Timezone Conversion")
def convert_timezone_prompt(timezone_request: str) -> str:
    # ...

if __name__ == "__main__":
    mcp.run(transport="stdio")
Model Context Protocol (MCP) Giriş

İstemci Yardımcı İşlevleri

 

  • read_resource(resource_uri): bir kaynağın içeriğini URI ile çeker
  • read_prompt(prompt_name, user_input): kullanıcının isteği eklenmiş istem şablonunu çeker
Model Context Protocol (MCP) Giriş

1. Kaynak ve İstemi Getir

async def get_context_from_mcp(user_query: str) -> tuple[str, str]:
    """MCP sunucusundan kaynak içeriği ve istem metni getir."""
    params = StdioServerParameters(command=sys.executable, args=["timezone_server.py"])

    async with stdio_client(params) as (reader, writer):
        async with ClientSession(reader, writer) as session:
            await session.initialize()

# Kaynağı al (desteklenen konumlar) resource_result = await session.read_resource("file://locations.txt") resource_text = resource_result.contents[0].text
# Kullanıcının sorgusu ile istemi al prompt_result = await session.get_prompt("convert_timezone_prompt", arguments={"timezone_request": user_query}) prompt_text = prompt_result.messages[0].content.text
return resource_text, prompt_text
Model Context Protocol (MCP) Giriş

2. Sistem İletisini Kur ve LLM'i Çağır

async def call_llm_with_context(user_query: str):
    """MCP'den gelen kaynak ve istem bağlamıyla LLM'i çağır."""

resource_text, prompt_text = await get_context_from_mcp(user_query)
# İstemi (görev + kurallar + kullanıcı isteği) kaynakla (desteklenen konumlar) birleştir full_prompt = prompt_text + "\n\nSupported locations:\n" + resource_text
client = AsyncAnthropic(api_key="<ANTHROPIC_API_TOKEN>") response = await client.messages.create( model="claude-sonnet-4-6", max_tokens=1024, messages=[{"role": "user", "content": full_prompt}], tools=anthropic_tools, # get_tools_from_mcp()'den, Anthropic için biçimlenmiş )
Model Context Protocol (MCP) Giriş

3. Yanıtı İşleme

    if response.stop_reason == "end_turn":
        text = next((b.text for b in response.content if b.type == "text"), "")
        print(f"\nAssistant: {text}")
        return str(text)

if response.stop_reason == "tool_use": tool_use = next(b for b in response.content if b.type == "tool_use") result = await call_mcp_tool( tool_use.name, tool_use.input) # ... tool_result'u bir takip isteğinde geri gönderin, # ardından yanıtta olduğu gibi yazdırın
Model Context Protocol (MCP) Giriş

Örnek: Belirsiz İstek

if __name__ == "__main__":
    asyncio.run(call_llm_with_context("Kanada'da saat kaç?"))
Assistant: Kanada'da birden çok saat dilimi var. Hangi şehir ya da bölgeyi kastediyorsunuz?
Örneğin Toronto, Vancouver veya Halifax?
Model Context Protocol (MCP) Giriş

Örnek: Net İstek

if __name__ == "__main__":
    asyncio.run(call_llm_with_context("Ocak ayında Birleşik Krallık'ta saat 9:50. 
        Lizbon, Portekiz'de saat kaç?"))
Assistant: Lizbon'da da saat 9:50.
Model Context Protocol (MCP) Giriş

Özet: LLM ile Kaynaklar ve İstemler

 

İstem-kaynak iş akışı4

Model Context Protocol (MCP) Giriş

Haydi pratik yapalım!

Model Context Protocol (MCP) Giriş

Preparing Video For Download...