Jymbro MCP · Streamable HTTP

Gestiona tu centro deportivo desde tu asistente de IA.

Conecta Claude, Cursor o cualquier cliente MCP a Jymbro. Cambia horarios, añade una ubicación o invita a tu equipo con una frase. Cada cambio sigue tu rol en la marca.

herramientas
22
servidores
2
borrados sin tu sí
0
Un gerente pide a un asistente de IA cerrar una ubicación el 25 de diciembre y copiar el horario semanal a otra. El asistente encuentra las herramientas y las ejecuta.

Una sola URL entre tu asistente y tu centro.

MCP es el estándar abierto que permite a un asistente de IA usar herramientas externas. Jymbro lo habla por Streamable HTTP, así que cualquier cliente que admita servidores MCP remotos se conecta igual.

Tu asistente

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

    Pega una URL

    Añade la dirección del servidor a tu cliente. Sin plugins que instalar ni código que ejecutar.

  2. 02

    Inicia sesión y aprueba

    Tu cliente abre Jymbro en el navegador. Inicia sesión y aprueba el agente para el servidor Brands. El servidor Directory no necesita inicio de sesión.

  3. 03

    Pide con tus palabras

    El asistente elige las herramientas, rellena los campos y te dice qué ha cambiado.

Dos servidores, dos trabajos.

El servidor Brands trabaja sobre tu propio centro. El servidor Directory lee el directorio público, para cualquier agente.

Para equipos de marca

Jymbro Brands

19 herramientas

Lee y cambia marcas, ubicaciones, horarios, disciplinas y equipo. Cada llamada usa el rol de la persona que aprobó el agente.

Dirección
https://jymbro.app/mcp/brands
Acceso
Inicio de sesión OAuth con tu cuenta de Jymbro
Límite de peticiones
120 peticiones por minuto
Ficha del servidor →
Para cualquier agente

Jymbro Directory

3 herramientas

Busca en el directorio público de gimnasios y centros deportivos. Horarios, servicios, disciplinas, eventos y la URL de la página para citar.

Dirección
https://jymbro.app/mcp/directory
Acceso
Ninguno: público y de solo lectura
Límite de peticiones
30 peticiones por minuto, 1.000 al día
Ficha del servidor →

Pide un gimnasio. Recibe una página para citar.

Un deportista pide a un asistente un sitio para entrenar. El asistente busca en el directorio de Jymbro y responde con centros reales, sus horarios y un enlace a cada página.

Un deportista busca un gimnasio 24/7 con powerlifting en Parma. El asistente llama a search-facilities y responde con dos centros y los enlaces a sus páginas.

Cada herramienta, tal como la lee tu agente.

Esta lista sale de los propios servidores, así que siempre está al día. Abre una herramienta para ver la definición exacta que recibe tu agente.

22 de 22 herramientas

Marcas4mcp/brands

list-brandsSolo lecturaRepetibleLista las marcas a las que perteneces, con tu rol en cada una.
Prueba a pedir

“¿Qué marcas puedo gestionar?”

