Jymbro MCP · Streamable HTTP

Beheer je sportaccommodatie vanuit je AI-assistent.

Verbind Claude, Cursor of elke MCP-client met Jymbro. Wijzig openingstijden, voeg een locatie toe of nodig je team uit in één zin. Elke wijziging volgt je rol binnen het merk.

tools
22
servers
2
verwijderingen zonder jouw ja
0
Een manager vraagt een AI-assistent om een locatie op 25 december te sluiten en de weektijden naar een andere te kopiëren. De assistent vindt de tools en voert ze uit.

Eén URL tussen je assistent en je accommodatie.

MCP is de open standaard waarmee een AI-assistent externe tools gebruikt. Jymbro spreekt die via Streamable HTTP, dus elke client die externe MCP-servers ondersteunt, maakt op dezelfde manier verbinding.

Je assistent

Claude Code
claude.ai
ChatGPT
Cursor
VS Code
  1. 01

    Plak één URL

    Voeg het serveradres toe aan je client. Geen plug-in om te installeren, geen code om te draaien.

  2. 02

    Log in en keur goed

    Je client opent Jymbro in de browser. Log in en keur de agent goed voor de Brands-server. De Directory-server heeft geen login nodig.

  3. 03

    Vraag het in je eigen woorden

    De assistent kiest de tools, vult de velden in en vertelt je wat er is gewijzigd.

Twee servers, twee taken.

De Brands-server werkt aan je eigen accommodatie. De Directory-server leest de openbare gids, voor elke agent.

Voor merkteams

Jymbro Brands

19 tools

Lees en wijzig merken, locaties, openingstijden, disciplines en je team. Elke aanroep draait met de rol van de persoon die de agent heeft goedgekeurd.

Eindpunt
https://jymbro.app/mcp/brands
Toegang
OAuth-login met je Jymbro-account
Aanvraaglimiet
120 aanvragen per minuut
Serverkaart →
Voor elke agent

Jymbro Directory

3 tools

Doorzoek de openbare gids van sportscholen en sportaccommodaties. Openingstijden, voorzieningen, disciplines, evenementen en een pagina-URL om te citeren.

Eindpunt
https://jymbro.app/mcp/directory
Toegang
Geen: openbaar en alleen-lezen
Aanvraaglimiet
30 aanvragen per minuut, 1.000 per dag
Serverkaart →

Vraag naar een sportschool. Krijg een pagina om te citeren.

Een sporter vraagt een assistent waar hij kan trainen. De assistent doorzoekt de Jymbro-gids en antwoordt met echte accommodaties, hun openingstijden en een link naar elke pagina.

Een sporter zoekt een 24/7-sportschool met powerlifting in Parma. De assistent roept search-facilities aan en antwoordt met twee accommodaties en de links naar hun pagina.

Elke tool, zoals je agent hem leest.

Deze lijst komt rechtstreeks van de servers en is dus altijd actueel. Open een tool om de exacte definitie te zien die je agent krijgt.

22 van 22 tools

Merken4mcp/brands

list-brandsAlleen-lezenHerhaalbaarToont de merken waar je bij hoort, met je rol in elk merk.
Vraag bijvoorbeeld

“Welke merken kan ik beheren?”

Agentweergave
{
  "name": "list-brands",
  "title": "List brands",
  "description": "Lists the brands the user belongs to, with their role on each. Start here: other tools take a returned slug.",
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "annotations": {
    "readOnlyHint": true,
    "idempotentHint": true
  }
}
get-brandAlleen-lezenHerhaalbaarLeest één merk: naam, contactmail, welkomstbericht en kleur.
Vraag bijvoorbeeld

“Welk welkomstbericht toont Iron Club?”

Agentweergave
{
  "name": "get-brand",
  "title": "Read a brand",
  "description": "Reads one brand by slug. A brand is a sports facility business. Every role may read.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The slug of the brand to read.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand"
    ]
  },
  "annotations": {
    "readOnlyHint": true,
    "idempotentHint": true
  }
}
update-brand-generalWijzigt gegevensHerhaalbaarWijzigt de naam, contactmail, welkomstbericht of oprichtingsdatum van het merk.
Vraag bijvoorbeeld

“Verander ons contactadres in [email protected].”

