MCP Server

UniAffitti Room Finder

com.uniaffitti.www/room-finder
Education Real Estate Public & reachable MCP 2026-07-28

What this MCP does

Searches, ranks, compares, and manages student-room listings, favorites, rental requests, messages, and landlord contacts.

add_favorite
Save a room
Save an approved room to the authenticated user’s favorites.
Input schema
{'type': 'object', 'required': ['room_id'], 'properties': {'room_id': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
compare_rooms
Compare rooms
Compare selected rooms side by side for price, distance, type, availability, features, and trust signals.
Read only
Input schema
{'type': 'object', 'required': ['room_ids'], 'properties': {'room_ids': {'type': 'array', 'items': {'type': 'integer', 'minimum': 1}, 'maxItems': 8, 'minItems': 2}, 'campus_id': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
create_listing
Create a listing
Create a UniAffitti listing draft for moderation. Listings intentionally keep university_id and campus_id NULL; location is stored independently from the university catalog.
Input schema
{'type': 'object', 'required': ['title', 'description', 'address_full', 'city', 'country_code', 'latitude', 'longitude', 'property_floor', 'price_monthly', 'room_type'], 'properties': {'city': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'title': {'type': 'string', 'maxLength': 190, 'minLength': 1}, 'features': {'type': 'object', 'additionalProperties': True}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'room_type': {'enum': ['single', 'double', 'bed'], 'type': 'string'}, 'description': {'type': 'string', 'minLength': 1}, 'address_full': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'country_code': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code.'}, 'price_monthly': {'type': 'number', 'minimum': 0}, 'property_type': {'enum': ['apartment', 'house', 'other'], 'type': 'string', 'default': 'apartment'}, 'available_from': {'type': 'string', 'description': 'YYYY-MM-DD.'}, 'deposit_amount': {'type': 'number', 'minimum': 0}, 'location_label': {'type': 'string', 'maxLength': 190}, 'price_currency': {'type': 'string', 'default': 'EUR'}, 'property_floor': {'type': 'integer', 'maximum': 20, 'minimum': -2}, 'min_stay_months': {'type': 'integer', 'minimum': 0}, 'occupancy_status': {'enum': ['available', 'reserved', 'rented', 'unavailable'], 'type': 'string', 'default': 'available'}}, 'additionalProperties': False}
create_rental_request
Send a rental request
Send a rental request for an approved available room using the authenticated UniAffitti account.
Input schema
{'type': 'object', 'required': ['room_id'], 'properties': {'message': {'type': 'string', 'maxLength': 4000}, 'room_id': {'type': 'integer', 'minimum': 1}, 'start_date': {'type': 'string', 'description': 'YYYY-MM-DD.'}, 'duration_months': {'type': 'integer', 'maximum': 120, 'minimum': 1}}, 'additionalProperties': False}
get_account_links
Open UniAffitti account areas
Return deep links for account, listing creation, messages, requests, and favorites in the full UniAffitti web app.
Read only
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
get_my_conversation_messages
Read one UniAffitti conversation
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.
Read only
Input schema
{'type': 'object', 'required': ['conversation_id'], 'properties': {'messages_limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1}, 'conversation_id': {'type': 'string', 'description': 'Firebase conversation/thread id.'}}, 'additionalProperties': False}
get_my_profile
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.
Read only
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
get_room_details
Get room details
Return public details for one approved room, including media, features, and limited landlord trust information.
Read only
Input schema
{'type': 'object', 'required': ['room_id'], 'properties': {'room_id': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
list_my_favorites
List my favorites
List the authenticated user’s saved available rooms.
Read only
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_my_listings
List my listings
List the authenticated user’s own listings and moderation status.
Read only
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_my_messages
Read my messages
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.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 12, 'maximum': 50, 'minimum': 1}, 'unread_only': {'type': 'boolean', 'default': False}, 'messages_limit': {'type': 'integer', 'default': 30, 'maximum': 100, 'minimum': 1}, 'conversation_id': {'type': 'string', 'description': 'Optional Firebase conversation/thread id.'}}, 'additionalProperties': False}
list_my_requests
List my rental requests
List rental requests sent or received by the authenticated user.
Read only
Input schema
{'type': 'object', 'properties': {'direction': {'enum': ['sent', 'received', 'all'], 'type': 'string', 'default': 'all'}}, 'additionalProperties': False}
list_search_metadata
List search metadata
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.
Read only
Input schema
{'type': 'object', 'properties': {'university_limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1}, 'university_query': {'type': 'string', 'description': 'Filter universities by name, city, country, or alias.'}, 'university_offset': {'type': 'integer', 'default': 0, 'minimum': 0}, 'university_country_code': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code.'}}, 'additionalProperties': False}
list_university_campuses
List university campuses
List active campuses for a selected university so the user can refine the room search.
Read only
Input schema
{'type': 'object', 'required': ['university_id'], 'properties': {'university_id': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
rank_room_matches
Rank room matches
Find rooms and score them against student preferences such as budget, campus distance, room type, and trust signals.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string'}, 'features': {'type': 'object', 'additionalProperties': True}, 'campus_id': {'type': 'integer', 'minimum': 1}, 'max_budget': {'type': 'number', 'minimum': 0}, 'available_from': {'type': 'string', 'description': 'YYYY-MM-DD.'}, 'max_distance_km': {'type': 'number', 'minimum': 0}, 'preferred_room_type': {'enum': ['single', 'double', 'bed'], 'type': 'string'}}, 'additionalProperties': False}
remove_favorite
Remove a saved room
Remove a room from the authenticated user’s favorites.
Destructive
Input schema
{'type': 'object', 'required': ['room_id'], 'properties': {'room_id': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
search_cities
Search cities
Search cities in the complete active worldwide university catalog, with country and university counts for assisted room search.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 12, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0}, 'country_code': {'type': 'string'}}, 'additionalProperties': False}
search_rooms
Search rooms
Search approved and available student rooms by budget, type, university, optional campus, distance, and features.
Read only
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'Optional city filter selected from the assisted location search.'}, 'limit': {'type': 'integer', 'default': 8, 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Free text search over title, description, university, location, and campus.'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0}, 'features': {'type': 'object', 'additionalProperties': True}, 'order_by': {'enum': ['newest', 'price_asc', 'price_desc', 'distance_asc', 'distance_desc'], 'type': 'string', 'default': 'newest'}, 'campus_id': {'type': 'integer', 'minimum': 1}, 'max_price': {'type': 'number', 'minimum': 0}, 'min_price': {'type': 'number', 'minimum': 0}, 'room_type': {'enum': ['single', 'double', 'bed'], 'type': 'string'}, 'country_code': {'type': 'string', 'description': 'Optional ISO 3166-1 alpha-2 country filter.'}, 'university_id': {'type': 'integer', 'minimum': 1}, 'available_from': {'type': 'string', 'description': 'YYYY-MM-DD.'}, 'max_distance_km': {'type': 'number', 'minimum': 0}}, 'additionalProperties': False}
search_universities
Search universities
Search the complete active UniAffitti university catalog worldwide with pagination and total count.
Read only
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string'}, 'limit': {'type': 'integer', 'default': 30, 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string'}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0}, 'country_code': {'type': 'string'}}, 'additionalProperties': False}
send_room_message
Contact landlord
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.
Input schema
{'type': 'object', 'required': ['room_id', 'message'], 'properties': {'message': {'type': 'string', 'maxLength': 4000, 'minLength': 1}, 'room_id': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
update_rental_request_status
Update rental request status
Accept, review, reject, or cancel a UniAffitti rental request according to the authenticated user’s role.
Input schema
{'type': 'object', 'required': ['request_id', 'status'], 'properties': {'status': {'enum': ['in_review', 'accepted', 'rejected', 'cancelled'], 'type': 'string'}, 'request_id': {'type': 'integer', 'minimum': 1}, 'available_from': {'type': 'string', 'description': 'YYYY-MM-DD; required when accepting.'}}, 'additionalProperties': False}
Added
get_account_links
Sept. 17, 2026, 12:38 p.m.
Added
create_listing
Sept. 17, 2026, 12:38 p.m.
Added
list_my_listings
Sept. 17, 2026, 12:38 p.m.
Added
update_rental_request_status
Sept. 17, 2026, 12:38 p.m.
Added
create_rental_request
Sept. 17, 2026, 12:38 p.m.
Added
list_my_requests
Sept. 17, 2026, 12:38 p.m.
Added
remove_favorite
Sept. 17, 2026, 12:38 p.m.
Added
add_favorite
Sept. 17, 2026, 12:38 p.m.
Added
list_my_favorites
Sept. 17, 2026, 12:38 p.m.
Added
get_my_conversation_messages
Sept. 17, 2026, 12:38 p.m.
Added
send_room_message
Sept. 17, 2026, 12:38 p.m.
Added
list_my_messages
Sept. 17, 2026, 12:38 p.m.
Added
get_my_profile
Sept. 17, 2026, 12:38 p.m.
Added
list_university_campuses
Sept. 17, 2026, 12:38 p.m.
Added
search_cities
Sept. 17, 2026, 12:38 p.m.
Added
search_universities
Sept. 17, 2026, 12:38 p.m.
Added
list_search_metadata
Sept. 17, 2026, 12:38 p.m.
Added
compare_rooms
Sept. 17, 2026, 12:38 p.m.
Added
get_room_details
Sept. 17, 2026, 12:38 p.m.
Added
rank_room_matches
Sept. 17, 2026, 12:38 p.m.
Added
search_rooms
Sept. 17, 2026, 12:38 p.m.

Service Public France

io.github.OneNicolas/mcp-service-public

Searches and retrieves French public-service information, legal texts, administrative guidance, property transactions, local data…

MaCalculatriceEnLigne

io.github.tresor4k/macalc-mcp

Provides calculators for French and Belgian taxes, salaries, pensions, VAT, loans, health metrics, education scores, fitness, and…

Microburbs Australian Property Data

au.com.microburbs/property-data

Provides Australian property, suburb, valuation, sales, rental, zoning, school, risk, geospatial, and census statistics.

Superlógica Condomínios

io.github.mcp-dir/superlogica-mcp

Connects to a condominium ERP for billing, collections, agreements, expenses, bank movements, statements, files, communications, …

DFX Real Estate Intelligence

io.github.Capital-W-Holdings/us-property-parcel-real-estate-debt

Provides US commercial real estate, parcel, debt maturity, bank CRE exposure, private capital, investor, ownership, occupancy, an…

HiveLearn

io.github.williamechevarria/hivelearn-mcp

Creates and manages courses, lessons, quizzes, enrollments, learning tracks, events, certificates, resources, progress, and commu…

concordance

com.narrowhighway/concordance

Provides deterministic claim verification and audit receipts, along with Bible references, commentary, geography, indexed knowled…

RateAPI — live US mortgage, auto, HELOC, personal & deposit rates

dev.rateapi/mcp

Supplies live US lending and deposit rates, financing comparisons, affordability and amortization calculations, eligibility check…