Jymbro MCP · Streamable HTTP

Gestisci il tuo centro sportivo dal tuo assistente AI.

Collega Claude, Cursor o qualsiasi client MCP a Jymbro. Cambia gli orari, aggiungi una sede o invita il team con una frase. Ogni modifica segue il tuo ruolo nel brand.

strumenti
22
server
2
eliminazioni senza il tuo sì
0
Un manager chiede a un assistente AI di chiudere una sede il 25 dicembre e di copiare gli orari settimanali su un'altra. L'assistente trova gli strumenti e li esegue.

Un solo URL tra il tuo assistente e il tuo centro.

MCP è lo standard aperto che permette a un assistente AI di usare strumenti esterni. Jymbro lo parla via Streamable HTTP, quindi ogni client che supporta server MCP remoti si collega allo stesso modo.

Il tuo assistente

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

    Incolla un URL

    Aggiungi l'indirizzo del server al tuo client. Nessun plugin da installare, nessun codice da eseguire.

  2. 02

    Accedi e approva

    Il tuo client apre Jymbro nel browser. Accedi e approva l'agente per il server Brands. Il server Directory non richiede l'accesso.

  3. 03

    Chiedi con parole tue

    L'assistente sceglie gli strumenti, compila i campi e ti dice cosa ha cambiato.

Due server, due lavori.

Il server Brands lavora sul tuo centro. Il server Directory legge la directory pubblica, per qualsiasi agente.

Per i team dei brand

Jymbro Brands

19 strumenti

Leggi e modifica brand, sedi, orari, discipline e team. Ogni chiamata usa il ruolo della persona che ha approvato l'agente.

Indirizzo
https://jymbro.app/mcp/brands
Accesso
Accesso OAuth con il tuo account Jymbro
Limite di richieste
120 richieste al minuto
Scheda server →
Per ogni agente

Jymbro Directory

3 strumenti

Cerca nella directory pubblica di palestre e centri sportivi. Orari, servizi, discipline, eventi e l'URL della pagina da citare.

Indirizzo
https://jymbro.app/mcp/directory
Accesso
Nessuno: pubblico e in sola lettura
Limite di richieste
30 richieste al minuto, 1.000 al giorno
Scheda server →

Chiedi una palestra. Ricevi una pagina da citare.

Un atleta chiede a un assistente dove allenarsi. L'assistente cerca nella directory di Jymbro e risponde con centri reali, i loro orari e il link a ogni pagina.

Un atleta cerca una palestra aperta 24/7 con powerlifting a Parma. L'assistente chiama search-facilities e risponde con due centri e i link alle loro pagine.

Ogni strumento, come lo legge il tuo agente.

Questo elenco arriva direttamente dai server, quindi è sempre aggiornato. Apri uno strumento per vedere la definizione esatta che riceve il tuo agente.

22 di 22 strumenti

Brand4mcp/brands

list-brandsSola letturaRipetibileElenca i brand di cui fai parte, con il tuo ruolo in ciascuno.
Prova a chiedere

“Quali brand posso gestire?”

Vista 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-brandSola letturaRipetibileLegge un brand: nome, email di contatto, messaggio di benvenuto e colore.
Prova a chiedere

“Che messaggio di benvenuto mostra Iron Club?”

Vista 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-generalModifica datiRipetibileCambia nome, email di contatto, messaggio di benvenuto o data di fondazione del brand.
Prova a chiedere

“Cambia la nostra email di contatto in [email protected].”

Vista 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-brandingModifica datiRipetibileImposta il colore del brand.
Prova a chiedere

“Usa un verde petrolio scuro come colore del brand.”

Vista 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
  }
}

Team del brand4mcp/brands

list-brand-membersSola letturaRipetibileElenca il team del brand con i ruoli, e i ruoli che puoi assegnare.
Prova a chiedere

“Chi fa parte del team, e chi è manager?”

Vista 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-memberModifica datiInvita una persona nel team via email, con un ruolo sotto il tuo.
Prova a chiedere

“Invita [email protected] come receptionist.”

Vista 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-roleModifica datiRipetibileCambia il ruolo di un membro del team. Riceve un'email.
Prova a chiedere

“Fai diventare Marco manager.”

Vista 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-memberChiede primaRimuove una persona dal team. L'agente deve prima chiederlo a te.
Prova a chiedere

“Togli Luca dal team.”

Vista 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
  }
}

Sedi6mcp/brands

list-locationsSola letturaRipetibileElenca le sedi di un brand.
Prova a chiedere

“Elenca tutte le nostre sedi.”

Vista 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-locationSola letturaRipetibileLegge una sede: profilo, strutture, discipline, orari settimanali e date speciali.
Prova a chiedere

“A che ora apre Via Roma la domenica?”

Vista 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-locationModifica datiAggiunge una sede da un indirizzo, entro il limite del tuo piano.
Prova a chiedere

“Aggiungi una sede in Corso Italia 12, Milano.”

Vista 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-profileModifica datiRipetibileCambia nome, indirizzo, email, descrizione, fuso orario o tipo di apertura di una sede.
Prova a chiedere

“Riscrivi la descrizione di Via Roma e cita la nuova sauna.”

Vista 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-facilitiesModifica datiRipetibileAggiorna superficie, parcheggio, numero di attrezzi e servizi come piscina o sauna.
Prova a chiedere

“In Via Roma ora abbiamo 6 squat rack e una sauna.”

Vista 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-locationChiede primaElimina una sede e le sue foto per sempre. L'agente deve prima chiederlo a te.
Prova a chiedere