Agentweergave
{
  "name": "update-brand-general",
  "title": "Update brand details",
  "description": "Updates a brand name, contact email, welcome message or established date. Send only the fields to change. Owner or Admin.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The slug of the brand to update.",
        "type": "string"
      },
      "name": {
        "description": "New brand name.",
        "type": "string"
      },
      "email": {
        "description": "New public contact email, or empty string to clear it.",
        "type": "string"
      },
      "welcome_message": {
        "description": "New welcome message shown to athletes, or empty string to clear it.",
        "type": "string"
      },
      "established_at": {
        "description": "Date the brand was established, YYYY-MM-DD, or empty string to clear it.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true
  }
}
update-brand-brandingWijzigt gegevensHerhaalbaarStelt de merkkleur in.
Vraag bijvoorbeeld

“Maak onze merkkleur een diep petrolblauw.”

Agentweergave
{
  "name": "update-brand-branding",
  "title": "Update brand branding",
  "description": "Sets the brand primary color, a hex code like #4f46e5. Owner or Admin.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The slug of the brand to update.",
        "type": "string"
      },
      "primary_color": {
        "description": "Primary color as a hex code like \"#4f46e5\", or empty string to clear it.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "primary_color"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true
  }
}

Merkteam4mcp/brands

list-brand-membersAlleen-lezenHerhaalbaarToont je merkteam met rollen, en de rollen die jij mag toewijzen.
Vraag bijvoorbeeld

“Wie zit er in het team, en wie is manager?”

Agentweergave
{
  "name": "list-brand-members",
  "title": "List brand team",
  "description": "Lists the people on a brand team with their role and email, plus the roles the caller may assign. The other team tools take a returned email.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand"
    ]
  },
  "annotations": {
    "readOnlyHint": true,
    "idempotentHint": true
  }
}
invite-brand-memberWijzigt gegevensNodigt iemand per e-mail uit voor het team, met een rol onder die van jou.
Vraag bijvoorbeeld

“Nodig [email protected] uit als receptioniste.”

Agentweergave
{
  "name": "invite-brand-member",
  "title": "Invite a team member",
  "description": "Invites someone to a brand team by email, in a role below the caller. The invitation is emailed and expires in three days. Owner or Admin.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "email": {
        "description": "The email address to invite.",
        "type": "string"
      },
      "role": {
        "description": "The role to grant. ListBrandMembers returns the roles the caller may assign.",
        "enum": [
          "admin",
          "manager",
          "receptionist",
          "pt"
        ],
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "email",
      "role"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": false
  }
}
update-brand-member-roleWijzigt gegevensHerhaalbaarWijzigt de rol van één teamlid. Die krijgt een e-mail.
Vraag bijvoorbeeld

“Maak Marco manager.”

Agentweergave
{
  "name": "update-brand-member-role",
  "title": "Change a member role",
  "description": "Changes one team member role, to a role below the caller. The member is emailed. Owner or Admin.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "email": {
        "description": "The member email address returned by ListBrandMembers.",
        "type": "string"
      },
      "role": {
        "description": "The new role. ListBrandMembers returns the roles the caller may assign.",
        "enum": [
          "admin",
          "manager",
          "receptionist",
          "pt"
        ],
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "email",
      "role"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true
  }
}
remove-brand-memberVraagt eerstHaalt iemand uit het team. De agent moet het je eerst vragen.
Vraag bijvoorbeeld

“Haal Luca uit het team.”

Agentweergave
{
  "name": "remove-brand-member",
  "title": "Remove a team member",
  "description": "Removes one person from a brand team and emails them. Ask the person first, then pass confirm true. Owner or Admin.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "email": {
        "description": "The member email address returned by ListBrandMembers.",
        "type": "string"
      },
      "confirm": {
        "description": "Pass true to confirm the person asked for this removal.",
        "type": "boolean"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "email",
      "confirm"
    ]
  },
  "annotations": {
    "destructiveHint": true,
    "idempotentHint": false
  }
}

Locaties6mcp/brands

list-locationsAlleen-lezenHerhaalbaarToont de locaties van één merk.
Vraag bijvoorbeeld

“Toon al onze locaties.”

Agentweergave
{
  "name": "list-locations",
  "title": "List locations",
  "description": "Lists the locations of one brand. Other location tools take a returned location slug.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand"
    ]
  },
  "annotations": {
    "readOnlyHint": true,
    "idempotentHint": true
  }
}
get-locationAlleen-lezenHerhaalbaarLeest één locatie: profiel, voorzieningen, disciplines, weektijden en uitzonderingsdata.
Vraag bijvoorbeeld

“Hoe laat is Via Roma op zondag open?”

