Enables containerization of the MCP server, allowing for portable and consistent deployment across different environments
Powers the high-performance, asynchronous RESTful API that forms the core of the MCP server
Integrates with GitHub Codespaces to provide a one-click, cloud-based development environment that's fully configured for the MCP server
Implements CI/CD automation for automatic deployment after code changes are pushed
Enables deployment to Google Cloud Run as a serverless platform and integrates with Google Cloud Logging for structured logging and observability
Connects to OpenAI's API to process enriched prompts and retrieve AI responses for user conversations
Implements session management and caching, storing conversation context and user session data for stateful interactions
Generates interactive API documentation automatically from the code via OpenAPI/Swagger integration
MCP-Server
Model Context Protocol
İleri Seviye MCP (Model Context Protocol) Sunucusu
Bu proje, modern yapay zeka uygulamaları için geliştirilmiş, durum bilgisi tutabilen (stateful), güvenli, optimize edilmiş ve ölçeklenebilir bir aracı (gateway) sunucusudur. Kurs boyunca sıfırdan inşa edilen bu servis, basit bir sohbet botunun ötesine geçerek, production ortamı için gerekli olan profesyonel mühendislik pratiklerini içerir.
Proje Hakkında
MCP Sunucusu, Büyük Dil Modelleri'nin (LLM) en büyük zayıflıklarından biri olan "hafızasızlığı" çözmek için tasarlanmıştır. Her kullanıcı için ayrı bir konuşma bağlamı (context) tutarak, yapay zekanın tutarlı ve kişiselleştirilmiş diyaloglar kurmasını sağlar.
Bu depo, bir fikrin nasıl adım adım profesyonel bir servise dönüştüğünün canlı bir örneğidir:
- Tasarım: RESTful API prensipleriyle bir "sözleşme" tasarlandı.
- Geliştirme: FastAPI ile asenkron bir web sunucusu, Redis ile de hızlı bir hafıza katmanı inşa edildi.
- Paketleme: Uygulama, Docker ile her yerde çalışabilen taşınabilir bir konteynere dönüştürüldü.
- Dağıtım: Tek komutla Google Cloud Run gibi sunucusuz bir platformda canlıya alındı.
- Otomasyon: GitHub Actions ile CI/CD boru hattı kurularak, her kod değişikliğinin otomatik olarak dağıtılması sağlandı.
- Yönetim: Gözlemlenebilirlik, güvenlik ve maliyet optimizasyonu gibi üretim ortamı için kritik olan yetenekler eklendi.
Öne Çıkan Özellikler
- Durum Bilgisi Tutan Konuşmalar: Redis kullanarak her kullanıcı için ayrı ve kalıcı sohbet geçmişi yönetimi.
- Modern API: FastAPI ile geliştirilmiş, yüksek performanslı ve asenkron RESTful API.
- Otomatik Dokümantasyon: Koddan otomatik olarak oluşturulan interaktif Swagger/OpenAPI dokümantasyonu.
- Konteynerleştirilmiş: Docker ile paketlenmiş, taşınabilir ve tutarlı bir dağıtım imkanı.
- Sunucusuz (Serverless) Uyumlu: Google Cloud Run gibi platformlarda kolayca çalıştırılabilir.
- CI/CD Otomasyonu: GitHub Actions ile
git push
sonrası otomatik dağıtım. - Güvenlik Önlemleri: Hız limiti (Rate Limiting) ve temel Prompt Injection savunmaları.
- Maliyet Optimizasyonu: Akıllı önbellekleme (caching) ile gereksiz API çağrılarının önlenmesi.
- Gözlemlenebilirlik: Google Cloud Logging ile entegre, yapılandırılmış (structured) loglama.
- Codespaces Entegrasyonu: Tek tıkla, bulut tabanlı, tam yapılandırılmış bir geliştirme ortamı.
Mimari
Uygulama, bir aracı (Gateway) mimarisi üzerine kurulmuştur. Kullanıcıdan gelen istekleri karşılar, Redis'ten ilgili hafıza/bağlam bilgisini alır, bu bilgilerle zenginleştirilmiş bir prompt oluşturarak OpenAI gibi bir LLM servisine gönderir ve aldığı yanıtı tekrar hafızayı güncelleyerek kullanıcıya döner.
Modül ve Derslere Hızlı Erişim
- Modül 1 Ders 1 : Stateless API
- Modül 1 Ders 2 : Gateway Mimarisi
- Modül 2 Ders 1 : RESTful Prensipleri, Swagger UI
- Modül 2 Ders 2 : REDIS Giriş
- Modül 2 Ders 3 : Bağlam Depolama, FastAPI ve REDIS, Stateful
- Modül 2 Ders 4 : LLM Bağlantısı ve /chat
- Modül 3 Ders 1 : Docker Yapısını Hayata Geçirmek
- Modül 3 Ders 2 : Open Source LLM Yerelde Çalıştırmak
- Modül 3 Ders 3 : CI/CD Döngüsünün kurulması
- Modül 5 Ders 3 : Prompt Injection ve SlowAPI
- Modül 5 Ders 4 : Bağlam Özetleme Teknikleri
Başlarken: GitHub Codespaces ile Kurulum ve Çalıştırma
Bu proje, yerel kuruluma ihtiyaç duymadan, tamamen GitHub Codespaces üzerinde çalışmak üzere tasarlanmıştır.
Ön Koşullar
- GitHub Hesabı: Codespaces özelliğini kullanabilen bir GitHub hesabı.
- OpenAI API Anahtarı: OpenAI'dan alınmış,
sk-...
ile başlayan geçerli bir API anahtarı.
Adım Adım Kurulum
1. Bu Depoyu Kendi Hesabınıza Alın
Bu projeyi kendi hesabınızda denemek için sağ üst köşedeki Fork
butonuna tıklayarak kendi hesabınıza bir kopyasını oluşturun.
2. OpenAI API Anahtarınızı Yapılandırın
API anahtarınız, projenin en önemli sırrıdır ve güvenli bir şekilde saklanmalıdır.
- Fork'ladığınız deponuzun ana sayfasına gidin.
Settings
>Secrets and variables
>Codespaces
yolunu izleyin.New repository secret
butonuna tıklayın.- Name:
OPENAI_API_KEY
- Value:
sk-...
ile başlayan kendi OpenAI API anahtarınızı yapıştırın. Add secret
diyerek kaydedin.
3. Codespace'i Başlatın
- Deponuzun ana sayfasına dönün.
- Yeşil renkli
<> Code
butonuna tıklayın. Codespaces
sekmesine geçin.Create codespace on main
butonuna tıklayın.
4. Arkanıza Yaslanın ve Bekleyin
GitHub, sizin için bulutta bir geliştirme ortamı hazırlayacaktır. .devcontainer
yapılandırması sayesinde tüm kurulumlar (Python kütüphaneleri dahil) otomatik olarak yapılacaktır.
5. Servisleri Başlatın
Ortam hazır olduğunda, VS Code içindeki TERMINAL'i açın ve aşağıdaki kod hücrelerini sırayla çalıştırın.
Proje Dosya Yapısı
Projenin tamamlanmış hali aşağıdaki dosya yapısına sahiptir:
6. Uygulamanıza Erişin ve Test Edin
Yukarıdaki uvicorn
komutu çalıştığında, Codespaces sağ alt köşede 8000 portunun kullanılabilir olduğuna dair bir bildirim gösterecektir.
- VS Code'da
PORTS
sekmesine gidin (Genellikle Terminal'in yanındadır). - "8000" portu için listelenen "Forwarded Address" (Yönlendirilen Adres) URL'sini bulun. Bu URL,
https://...app.github.dev
şeklinde olacaktır. - Artık uygulamanız bu genel URL üzerinden erişilebilir durumda!
API Kullanımı ve Test
Aşağıdaki kod hücrelerini çalıştırarak canlıdaki servisinizi test edebilirsiniz. Önce bir üstteki hücreden yönlendirilen URL'nizi alıp aşağıdaki URL
değişkenine atamanız gerekmektedir.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A stateful gateway server for AI applications that solves the memory limitations of Large Language Models by maintaining separate conversation contexts for each user.
- İleri Seviye MCP (Model Context Protocol) Sunucusu
- Modül ve Derslere Hızlı Erişim
- Önce Redis veritabanını bir Docker konteyneri olarak başlatalım.
- Bu komut arka planda çalışmaya devam edecektir.
- Şimdi FastAPI uygulamamızı uvicorn ile başlatalım.
- Bu komut çalışmaya devam edecek ve terminali meşgul edecektir.
- Uygulamanın loglarını bu terminalden takip edebilirsiniz.
- Lütfen YONLENDIRILEN_URL kısmını kendi Codespace URL'niz ile değiştirin.
- Yeni bir oturum başlatalım ve dönen ID'yi bir değişkene atayalım
Related MCP Servers
- -securityFlicense-qualityA TypeScript-based server that provides a memory system for Large Language Models (LLMs), allowing users to interact with multiple LLM providers while maintaining conversation history and offering tools for managing providers and model configurations.Last updated -25JavaScript
- -securityAlicense-qualityAn experimental Model Context Protocol server that enables Large Language Models to read, search, and manipulate OpenFGA authorization stores, unlocking fine-grained access control for agentic AI and natural language interactions.Last updated -10Apache 2.0
- -securityFlicense-qualityA server that allows AI agents to consult multiple large language models (like Grok, Gemini, Claude, GPT-4o) through Model Context Protocol for assistance and information.Last updated -4JavaScript
- -securityAlicense-qualityA middleware system that connects large language models (LLMs) with various tool services through an OpenAI-compatible API, enabling enhanced AI assistant capabilities with features like file operations, web browsing, and database management.Last updated -3PythonMIT License