07.01.2026

MCP Nedir? AI Ajanlarını Güvenli Bağla

MCP nedir, nasıl çalışır? LLM’leri araçlara güvenli bağlayın. Adım adım kurulum, örnekler ve en iyi pratikler bu rehberde.

MCP Nedir? AI Ajanlarını Güvenli Bağla (2026)

Giriş

Bir yapay zeka asistanına “CRM’den müşteri çek, fatura PDF’ini bul, Slack’e özet at” dediğinizde iş sadece iyi bir prompt yazmakla bitmiyor. Modelin dış dünyaya güvenli ve kontrollü erişmesi gerekiyor: API’ler, dosyalar, veritabanları ve dahası.

Tam bu noktada MCP (Model Context Protocol) devreye giriyor. MCP; LLM’lerin (ChatGPT benzeri modellerin) araçlara, veri kaynaklarına ve servislerinize standart bir şekilde bağlanmasını hedefleyen bir yaklaşım sunar. Bu yazıda MCP nedir, neden önemli, nasıl kurulur ve üretimde nelere dikkat etmeniz gerekir adım adım anlatacağım.


MCP Nedir? (Model Context Protocol)

MCP, bir LLM’in harici araçlarla (tools) konuşmasını “her projede yeniden icat etmek” yerine standartlaştırmayı amaçlayan bir protokol yaklaşımıdır.

Kısaca:

  • Model tarafı: “Şu aracı şu parametrelerle çağır” talebini üretir.
  • MCP sunucusu: Tanımlı araçları güvenli biçimde sunar.
  • Araç/Entegrasyon: Gerçek API çağrısı, dosya okuma, veritabanı sorgusu vb. işleri yapar.

Bunu neden yapmalıyım? Çünkü MCP benzeri bir standartla; entegrasyonlarınız daha taşınabilir, test edilebilir, güvenli ve ölçeklenebilir olur. Bir aracı farklı bir ajan/model ile kullanmak kolaylaşır.


MCP Ne İşe Yarar? (Gerçek Senaryolar)

Aşağıdaki senaryolarda MCP yaklaşımı ciddi zaman kazandırır:

  • Girişim/ürün tarafı: Müşteri destek botu → Zendesk/Jira/Slack ile entegre
  • Geliştirici deneyimi: Kod asistanı → GitHub, CI logları, repo araması
  • Satış/operasyon: CRM verisi + e-posta + takvim üzerinden otomatik özet/aksiyon
  • Finans: Fatura klasörleri + muhasebe API’si üzerinden raporlama

Gerçek hayattan örnek

Bir SaaS girişimi düşünün: Kullanıcı “Bu ay en çok iade aldığımız ürünler hangileri?” diye soruyor.

  • Model: Analytics aracını çağırır
  • MCP sunucusu: Yalnızca izin verilen sorgu tiplerini çalıştırır
  • Sonuç: Model, ham veriyi değil güvenli şekilde dönen çıktıyı özetler

MCP Mimari Bileşenleri (Basit Şema)

MCP’yi zihninizde oturtmak için tipik akış:

  1. Kullanıcı → modele istek yazar
  2. Model → uygun aracı seçer (tool call)
  3. MCP Server → aracı çalıştırır (policy/izin kontrolü dahil)
  4. Araç → API/DB/Dosya işlemini yapar
  5. Sonuç → modele döner → kullanıcıya yanıt

Neden araya MCP sunucusu koyuyoruz?

  • Yetkilendirme (hangi araçlar, hangi parametrelerle?)
  • Denetim izi (audit log)
  • Rate limit ve kota
  • Gizli anahtarların (API key) modelden saklanması

Adım Adım: Basit Bir MCP Sunucusu Mantığı (Örnek)

Aşağıdaki örnek, MCP felsefesini anlamanız için minimal bir “tool registry + güvenlik kontrolü + çalışma” yapısını gösterir. (Gerçek MCP SDK’ları/uygulamaları değişebilir; burada amaç mimariyi öğretmektir.)

1) Araçları tanımla (tool registry)

  • Araç adı
  • Açıklama
  • Parametre şeması
  • Çalıştırma fonksiyonu

2) İzin/policy uygula

  • Kim çağırıyor?
  • Hangi tool?
  • Parametreler güvenli mi?

3) Sonucu normalize et

  • Modelin tüketebileceği sade bir JSON
  • PII/secret temizliği

Örnek Node.js (Express) pseudo-implementation

import express from "express";

const app = express();
app.use(express.json());

// 1) Tool registry
const tools = {
  "get_order_status": {
    description: "Sipariş durumunu orderId ile getirir",
    schema: { orderId: "string" },
    run: async ({ orderId }) => {
      // Gerçekte: DB veya servis çağrısı
      return { orderId, status: "shipped", lastUpdate: "2026-01-05" };
    }
  }
};

// 2) Basit policy örneği
function authorize({ apiKey, toolName }) {
  const allowed = apiKey === process.env.MCP_API_KEY;
  if (!allowed) throw new Error("Unauthorized");

  if (!tools[toolName]) throw new Error("Tool not found");
}