Vista del agente
{
  "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-brandSolo lecturaRepetibleLee una marca: nombre, email de contacto, mensaje de bienvenida y color.
Prueba a pedir

“¿Qué mensaje de bienvenida muestra Iron Club?”

Vista del agente
{
  "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-generalCambia datosRepetibleCambia el nombre, el email de contacto, el mensaje de bienvenida o la fecha de fundación de la marca.
Prueba a pedir

“Cambia nuestro email de contacto a [email protected].”

Vista del agente
{
  "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-brandingCambia datosRepetibleDefine el color de la marca.
Prueba a pedir

“Pon como color de la marca un verde azulado oscuro.”

Vista del agente
{
  "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
  }
}

Equipo de la marca4mcp/brands

list-brand-membersSolo lecturaRepetibleLista el equipo de la marca con sus roles, y los roles que puedes asignar.
Prueba a pedir

“¿Quién está en el equipo y quién es gerente?”

Vista del agente
{
  "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-memberCambia datosInvita a una persona al equipo por email, con un rol por debajo del tuyo.
Prueba a pedir

“Invita a [email protected] como recepcionista.”

Vista del agente
{
  "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-roleCambia datosRepetibleCambia el rol de un miembro del equipo. Recibe un email.
Prueba a pedir

“Haz gerente a Marco.”

Vista del agente
{
  "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-memberPregunta antesQuita a una persona del equipo. El agente debe preguntarte antes.
Prueba a pedir

“Quita a Luca del equipo.”

Vista del agente
{
  "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
  }
}

Ubicaciones6mcp/brands

list-locationsSolo lecturaRepetibleLista las ubicaciones de una marca.
Prueba a pedir

“Lista todas nuestras ubicaciones.”

Vista del agente
{
  "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-locationSolo lecturaRepetibleLee una ubicación: perfil, instalaciones, disciplinas, horario semanal y fechas especiales.
Prueba a pedir

“¿A qué hora abre Via Roma el domingo?”

Vista del agente
{
  "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-locationCambia datosAñade una ubicación a partir de una dirección, dentro del límite de tu plan.
Prueba a pedir

“Añade una ubicación en Corso Italia 12, Milán.”

Vista del agente
{
  "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-profileCambia datosRepetibleCambia el nombre, la dirección, el email, la descripción, la zona horaria o el tipo de apertura de una ubicación.
Prueba a pedir

“Reescribe la descripción de Via Roma y menciona la nueva sauna.”

Vista del agente
{
  "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-facilitiesCambia datosRepetibleActualiza superficie, aparcamiento, número de máquinas y servicios como piscina o sauna.
Prueba a pedir

“Ahora tenemos 6 racks de sentadilla y una sauna en Via Roma.”

Vista del agente
{
  "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-locationPregunta antesBorra una ubicación y sus fotos para siempre. El agente debe preguntarte antes.
Prueba a pedir

“Borra la antigua ubicación de Piazza Duomo.”

Vista del agente
{
  "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
  }
}

Disciplinas2mcp/brands

list-disciplinesSolo lecturaRepetibleLista todas las disciplinas que puede ofrecer una ubicación.
Prueba a pedir

“¿Entre qué disciplinas puedo elegir?”

Vista del agente
{
  "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-disciplinesCambia datosRepetibleDefine las disciplinas de una ubicación, como equipamiento, clases o ambos.
Prueba a pedir

“Via Roma ofrece equipamiento de powerlifting y clases de yoga.”

Vista del agente
{
  "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
  }
}

Horarios3mcp/brands

set-location-opening-hoursCambia datosRepetibleSustituye el horario semanal de una ubicación.
Prueba a pedir

“Abre de 6:00 a 23:00 entre semana y de 8:00 a 20:00 el fin de semana.”

Vista del agente
{
  "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-exceptionCambia datosRepetibleCierra una ubicación en una fecha o le pone un horario especial.
Prueba a pedir

“Cierra Via Roma el 25 de diciembre.”

Vista del agente
{
  "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-hoursCambia datosRepetibleCopia el horario semanal de otra ubicación de la misma marca.
Prueba a pedir

“Dale a Corso Italia el mismo horario que Via Roma.”

Vista del agente
{
  "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
  }
}

Directorio público3mcp/directory

search-facilitiesSolo lecturaRepetibleBusca centros deportivos públicos por lugar, disciplina, servicio o nombre.
Prueba a pedir

“Encuentra un gimnasio 24/7 con powerlifting en Parma.”

Vista del agente
{
  "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-facilitySolo lecturaRepetibleLee un centro público: dirección, horarios, servicios, disciplinas y próximos eventos.
Prueba a pedir

“¿Ese gimnasio abre el domingo por la mañana?”

Vista del agente
{
  "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-areasSolo lecturaRepetibleLista las regiones, provincias y ciudades con página en el directorio, de mayor a menor.
Prueba a pedir

“¿Qué ciudades de Lombardía tienen gimnasios en la lista?”

Vista del agente
{
  "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
  }
}

Lo que una herramienta puede cambiar sigue tu rol en la marca. Un agente aprobado por un recepcionista no puede borrar una ubicación.

Prueba el directorio. Aquí mismo.

Esta caja envía la misma petición que tu agente envía al servidor Directory público. Datos reales, sin token, nada que instalar.

Ejemplos
PeticiónPOST /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
    }
  }
}
Respuesta

Elige un ejemplo o escribe una búsqueda y envíala.

Conecta tu cliente.

Elige tu asistente y el servidor. Copia el fragmento y pide lo que quieras.

Ejecuta esto en tu terminal.
claude mcp add --transport http jymbro-brands https://jymbro.app/mcp/brands
En la primera llamada, tu cliente abre Jymbro en el navegador. Inicia sesión y aprueba el agente.Agentes conectados

Tu agente trabaja dentro de tus permisos.

Un agente no recibe una llave maestra. Puede hacer lo que tú puedes, y debe detenerse antes de todo lo que no se puede deshacer.

  • Tu rol en cada llamada

    Cada herramienta comprueba en esa marca el rol de la persona que aprobó el agente. Un gerente puede fijar horarios pero no invitar a un admin.

  • Los borrados preguntan antes

    Quitar a un miembro del equipo o borrar una ubicación necesita un sí explícito. El agente debe preguntarte antes de enviarlo.

  • Un acceso propio

    Los tokens de agente solo llegan al servidor MCP. No sirven para la API de la app, la recepción ni los escáneres.

  • Tokens de corta duración

    Un token de agente dura una hora. El agente lo renueva en segundo plano hasta que lo desconectes.

  • Desconecta con un clic

    Desconecta el agente en los ajustes de tu cuenta. Su siguiente llamada falla.

  • Público significa público

    El servidor Directory solo ve lo que muestran las páginas públicas de los centros. Ni emails, ni miembros, ni personal.

Preguntas sobre el servidor MCP

¿Qué es el servidor MCP de Jymbro?

Es una conexión entre un asistente de IA y Jymbro, basada en el Model Context Protocol (MCP). El servidor Brands permite al equipo de una marca gestionar marcas, ubicaciones, horarios, disciplinas y equipo. El servidor Directory permite a cualquier agente buscar en el directorio público de gimnasios y centros deportivos.

¿Con qué asistentes de IA funciona?

Cualquier cliente MCP que admita servidores remotos por Streamable HTTP con inicio de sesión OAuth, como Claude Code, Cursor, VS Code, claude.ai y ChatGPT. El servidor Directory no necesita inicio de sesión.

¿Cómo conecto un agente?

Añade la dirección del servidor a tu cliente. En la primera llamada abre Jymbro en el navegador: inicia sesión y aprueba el agente. No hay ningún token que copiar.

¿Puede el agente borrar algo por su cuenta?

No. Las dos herramientas que eliminan datos, quitar a un miembro del equipo y borrar una ubicación, solo funcionan con una confirmación explícita, y el agente debe pedírtela. Cualquier otro cambio también sigue tu rol en la marca.

¿Cómo detengo a un agente?

Abre Agentes conectados en los ajustes de tu cuenta y desconéctalo. La siguiente llamada de ese agente falla.

¿Qué ve el servidor Directory?

Solo lo que muestran las páginas públicas de los centros: nombre, dirección, horarios, servicios, disciplinas, eventos públicos y la URL de la página. Nada de lo que el equipo de una marca mantiene privado.

Dale a tu asistente las llaves de la recepción.

Pega una URL, inicia sesión y pide tu primer cambio. Tú decides en cada paso.