MCP Sunucusu
jekcms, /api/mcp/ adresinde yerleşik bir Model Context Protocol sunucusu içerir. MCP destekleyen bir ajan (Claude Code, Claude Desktop, Cursor, Windsurf) yazılarınızı listeleyebilir, okuyabilir, taslak oluşturabilir, güncelleyebilir ve yayınlayabilir. İçerik tazeleme kuyruğuna bakabilir, AI görünürlük özetini okuyabilir. Bunu REST API ile aynı anahtarı ve aynı yetkileri kullanarak yapar.

Bir şey kurmanız gerekmez. Uç çekirdeğin parçasıdır ve Yönetim → API Anahtarları ekranındaki anahtarları kabul eder.
Bağlanma
Bir anahtar üretin, sonra sunucuyu istemcinize tanıtın. Taşıma yöntemi düz JSON yanıtlarla Streamable HTTP'dir; SSE akışı gerekmez.
claude mcp add --transport http jekcms https://example.com/api/mcp/ \
--header "Authorization: Bearer API_ANAHTARINIZ"
JSON ile yapılandırılan istemcilerde:
{
"mcpServers": {
"jekcms": {
"type": "http",
"url": "https://example.com/api/mcp/",
"headers": { "Authorization": "Bearer API_ANAHTARINIZ" }
}
}
}
Alt dizin kurulumu da aynı şekilde çalışır: https://example.com/blog/api/mcp/. Adresi tarayıcıda açarsanız boş sayfa yerine 405 ve tek satırlık bir açıklama görürsünüz; böylece adresin doğru olduğunu hızlıca kontrol edersiniz.
Araçlar
| Araç | Ne yapar | |---|---| | site_info | Site adı, adresi, dili, jekcms sürümü, içerik sayıları, anahtarın kendi kullanıcısı ve rolü, llms.txt adresi | | list_posts | En yeniden başlayarak yazılar; duruma, türe, arama metnine ya da kategori kısa adına göre süzülür, limit ve offset ile sayfalanır | | get_post | Kimlik ya da kısa adla tek yazı; içerik, kategoriler, etiketler ve SEO alanları (odak kelime, meta açıklama, kısa cevap, SSS) | | create_post | Taslak olarak yazı oluşturur; scheduled_at verilirse zamanlanmış. Gövde Markdown ya da HTML; kategoriler, etiketler ve SEO alanları aynı çağrıda | | update_post | Var olan yazının istediğiniz alanlarını değiştirir | | publish_post | Taslağı kalite kapısından geçirerek yayınlar; reddedilirse engelleyen sebepleri döner | | trash_post | Yazıyı çöpe taşır; panelden geri alınabilir | | list_categories | Kategoriler, kısa adları ve yazı sayılarıyla | | list_tags | Etiketler, kısa adları ve yazı sayılarıyla; ilk 200 | | get_refresh_queue | İçerik tazeleme kuyruğu: trafik kaybeden, kırık bağlantısı olan, güncelliğini yitirmiş, başlığında eski bir yıl geçen ya da kısa cevabı olmayan yazılar; sebepleri ve öncelik puanıyla | | get_ai_visibility | Bot bazında AI tarama sayıları ve en çok taranan sayfalar; analitik açıksa AI asistanlarından gelen ziyaretler |
Her araç, model için okunabilir metnin yanında programatik kullanım için structuredContent döner.
REST yazı ucundan farklı olarak create_post ve update_post kategori adı ya da kısa adı kabul eder: var olan kategori eşleştirilir, bulunamayan bir ad için yeni kategori oluşturulur. Bu yüzden kategori oluşturmak editör yetkisi gerektirir.
Yetkiler ve güvenlik
Ajanın neler yapabileceğini REST'te olduğu gibi anahtarın rolü belirler. Yazar anahtarı yalnızca kendi yazılarını değiştirebilir; editör ve yönetici anahtarları bütün yazıları değiştirebilir. Yetkisi yetmeyen bir anahtar, eksik yetkinin adını veren bir hata alır.
Ajanın yazdığı hiçbir şey kendiliğinden yayına girmez. create_post her zaman taslak oluşturur (gelecekte bir zaman verirseniz zamanlanmış yazı) ve doğrudan yayınlayan bir parametre yoktur. Yayınlamak için publish_post gerekir ve publish_post panelle aynı kalite kapısını çalıştırır. Reddedilen yayın sebeplerini döndürür. Ajan bu sebepleri okuyup yazıyı update_post ile düzeltebilir ve yeniden deneyebilir; böylece basit sorunlar bir kişinin müdahalesi olmadan çözülür.
Yazı gövdeleri güvenilmez kanal sayılır. Markdown HTML'e çevrilir ve sonuç kaydedilmeden önce temizlenir; betikler ve olay öznitelikleri silinir.
Geçerli anahtarı olmayan istek HTTP 401 ve anahtarın nereden üretileceğini söyleyen bir JSON-RPC hatası alır. Anahtarlar Yönetim → API Anahtarları ekranından iptal edilir ve iptal bir sonraki çağrıdan itibaren geçerli olur; son kullanım zamanı anahtar başına kaydedildiği için bir ajanın hâlâ bağlı olup olmadığını görebilirsiniz.
Protokol notları
POST /api/mcp/ üzerinden JSON-RPC 2.0; protokol sürümü olarak 2025-06-18, 2025-03-26 ve 2024-11-05 kabul edilir. Desteklenen yöntemler: initialize, notifications/initialized, ping, tools/list, tools/call, sitenin llms.txt dosyasını sunan resources/list ve boş dönen prompts/list. İstek dizileri toplu (batch) olarak işlenir; bildirimler gövdesiz 202 alır.