Tüm Yazılara Dön
Agentic AI & MCP 2024 6 dk okuma Önder Şahin

Model Context Protocol (MCP) ile Otonom Ajanlar ve Tool Calling Mimarisi

#MCP#Agents#LangGraph#TypeScript#ToolCalling#AI

Model Context Protocol (MCP) Nedir?

**Model Context Protocol (MCP)**, yapay zeka modelleri (LLM'ler) ile harici araçlar, veritabanları, API'lar ve geliştirme ortamları arasındaki iletişimi standartlaştıran açık bir protokoldür.

Eski modelde her LLM için özel fonksiyon çağırma (function calling) formatları ve entegrasyonlar yazmak gerekirken; MCP ile bir kez yazılan bir MCP Sunucusu (Server), Claude, Cursor, Antigravity veya özel agent sistemleri tarafından anında kullanılabilir hale gelir.


1. MCP Mimarisi: İstemci (Client) ve Sunucu (Server)

MCP istemci-sunucu mimarisi üzerine kuruludur: - **MCP Server**: Dosya okuma, SQL çalıştırma, API çağırma veya git operasyonları gibi araçları (`tools`), kaynakları (`resources`) ve istem şablonlarını (`prompts`) dışa sunar. - **MCP Client / Agent**: LLM'in ihtiyaç duyduğu araçları keşfeder, LLM'in ürettiği parametrelerle aracı tetikler ve sonucu tekrar modele iletir.

typescriptCode Snippet
// TypeScript ile MCP Sunucusu Oluşturma
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({ name: "music-catalog-mcp", version: "1.0.0" });

// Şarkı arama aracı tanımlama server.tool( "searchTracks", { genre: z.string().describe("Müzik türü (Rock, Pop, Jazz vb.)"), limit: z.number().default(5).describe("Maksimum sonuç sayısı") }, async ({ genre, limit }) => { const tracks = await database.tracks.find({ genre }).limit(limit); return { content: [ { type: "text", text: JSON.stringify(tracks, null, 2) } ] }; } );

const transport = new StdioServerTransport(); await server.connect(transport); ```


2. Ajan Karar Döngüsü (ReAct Pattern)

Agentic sistemlerde model şu adımları izler: 1. **Düşün (Thought)**: Kullanıcının hedefine ulaşmak için hangi araca ihtiyaç olduğunu analiz eder. 2. **Eylem (Action)**: Uygun MCP aracını JSON parametreleriyle çağırır. 3. **Gözlem (Observation)**: Aracın döndürdüğü sonucu bağlamına ekler. 4. **Nihai Yanıt (Final Answer)**: Yeterli bilgi toplandığında kullanıcıya sonuç sunar veya sonraki adıma geçer.


3. LangGraph ile Durumsal (Stateful) Ajan Entegrasyonu

TypeScript ile LangGraph kullanarak durum yönetimi sağlanan çok adımlı ajan grafiği:

typescriptCode Snippet
import { StateGraph, END } from "@langchain/langgraph";

interface AgentState { messages: Array<{ role: string; content: string }>; toolsRequired: boolean; }

const workflow = new StateGraph<AgentState>({ channels: { messages: { value: (x, y) => x.concat(y), default: () => [] }, toolsRequired: { value: (x, y) => y ?? x, default: () => false } } }) .addNode("llm_reasoner", async (state) => { const response = await callLLMWithTools(state.messages); return { messages: [response] }; }) .addNode("mcp_executor", async (state) => { const lastMsg = state.messages[state.messages.length - 1]; const toolResult = await executeMcpTool(lastMsg); return { messages: [toolResult] }; }) .addEdge("mcp_executor", "llm_reasoner"); ```

Gelecek Vizyonu MCP ve otonom ajanlar, statik chat botlarının ötesine geçerek karmaşık iş akışlarını bağımsızca tamamlayabilen dijital çalışma arkadaşları dönemini başlatmaktadır.