Platform
Get started

Casafari is the AI agent-native real estate data intelligence platform. The most complete property index in Europe: a deduplicated, cleaned property graph of residential and commercial property, for sale and for rent, in 16 countries.The most complete property index in Europe: a deduplicated, cleaned property graph.

How the graph is built

Agency partnerships in Germany · Use case

Which agencies in a German city are worth partnering with?

Use AgentGraph AI on the Casafari MCP server. Its agentgraph_screen_agencies tool ranks the agencies active in a German city, district or state against two partner profiles, growing independents and franchise offices losing momentum. It returns each agency's figures, signals met and missed, team and contacts. Open finalists with agentgraph_agency_profile and brief outreach with agentgraph_partner_brief.

Products: AgentGraph AI

Short answer

agentgraph_screen_agencies ranks the real estate agencies active in a German area against two partner profiles:

  • franchise_office_losing_momentum: franchise offices losing momentum.
  • growing_independent: growing independent agencies, meaning solo brokers and small teams of about 2-10.

Each result has the agency's figures, the profile signals it meets and misses, its team and its contacts. The tool belongs to AgentGraph AI on the Casafari MCP server (https://mcp.casafari.com/). It is MCP only, with no REST equivalent.

Partnering with the right agencies at the right moment is how networks expand without guessing.

Steps

Call list_servers and agentgraph_list_profiles to read the profile rules

  1. Call list_servers. It returns each product your account can use, with its own instructions. If AgentGraph AI is missing, your subscription does not cover it.
  2. Call agentgraph_list_profiles (no inputs). It lists the partner profiles the screens match against, with each one's exact rules, its priority and what the advertisement data cannot show.

Resolve ambiguous names with agentgraph_find_location

  1. Call agentgraph_find_location with query (at least 2 characters) and optional limit (1 to 20, default 8). It returns German cities, districts and states with their location ids, kinds and parent areas. Use it when a name is ambiguous (several "Neustadt") or to pick a district within a city. The screens also accept a name directly, such as "München", "Hamburg-Altona" or "Bayern"; a 5-digit value is read as a postcode.

See what normal looks like: agentgraph_area_benchmark

  1. Call agentgraph_area_benchmark with location, unit set to agency (the default) and operation. It returns percentiles of active homes, exits, days on market, price cuts and momentum, how the market splits between independents, franchises, banks and online brokerages, and the biggest networks there. Use these percentiles to set filter thresholds.

