MCP Sunucu — Kullanıcı Kılavuzu

Nedir Bu?

MCP sunucusu (Model Context Protocol) meni.ge için, AI asistanlarını (Claude, ChatGPT, Cursor, VS Code Copilot ve diğerleri) restoranınızın verilerine bağlamanızı sağlar. AI, menü, lokasyonlar, siparişler, görseller gibi verilere erişebilir ve bunları sizin adınıza yönetebilir.

Hızlı Başlangıç

1. API Anahtarı Alın

API anahtarı, restoranınızın yönetim panelinde oluşturulur.

Adım adım:

  1. admin.meni.ge adresinden Yönetim Paneli'ne giriş yapın
  2. Yan menüden ⚙️ Ayarlar🔑 Erişim'i açın
  3. Sayfada 🤖 MCP API Anahtarları bölümünü bulun
  4. «Yeni anahtar oluştur» butonuna tıklayın
  5. Anahtar adı girin (örneğin, «Claude Desktop», «Cursor», «Benim GPT») — bu, anahtarları birbirinden ayırt etmenize yardımcı olur
  6. Anahtarı hemen kopyalayın — sadece bir kez gösterilir!

💡 Aynı sayfada Sunucu URL'si (https://api.meni.ge/mcp) de görüntülenir ve tek tıklamayla kopyalanabilir.

Anahtar Yönetimi

  • Hesap başına 10 anahtar oluşturabilirsiniz
  • Her anahtar herhangi bir zamanda iptal edilebilir — anahtarın yanındaki «İptal Et» butonu
  • İptal edildikten sonra anahtar hemen çalışmayı durdurur
  • Anahtar kaybolursa — iptal edin ve yenisini oluşturun

2. AI Asistanını Bağlayın

Claude Desktop / Claude Code

claude_desktop_config.json yapılandırma dosyası:

{
  "mcpServers": {
    "meni": {
      "url": "https://api.meni.ge/mcp",
      "headers": {
        "Authorization": "Bearer SİZİN_API_ANAHTARINIZ"
      }
    }
  }
}

Cursor

Cursor ayarlarında → MCP Servers → Add, veya .cursor/mcp.json dosyası:

{
  "mcpServers": {
    "meni": {
      "url": "https://api.meni.ge/mcp",
      "headers": {
        "Authorization": "Bearer SİZİN_API_ANAHTARINIZ"
      }
    }
  }
}

VS Code (GitHub Copilot)

Projedeki .vscode/mcp.json:

{
  "servers": {
    "meni": {
      "type": "http",
      "url": "https://api.meni.ge/mcp",
      "headers": {
        "Authorization": "Bearer SİZİN_API_ANAHTARINIZ"
      }
    }
  }
}

Diğer AI Araçları

Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Cline, Continue, ChatGPT ve diğerleri için ayrıntılı adım adım talimatlar:

👉 AI Araçlarını MCP'ye Bağlama


AI Asistanı Ne Yapabilir?

Restoran Sahipleri İçin (normal kullanıcılar)

Komut Açıklama
whoami Hesap bilgilerini göster (userId, email, rol)
my_profile Kullanıcı profilinizi alın
update_my_profile Profilinizdeki alanları güncelleyin
my_locations Tüm lokasyonlarınızın listesi
my_orders Siparişlerinizin listesi
my_images Görsellerinizin listesi (menü, kategoriler, lokasyonlar)

Kullanıcı Profilleri

Komut Açıklama
get_user_profile userId ile kullanıcı profilini alın
update_user_profile Kullanıcı profil alanlarını güncelleyin
list_users [ADMIN] Tüm kullanıcıların listesi
search_user_by_email [ADMIN] Cognito üzerinden email ile kullanıcı arayın

Lokasyonlarla Çalışma

Komut Açıklama
list_locations Kullanıcının tüm lokasyonları
get_location_profile Lokasyon profili (isim, adres, çalışma saatleri, ayarlar)
update_location_profile Lokasyon ayarlarını güncelleyin (CDN ile otomatik senkronize edilir)
get_location_menu Kategoriler ve pozisyonlarla birlikte lokasyonun tam menüsü