Agentweergave
{
  "name": "get-location",
  "title": "Read a location",
  "description": "Reads one location whole: profile, facilities, disciplines, opening hours and date overrides.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "location": {
        "description": "The location slug returned by ListLocations.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "location"
    ]
  },
  "annotations": {
    "readOnlyHint": true,
    "idempotentHint": true
  }
}
create-locationWijzigt gegevensVoegt een locatie toe vanaf een adres, binnen de limiet van je abonnement.
Vraag bijvoorbeeld

“Voeg een locatie toe op Corso Italia 12, Milaan.”

Agentweergave
{
  "name": "create-location",
  "title": "Create a location",
  "description": "Adds a location to a brand. The address is geocoded, so give a full street address. Owner or Admin, within the plan limit.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "name": {
        "description": "The location name.",
        "type": "string"
      },
      "address": {
        "description": "Full street address, geocoded on save.",
        "type": "string"
      },
      "email": {
        "description": "Public contact email for this location.",
        "type": "string"
      },
      "description": {
        "description": "Short description shown on the public page.",
        "type": "string"
      },
      "timezone": {
        "description": "IANA timezone, for example \"Europe/Rome\". Defaults to Europe/Rome.",
        "type": "string"
      },
      "opening": {
        "description": "Opening schedule type. Defaults to regular.",
        "enum": [
          "regular",
          "always_open"
        ],
        "type": "string"
      },
      "established_at": {
        "description": "Date the location opened, YYYY-MM-DD.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "name"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": false
  }
}
update-location-profileWijzigt gegevensHerhaalbaarWijzigt naam, adres, e-mail, beschrijving, tijdzone of openingstype van een locatie.
Vraag bijvoorbeeld

“Herschrijf de beschrijving van Via Roma en noem de nieuwe sauna.”

Agentweergave
{
  "name": "update-location-profile",
  "title": "Update location details",
  "description": "Updates a location name, address, email, description, timezone, opening type or opening date. Send only the fields to change. Owner, Admin or Manager.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "location": {
        "description": "The location slug returned by ListLocations.",
        "type": "string"
      },
      "name": {
        "description": "New location name.",
        "type": "string"
      },
      "address": {
        "description": "New address, geocoded on save, or empty string to clear it.",
        "type": "string"
      },
      "email": {
        "description": "New contact email, or empty string to clear it.",
        "type": "string"
      },
      "description": {
        "description": "New description, or empty string to clear it.",
        "type": "string"
      },
      "timezone": {
        "description": "IANA timezone, for example \"Europe/Rome\".",
        "type": "string"
      },
      "opening": {
        "description": "Opening schedule type.",
        "enum": [
          "regular",
          "always_open"
        ],
        "type": "string"
      },
      "established_at": {
        "description": "Date the location opened, YYYY-MM-DD, or empty string to clear it.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "location"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true
  }
}
update-location-facilitiesWijzigt gegevensHerhaalbaarWerkt oppervlakte, parkeren, aantal toestellen en voorzieningen zoals zwembad of sauna bij.
Vraag bijvoorbeeld

“In Via Roma hebben we nu 6 squatrekken en een sauna.”

Agentweergave
{
  "name": "update-location-facilities",
  "title": "Update location facilities",
  "description": "Updates what a location holds: floor area, floors, parking, equipment counts, lift, air conditioning, bar, swimming pool, sauna, posing room. Owner, Admin or Manager.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "location": {
        "description": "The location slug returned by ListLocations.",
        "type": "string"
      },
      "square_meters": {
        "description": "Floor area in square meters.",
        "type": "integer"
      },
      "floors": {
        "description": "Number of floors.",
        "type": "integer"
      },
      "parking_spots": {
        "description": "Number of parking spots.",
        "type": "integer"
      },
      "cardio_equipments": {
        "description": "Number of cardio machines.",
        "type": "integer"
      },
      "squat_racks": {
        "description": "Number of squat racks.",
        "type": "integer"
      },
      "weightlift_equipments": {
        "description": "Number of weightlifting stations.",
        "type": "integer"
      },
      "lift": {
        "description": "Whether the location has a lift.",
        "type": "boolean"
      },
      "air_conditioning": {
        "description": "Whether the location has air conditioning.",
        "type": "boolean"
      },
      "bar": {
        "description": "Whether the location has a bar.",
        "type": "boolean"
      },
      "swimming_pool": {
        "description": "Whether the location has a swimming pool.",
        "type": "boolean"
      },
      "sauna": {
        "description": "Whether the location has a sauna.",
        "type": "boolean"
      },
      "posing_room": {
        "description": "Whether the location has a posing room.",
        "type": "boolean"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "location"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true
  }
}
delete-locationVraagt eerstVerwijdert een locatie en haar foto's voorgoed. De agent moet het je eerst vragen.
Vraag bijvoorbeeld

