WeekSpots

Upcoming events and outings in Paris and Île-de-France, plus permanent places across France.

Should I use this

Quality & Safety

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

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,050Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (0.82% 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": {
    "events": {
      "url": "https://app.weekspots.com/mcp"
    }
  }
}

Remote endpoints

https://app.weekspots.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_events(query, lang, near_lat, near_lon, radius_km, ...)

Semantic search over upcoming events in Paris and Île-de-France. The query can be in any language and describe a need ("rainy day activity for a 4 year old", "jazz gratuit", "亲子手工"). Returns up to 10 events, best match first, nearest first when a location is given.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What the user is looking for, in natural language.",
      "maxLength": 200
    },
    "lang": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "zh"
      ],
      "description": "Language of titles and summaries. Default: en."
    },
    "near_lat": {
      "type": "number",
      "description": "Latitude to search around (optional, with near_lon)."
    },
    "near_lon": {
      "type": "number",
      "description": "Longitude to search around (optional, with near_lat)."
    },
    "radius_km": {
      "type": "number",
      "enum": [
        2,
        3,
        5,
        8,
        12,
        20,
        30,
        50
      ],
      "description": "Only with near_lat/near_lon: keep events within this distance."
    },
    "date_from": {
      "type": "string",
      "description": "Earliest day, YYYY-MM-DD (Europe/Paris). Optional."
    },
    "date_to": {
      "type": "string",
      "description": "Latest day, YYYY-MM-DD (Europe/Paris), inclusive. Optional."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Number of events, default 8."
    }
  },
  "required": [
    "query"
  ]
}
🟢list_city_events(city, filter, lang, limit)

Upcoming events in one town of Île-de-France (e.g. Paris, Versailles, Saint-Germain-en-Laye), soonest first. Optional filter: this weekend, free, or for children. Returns up to 10 events and the total count; `more_url` is the full list.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "Town name, e.g. \"Versailles\".",
      "maxLength": 80
    },
    "filter": {
      "type": "string",
      "enum": [
        "weekend",
        "free",
        "kids"
      ],
      "description": "weekend = this weekend, free = free admission, kids = for children. Optional."
    },
    "lang": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "zh"
      ],
      "description": "Language of titles and summaries. Default: en."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Number of events, default 8."
    }
  },
  "required": [
    "city"
  ]
}
🟢get_event(id, lang)

Details of one event by the `id` returned by search_events or list_city_events: dates, venue, price and age information, booking link, conditions.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Event id, e.g. \"qfap:123102\".",
      "maxLength": 200
    },
    "lang": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "zh"
      ],
      "description": "Language of titles and summaries. Default: en."
    }
  },
  "required": [
    "id"
  ]
}
🟢find_places(category, near_lat, near_lon, city, radius_km, ...)

Permanent places open all year anywhere in France (playgrounds, parks, sports courts, skateparks, pools, amusement parks, zoos, libraries, museums and other cultural venues, heritage sites), nearest first. Use it when there is no dated event that fits, or the user wants a place rather than an event. Give a location (near_lat/near_lon) or a town of Île-de-France. Returns up to 10 places.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "playground",
        "park",
        "courts",
        "skate",
        "pool",
        "fun",
        "zoo",
        "library",
        "culture",
        "heritage"
      ],
      "description": "Kind of place. Optional: all kinds when omitted."
    },
    "near_lat": {
      "type": "number",
      "description": "Latitude to search around (with near_lon)."
    },
    "near_lon": {
      "type": "number",
      "description": "Longitude to search around (with near_lat)."
    },
    "city": {
      "type": "string",
      "description": "Town in Île-de-France, used when no coordinates are given, e.g. \"Versailles\".",
      "maxLength": 80
    },
    "radius_km": {
      "type": "number",
      "enum": [
        1,
        2,
        3,
        5,
        10
      ],
      "description": "Search radius, default 3."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Number of places, default 8."
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools