{
  "surum": "1.0",
  "guncelleme": "2026-09-01",
  "baslik": "tarim.online — MCP (Model Context Protocol) sunucusu",
  "aciklama": "tarim.online, tarım hesap araçlarını ve Gökçeada bilgi tabanını bir GERÇEK MCP sunucusu olarak da açar. Herhangi bir MCP istemcisi (Claude Desktop, Cursor vb.) bu ucu araç kaynağı olarak ekleyip anında tarım + Gökçeada araçlarını kullanır. Tüm araçlar salt-okunurdur (readOnlyHint); yazma/icra yoktur.",
  "uc": {
    "url": "https://tarim.online/mcp",
    "tasima": "Streamable HTTP (JSON modu)",
    "protokol": "JSON-RPC 2.0",
    "protokol_surumleri": [
      "2025-06-18",
      "2025-03-26",
      "2024-11-05"
    ],
    "yontem": "POST (JSON-RPC gövdesi). GET/SSE server-push sunulmaz — durumsuz araç sunucusu.",
    "cors": "açık (Access-Control-Allow-Origin: *); tarayıcı-içi istemciler de bağlanabilir",
    "durum": "durumsuz (stateless); Mcp-Session-Id kullanılmaz",
    "govde_tavani": "262144 bayt (fail-closed)"
  },
  "metotlar": {
    "initialize": "El sıkışma; sunucu yeteneklerini + kullanım yönergesini (instructions) döner.",
    "tools/list": "Araç şemalarını döner (aşağıdaki 'araclar').",
    "tools/call": "{name, arguments} ile bir aracı çağırır; sonuç content[].text (JSON) + structuredContent.",
    "ping": "Sağlık yoklaması (boş sonuç)."
  },
  "araclar": [
    {
      "name": "tarim_hesapla",
      "aciklama": "10 deterministik tarım hesabı (alan, sulama, siklik, girdi, npk, ilac, nem, kar, gdd, ruzgar). 'arac' seç + parametrelerini geç; garanti-doğru JSON döner. Aritmetiği modelde yapma. Parametre listesi /api/araclar.json ile birebir aynıdır.",
      "salt_okunur": true
    },
    {
      "name": "tarim_sor",
      "aciklama": "Türkçe tarım sorusunu TEK çağrıda yanıtla — doğal cümleyi ver, deterministik anlayıcı doğru hesaba ya da Gökçeada ürün-önerisine yönlendirsin. arguments: {soru}. LLM yok; sayı cümlede yoksa uydurmaz.",
      "salt_okunur": true
    },
    {
      "name": "gokceada_ekim_takvimi",
      "aciklama": "28 ürün × 12 ay sıcaklık penceresi matrisi — \"hangi ayda ne?\" Parametresiz.",
      "salt_okunur": true
    },
    {
      "name": "gokceada_urun_profili",
      "aciklama": "Bir ürünün Gökçeada bölge + iklim-uygunluk (FAO EcoCrop) + besin değeri (USDA FDC) TEK çağrıda. arguments: {ad}.",
      "salt_okunur": true
    },
    {
      "name": "gokceada_iklim_uygunluk",
      "aciklama": "28 ürünün Gökçeada iklimine deterministik uygunluk skoru (FAO EcoCrop). arguments: {urun?} — boşsa tümü sıralı.",
      "salt_okunur": true
    },
    {
      "name": "gokceada_besin_degeri",
      "aciklama": "Bir gıdanın 100 g başına besin değeri (USDA FoodData Central, kamu malı). arguments: {urun}.",
      "salt_okunur": true
    },
    {
      "name": "gokceada_agronomi",
      "aciklama": "Gökçeada N-P-K ve fenoloji matrisi (Ladolia zeytin, Vasilaki bağ). arguments: {urun?}.",
      "salt_okunur": true
    },
    {
      "name": "gokceada_strateji_bu_hafta",
      "aciklama": "Gökçeada parsel operatörü bu hafta görev kartı (DR 4 faz · 6 saha maddesi). SİM rehber; verim/ROI yok. Parametresiz.",
      "salt_okunur": true
    },
    {
      "name": "gokceada_model_istasyon_moduller",
      "aciklama": "17 kriz modülü durum haritası (CANLI/SİM/ÖLÇÜLMEDİ/VİZYON). Next.js stack RED. Parametresiz.",
      "salt_okunur": true
    },
    {
      "name": "gokceada_tarimsal_hafiza",
      "aciklama": "Geleneksel ↔ bilimsel tarım hafızası (hilum, hendek, kül). SİM rehber. Parametresiz.",
      "salt_okunur": true
    }
  ],
  "ornek_cagri": {
    "aciklama": "curl ile tools/call örneği (tarim_hesapla → npk):",
    "komut": "curl -s https://tarim.online/mcp -H 'Content-Type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"tarim_hesapla\",\"arguments\":{\"arac\":\"npk\",\"alan_da\":25,\"saf_besin_kg_da\":12,\"gubre_yuzde\":26}}}'"
  },
  "iliski": {
    "rest_api": "/api/hesapla, /api/uygunluk, /api/besin, /api/urun — aynı motorların REST yüzeyi (MCP olmayan istemciler için).",
    "webmcp": "Tarayıcı-içi WebMCP — spec kayması güvenli: önce document.modelContext, yoksa navigator.modelContext denenir; aynı 10 araç sayfa üstünde kayıt edilir. İkisi de yoksa sessiz düşüş (REST uçları zaten açık).",
    "llms_txt": "/llms.txt — agentic keşif dosyası.",
    "yazma": "/api/iz (POST, HMAC-SHA256 imzalı) — öneri bırakma; MCP araçları YAZMAZ, yalnız okur."
  },
  "verimlilik_olcumu": {
    "aciklama": "Aracı MCP'den öğrenmek, aynı yeteneği HTML/DOM kazımaktan çok daha az token harcar. Bu ÖLÇÜLMÜŞ sayıdır (uydurma değil).",
    "olcum_tarihi": "2026-08-28",
    "yontem": "gerçek tokenizer (tiktoken cl100k_base); MCP tools/list yanıtı vs aynı yeteneği veren index.html + araclar.js baytları.",
    "mcp_tools_list_token": 1284,
    "html_dom_kazima_token": 19754,
    "kazanc": "~15x daha az token",
    "tek_hesap_sonucu_token": 394,
    "not": "Yüzey değiştikçe sayı değişir; ölçüm yeniden yapılabilir."
  },
  "durustluk": "Yeni yetenek üretilmez; var olan deterministik motorlar (aynı sonucu REST ve WebMCP ile veren) MCP araçlarına bağlanır. Sonuçlar tarımsal/tıbbi danışmanlık değil, bilgi ve aritmetiktir."
}