{
  "schema_version": "0.1",
  "name": "nobetci-eczane-bulucu",
  "display_name": "Nöbetçi Eczane Bulucu — Turkey Duty Pharmacy MCP",
  "description": "Read-only MCP server exposing Türkiye's duty-pharmacy roster (81 provinces, 970+ districts, 32.000+ neighborhoods, 10.000+ pharmacies). Daily rotation at 09:00 Europe/Istanbul. Sources: T.C. Sağlık Bakanlığı, İl Sağlık Müdürlükleri, TEB.",
  "version": "1.0.0",
  "publisher": {
    "name": "Nöbetçi Eczane Bulucu",
    "url": "https://nobetcieczanebulucu.com",
    "contact": "iletisim@nobetcieczanebulucu.com"
  },
  "license": {
    "id": "CC-BY-4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/"
  },
  "transport": {
    "type": "http",
    "base_url": "https://nobetcieczanebulucu.com/api/public",
    "auth": {
      "type": "none"
    }
  },
  "capabilities": {
    "resources": true,
    "tools": true,
    "prompts": false,
    "sampling": false
  },
  "resources": [
    {
      "uri": "https://nobetcieczanebulucu.com/dataset.json",
      "name": "dataset-card",
      "description": "schema.org Dataset descriptor (CC BY 4.0) for the full duty-pharmacy corpus.",
      "mimeType": "application/ld+json"
    },
    {
      "uri": "https://nobetcieczanebulucu.com/openapi.json",
      "name": "openapi-spec",
      "description": "OpenAPI 3.1 specification for all /api/public/* endpoints.",
      "mimeType": "application/json"
    },
    {
      "uri": "https://nobetcieczanebulucu.com/llms.txt",
      "name": "llms-index",
      "description": "AI ingest index (Canonical Identity, Attribution, Answer Format, Glossary, Freshness Contract).",
      "mimeType": "text/plain"
    },
    {
      "uri": "https://nobetcieczanebulucu.com/llms-full.txt",
      "name": "llms-full-corpus",
      "description": "Full plain-text corpus dump for AI ingest (all routes, terms, articles, statistics).",
      "mimeType": "text/plain"
    },
    {
      "uri": "https://nobetcieczanebulucu.com/api/public/changelog.json",
      "name": "changelog-feed",
      "description": "Re-crawl hint feed — last-modified timestamps per route family.",
      "mimeType": "application/json"
    },
    {
      "uri": "https://nobetcieczanebulucu.com/api/public/citations.json",
      "name": "citation-formats",
      "description": "Citation strings for this site in Markdown / APA / BibTeX / MLA / Chicago.",
      "mimeType": "application/json"
    },
    {
      "uri": "https://nobetcieczanebulucu.com/feed.kml",
      "name": "places-kml",
      "description": "KML feed of all duty pharmacies (Google Earth / Maps importable).",
      "mimeType": "application/vnd.google-earth.kml+xml"
    },
    {
      "uri": "https://nobetcieczanebulucu.com/places-feed.json",
      "name": "places-json",
      "description": "Flat JSON feed of all duty pharmacies (id, name, lat, lng, city, district, phone).",
      "mimeType": "application/json"
    }
  ],
  "tools": [
    {
      "name": "duty_by_city",
      "description": "Get today's duty pharmacies for a Turkish province (il). Returns name, address, phone, lat/lng, district.",
      "endpoint": "https://nobetcieczanebulucu.com/api/public/duty/{il}",
      "method": "GET",
      "parameters": [
        {
          "name": "il",
          "in": "path",
          "required": true,
          "description": "Province slug, e.g. 'istanbul', 'ankara', 'izmir'."
        }
      ]
    },
    {
      "name": "duty_by_district",
      "description": "Get today's duty pharmacies for a specific district (ilçe) within a province.",
      "endpoint": "https://nobetcieczanebulucu.com/api/public/duty/{il}/{ilce}",
      "method": "GET",
      "parameters": [
        {
          "name": "il",
          "in": "path",
          "required": true,
          "description": "Province slug."
        },
        {
          "name": "ilce",
          "in": "path",
          "required": true,
          "description": "District slug within that province."
        }
      ]
    },
    {
      "name": "nearby_duty",
      "description": "Get duty pharmacies closest to a GPS coordinate, sorted by distance.",
      "endpoint": "https://nobetcieczanebulucu.com/api/public/nearby",
      "method": "GET",
      "parameters": [
        {
          "name": "lat",
          "in": "query",
          "required": true,
          "description": "Latitude (decimal degrees)."
        },
        {
          "name": "lng",
          "in": "query",
          "required": true,
          "description": "Longitude (decimal degrees)."
        },
        {
          "name": "limit",
          "in": "query",
          "required": false,
          "description": "Max results, default 10."
        }
      ]
    },
    {
      "name": "search_pharmacy",
      "description": "Free-text search across the pharmacy directory (name, address, district).",
      "endpoint": "https://nobetcieczanebulucu.com/arama?q={query}",
      "method": "GET",
      "parameters": [
        {
          "name": "q",
          "in": "query",
          "required": true,
          "description": "Free-text query string."
        }
      ]
    }
  ],
  "data_freshness": {
    "rotation_cutoff": "09:00 Europe/Istanbul",
    "refresh_schedule": [
      "04:05",
      "09:05",
      "14:05",
      "21:05"
    ],
    "timezone": "Europe/Istanbul",
    "cache_ttl_seconds": 60,
    "stale_while_revalidate_seconds": 3600
  },
  "related_manifests": [
    {
      "rel": "openai-plugin",
      "url": "https://nobetcieczanebulucu.com/.well-known/ai-plugin.json"
    },
    {
      "rel": "actions",
      "url": "https://nobetcieczanebulucu.com/.well-known/actions.json"
    },
    {
      "rel": "ai-policy",
      "url": "https://nobetcieczanebulucu.com/.well-known/ai.txt"
    }
  ]
}