UniAffitti Room Finder
Find, rank, and compare student rooms from UniAffitti public listings.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen compare_rooms
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"room-finder": {
"url": "https://www.uniaffitti.com/mcp/"
}
}
}Puntos de conexión remotos
https://www.uniaffitti.com/mcp/streamable-httpQué puede hacer
Inventario de herramientas
Herramientas (21)
🟢search_rooms(query, city, country_code, limit, offset, ...)
Search approved and available student rooms by budget, type, university, optional campus, distance, and features.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free text search over title, description, university, location, and campus."
},
"city": {
"type": "string",
"description": "Optional city filter selected from the assisted location search."
},
"country_code": {
"type": "string",
"description": "Optional ISO 3166-1 alpha-2 country filter."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 8
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0
},
"university_id": {
"type": "integer",
"minimum": 1
},
"campus_id": {
"type": "integer",
"minimum": 1
},
"room_type": {
"type": "string",
"enum": [
"single",
"double",
"bed"
]
},
"min_price": {
"type": "number",
"minimum": 0
},
"max_price": {
"type": "number",
"minimum": 0
},
"available_from": {
"type": "string",
"description": "YYYY-MM-DD."
},
"max_distance_km": {
"type": "number",
"minimum": 0
},
"features": {
"type": "object",
"additionalProperties": true
},
"order_by": {
"type": "string",
"enum": [
"newest",
"price_asc",
"price_desc",
"distance_asc",
"distance_desc"
],
"default": "newest"
}
},
"additionalProperties": false
}🟢rank_room_matches(limit, campus_id, preferred_room_type, max_budget, max_distance_km, ...)
Find rooms and score them against student preferences such as budget, campus distance, room type, and trust signals.
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 8
},
"campus_id": {
"type": "integer",
"minimum": 1
},
"preferred_room_type": {
"type": "string",
"enum": [
"single",
"double",
"bed"
]
},
"max_budget": {
"type": "number",
"minimum": 0
},
"max_distance_km": {
"type": "number",
"minimum": 0
},
"available_from": {
"type": "string",
"description": "YYYY-MM-DD."
},
"features": {
"type": "object",
"additionalProperties": true
},
"query": {
"type": "string"
}
},
"additionalProperties": false
}🟢get_room_details(room_id)
Return public details for one approved room, including media, features, and limited landlord trust information.
Esquema de entrada
{
"type": "object",
"properties": {
"room_id": {
"type": "integer",
"minimum": 1
}
},
"required": [
"room_id"
],
"additionalProperties": false
}🟢compare_rooms(room_ids, campus_id)
Compare selected rooms side by side for price, distance, type, availability, features, and trust signals.
Esquema de entrada
{
"type": "object",
"properties": {
"room_ids": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"minItems": 2,
"maxItems": 8
},
"campus_id": {
"type": "integer",
"minimum": 1
}
},
"required": [
"room_ids"
],
"additionalProperties": false
}🟢list_search_metadata(university_query, university_country_code, university_limit, university_offset)
List a paginated slice of the global university catalog, optional campuses, and feature filters for room search. The catalog is not limited to 500 records.
Esquema de entrada
{
"type": "object",
"properties": {
"university_query": {
"type": "string",
"description": "Filter universities by name, city, country, or alias."
},
"university_country_code": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code."
},
"university_limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
},
"university_offset": {
"type": "integer",
"minimum": 0,
"default": 0
}
},
"additionalProperties": false
}🟢search_universities(query, country_code, city, limit, offset)
Search the complete active UniAffitti university catalog worldwide with pagination and total count.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"country_code": {
"type": "string"
},
"city": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 30
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0
}
},
"additionalProperties": false
}🟢search_cities(query, country_code, limit, offset)
Search cities in the complete active worldwide university catalog, with country and university counts for assisted room search.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"country_code": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 12
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0
}
},
"additionalProperties": false
}🟢list_university_campuses(university_id)
List active campuses for a selected university so the user can refine the room search.
Esquema de entrada
{
"type": "object",
"properties": {
"university_id": {
"type": "integer",
"minimum": 1
}
},
"required": [
"university_id"
],
"additionalProperties": false
}🟢get_my_profile
When the user asks to access or connect UniAffitti, call this tool. It starts the secure OAuth account connection when the user is not authenticated, then returns the profile without credentials or secrets.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢list_my_messages(conversation_id, limit, messages_limit, unread_only)
Read the authenticated user’s UniAffitti conversations from the same chat used by the web app. Without a conversation_id return fast conversation summaries and last-message previews; with one load the complete recent messages for that conversation.
Esquema de entrada
{
"type": "object",
"properties": {
"conversation_id": {
"type": "string",
"description": "Optional Firebase conversation/thread id."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 12
},
"messages_limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 30
},
"unread_only": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}🟡send_room_message(room_id, message)
Send a first message to the landlord of an approved available room from the authenticated UniAffitti account. The conversation is stored in the same UniAffitti chat used by the web app.
Esquema de entrada
{
"type": "object",
"properties": {
"room_id": {
"type": "integer",
"minimum": 1
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"required": [
"room_id",
"message"
],
"additionalProperties": false
}🟢get_my_conversation_messages(conversation_id, messages_limit)
Load the recent messages for one authenticated UniAffitti conversation. This is a data-only tool intended to be called by the messages UI after the user selects a conversation.
Esquema de entrada
{
"type": "object",
"properties": {
"conversation_id": {
"type": "string",
"description": "Firebase conversation/thread id."
},
"messages_limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 50
}
},
"required": [
"conversation_id"
],
"additionalProperties": false
}🟢list_my_favorites
List the authenticated user’s saved available rooms.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡add_favorite(room_id)
Save an approved room to the authenticated user’s favorites.
Esquema de entrada
{
"type": "object",
"properties": {
"room_id": {
"type": "integer",
"minimum": 1
}
},
"required": [
"room_id"
],
"additionalProperties": false
}🔴remove_favorite(room_id)
Remove a room from the authenticated user’s favorites.
Esquema de entrada
{
"type": "object",
"properties": {
"room_id": {
"type": "integer",
"minimum": 1
}
},
"required": [
"room_id"
],
"additionalProperties": false
}🟢list_my_requests(direction)
List rental requests sent or received by the authenticated user.
Esquema de entrada
{
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"sent",
"received",
"all"
],
"default": "all"
}
},
"additionalProperties": false
}🟡create_rental_request(room_id, message, start_date, duration_months)
Send a rental request for an approved available room using the authenticated UniAffitti account.
Esquema de entrada
{
"type": "object",
"properties": {
"room_id": {
"type": "integer",
"minimum": 1
},
"message": {
"type": "string",
"maxLength": 4000
},
"start_date": {
"type": "string",
"description": "YYYY-MM-DD."
},
"duration_months": {
"type": "integer",
"minimum": 1,
"maximum": 120
}
},
"required": [
"room_id"
],
"additionalProperties": false
}🔴update_rental_request_status(request_id, status, available_from)
Accept, review, reject, or cancel a UniAffitti rental request according to the authenticated user’s role.
Esquema de entrada
{
"type": "object",
"properties": {
"request_id": {
"type": "integer",
"minimum": 1
},
"status": {
"type": "string",
"enum": [
"in_review",
"accepted",
"rejected",
"cancelled"
]
},
"available_from": {
"type": "string",
"description": "YYYY-MM-DD; required when accepting."
}
},
"required": [
"request_id",
"status"
],
"additionalProperties": false
}🟢list_my_listings
List the authenticated user’s own listings and moderation status.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡create_listing(title, description, address_full, location_label, city, ...)
Create a UniAffitti listing draft for moderation. Listings intentionally keep university_id and campus_id NULL; location is stored independently from the university catalog.
Esquema de entrada
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 190
},
"description": {
"type": "string",
"minLength": 1
},
"address_full": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"location_label": {
"type": "string",
"maxLength": 190
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"country_code": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code."
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"property_type": {
"type": "string",
"enum": [
"apartment",
"house",
"other"
],
"default": "apartment"
},
"property_floor": {
"type": "integer",
"minimum": -2,
"maximum": 20
},
"price_monthly": {
"type": "number",
"minimum": 0
},
"deposit_amount": {
"type": "number",
"minimum": 0
},
"price_currency": {
"type": "string",
"default": "EUR"
},
"room_type": {
"type": "string",
"enum": [
"single",
"double",
"bed"
]
},
"min_stay_months": {
"type": "integer",
"minimum": 0
},
"available_from": {
"type": "string",
"description": "YYYY-MM-DD."
},
"occupancy_status": {
"type": "string",
"enum": [
"available",
"reserved",
"rented",
"unavailable"
],
"default": "available"
},
"features": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"title",
"description",
"address_full",
"city",
"country_code",
"latitude",
"longitude",
"property_floor",
"price_monthly",
"room_type"
],
"additionalProperties": false
}🟢get_account_links
Return deep links for account, listing creation, messages, requests, and favorites in the full UniAffitti web app.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false
}Comunidad
Evidencia