Menü ile Çalışma

Komut Açıklama
list_menu_items Tüm menü pozisyonları (categoryId ile — tam veriler, olmadan — item/category ID çiftleri)
get_menu_item Tam verilerle pozisyonu alın (çeviriler, varyantlar, ekler dahil)
update_menu_item Menü pozisyonunu güncelleyin (fiyat, açıklama, durum, etiketler, varyantlar, ekler)
create_menu_item Kategoride yeni bir menü pozisyonu oluşturun
create_menu_category Yeni bir menü kategorisi oluşturun
update_menu_category Kategoriyi güncelleyin (isim, çeviriler, durum, sıralama düzeni)
move_menu_item Pozisyonu bir kategoriden diğerine taşıyın
merge_categories İki kategoriyi birleştirin (tüm pozisyonlar taşınır, kaynak silinir)
delete_menu_category Kategoriyi silin (force: true ile — tüm pozisyonlarla birlikte)

Siparişler

Komut Açıklama
list_orders Siparişlerin listesi (userId veya domain ile)
get_order Belirli bir siparişin detayları

Domainler

Komut Açıklama
check_domain_availability Domain adının kullanılabilirliğini kontrol edin
set_location_domain Lokasyonun domain adını değiştirin (CDN ve eşlemeleri günceller)
resolve_domain Domain üzerinden userId ve locationId öğrenin
list_domains [ADMIN] Kayıtlı tüm domainlerin listesi

CDN (yayınlanmış veriler)

