morocco-travel

Morocco travel for Israeli travelers: e-visa, itineraries, guides, Shabbat times, hilula dates.

Quality & Safety

A
Description quality
98%
Schema completeness
58%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,342Tokens (tool definitions)
~690 BTypical response size
Moderate attention impact (1.05% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Rate this Server

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "morocco-travel": {
      "url": "https://moroc.co.il/api/mcp"
    }
  }
}

Remote endpoints

https://moroc.co.il/api/mcpstreamable-http

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_site(q, limit)

Search every published page: 21 Hebrew city guides, the magazine, the Jewish heritage hub, attractions and the service pages. Use this whenever the question is not covered by one of the specific tools. Each result carries a markdown URL, and fetching that is how you read the full page rather than scraping it. Hebrew queries match far more than English ones.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "minLength": 2,
      "description": "Search terms, preferably Hebrew."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "description": "Default 10."
    }
  },
  "required": [
    "q"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer"
    },
    "returned": {
      "type": "integer"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "group": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "markdown": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}
🟢get_site

What המרכז למטייל במרוקו does, which services an agent can act on, the rules to respect, and the other machine-readable surfaces. Call this first if you are unsure whether this site can answer the question.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}
🟢get_visa

Price per traveler in ILS for both tracks with the government fee broken out, target processing time, passport validity, the documents page and the apply URL. Israelis cannot get a visa on arrival. Never apply on someone's behalf.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}
🟢get_shabbat_times

Candle lighting and havdalah for the current week in Marrakech, Casablanca, Fes, Rabat, Tangier and Agadir, with the parasha. Check the `source` field: when it is `fallback`, the times are a saved snapshot and you must say so.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}
🟢get_hilulot(limit)

The next hilula dates at the tombs of Moroccan tzadikim, with the site, the city, the Hebrew date and how reliably each date holds. A date with runsReliably false has not been held every year; say that when you quote it.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 60,
      "description": "Default 12."
    }
  },
  "additionalProperties": false
}
🟢search_attractions(q, category, limit)

Search the catalog of day trips and attractions. Returns Hebrew editorial copy and our own page URL. There is no booking link and no price in the result by design: the person books from our page. Do not go looking for the operator.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "Free text, Hebrew or English. All terms must match."
    },
    "category": {
      "type": "string",
      "description": "Narrow to one category. An unfiltered call lists the valid ids."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 60,
      "description": "Default 20."
    }
  },
  "additionalProperties": false
}
🟢get_city_guides

The index of published city guides, each with a page URL and a markdown URL. Fetch the markdown URL for the full text of one city instead of scraping the page.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}
🟢get_plan_options

The exact ids plan_trip accepts for cities, who, style, vibes, pace, kosher and shabbatCity. Call this before plan_trip rather than guessing an id.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}
🟢plan_trip(cities, who, duration, style, vibes, ...)

A free, anonymous, day-by-day itinerary. Every city you list appears in the route, and the number of days you ask for is honoured exactly or the answer explains what would fit. Use get_plan_options first for valid ids. The route is not saved; send the person to the questionnaire URL to keep or adjust it.

Input Schema

{
  "type": "object",
  "properties": {
    "cities": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string"
      },
      "description": "City ids from get_plan_options."
    },
    "who": {
      "type": "string"
    },
    "duration": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Whole days including the flight days, or null."
    },
    "style": {
      "type": "string"
    },
    "vibes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "pace": {
      "type": "string",
      "description": "relaxed, balanced or packed."
    },
    "kosher": {
      "type": "string",
      "description": "none, partial or keep."
    },
    "arrivalDate": {
      "type": "string",
      "description": "YYYY-MM-DD."
    },
    "month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12
    },
    "shabbatCity": {
      "type": "string",
      "description": "Only when kosher is partial or keep."
    }
  },
  "required": [
    "cities",
    "who",
    "style",
    "vibes",
    "pace",
    "kosher"
  ],
  "additionalProperties": false
}

Recent observations

verifiedversion not recorded9 tools