“Elimina la vecchia sede di Piazza Duomo.”

Vista 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
  }
}

Discipline2mcp/brands

list-disciplinesSola letturaRipetibileElenca tutte le discipline che una sede può offrire.
Prova a chiedere

“Tra quali discipline posso scegliere?”

Vista 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-disciplinesModifica datiRipetibileImposta le discipline di una sede, come attrezzatura, corsi o entrambi.
Prova a chiedere

“Via Roma offre attrezzatura da powerlifting e corsi di yoga.”

Vista 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
  }
}

Orari di apertura3mcp/brands

set-location-opening-hoursModifica datiRipetibileSostituisce gli orari settimanali di una sede.
Prova a chiedere

“Apri dalle 6:00 alle 23:00 nei giorni feriali e dalle 8:00 alle 20:00 nel weekend.”

Vista 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-exceptionModifica datiRipetibileChiude una sede in una data, o imposta orari speciali per quel giorno.
Prova a chiedere

“Chiudi Via Roma il 25 dicembre.”

Vista 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-hoursModifica datiRipetibileCopia gli orari settimanali da un'altra sede dello stesso brand.
Prova a chiedere

“Dai a Corso Italia gli stessi orari di Via Roma.”

Vista 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
  }
}

Directory pubblica3mcp/directory

search-facilitiesSola letturaRipetibileCerca centri sportivi pubblici per luogo, disciplina, servizio o nome.
Prova a chiedere

“Trova una palestra aperta 24/7 con powerlifting a Parma.”

Vista 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-facilitySola letturaRipetibileLegge un centro pubblico: indirizzo, orari, servizi, discipline e prossimi eventi.
Prova a chiedere

“Quella palestra è aperta la domenica mattina?”

Vista 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-areasSola letturaRipetibileElenca regioni, province e città con una pagina nella directory, dalle più grandi.
Prova a chiedere

“Quali città della Lombardia hanno palestre in elenco?”

Vista 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
  }
}

Quello che uno strumento può cambiare segue il tuo ruolo nel brand. Un agente approvato da un receptionist non può eliminare una sede.

Prova la directory. Proprio qui.

Questo box invia la stessa richiesta che il tuo agente invia al server Directory pubblico. Dati reali, nessun token, niente da installare.

Esempi
RichiestaPOST /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
    }
  }
}
Risposta

Scegli un esempio o scrivi una ricerca, poi inviala.

Collega il tuo client.

Scegli il tuo assistente e il server. Copia lo snippet, poi chiedi quello che vuoi.

Esegui questo comando nel terminale.
claude mcp add --transport http jymbro-brands https://jymbro.app/mcp/brands
Alla prima chiamata, il tuo client apre Jymbro nel browser. Accedi e approva l'agente.Agenti collegati

Il tuo agente lavora dentro i tuoi permessi.

Un agente non riceve un passe-partout. Può fare quello che puoi fare tu, e deve fermarsi prima di tutto ciò che non si può annullare.

  • Il tuo ruolo a ogni chiamata

    Ogni strumento controlla, in quel brand, il ruolo della persona che ha approvato l'agente. Un manager può impostare gli orari ma non invitare un admin.

  • Le eliminazioni chiedono prima

    Rimuovere un membro del team o eliminare una sede richiede un sì esplicito. L'agente deve chiedertelo prima di inviarlo.

  • Un accesso dedicato

    I token degli agenti raggiungono solo il server MCP. Non valgono per l'API dell'app, la reception o gli scanner.

  • Token di breve durata

    Un token dell'agente dura un'ora. L'agente lo rinnova in background finché non lo scolleghi.

  • Scollega con un clic

    Scollega l'agente nelle impostazioni del tuo account. La sua chiamata successiva fallisce.

  • Pubblico vuol dire pubblico

    Il server Directory vede solo quello che mostrano le pagine pubbliche dei centri. Niente email, niente membri, niente staff.

Domande sul server MCP

Cos'è il server MCP di Jymbro?

È un collegamento tra un assistente AI e Jymbro, basato sul Model Context Protocol (MCP). Il server Brands permette al team di un brand di gestire brand, sedi, orari, discipline e team. Il server Directory permette a qualsiasi agente di cercare nella directory pubblica di palestre e centri sportivi.

Con quali assistenti AI funziona?

Qualsiasi client MCP che supporta server remoti via Streamable HTTP con accesso OAuth, come Claude Code, Cursor, VS Code, claude.ai e ChatGPT. Il server Directory non richiede l'accesso.

Come collego un agente?

Aggiungi l'indirizzo del server al tuo client. Alla prima chiamata apre Jymbro nel browser: accedi e approva l'agente. Non c'è nessun token da copiare.

L'agente può eliminare qualcosa da solo?

No. I due strumenti che cancellano dati, rimuovere un membro del team ed eliminare una sede, funzionano solo con una conferma esplicita, e l'agente deve chiederla a te. Anche ogni altra modifica segue il tuo ruolo nel brand.

Come fermo un agente?

Apri Agenti collegati nelle impostazioni del tuo account e scollegalo. La chiamata successiva di quell'agente fallisce.

Cosa vede il server Directory?

Solo quello che mostrano le pagine pubbliche dei centri: nome, indirizzo, orari, servizi, discipline, eventi pubblici e l'URL della pagina. Non vede niente di quello che il team di un brand tiene privato.

Dai al tuo assistente le chiavi della reception.

Incolla un URL, accedi e chiedi la tua prima modifica. Hai il controllo di ogni passaggio.