MCP tools reference
Hemnet MCP tools
13 tools for Hemnet on the Cotlet MCP server. Your agent picks them from tools/list.
- MCP server
- https://cotlet.dev/mcp/v1
- Connects with
- Your own Hemnet account (Mitt Hemnet)
- Integration page
- Hemnet
| Endpoint | Access | Description |
|---|---|---|
| hemnet_search_listings | read | Homes for sale and coming to market (kommande), with price, fee, rooms and area. |
| hemnet_get_listing | read | Full listing: price, monthly fee, area, rooms, viewing times, bidding status and broker. |
| hemnet_search_sold_prices | read | Sold homes (slutpriser) with final price, asking price and sale date. |
| hemnet_list_saved_homes | read | Homes you saved, with collection, status (for sale, bidding, sold) and final price when sold. |
| hemnet_list_collections | read | Your collections (samlingar) of saved homes, with who they are shared with. |
| hemnet_list_upcoming_viewings | read | Viewing times of your saved homes, soonest first, with address and broker. |
| hemnet_list_saved_searches | read | Your saved searches with filters and notification settings. |
| hemnet_list_followed_homes | read | Your own home and other homes you follow, with the value Hemnet shows over time. |
| hemnet_save_home | write | Save a listing to your saved homes, optionally into one of your collections. |
| hemnet_remove_saved_home | write | Remove a listing from your saved homes. |
| hemnet_create_saved_search | write | Save a search and get notified about new homes that match it. |
| hemnet_delete_saved_search | write | Delete one of your saved searches and its notifications. |
| hemnet_follow_home | write | Follow the value of any home by address, on the market or not. |
Search listings
readMCP tool hemnet_search_listings
Returns homes for sale in an area that match your filters, and homes coming to market unless include_upcoming is false. Each item has the asking price, monthly fee, rooms and living area. Pages hold up to 50 homes; pass next_cursor back as cursor for the next page. Use listing_id with get_listing or save_home.
Parameters
| Name | Type | Description |
|---|---|---|
| location required | string | Area, municipality or street, e.g. "Vasastan, Stockholm". |
| housing_types | string[] | Any of apartment, villa, townhouse, holiday_home, plot, farm. Default: all. |
| price_min | integer | Minimum asking price in SEK. |
| price_max | integer | Maximum asking price in SEK. |
| rooms_min | integer | Minimum number of rooms. |
| living_area_min | integer | Minimum living area in m². |
| include_upcoming | boolean | Include homes coming to market. Default: true. |
| cursor | string | Next page cursor from the previous call. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_search_listings",
"arguments": {
"location": "Vasastan, Stockholm"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"listings": [
{
"listing_id": "l_21730488",
"address": "Karlbergsvägen 120, Vasastan, Stockholm",
"type": "apartment",
"rooms": 3,
"living_area_m2": 68,
"asking_price_sek": 5450000,
"monthly_fee_sek": 4120,
"status": "for_sale"
}
],
"next_cursor": null
},
"isError": false
} Get listing
readMCP tool hemnet_get_listing
Returns one listing as the listing page shows it: asking price, monthly fee, rooms, living area, the broker, viewing times and whether bidding has started. Use it after search_listings to read a home in full.
Parameters
| Name | Type | Description |
|---|---|---|
| listing_id required | string | Listing ID from search_listings or list_saved_homes. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_get_listing",
"arguments": {
"listing_id": "listing_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"listing_id": "l_21730488",
"address": "Karlbergsvägen 120, Vasastan, Stockholm",
"type": "apartment",
"rooms": 3,
"living_area_m2": 68,
"asking_price_sek": 5450000,
"monthly_fee_sek": 4120,
"bidding_started": false,
"viewings": [
"2026-10-17T12:00:00+02:00"
],
"broker": "Exempel Mäkleri, Vasastan",
"url": "https://www.hemnet.se/bostad/l_21730488"
},
"isError": false
} Search sold prices
readMCP tool hemnet_search_sold_prices
Returns homes sold in an area, with final price, asking price, how far the sale landed above or below asking, and the sale date. Narrow it with sold_since, housing type and rooms. Pages hold up to 100 homes.
Parameters
| Name | Type | Description |
|---|---|---|
| location required | string | Area, municipality or street, e.g. "Vasastan, Stockholm". |
| housing_types | string[] | Any of apartment, villa, townhouse, holiday_home, plot, farm. |
| sold_since | date | Only homes sold on or after this date. |
| rooms_min | integer | Minimum number of rooms. |
| limit | integer | 1 to 100. Default: 50. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_search_sold_prices",
"arguments": {
"location": "Vasastan, Stockholm",
"housing_types": [
"apartment"
],
"rooms_min": 3,
"sold_since": "2026-01-01",
"limit": 100
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"sold": [
{
"address": "Odengatan 40, Vasastan, Stockholm",
"rooms": 3,
"living_area_m2": 71,
"asking_price_sek": 4250000,
"final_price_sek": 4500000,
"over_asking_pct": 5.9,
"sold_on": "2026-09-12"
},
{
"address": "Sveavägen 98, Vasastan, Stockholm",
"rooms": 3,
"living_area_m2": 74,
"asking_price_sek": 5200000,
"final_price_sek": 5150000,
"over_asking_pct": -1,
"sold_on": "2026-06-03"
}
]
},
"isError": false
} List saved homes
readMCP tool hemnet_list_saved_homes
Returns the homes in your saved homes, with the collection each is in. Status is for_sale, bidding or sold; a sold home carries its final price. Pass collection_id to see one collection only.
Parameters
| Name | Type | Description |
|---|---|---|
| collection_id | string | Only homes in this collection, from list_collections. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_list_saved_homes",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"saved_homes": [
{
"listing_id": "l_21730488",
"address": "Karlbergsvägen 120, Vasastan, Stockholm",
"collection": "Flytt 2027",
"status": "for_sale",
"asking_price_sek": 5450000
},
{
"listing_id": "l_21644102",
"address": "Hornsgatan 55, Södermalm, Stockholm",
"collection": "Flytt 2027",
"status": "sold",
"final_price_sek": 6100000
}
]
},
"isError": false
} List collections
readMCP tool hemnet_list_collections
Returns your collections with the number of homes in each and the people each is shared with. Use collection_id with list_saved_homes and save_home.
Parameters
No parameters.
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_list_collections",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"collections": [
{
"collection_id": "col_flytt27",
"name": "Flytt 2027",
"homes": 2,
"shared_with": [
"Maria"
]
},
{
"collection_id": "col_sommar",
"name": "Sommarstuga",
"homes": 0,
"shared_with": []
}
]
},
"isError": false
} MCP tool hemnet_list_upcoming_viewings
Returns the viewings of your saved homes that have not happened yet, soonest first, with address and broker. It looks 14 days ahead unless you set until.
Parameters
| Name | Type | Description |
|---|---|---|
| until | date | Only viewings up to this date. Default: 14 days ahead. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_list_upcoming_viewings",
"arguments": {
"until": "2026-10-18"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"viewings": [
{
"listing_id": "l_21730488",
"address": "Karlbergsvägen 120, Vasastan, Stockholm",
"starts_at": "2026-10-17T12:00:00+02:00",
"broker": "Exempel Mäkleri, Vasastan",
"bidding_started": false
}
]
},
"isError": false
} List saved searches
readMCP tool hemnet_list_saved_searches
Returns your saved searches with their filters, how you are notified (email or push) and how often. Use saved_search_id with delete_saved_search.
Parameters
No parameters.
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_list_saved_searches",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"saved_searches": [
{
"saved_search_id": "ss_48213",
"location": "Täby kommun",
"filters": {
"housing_types": [
"villa"
],
"price_max": 9000000,
"rooms_min": 5
},
"notify_by": "push",
"frequency": "live"
}
]
},
"isError": false
} List followed homes
readMCP tool hemnet_list_followed_homes
Returns the homes whose value you follow, your own and others, each with the value Hemnet shows and how it changed over time. The value is Hemnet's estimate. Homes that are not for sale can be followed too.
Parameters
No parameters.
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_list_followed_homes",
"arguments": {}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"followed_homes": [
{
"address": "Storgatan 1, Uppsala",
"estimated_value_sek": 3980000,
"change_since_start_pct": 2.4,
"history": [
{
"date": "2026-04-01",
"value_sek": 3890000
},
{
"date": "2026-10-01",
"value_sek": 3980000
}
]
}
]
},
"isError": false
} MCP tool hemnet_save_home
Saves a listing to your saved homes, and into a collection when collection_id is set. People a collection is shared with see the new home, which is why this asks first. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| listing_id required | string | Listing ID from search_listings or list_saved_homes. |
| collection_id | string | Collection from list_collections. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_save_home",
"arguments": {
"listing_id": "listing_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"listing_id": "l_21730488",
"saved": true,
"collection_id": "col_flytt27"
},
"isError": false
} Remove saved home
writeMCP tool hemnet_remove_saved_home
Removes a listing from your saved homes and from its collection. It runs without asking: nobody is notified and save_home undoes it in one call.
Parameters
| Name | Type | Description |
|---|---|---|
| listing_id required | string | Listing ID from search_listings or list_saved_homes. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_remove_saved_home",
"arguments": {
"listing_id": "listing_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"listing_id": "l_21644102",
"saved": false
},
"isError": false
} Create saved search
writeMCP tool hemnet_create_saved_search
Creates a saved search and returns how many homes match it now. Notifications go to you by email or push, live or as a summary. It runs without asking: it reaches no one else and delete_saved_search undoes it in one call.
Parameters
| Name | Type | Description |
|---|---|---|
| location required | string | Area, municipality or street, e.g. "Vasastan, Stockholm". |
| filters | object | Any of housing_types, price_min, price_max, rooms_min, living_area_min. |
| notify_by | enum | email or push. Default: email. |
| frequency | enum | live or summary. Default: summary. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_create_saved_search",
"arguments": {
"location": "Täby",
"filters": {
"housing_types": [
"villa"
],
"price_max": 9000000,
"rooms_min": 5
},
"notify_by": "push",
"frequency": "live"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"saved_search_id": "ss_48213",
"location": "Täby kommun",
"filters": {
"housing_types": [
"villa"
],
"price_max": 9000000,
"rooms_min": 5
},
"notify_by": "push",
"frequency": "live",
"matching_now": 37
},
"isError": false
} Delete saved search
writeMCP tool hemnet_delete_saved_search
Deletes one saved search and stops its notifications. It runs without asking: it reaches no one else, and create_saved_search with the same filters brings it back.
Parameters
| Name | Type | Description |
|---|---|---|
| saved_search_id required | string | Saved search ID from list_saved_searches. |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_delete_saved_search",
"arguments": {
"saved_search_id": "saved_search_8c41d2"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"saved_search_id": "ss_48213",
"deleted": true
},
"isError": false
} Follow home
writeMCP tool hemnet_follow_home
Adds a home to the homes whose value you follow, for sale or not. It changes only your own list, so it runs without asking. Unfollowing is done in the Hemnet app.
Parameters
| Name | Type | Description |
|---|---|---|
| address required | string | Street address with town, e.g. "Storgatan 1, Uppsala". |
tools/call
JSON-RPC
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "hemnet_follow_home",
"arguments": {
"address": "Storgatan 1, Uppsala"
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"address": "Storgatan 1, Uppsala",
"following": true,
"estimated_value_sek": 3980000
},
"isError": false
}