Komut Açıklama
get_cdn_profile Lokasyonun yayınlanmış profili (CDN'de)
get_cdn_menu Belirtilen dilde yayınlanmış menü
list_cdn_files Domainin tüm yayınlanmış dosyaları
invalidate_cdn_cache [ADMIN] CloudFront CDN önbelleğini sıfırlayın

Görseller

Komut Açıklama
list_user_images Kullanıcının tüm görselleri
get_image_upload_url S3'e görsel yüklemek için presigned URL alın (JPEG/PNG/WebP)
delete_image Görseli silin (kullanıcılar — sadece kendi görsellerini)

S3'e Düşük Seviyeli Erişim

Komut Açıklama
s3_read S3'ten dosya okuyun (kullanıcılar — sadece kendi dosyalarını)
s3_write [ADMIN] S3'e JSON verisi yazın
s3_list S3'teki dosyaların listesi (kullanıcılar — sadece kendi ön eklerini)
s3_delete [ADMIN] S3'ten nesne silin

Cognito

Komut Açıklama
cognito_list_users [ADMIN] Cognito User Pool'dan kullanıcı listesi
cognito_get_user [ADMIN] Cognito kullanıcısı hakkında detaylı bilgi

İstatistik

Komut Açıklama
get_system_stats [ADMIN] Sistem genelinde istatistik

Kimlik Doğrulama

Sunucu üç tür yetkilendirme yöntemi destekler:

1. API Anahtarı (AI asistanları için önerilir)

Authorization: Bearer sizin_64_karakterli_anahtarınız

Anahtar, yönetim panelinde oluşturulur. Hesabınıza bağlıdır — AI sadece sizin verilerinizi görür.

2. Cognito JWT Token

Programatik entegrasyon için giriş yaparak token alabilirsiniz:

# Token al
curl -X POST https://api.meni.ge/mcp/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "sizin@email.com", "password": "sizin_şifreniz"}'

# Yanıt idToken içerir — bunu kullanın:
Authorization: Bearer eyJraWQ...

Token 1 saat geçerlidir, ardından tekrar giriş yapılması gerekir.

3. Admin API Anahtarı (sadece yöneticiler için)

Authorization: Bearer admin_key

Yönetici anahtarı, tüm kullanıcıların tüm verilerine tam erişim sağlar.


Güvenlik

  • Her API anahtarı belirli bir hesaba bağlıdır
  • Normal kullanıcılar sadece kendi verilerini görür
  • Anahtar, yönetim panelinde herhangi bir zamanda iptal edilebilir
  • Hesap başına maksimum 10 anahtar
  • Tüm istekler HTTPS üzerinden yapılır
  • [ADMIN] etiketi olan komutlar normal kullanıcılara kapalıdır

Kullanım Örnekleri

AI'dan bir yemeğin fiyatını güncellemesini istemek

«Menümdeki «Haçapuri» pozisyonunun fiyatını güncelle — 12 lari yerine 15 lari yap»

AI, my_locationsget_location_menuupdate_menu_item komutlarını çağırır.

Menüye yeni bir pozisyon eklemek

«Tatlılar kategorisine 8 lari fiyatla yeni bir yemek «Çurçhela» ekle»

AI, my_locationsget_location_menucreate_menu_item komutlarını çağırır.

Yeni bir kategori oluşturmak

«Gürcüce ve İngilizce çevirileriyle «İçecekler» kategorisi oluştur»

AI, create_menu_category komutunu nameTranslations ile çağırır.

Bir yemeği kategoriler arasında taşımak

««Limonata»yı «Soğuk İçecekler»den «Alkolsüz»e taşı»

AI, move_menu_item komutunu kaynak ve hedef kategoriyi belirterek çağırır.

Bugünkü siparişleri görmek

«Bugünkü siparişlerimi göster»

AI, my_orders komutunu çağırır ve tarihe göre filtreler.

Yayınlanmış menüyü kontrol etmek

«Ziyaretçiler için menüm Rusça dilinde nasıl görünüyor?»

AI, resolve_domainget_cdn_menu komutlarını ru diliyle çağırır.

Restoranın domainini değiştirmek

«my-restaurant domaini müsait mi kontrol et, eğer öyleyse ayarla»

AI, check_domain_availabilityset_location_domain komutlarını çağırır.

Yemek fotoğrafı yüklemek

«X yemeği için fotoğraf yükleme bağlantısı ver»

AI, get_image_upload_url komutunu çağırır ve yükleme için presigned URL döner.


API Uç Noktaları

Yöntem URL Açıklama
GET https://api.meni.ge/mcp Sunucu hakkında bilgi + araç listesi
POST https://api.meni.ge/mcp MCP JSON-RPC (ana protokol)
GET https://api.meni.ge/mcp/health Çalışırlık kontrolü
POST https://api.meni.ge/mcp/auth/login Giriş → JWT tokenler
GET https://api.meni.ge/mcp/api/keys API anahtarlarınızın listesi
POST https://api.meni.ge/mcp/api/keys Yeni API anahtarı oluştur
DELETE https://api.meni.ge/mcp/api/keys/{id} API anahtarını iptal et

Anahtar Yönetimi

Anahtarları Görüntüleme

Yönetim panelinde → Ayarlar → Erişim → MCP API Anahtarları. Veya API üzerinden:

curl https://api.meni.ge/mcp/api/keys \
  -H "Authorization: Bearer COGNITO_JWT_TOKEN"

Anahtar Oluşturma

curl -X POST https://api.meni.ge/mcp/api/keys \
  -H "Authorization: Bearer COGNITO_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Claude Desktop"}'

Yanıt key alanını içerir — bu sizin anahtarınızdır. Kaydedin!

Anahtar İptali

curl -X DELETE https://api.meni.ge/mcp/api/keys/mk_abc123 \
  -H "Authorization: Bearer COGNITO_JWT_TOKEN"

⚠️ Anahtar oluşturma ve iptal etme, Cognito JWT token gerektirir (API anahtarı değil). Yönetim panelini kullanın — daha kolaydır.


Sorun Giderme

Sorun Çözüm
401 Unauthorized API anahtarını kontrol edin. İptal edildiyse — yenisini oluşturun
403 user identity required Anahtar yönetimi için Cognito JWT kullanın
🔒 admin access required Komut sadece yöneticilere açıktır
🔒 access denied Başka bir kullanıcının verilerini almaya çalışıyorsunuz
Anahtar çalışmıyor Anahtarın iptal edilmediğini ve formatın doğru olduğunu kontrol edin: Bearer <anahtar>