Sitemap

5 Dakikada MCP Server Yazıyoruz: Nedir Bu Model Context Protocol?

5 min readJun 12, 2025
Press enter or click to view image in full size
https://www.anthropic.com/news/model-context-protocol

AI Agent gelişmeleri ile hem yazılım geliştirme hem de LLM kullanım sürecimize yeni kavramlar girdi. Bunlardan birincisi RAG, hemen peşi sıra genel “tool calling” ve sonrasında çıktığı günden beri sosyal medyada, makale konularında, hatta gelen haber bülteni e-postalarda da oldukça yer kaplayan Model Context Protocol.

Herkesin dilinde olması ve AI Agent ürünlerinin peşi sıra kullanıma alması ile kimileri için göz korkutan kimileri için ise sadece yeni bir gündem maddesi olan MCP gelişmelerini sade ve anlaşılır bir dille sizlere aktarmaya çalışacağım.

Basite indirgemeyeceğim, çünkü gerçekten aslında çok basit bir konsept. Ayrıca bilmediğimiz bir şey de değil. Birazdan aslında hepinizin MCP’nin ne olduğunu bildiğinizi, sadece gözünüzde büyütüldüğünü kendiniz göreceksiniz.

İçerik

  • Model Context Protocol
  • Transport Kavramı
  • MCP Server Geliştirme
  • MCP Inspector ile Test Etme
  • AI Agent ile MCP Server Kullanımı

Model Context Protocol

Model Context Protocol, Anthropic (hani şu çokça kullandığımız claude dil modeli ailesini yayınlayan şirket) tarafından LLM kullanımında fonksiyon çağrımları yapmamızı sağlayan “tool calling” sürecine standardizasyon getiren bir yaklaşım.

Duyurusunu şu makale ile yapmışlardı diye hatırlıyorum:

Peki ne yapıyor bu MCP? LLM’lerin kullanımı için farklı araç gereçler var. Bunlardan bazıları hepimizin bildiği paket ve frameworkler: LangChain, llamaindex, Agno, OpenAI Swarm, Google Agent Development Kit, OpenAI Python Agents, CrewAI, HuggingFace smolagents vs vs…

Bunların her birisi kendi hazırladıkları, aslında aynı işi yapan yardımcı class ve fonksiyonlara sahipler. Örneğin DuckDuckGo ile arama işlemi yapabilmek için bu ürünlerin birçoğu kendi içinde DuckDuckGo Tool şeklinde bir class veya fonksiyon sağlıyor. Tabii ki kendi frameworkü ile uyumlu olacak şekilde.

Bu paketlerin çoğu python dili ile geliştirilmiş olsa da, elbette farklı dillerde de benzer araç gereçler var. Ve hepsi günün sonunda bir şekilde “tool calling” yaparak LLM’lere çeşitli kabiliyetler katmayı sağlıyor.

MCP bu noktada şu fikirle geliyor: “Farklı farklı dil ve frameworkler tarafından kullanılan tüm bu fonksiyonların tekrar tekrar yazılması yerine, bir kere yazılıp herhangi bir dil veya framework tarafından kullanılmasını sağlamak”.

Yani siz LLM’inize Kubernetes kullanabilme kabiliyet katmak istiyorsanız, bir MCP server yazın, kullanılacak tüm fonksiyonlar bu server tarafından tanımlansın, ilgili paket/framework bir MCP client kullanarak işlemleri bu MCP server üzerinden gerçekleştirsin. Böylelikle bir standart sağlanmış olsun.

Bulduğum bu görsel olayı özetler nitelikte:

Press enter or click to view image in full size
https://diamantai.substack.com/p/model-context-protocol-mcp-explained

Tüm bunların özeti olarak bir MCP server, sizin tanımladığınız fonksiyon prompt ve resource’ları bir API üzerinden dışarıya açıyor. “Server üzerinde şu şu tool, prompt ve kaynaklar var, al sana json formatında bunların listesi ve parametreleri, bana bunlarla istek atabilirsin” diyor.

