morocco-travel

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

Should I use this

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,647Tokens (tool definitions)
~817 BTypical response size
Moderate attention impact (1.29% 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.

Install

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

What it can do

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

25 published Hebrew city guides: אגאדיר, בני מלאל, קזבלנקה, שפשוואן, עמק הדאדס, ארפוד, אסווירה, פאס, איפראן, מרקש, מקנס, מרזוגה והסהרה, מידלת, ורזאזאת, וואזן, אוג'דה, מפלי אוזוד, רבאט, ריסאני, סאפי, ספרו, טגזוט, טנג'יר, טטואן, עמק הטודרה וטינגיר. Each has a page URL and a markdown URL. Fetch the markdown URL for the full text.

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. Check partial, omittedCities, requestedDays and actualDays before presenting it as complete. When partial, choices describe ways to recalculate. 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; today or later in Israel time."
    },
    "month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12
    },
    "shabbatCity": {
      "type": "string",
      "description": "Only when kosher is partial or keep."
    },
    "cityPlans": {
      "type": "object",
      "description": "Optional selected-city preferences; a day trip may be impossible and yield a partial plan.",
      "additionalProperties": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "dayTrip",
              "stay"
            ]
          },
          "nights": {
            "type": [
              "integer",
              "string"
            ],
            "enum": [
              1,
              2,
              "3+"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "required": [
    "cities",
    "who",
    "style",
    "vibes",
    "pace",
    "kosher"
  ],
  "additionalProperties": false
}

Recommended Prompts

search_research
Search for information about [topic] using morocco-travel
Expected tools: search_site
find_specific
Find [specific item] using morocco-travel
Expected tools: search_site
research_workflow
Search for [topic], then get detailed information about the top results using morocco-travel
Expected tools: search_siteget_site
retrieve_data
Get details about [item] from morocco-travel
Expected tools: get_site
fetch_info
Fetch [information type] using morocco-travel
Expected tools: get_site

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools