iToverDose/Yazılım· 23 NISAN 2026 · 06:09

Python ile MCP Sunucuları Oluşturma: 2026 için Üretim Rehberi

Model Context Protokolü (MCP), on sekiz ay içinde "Anthropic yan projesi"nden endüstri standardına geçti. Mart 2026 itibarıyla, MCP SDK'ları aylık 97 milyon indirme gerçekleştiriyor. Her ciddi ajan çerçevesi — Claude, Cursor, OpenAI Agents SDK, Microsoft Agent —

DEV Community2 dk okuma0 Yorumlar

Model Context Protocol (MCP), Anthropic'ın yan projesinden endüstri standardına on sekiz ayda geçti. Mart 2026 itibarıyla, MCP SDK'ları ayda 97 milyon indirme gerçekleştiriyor. Her ciddi ajan çerçevesi — Claude, Cursor, OpenAI Agents SDK, Microsoft Agent Framework — doğal olarak MCP'yi destekliyor. Python arka uç mühendisiyseniz, MCP şu anda öğrenebileceğiniz en değerli araçlardan biri.

Bu gönderi, FastMCP kullanarak üretim kalitesinde bir MCP sunucusu oluşturmanın pratik bir rehberi niteliğinde. FastMCP, süreci basitleştirerek MCP sunucusu geliştirmeyi kolaylaştırıyor.

MCP nedir? MCP, yapay zeka ajanlarına araçlar, kaynaklar ve komut istemlerini standart bir şekilde sunmak için kullanılan bir protokoldür. Her ajan çerçevesinin kendi adaptör formatını geliştirmesi yerine, bir kez sunucu yazar ve herhangi bir MCP uyumlu istemciye bağlarsınız. Bunu "USB-C gibi" düşünebilirsiniz.

Minimum bir sunucu aşağıdakileri sunar:

  • Araçlar: Ajanın çağırabileceği fonksiyonlar (örn. search_customers, get_order_status)
  • Kaynaklar: Ajanın okuyabileceği URI'ler (örn. crm://contacts/123)
  • Komut istemleri: Parametreleştirilmiş komut istemi şablonları

Başlangıç: 40 satırlık bir FastMCP sunucusu

server.py

from fastmcp import FastMCP
from pydantic import BaseModel
import httpx

mcp = FastMCP("internal-crm")

class Customer(BaseModel):

id: str name: str tier: str mrr: float

@mcp.tool()
async def search_customers(query: str, tier: str | None = None) -> list[Customer]:

"""CRM'de müşterileri isim veya e-posta ile arar. İsteğe bağlı olarak seviyeye göre filtreler.""" async with httpx.AsyncClient() as client: r = await client.get( " params={"q": query, "tier": tier}, ) return [Customer(**row) for row in r.json()]

@mcp.tool()
async def get_customer_notes(customer_id: str) -> str:

"""Bir müşteri için en son müşteri yöneticisi notlarını getirir.""" async with httpx.AsyncClient() as client: r = await client.get(f") return r.text

@mcp.resource("crm://customer/{customer_id}")
async def customer_resource(customer_id: str) -> str:

"""Salt okunur müşteri profili.""" async with httpx.AsyncClient() as client: r = await client.get(f") return r.text

if __name__ == "__main__": mcp.run(transport="streamable-http", host="0.0.0.0", port=8000)

Bu, üretime yakın, tamamlanmış bir MCP sunucusudur. Girdiler ve çıktılar Pydantic ile tip güvenlidir. Docstring'ler, aracın okuyacağı araç açıklamalarına dönüşür. Kaynaklar, aracın bağlamına yerleştirebileceği URI'ler alır.

Taşıma değişikliği: stdio → Streamable HTTP 2024 yılındaki tüm MCP eğitimleri stdio taşıma yöntemini kullanıyordu — sunucu bir alt süreç olarak çalışır, ajan JSON-RPC'yi stdin/stdout üzerinden aktarırdı. Bu, Claude Desktop gibi masaüstü araçları için uygundu. Ancak üretim için doğru yanıt değildi.

Streamable HTTP (2025 spesifikasyonunda son halini aldı) bu sorunu çözüyor:

  • Sunucular, her çağrı için alt süreç yerine uzun ömürlü HTTP hizmetleri olarak çalışır
  • Yük dengeleyicinin arkasında yatay olarak ölçeklenebilir
  • Takımlar ve uygulamalar arasında paylaşılabilir
  • Bir kez dağıtılır, URL üzerinden keşfedilebilir

FastMCP'de geçiş tek bir satırla yapılır: transport="streamable-http".

Yetkilendirme: OAuth 2.1'in basit yolu MCP'nin 2025 spesifikasyonu, standart yetkilendirme mekanizması olarak OAuth 2.1'i ekledi. Kendi yetkilendirme sisteminizi yazmanıza gerek yok. FastMCP, mevcut Kimlik Sağlayıcınıza (Auth0, Okta, Cognito, Clerk vb.) bağlanan OAuth ara yazılımıyla birlikte gelir:

from fastmcp.auth import OAuth2Middleware

mcp.add_middleware(OAuth2Middleware( issuer=" audience="mcp-internal-crm", required_scope="crm:read", ))

Ajan yetkilendirme sürecini yönetir. Sunucunuz yalnızca her araç için kapsamları uygular.

AWS'ye aşırı harcama yapmadan dağıtım Üretimdeki MCP için iki desen belirledik:

Desen A — Düşük trafikli iç araçlar: Lambda + API Gateway

  • Mangum veya FastMCP'nin ASGI adaptörünü kullanarak Lambda içinde çalıştırın
  • Soğuk başlangıç ~300-500ms (insan hızındaki ajan etkileşimleri için kabul edilebilir)
  • Boşta iken maliyet: neredeyse sıfır

Desen B — Yüksek trafikli paylaşılan sunucular: ALB arkasında ECS Fargate

  • Mantıksal sunucu başına bir hizmet
  • CPU/bellek üzerinden otomatik ölçeklenme
  • Durumsal oturum sürekliliği için ElastiCache ile eşleştirin
  • Maliyet: tahmin edilebilir, küçük bir sürekli çalışan hizmet için ~30$/ay

Yapay zeka özeti

Learn to build production-grade MCP servers in Python with FastMCP, Streamable HTTP, OAuth 2.1, and AWS deployment. Includes 40-line starter code and cost optimization strategies.

Yorumlar

00
YORUM BIRAK
ID #HSCQFL

0 / 1200 KARAKTER

İnsan doğrulaması

7 + 2 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.