5.1 KiB
MCP Kolay Rehber (GinImage API)
Bu dokumanin amaci:
- MCP'nin ne oldugunu 2 dakikada anlatmak
- Bu projede nasil kullanacagini adim adim gostermek
- Kendi amacina uygun hale getirmen icin net bir yol vermek
1) MCP nedir?
MCP, LLM'in (AI asistanin) senin uygulamana standart bir yoldan baglanmasini saglar. Bu projede MCP, ayri bir uygulama degil; mevcut backend icinde bir endpoint olarak calisiyor:
- POST /mcp
Yani AI, dogrudan tum API'yi ezberlemek yerine MCP uzerinden tool cagiriyor.
2) Bu projede MCP su an ne yapiyor?
Mevcut tool'lar:
- api_overview: API endpoint ozetini metin olarak doner
- health_check: verdigin path'e istek atar, HTTP durum kodu doner
Kaynak kod:
- app/mcp/server.go
3) 5 dakikada calistir
- Projeyi baslat:
go run .
- MCP endpoint:
- Test et (tool listesi):
curl -X POST "http://127.0.0.1:8080/mcp" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"tools/list"
}'
Beklenen sonuc: tools listesinde api_overview ve health_check gorursun.
4) Cursor'a baglama
Cursor MCP ayari icin ornek dosya:
- app/mcp/README.md
Ozet:
- Cursor MCP config'e bu endpoint'i eklersin: http://127.0.0.1:8080/mcp
- Cursor'da MCP reload yaparsin
5) MCP'yi hangi amac icin kullanmaliyim?
En iyi kullanim: "AI operator" gibi.
Ornek amaclar:
- Operasyon: servis sagligi, baglantilar, log ozetleri
- Icerik yonetimi: blog taslagi olusturma, yayinlama adimlari
- Medya pipeline: toplu resim isleme, kalite kontrol raporu
Kural:
- Sik yaptigin ama hata riski olan isleri tool'a cevir.
6) Kendi amacina uygun hale getirme plani
Asagidaki sirayla ilerle:
- Amaci yaz (tek cumle)
- Ornek: "AI ile blog operasyonlarini hizlandirmak"
- 3-5 ana tool sec
- blog_list_drafts
- blog_create_draft
- blog_publish
- image_process_batch
- system_health_summary
- Her tool icin input schema belirle
- zorunlu alanlar
- tipler (string, number, boolean)
- enum alanlar (ornek: status = draft|published)
- Yetki katmani koy
- read-only tool'lari ayri
- admin gerektiren write tool'lari ayri
- Hata formatini standartlastir
- invalid params
- unauthorized
- not found
- internal error
- Log ve izleme ekle
- hangi tool cagrildi
- ne kadar surdu
- basarili/basarisiz
7) Tool ekleme ornegi (fikri)
Ornek yeni tool: blog_list_recent
Ne yapar:
- son N blog kaydini dondurur
Input:
- limit (opsiyonel, default 10, max 50)
Output:
- baslik, slug, olusturma tarihi listesi
Neden faydali:
- AI once mevcut icerigi gorur, sonra dogru aksiyon alir
8) Guvenlik kontrol listesi
MCP endpoint aciksa su kontrolleri yap:
- Rate limit aktif mi?
- Sadece gerekli tool'lar acik mi?
- Write tool'lar icin yetki kontrolu var mi?
- Hassas veriler response'a siziyor mu?
9) Sik sorunlar
- connection refused
- Uygulama calismiyor,
go run .ile baslat
- 404 /mcp
- route ekli mi kontrol et: routers/router.go
- tools/list bos ya da hata
- gonderdigin JSON-RPC body formatini kontrol et
- health_check yanlis hosta gidiyor
- GINIMAGE_API_BASE_URL degerini acik ver
10) Kisa ozet
- MCP = AI icin standart tool kapisi
- Bu projede giris noktasi = POST /mcp
- Bugun hemen kullanmak icin: tools/list + tools/call testleri yeterli
- Gercek fayda icin: kendi operasyonuna uygun 3-5 tool ekle
11) Kod gelistirme odakli kullanim (senin senaryo)
Eger hedefin kod gelistirme ise, MCP'yi "AI coding teammate" gibi konumlandir. Bu durumda tool'larin, uygulamayi calistirmak yerine gelistirme kararlarini hizlandirmali.
Oncelikli 5 tool:
- codebase_map
- Ne yapar: proje modul yapisini ve kritik dosyalari ozetler
- Neden lazim: AI once yapini anlar, yanlis dosyada degisiklik yapmaz
- endpoint_contract_find
- Ne yapar: bir endpointin handler/model/response baglantilarini bulur
- Input: method + path (ornek: GET /api/v1/images)
- Neden lazim: API degisikliklerinde tum etkileri hizli gorursun
- test_plan_suggest
- Ne yapar: secilen dosya veya endpoint icin test senaryolari uretir
- Input: hedef dosya veya endpoint
- Neden lazim: test acigini erken kapatir
- safe_refactor_check
- Ne yapar: degisecek sembolun kullanildigi yerleri listeler
- Input: symbol name
- Neden lazim: refactor kirilma riskini dusurur
- runbook_dev
- Ne yapar: bir gorev icin adim adim gelistirme akisi dondurur
- Input: gorev tanimi (ornek: image process endpointine webp kalite limiti ekle)
- Neden lazim: AI'dan tutarli ve tekrar edilebilir cikti alirsin
12) Kod gelistirme icin kisa uygulama plani
- Hafta 1: read-only tool'lar
- codebase_map
- endpoint_contract_find
- safe_refactor_check
- Hafta 2: kalite ve otomasyon
- test_plan_suggest
- runbook_dev
- Son adim: kontrol noktasi
- her tool icin ornek input-output
- hata kodlari
- loglama ve sure olcumu
13) Baslangic hedefi (onerilen)
Ilk sprintte su tek hedefle basla:
- "Bir endpoint degisikligi yapmadan once etkilenecek dosyalari ve test planini MCP uzerinden otomatik almak"
Bu hedef, hem hiz hem kalite kazandirir; yazma (write) tool'larina gecmeden once guvenli bir temel olusturur.
Istersen bir sonraki adimda senin hedefini tek cumleyle yazalim, buna gore dogrudan server.go icine 5 net tool tasarlayip ekleyebilirim.