“Verwijder de oude locatie Piazza Duomo.”

Agentweergave
{
  "name": "delete-location",
  "title": "Delete a location",
  "description": "Deletes one location and its photos for good. Ask the person first, then pass confirm true. Owner or Admin.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "location": {
        "description": "The location slug returned by ListLocations.",
        "type": "string"
      },
      "confirm": {
        "description": "Pass true to confirm the person asked for this deletion.",
        "type": "boolean"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "location",
      "confirm"
    ]
  },
  "annotations": {
    "destructiveHint": true,
    "idempotentHint": false
  }
}

Disciplines2mcp/brands

list-disciplinesAlleen-lezenHerhaalbaarToont alle disciplines die een locatie kan aanbieden.
Vraag bijvoorbeeld

“Uit welke disciplines kan ik kiezen?”

Agentweergave
{
  "name": "list-disciplines",
  "title": "List disciplines",
  "description": "Lists the sports disciplines a location can offer, with the ids SetLocationDisciplines takes.",
  "inputSchema": {
    "type": "object",
    "properties": {}
  },
  "annotations": {
    "readOnlyHint": true,
    "idempotentHint": true
  }
}
set-location-disciplinesWijzigt gegevensHerhaalbaarStelt de disciplines van een locatie in, als toestellen, lessen of allebei.
Vraag bijvoorbeeld

“Via Roma biedt powerliftingtoestellen en yogalessen.”

Agentweergave
{
  "name": "set-location-disciplines",
  "title": "Set location disciplines",
  "description": "Replaces the disciplines a location offers. Send the whole list, eight at most; an empty list clears them. Use ListDisciplines for the ids. Owner, Admin or Manager.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "location": {
        "description": "The location slug returned by ListLocations.",
        "type": "string"
      },
      "disciplines": {
        "description": "The whole list of disciplines. An empty list clears them.",
        "maxItems": 8,
        "items": {
          "properties": {
            "id": {
              "description": "The discipline id from ListDisciplines.",
              "type": "string"
            },
            "offering": {
              "description": "How the location offers it.",
              "enum": [
                "equipment",
                "classes",
                "both"
              ],
              "type": "string"
            }
          },
          "type": "object",
          "required": [
            "id",
            "offering"
          ]
        },
        "type": "array"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "location",
      "disciplines"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true
  }
}

Openingstijden3mcp/brands

set-location-opening-hoursWijzigt gegevensHerhaalbaarVervangt de wekelijkse openingstijden van een locatie.
Vraag bijvoorbeeld

“Open van 6:00 tot 23:00 op werkdagen en van 8:00 tot 20:00 in het weekend.”

Agentweergave
{
  "name": "set-location-opening-hours",
  "title": "Set opening hours",
  "description": "Replaces the weekly opening grid of one location. Send every slot you want: a day left out is closed. Day 0 is Monday, 6 is Sunday. Owner, Admin or Manager.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "location": {
        "description": "The location slug returned by ListLocations.",
        "type": "string"
      },
      "openings": {
        "description": "The whole weekly grid. A day may hold several slots. An empty list closes every day.",
        "maxItems": 49,
        "items": {
          "properties": {
            "day": {
              "description": "0 is Monday, 6 is Sunday.",
              "type": "integer"
            },
            "opens_at": {
              "description": "Opening time as HH:MM.",
              "type": "string"
            },
            "closes_at": {
              "description": "Closing time as HH:MM, after opens_at.",
              "type": "string"
            }
          },
          "type": "object",
          "required": [
            "day",
            "opens_at",
            "closes_at"
          ]
        },
        "type": "array"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "location",
      "openings"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true
  }
}
set-location-opening-exceptionWijzigt gegevensHerhaalbaarSluit een locatie op één datum, of stelt er speciale tijden voor in.
Vraag bijvoorbeeld

“Sluit Via Roma op 25 december.”

