# FlatHunt

> Search furnished Berlin housing, compare listings, and manage favorites and saved-search alerts.

- name: com.flat-hunt/mcp
- version: 0.1.1
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 96/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.flat-hunt%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/com.flat-hunt%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "flat-hunt": {
      "type": "http",
      "url": "https://mcp.flat-hunt.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-19d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 96/100 (strong)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 11 of 11 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 5,360 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 11, about 5,360 tokens to load them all
- tool set hash: cd1e5e92d4db62888027ffbde7bc2a0e
- badge: [![protogrid quality](https://protogrid.dev/badge/com.flat-hunt/mcp.svg)](https://protogrid.dev/servers/com.flat-hunt/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.flat-hunt.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (11)

- `compare_listings`: Return normalized detail fields for 2–10 FlatHunt listings by numeric id in one read-only response. Includes prices, location, amenities, rental-policy flags, capacity, description, utilities, nearby distances, provider and tracking URLs for side-by-side comparison.
- `create_alert`: Create a saved search alert so FlatHunt notifies the user about new matching Berlin listings. Accepts housing, price, size, rooms, availability, canonical area ids, amenity and rental-policy filters. Email notifications are enabled by default; Telegram too when the user has linked Telegram on FlatHunt. Requires the alerts.write scope.
- `delete_alert`: Delete one or more of the current user's saved search alerts by numeric id. This is destructive and cannot be undone. Accepts 1–10 ids per call and requires alerts.write.
- `get_listing`: Get detailed information about a single FlatHunt listing in Berlin by its numeric id. Returns its description, amenities, rental-policy flags, capacity, stay terms, utilities, nearby distances, media, provider and tracking URLs. Availability and provider terms may change.
- `list_alerts`: List the current user's saved search alerts on FlatHunt, including each alert's numeric id, name and creation time when available. Requires alerts.read.
- `list_areas`: List supported Berlin districts (Bezirke) and neighbourhoods (Ortsteile) with canonical FlatHunt ids. Returns id, name, slug, type and parent area information, with optional name and type filtering. Mitte exists both as a whole Bezirk (berlin:bezirk:mitte) and as a smaller Ortsteil (berlin:ortsteil:mitte). Charlottenburg is an Ortsteil; the parent Bezirk is Charlottenburg-Wilmersdorf.
- `list_saved_listings`: List the current user's saved (favorited) FlatHunt listings. Requires the favorites.read scope.
- `remove_saved_listing`: Remove a listing from the current user's saved (favorited) listings by its numeric id. Requires the favorites.write scope.
- `render_listings_widget`: Return UI-ready cards and an interactive MCP Apps gallery for 1–10 FlatHunt listing ids. The tool refreshes current listing data and displays images, provider, price, availability and listing actions. Optional alertCriteria adds a saved-search control for the represented filters.
- `save_listing`: Save (favorite) a FlatHunt listing for the current user by its numeric id. Requires the favorites.write scope. Ownership and duplicate handling are enforced by FlatHunt.
- `search_listings`: Search current furnished apartments, studios, private rooms and shared rooms in Berlin through FlatHunt. Supports price, size, rooms, bedrooms, canonical area ids or nearby coordinates, availability dates, capacity, deposit, providers, amenity tags, rental-policy flags, sorting and pagination up to 20 results. Returns normalized listing summaries and pagination metadata. Availability, prices and provider terms may change.