Bunlara ek olarak cancellation, ping ve progress gibi yardımcı işlemler de sunuyor.

Özet olarak, aslında bir Rest API yazmaktan çok da farklı değil :)

Transport Kavramı

Birçok iletişim aracında transport kavramı vardır, biz genellikle web servislerimizi network üzerinden dışarıya açtığımız için http kavramına aşinayız.

MCP server geliştirirken lokal ortamda ya da daha doğrusu standart input/output ile işlem yapabilmemizi sağlayan bir transport da sunuyor.

Bunu lokalde unix socket üzerinden haberleşmeye benzetebiliriz. İhtiyacımıza göre stdio veya http transport kullanabiliriz.

stdio transport kullandığımızda mcp client bir subprocess olarak mcp serverı çalıştırır.

MCP Server Geliştirme

Şimdi hızlıca örnek bir MCP Server kodlayıp test edelim. Bulduğum en kolay ve hızlı geliştirme sağlayan kütüphane olan FastMCP ile örnek yapacağım.

Siz de kütüphaneyi incelemek isterseniz şuradan bakabilirsiniz:

10 satırdan az bir kod ile ilk örnek MCP serverımızı yazalım:

Press enter or click to view image in full size

Örnek olması açısından yaptığı şey statik bir cevap listesi dönmek. Burada yapacaklarımız bizim hayal gücümüze ve yapmak istediğimiz işleme kalmış. İstersek bir browser çalıştırıp arama yapabilir veya serp api üzerinden istek gönderip arama sonuçlarını dönebilirdik.

Şimdi serverımızı test edelim. Bunun için modelcontextprotocol tarafından yayınlanan “inspector” projesini kullanacağım:

> npx @modelcontextprotocol/inspector
Starting MCP inspector…
⚙️ Proxy server listening on port 6277
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀

Tarayıcıda ilgili adrese gidip açılan ekranda MCP server bağlantı bilgilerimizi yazalım ve Tools sekmesinden List Tools butonuna basalım:

Press enter or click to view image in full size

Geliştirdiğimiz tool burada gözüküyor. Şimdi bu toola parametre verip çağıralım:

Press enter or click to view image in full size

Gördüğünüz gibi toolumuz bize cevap olarak tanımladığımız statik değerleri döndü.

Peki bu yazdığımız toolu herhangi bir AI Agent ile kullanmak isteseydik?

Hadi IDE üzerinde bu MCP server bilgilerimizi girip bir de oradan deneyelim. IDE Settings bölümünde “Add new global MCP server” butonuna basarak aşağıdaki tanımı girelim:

“WebSearchMCPServer”: {
“url”: “http://localhost:8000/mcp"
}

Kaydedince yazdığımız MCP serverın aktif olarak eklendiğini görüyoruz:

Press enter or click to view image in full size

Şimdi yeni bir konuşma ekranı açıp bizim için web search yapmasını isteyelim:

Press enter or click to view image in full size

IDE otomatik olarak eklediğimiz MCP serverı çağırdı ve sonucu bize gösterdi. Not: burada bilerek özellikle “use search_web tool” diye belirttim yoksa IDE kendisi otomatik olarak web search işlemi yapacaktı.

Artık bu geliştirdiğimiz MCP serverı herhangi bir MCP client desteği olan AI Agent frameworkü ile kodsal olarak da kullanabiliriz.

Örneğin Agno ile bu MCP serverın kullanımı şöyle olacaktı:

Press enter or click to view image in full size

İşte hepsi bu, sanırım buraya kadar yazının okuma süresi tam 5 dakika yaptı, umarım MCP server hakkında genel bilgilendirme açısından sizler için aydınlatıcı olmuştur.

--

--

Emre Savcı
Emre Savcı

Written by Emre Savcı

Tech. Lead @Trendyol & MUG Lead @mongodb | ex Couchbase Ambassador | Go Türkiye, Kubernetes, Istio, CNCF, Scalability. Open Source Contributor.

Responses (6)