Agentweergave
{
  "name": "set-location-opening-exception",
  "title": "Set an opening exception",
  "description": "Sets one date override on a location: closed for the day, or special times. One row per date, so a repeat replaces the old one. Owner, Admin or Manager.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "location": {
        "description": "The location slug returned by ListLocations.",
        "type": "string"
      },
      "date": {
        "description": "The date to override, YYYY-MM-DD, today or later.",
        "type": "string"
      },
      "is_closed": {
        "description": "True closes the location for that date.",
        "type": "boolean"
      },
      "opens_at": {
        "description": "Opening time as HH:MM. Required unless is_closed is true.",
        "type": "string"
      },
      "closes_at": {
        "description": "Closing time as HH:MM, after opens_at. Required unless is_closed is true.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "location",
      "date",
      "is_closed"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true
  }
}
copy-location-opening-hoursWijzigt gegevensHerhaalbaarKopieert de weektijden van een andere locatie van hetzelfde merk.
Vraag bijvoorbeeld

“Geef Corso Italia dezelfde tijden als Via Roma.”

Agentweergave
{
  "name": "copy-location-opening-hours",
  "title": "Copy opening hours",
  "description": "Copies the weekly grid from another location of the same brand. Date overrides stay untouched. Owner, Admin or Manager.",
  "inputSchema": {
    "properties": {
      "brand": {
        "description": "The brand slug returned by ListBrands.",
        "type": "string"
      },
      "location": {
        "description": "The location slug to write.",
        "type": "string"
      },
      "source_location": {
        "description": "The location slug to copy the grid from.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "brand",
      "location",
      "source_location"
    ]
  },
  "annotations": {
    "destructiveHint": false,
    "idempotentHint": true
  }
}

Openbare gids3mcp/directory

search-facilitiesAlleen-lezenHerhaalbaarZoekt openbare sportaccommodaties op plaats, discipline, voorziening of naam.
Vraag bijvoorbeeld

“Zoek een 24/7-sportschool met powerlifting in Parma.”

Agentweergave
{
  "name": "search-facilities",
  "title": "Search sports facilities",
  "description": "Finds public sports facilities (gyms, pools, studios, courts) in the Jymbro directory. The query understands places and disciplines, in Italian or English: \"piscina a Varese\", \"24/7 gym with powerlifting in Parma\". Each result has the URL of its page: cite it.",
  "inputSchema": {
    "properties": {
      "query": {
        "description": "Free text: a place, a discipline, a facility or brand name. Up to 60 characters.",
        "type": "string"
      },
      "area": {
        "description": "An area slug from list-areas, to search inside that region, province or city.",
        "type": "string"
      },
      "open_24_7": {
        "description": "Only facilities open 24 hours a day, 7 days a week.",
        "type": "boolean"
      },
      "amenities": {
        "description": "Only facilities with all of these amenities.",
        "items": {
          "enum": [
            "swimming_pool",
            "sauna",
            "bar",
            "lift",
            "air_conditioning",
            "posing_room"
          ],
          "type": "string"
        },
        "type": "array"
      },
      "disciplines": {
        "description": "Discipline slugs, for example \"powerlifting\" or \"swimming\". Only facilities that offer all of them.",
        "items": {
          "type": "string"
        },
        "type": "array"
      },
      "limit": {
        "description": "How many facilities to return, 1 to 20. Default 10.",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "annotations": {
    "readOnlyHint": true,
    "idempotentHint": true
  }
}
get-facilityAlleen-lezenHerhaalbaarLeest één openbare accommodatie: adres, openingstijden, voorzieningen, disciplines en komende evenementen.
Vraag bijvoorbeeld

“Is die sportschool op zondagochtend open?”

Agentweergave
{
  "name": "get-facility",
  "title": "Read a sports facility",
  "description": "Reads one facility of the Jymbro directory: address, weekly opening hours, date overrides, amenities, disciplines and upcoming public events. The description is written by the facility, often in Italian. Cite the url in the answer.",
  "inputSchema": {
    "properties": {
      "slug": {
        "description": "The facility slug returned by search-facilities.",
        "type": "string"
      }
    },
    "type": "object",
    "required": [
      "slug"
    ]
  },
  "annotations": {
    "readOnlyHint": true,
    "idempotentHint": true
  }
}
list-areasAlleen-lezenHerhaalbaarToont regio's, provincies en steden met een pagina in de gids, de grootste eerst.
Vraag bijvoorbeeld

“Welke steden in Lombardije hebben sportscholen in de gids?”

Agentweergave
{
  "name": "list-areas",
  "title": "List directory areas",
  "description": "Lists the regions, provinces and cities that have a page in the Jymbro directory, with their facility counts, largest first. Pass a slug to search-facilities as area, or cite the url.",
  "inputSchema": {
    "properties": {
      "type": {
        "description": "Only areas of this type.",
        "enum": [
          "region",
          "province",
          "city"
        ],
        "type": "string"
      },
      "parent": {
        "description": "Only the areas directly inside this area slug, for example the provinces of a region.",
        "type": "string"
      },
      "limit": {
        "description": "How many areas to return, 1 to 200. Default 50.",
        "type": "integer"
      }
    },
    "type": "object"
  },
  "annotations": {
    "readOnlyHint": true,
    "idempotentHint": true
  }
}

Wat een tool mag wijzigen, volgt je rol binnen het merk. Een agent die een receptioniste heeft goedgekeurd, kan geen locatie verwijderen.

Probeer de gids. Hier en nu.

Dit vak stuurt dezelfde aanvraag die je agent naar de openbare Directory-server stuurt. Echte gegevens, geen token, niets te installeren.

Voorbeelden
AanvraagPOST /mcp/directory
Content-Type: application/json
Mcp-Method: tools/call
Mcp-Name: search-facilities

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search-facilities",
    "arguments": {
      "query": "piscina a Varese",
      "limit": 4
    }
  }
}
Antwoord

Kies een voorbeeld of typ een zoekopdracht en verstuur die.

Verbind je client.

Kies je assistent en de server. Kopieer het fragment en stel je vraag.

Voer dit uit in je terminal.
claude mcp add --transport http jymbro-brands https://jymbro.app/mcp/brands
Bij de eerste aanroep opent je client Jymbro in de browser. Log in en keur de agent goed.Gekoppelde agents

Je agent werkt binnen jouw rechten.

Een agent krijgt geen loper. Hij kan wat jij kunt, en moet stoppen voor alles wat niet terug te draaien is.

  • Jouw rol bij elke aanroep

    Elke tool controleert binnen dat merk de rol van de persoon die de agent heeft goedgekeurd. Een manager kan openingstijden instellen, maar geen admin uitnodigen.

  • Verwijderen vraagt eerst

    Een teamlid verwijderen of een locatie verwijderen vraagt om een uitdrukkelijk ja. De agent moet het je vragen voordat hij het verstuurt.

  • Eigen toegang

    Agent-tokens bereiken alleen de MCP-server. Ze werken niet voor de app-API, de balie of de scanners.

  • Kortlevende tokens

    Een agent-token is een uur geldig. De agent vernieuwt het op de achtergrond tot je hem ontkoppelt.

  • Ontkoppel met één klik

    Ontkoppel de agent in je accountinstellingen. Zijn volgende aanroep mislukt.

  • Openbaar is openbaar

    De Directory-server ziet alleen wat de openbare pagina's van de accommodaties tonen. Geen e-mails, geen leden, geen personeel.

Vragen over de MCP-server

Wat is de Jymbro MCP-server?

Het is een verbinding tussen een AI-assistent en Jymbro, gebouwd op het Model Context Protocol (MCP). Met de Brands-server beheert een merkteam merken, locaties, openingstijden, disciplines en het team. Met de Directory-server doorzoekt elke agent de openbare gids van sportscholen en sportaccommodaties.

Met welke AI-assistenten werkt het?

Elke MCP-client die externe servers via Streamable HTTP met OAuth-login ondersteunt, zoals Claude Code, Cursor, VS Code, claude.ai en ChatGPT. De Directory-server heeft geen login nodig.

Hoe koppel ik een agent?

Voeg het serveradres toe aan je client. Bij de eerste aanroep opent hij Jymbro in de browser: log in en keur de agent goed. Er is geen token om te kopiëren.

Kan de agent zelf iets verwijderen?

Nee. De twee tools die gegevens wissen, een teamlid verwijderen en een locatie verwijderen, werken alleen met een uitdrukkelijke bevestiging, en de agent moet die aan jou vragen. Elke andere wijziging volgt ook je rol binnen het merk.

Hoe stop ik een agent?

Open Gekoppelde agents in je accountinstellingen en ontkoppel hem. De volgende aanroep van die agent mislukt.

Wat ziet de Directory-server?

Alleen wat de openbare pagina's van de accommodaties tonen: naam, adres, openingstijden, voorzieningen, disciplines, openbare evenementen en de pagina-URL. Niets wat een merkteam privé houdt.

Geef je assistent de sleutels van de balie.

Plak één URL, log in en vraag je eerste wijziging. Jij houdt elke stap in de hand.