UniAffitti Room Finder

Find, rank, and compare student rooms from UniAffitti public listings.

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
69%
命名质量
98%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(1)

  • LOWTool 'compare_rooms' description lacks action verb在 compare_rooms 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,652token 数(工具定义)
~890 B典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.07%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "room-finder": {
      "url": "https://www.uniaffitti.com/mcp/"
    }
  }
}

远程端点

https://www.uniaffitti.com/mcp/streamable-http

它能做什么

工具清单

工具(21)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢search_rooms(query, city, country_code, limit, offset, ...)

Search approved and available student rooms by budget, type, university, optional campus, distance, and features.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟡add_favorite(room_id)

Save an approved room to the authenticated user’s favorites.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "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.

输入模式

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本21 个工具
已验证未记录版本21 个工具
已验证未记录版本21 个工具