// MCP benzeri tool-call endpoint
app.post("/mcp/call", async (req, res) => {
  try {
    const { apiKey, toolName, args } = req.body;
    authorize({ apiKey, toolName });

    // 3) Parametre doğrulama (minimal)
    const schema = tools[toolName].schema;
    for (const k of Object.keys(schema)) {
      if (!(k in args)) throw new Error(`Missing arg: ${k}`);
    }

    const result = await tools[toolName].run(args);

    // 4) Normalize edilmiş cevap
    res.json({ ok: true, toolName, result });
  } catch (e) {
    res.status(400).json({ ok: false, error: e.message });
  }
});

app.listen(3000, () => console.log("MCP server running on :3000"));

Bunu neden yapmalıyım? Çünkü modelin “doğrudan DB’ye bağlanması” yerine, araya koyduğunuz MCP katmanı ile hem güvenlik hem de bakım maliyetini düşürürsünüz.


MCP ile Güvenlik: En Kritik 7 Kural

MCP’nin asıl değeri “entegrasyonu kolaylaştırma” kadar güvenli bağlama tarafında çıkar.

  1. En az yetki (least privilege): Modelin sadece gereken tool’lara erişimi olsun.
  2. Parametre whitelist: Serbest metinle SQL/komut çalıştırma gibi riskli alanları kısıtlayın.
  3. Secret’ları modelden saklayın: API key’ler MCP sunucusunda kalsın.
  4. Audit log tutun: Kim, hangi tool’u, hangi argümanla çağırdı?
  5. Rate limit ve kota: Kötüye kullanım ve maliyet patlamasına karşı.
  6. PII maskeleme: E-posta, telefon, TC kimlik gibi verileri gereksizse döndürmeyin.
  7. Tool çıktısı doğrulama: Modelin yanlış yorumlamasını azaltmak için çıktıyı yapılandırılmış verin.

MCP vs Function Calling vs Plugin: Fark Ne?

Aşağıdaki tablo karar vermeyi kolaylaştırır:

Yaklaşım Artı Eksi Ne zaman?
Function Calling (model içi) Hızlı prototip Güvenlik/policy dağınık olabilir Küçük uygulamalar, PoC
Plugin tarzı Hazır ekosistem Platforma bağımlılık Tek platformda kalacaksanız
MCP (protokol yaklaşımı) Standart, taşınabilir, kontrollü İlk kurulum disiplin ister Ürünleşen ajanlar, çok entegrasyon

Not: MCP tek başına “alternatif” değil; çoğu ekipte function calling + MCP sunucusu birlikte kullanılır: model tool çağrısını üretir, MCP sunucusu güvenle çalıştırır.


Üretimde MCP Kullanımı: Adım Adım Yol Haritası

Uygulamada en pratik sıralama şöyle:

1) Envanter çıkar

  • Hangi araçlar? (CRM, ödeme, e-posta, dosyalar)
  • Hangi aksiyonlar? (okuma/yazma)

2) Tool’ları küçük parçalara böl

  • get_customer_by_email
  • list_invoices
  • create_support_ticket

Kural: “Her şeyi yapan tek tool” yerine, küçük ve denetlenebilir tool’lar.

3) Policy + doğrulama ekle

  • Argüman şeması
  • İzin kontrolü
  • Riskli parametreleri filtreleme

4) Gözlemlenebilirlik (observability)

  • Tool çağrı metrikleri (latency, error rate)
  • Maliyet takibi
  • Başarısız çağrılarda otomatik fallback

5) Test stratejisi

  • Tool unit test
  • Policy test
  • Uçtan uca senaryo testleri (model tool çağrısı + MCP cevabı)

Sık Sorulan Sorular (FAQ)

1) MCP nedir ve neden popüler oldu?

MCP, LLM’lerin araçlara standart şekilde bağlanmasını hedefler. Çok entegrasyonlu ürünlerde bakım ve güvenliği iyileştirdiği için öne çıktı.

2) MCP kullanmak için mutlaka ajan (agent) mimarisi mi gerekir?

Hayır. Basit bir chatbot bile tool çağrıları yapıyorsa, MCP yaklaşımıyla bu çağrıları düzenleyip güvenli hale getirebilirsiniz.

3) MCP güvenliği tek başına çözer mi?

Hayır. MCP bir çerçeve sağlar; yetkilendirme, doğrulama, loglama ve rate limit gibi pratikleri sizin uygulamanız gerekir.

4) MCP ile veritabanına doğrudan erişim vermek doğru mu?

Genellikle hayır. DB’ye doğrudan erişim yerine, sınırlı ve amaç odaklı tool’lar üzerinden kontrollü sorgular daha güvenlidir.


Sonuç

MCP nedir? En net haliyle: LLM’leri dış araçlara bağlarken entegrasyonu standartlaştıran ve üretimde güvenlik/denetim katmanı eklemenizi kolaylaştıran bir yaklaşımdır.

Bugün şunları öğrendiniz:

  • MCP’nin amacı ve mimarisi
  • Nerelerde değer kattığı
  • Basit bir MCP sunucusu mantığı
  • Üretim için güvenlik kuralları ve yol haritası

Bir sonraki adım: Kendi ürününüzden 1 entegrasyon seçin (ör. CRM veya Slack) ve tek bir tool ile MCP benzeri bir katman kurup deneyin. Deneyiminizi ve takıldığınız noktaları yorum olarak yazın; birlikte netleştirelim.