Screen: agentgraph_screen_agencies with location, profile, operation, filters (brand_kinds, min_momentum_pct, max_team_size), client_brand

  1. Call agentgraph_screen_agencies with:
    • location (name or id) and, optionally, zipcodes (up to 200 five-digit postcodes).
    • profile: one profile, an array of both, all (default), or none to rank every broker by volume using filters only.
    • operation: sale (default) or rent.
    • limit: 1 to 50, default 20.
    • filters, applied on top of the profiles: brand_kinds (independent, franchise, bank_network, digital_brokerage), min_momentum_pct and max_momentum_pct (whole-number percents), min_team_size and max_team_size (named people on the agency's advertisements), plus min_active_homes, max_active_homes, min_exits_last_12m, min_median_days_on_market, max_median_days_on_market, min_price_cut_share_pct, max_postcodes, min_top_postcode_share_pct and exclude_brands.
    • client_brand: your own network's name, if you are one. Its offices and agents are not offered as matches from "another network's franchise".

Deep dive: agentgraph_agency_profile by id

  1. Call agentgraph_agency_profile with the id the screen returned (c:... or k:...), or a name when no id is known. Add location to benchmark against that area instead of the agency's main city. It returns the agency's figures quarter by quarter, its team (named agents on its advertisements), its places, contacts and every partner profile it matches.

Prepare outreach: agentgraph_partner_brief

  1. Call agentgraph_partner_brief with id (required) and the location to compare against. It returns a one-page brief for the person who will approach the agency, and brief_url, a printable page.

Save the shortlist: agentgraph_save_to_watchlist

  1. Call agentgraph_save_to_watchlist with ids (1 to 50 per call), the location to measure them in, operation and an optional label (up to 60 characters, e.g. 'Q4 outreach'). AgentGraph AI re-measures the list every day and records changes.

Example: independent agencies in München

Prompt to your AI assistant, once the Casafari MCP server is connected:

Which independent agencies in München are growing faster than the market?

The assistant calls list_servers, then agentgraph_list_profiles, then agentgraph_area_benchmark for München with unit agency, and then agentgraph_screen_agencies with arguments like these:

json
{
  "location": "München",
  "profile": "growing_independent",
  "operation": "sale",
  "limit": 20,
  "filters": { "brand_kinds": ["independent"] }
}

A condensed answer looks like this (placeholders shown; the tool returns the real names and figures):

RankAgencyProfileMomentumActive homesNew homes per quarterTeamSignals missed
1(agency)growing_independent(value)(value)(value)(value)(none or list)
2(agency)growing_independent(value)(value)(value)(value)(list)

The assistant then opens the top result with agentgraph_agency_profile and, if asked, writes an outreach brief with agentgraph_partner_brief.

How to read the result

Active homes, new homes per quarter, momentum, exits, days on market, price cuts, postcodes

Active homes and new homes per quarter show the agency's current stock and how fast it wins new homes. Momentum shows its direction. Exits and days on market show how its homes leave the market; price cuts show how often its asking prices fall. Postcodes show how concentrated its territory is. Compare each figure with the percentiles from agentgraph_area_benchmark: an agency above the area's typical values on momentum, with few price cuts, is a stronger growth partner than one that is only large.

Signals met and missed per profile

Each result lists the profile signals it meets and the ones it misses. An agency that meets every signal of growing_independent fits the profile fully; one that misses a signal may still be worth a call, but the missed signal is the first question to check in agentgraph_agency_profile.

What the advertisement data cannot show (from list_profiles)

All figures come from the properties agencies advertise, merged into the property graph. agentgraph_list_profiles states, for each profile, what this data cannot show. Read it before drawing conclusions; this page does not repeat it because the tool's live answer is the contract.

Limits

All AgentGraph AI tools are available to Casafari clients with MCP access, using their Casafari account; self-serve access for new users is coming soon. They are MCP only: there is no REST equivalent. The sources give no prices, quotas, rate limits or SLAs; ask Casafari. When a product's quota is used up, its tools answer Request limit reached for this product.

Germany only, as the tools state

AgentGraph AI covers Germany. Locations are German cities, districts, states or five-digit postcodes. For other markets, AgentGraph AI has no data; see Does Casafari cover Germany?.

Up to 50 results per screen; brief_url valid 7 days and for internal use

limit runs from 1 to 50 (default 20). Narrow the area or add filters to see more relevant agencies. The partner brief's brief_url is valid for 7 days; share it only inside your organisation.

Lawful approach guidance in the brief

Each partner brief includes how the agency may lawfully be approached in Germany, alongside two or three talking points, key figures against the area, the partner signals met, the quality of its advertisements (photos, descriptions, sole-agent mandates, price cuts, own website versus portals), its team and a map of its active advertised homes. Follow that guidance before contacting anyone.

Questions

What do the two agency profiles mean?

The two agency profiles are franchise_office_losing_momentum, for franchise offices losing momentum, and growing_independent, for growing independent agencies, meaning solo brokers and small teams of about 2-10. Call agentgraph_list_profiles to read each profile's exact rules, its priority and what the advertisement data cannot show. Use profile all to match either, or none to rank every broker by volume with filters only.

Can I exclude my own network's offices?

Yes, pass your network's name as client_brand and agentgraph_screen_agencies will not offer its offices and agents as matches from another network's franchise. To drop other brands too, list them in the exclude_brands filter. You can also restrict results by brand_kinds, choosing among independent, franchise, bank_network and digital_brokerage.

Can I screen rentals instead of sales?

Yes, set operation to rent in agentgraph_screen_agencies; the default is sale. Use the same operation in agentgraph_area_benchmark, agentgraph_agency_profile and agentgraph_partner_brief so the figures you compare describe the same market. Agencies strong in rentals can rank very differently from the sales screen of the same area.

How current are the figures?

The sources publish no data refresh frequency for AgentGraph AI or the property graph, so this page cannot state one; ask Casafari at https://www.casafari.com/. What the tools do state: entries saved to the watchlist are re-measured every day, and agentgraph_watchlist_changes with refresh true re-measures on request, which is slower.

Can I limit the screen to certain postcodes?

Yes, pass up to 200 five-digit German postcodes in zipcodes, with or without a location. A 5-digit value given as location is also read as a postcode. To favour concentrated agencies instead, use the max_postcodes and min_top_postcode_share_pct filters, which act on how many postcodes an agency works in and its top postcode's share.

All use cases

Tip: add .md to any URL to read it as Markdown.