LivinIsto Intent MCP
An official MCP server operated by AutoIsto s. r. o. that allows AI assistants to publish, retrieve, list, and withdraw home-buying intent notifications on behalf of users, enabling watch-listing functionality for Czech residential real estate.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://www.livinisto.cz/mcp/zameryWhat you can do with it
- Publish a home-buying wish
- Retrieve intent status
- List matching offers
- Withdraw an intent
Source and maintenance
Protocol and capabilities
- Server
- livinisto-cz-zamery 0.1.0
- MCP protocol
- 2025-06-18
- Tools
- 5 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
intent_publish_intent — Watch new Czech property listings for the user (needs the user's confirmation)
Use this when the user asks LivinIsto to keep watching Czech property listings (flats, houses, cottages, building plots; sale or rent) for them over time (e.g. "let me know until March about a 2+kk flat in Brno under 5 million CZK"). This does NOT start watching by itself and takes no e-mail address or other personal data: it returns a consentUrl on www.livinisto.cz that the user must open themselves, enter their own e-mail there and confirm by clicking the link LivinIsto e-mails them. Never ask the user for their e-mail in the conversation and never open the link for them. An unconfirmed draft is deleted after 24 hours. Matching homes are e-mailed to the user and can also be read with intent_list_matches using the returned intentCode — keep it in the conversation. hiddenLimitCzk is optional: the most the user would pay in CZK (monthly for rent), stored encrypted and never shown to sellers or returned by any tool; pass it only if the user said it. Matches come from listings LivinIsto aggregates from the Czech market (its own listings and public listings from Czech property portals), so they cover only homes listed on LivinIsto (Czech Republic, prices in CZK) and may be incomplete; no commercial property and nothing abroad.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"statement"
],
"properties": {
"lang": {
"enum": [
"en",
"cs"
],
"type": "string",
"description": "Optional language of the replies (texts only; codes, URLs and statuses never change). By default the language of the statement."
},
"buyBy": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date (YYYY-MM-DD) by which the user wants to buy or rent; watching stops after it."
},
"statement": {
"type": "string",
"maxLength": 300,
"minLength": 2,
"description": "What the home MUST be, as one short Czech phrase, e.g. \"byt 2+kk Brno do 5 milionů\" or \"pronájem 1+kk Praha do 18000\"."
},
"niceToHave": {
"type": "string",
"maxLength": 300,
"description": "Wishes that are not required (never filters), e.g. \"balkon, výtah\"."
},
"hiddenLimitCzk": {
"type": "integer",
"maximum": 250000000,
"description": "Optional private maximum price in CZK (monthly for rent); encrypted on receipt and never returned by any tool.",
"exclusiveMinimum": 0
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentCode",
"status",
"consentUrl",
"consentExpiresAt",
"statement",
"niceToHave",
"buyBy",
"hasHiddenLimit",
"understood",
"notUnderstood"
],
"properties": {
"buyBy": {
"type": [
"string",
"null"
]
},
"status": {
"enum": [
"awaiting_consent",
"awaiting_email_confirmation",
"active",
"expired",
"withdrawn"
],
"type": "string",
"description": "awaiting_consent = the user has not confirmed on the LivinIsto page yet; awaiting_email_confirmation = the user filled in the page and must click the link in the e-mail; active = LivinIsto is watching; expired = the confirmation link, the buy-by date or the intent's validity ran out; withdrawn = cancelled."
},
"statement": {
"type": "string"
},
"consentUrl": {
"type": "string",
"description": "Page on www.livinisto.cz where the USER confirms the intent with their own e-mail. Show it unchanged."
},
"intentCode": {
"type": "string",
"description": "Secret code of this intent; use it with intent_get_intent, intent_list_matches and intent_withdraw_intent."
},
"niceToHave": {
"type": [
"string",
"null"
]
},
"understood": {
"type": "array",
"items": {
"type": "string"
},
"description": "What LivinIsto will watch for, read from the statement (in Czech). Tell the person before they confirm."
},
"notUnderstood": {
"type": "array",
"items": {
"type": "string"
},
"description": "Words of the statement that are NOT watched for as a filter. Tell the person."
},
"hasHiddenLimit": {
"type": "boolean",
"description": "Whether a hidden limit was stored. Its value is never returned."
},
"consentExpiresAt": {
"type": "string",
"description": "ISO time after which the unconfirmed draft is deleted."
}
},
"additionalProperties": false
}{
"title": "Watch new Czech property listings",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}intent_get_intent — Get the state of a property watch
Use this to check whether an intent created with intent_publish_intent is already confirmed by the user and active, waiting, expired or withdrawn. Requires the intentCode; returns the statement and dates only — never the user's e-mail, the hidden limit or any other personal data.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentCode"
],
"properties": {
"intentCode": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{32}$",
"description": "The intentCode returned by intent_publish_intent."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"found"
],
"properties": {
"buyBy": {
"type": [
"string",
"null"
]
},
"found": {
"type": "boolean"
},
"status": {
"enum": [
"awaiting_consent",
"awaiting_email_confirmation",
"active",
"expired",
"withdrawn"
],
"type": "string",
"description": "awaiting_consent = the user has not confirmed on the LivinIsto page yet; awaiting_email_confirmation = the user filled in the page and must click the link in the e-mail; active = LivinIsto is watching; expired = the confirmation link, the buy-by date or the intent's validity ran out; withdrawn = cancelled."
},
"statement": {
"type": "string"
},
"niceToHave": {
"type": [
"string",
"null"
]
},
"validUntil": {
"type": "string",
"description": "Date (YYYY-MM-DD) until which the intent is watched (before confirmation: until the draft is deleted)."
},
"activeSince": {
"type": [
"string",
"null"
]
},
"hasHiddenLimit": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Get the state of a property watch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}intent_list_matches — List homes found for a property watch
Use this when the user asks what LivinIsto has found for an intent created with intent_publish_intent. These are the same homes LivinIsto e-mails to the user; this server cannot send messages into the conversation by itself. Requires the intentCode; optional since (ISO time) returns only newer matches. Returns at most 20 newest matches with the asking price and LivinIsto price verdict at the time of the match and a link. Before the user confirms the intent there are no matches. Matches come from listings LivinIsto aggregates from the market, so they cover only homes listed on LivinIsto and may be incomplete; a home may already be sold or rented.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentCode"
],
"properties": {
"since": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "Only matches found after this ISO time."
},
"intentCode": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{32}$",
"description": "The intentCode returned by intent_publish_intent."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"found"
],
"properties": {
"more": {
"type": "boolean",
"description": "More matches exist than returned; call again with since."
},
"found": {
"type": "boolean"
},
"status": {
"enum": [
"awaiting_consent",
"awaiting_email_confirmation",
"active",
"expired",
"withdrawn"
],
"type": "string",
"description": "awaiting_consent = the user has not confirmed on the LivinIsto page yet; awaiting_email_confirmation = the user filled in the page and must click the link in the e-mail; active = LivinIsto is watching; expired = the confirmation link, the buy-by date or the intent's validity ran out; withdrawn = cancelled."
},
"matches": {
"type": "array",
"items": {
"type": "object",
"required": [
"propertyId",
"name",
"propertyType",
"transaction",
"layout",
"roomOnly",
"areaM2",
"location",
"priceCzk",
"priceText",
"priceNote",
"priceCzkAtMatch",
"priceVerdictAtMatch",
"matchedAt",
"stillListed",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Link to the listing on www.livinisto.cz — show it unchanged."
},
"name": {
"type": "string",
"description": "Property type and layout in Czech, e.g. \"Byt 2+kk\" or \"Rodinný dům\"."
},
"areaM2": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
]
},
"layout": {
"type": [
"string",
"null"
],
"description": "Czech layout, e.g. 2+kk or 3+1."
},
"location": {
"type": [
"string",
"null"
],
"description": "Municipality and part as stated in the listing."
},
"priceCzk": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
],
"description": "Asking price today in CZK (monthly for rent). null = the listing states no real price for the whole property — see priceNote; never present any number for it."
},
"roomOnly": {
"type": "boolean",
"description": "A room in a shared flat, not the whole flat."
},
"matchedAt": {
"type": "string"
},
"priceNote": {
"type": [
"string",
"null"
],
"description": "Why no price is shown, in Czech."
},
"priceText": {
"type": [
"string",
"null"
]
},
"propertyId": {
"type": "string",
"description": "LivinIsto listing id."
},
"stillListed": {
"type": "boolean"
},
"transaction": {
"enum": [
"sale",
"rent"
],
"type": "string"
},
"propertyType": {
"type": "string",
"description": "byt (flat), dum (house), chata (cottage), pozemek (building plot), apartman."
},
"priceCzkAtMatch": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
],
"description": "Asking price when LivinIsto matched it."
},
"priceVerdictAtMatch": {
"anyOf": [
{
"enum": [
"below_market",
"around_market",
"above_market"
],
"type": "string"
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "List homes found for a property watch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}intent_withdraw_intent — Stop a property watch
Use this when the user wants LivinIsto to stop watching for an intent created with intent_publish_intent. Takes effect immediately; nothing more is e-mailed for it. Requires the intentCode.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"intentCode"
],
"properties": {
"intentCode": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{32}$",
"description": "The intentCode returned by intent_publish_intent."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"found"
],
"properties": {
"found": {
"type": "boolean"
},
"status": {
"enum": [
"withdrawn"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Stop a property watch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}intent_search_offers — Search homes LivinIsto offers today
Use this when the user wants to find a flat, house, cottage or plot for sale or rent in the Czech Republic now. Pass what they are looking for as one short phrase (Czech works best), e.g. "byt 2+kk Brno do 6 milionů". Returns up to 20 homes from LivinIsto's offer in LivinIsto's own order, each with a link to the home on www.livinisto.cz, plus what was understood, which words were not applied and what had to be relaxed. For rent the price is per month. When suggestIntent is true (nothing or little found, or part of the phrase was dropped), offer the user intent_publish_intent with the same statement so LivinIsto keeps watching. Results come from listings LivinIsto aggregates from the Czech market and may be incomplete; no seller or agent contact is returned.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"statement"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "At most this many homes (default 10; LivinIsto returns at most 10)."
},
"statement": {
"type": "string",
"maxLength": 300,
"minLength": 2,
"description": "What the user is looking for, e.g. \"dům Plzeň do 8 milionů\"."
}
}
}{
"title": "Search homes LivinIsto offers today",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 876 ms
- 95th percentile latency
- 876 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 876 ms · metadata changed · 5 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http livinisto-intent-mcp https://www.livinisto.cz/mcp/zameryCodex
codex mcp add livinisto-intent-mcp --url https://www.livinisto.cz/mcp/zameryCursor
{
"mcpServers": {
"livinisto-intent-mcp": {
"url": "https://www.livinisto.cz/mcp/zamery"
}
}
}Cline
{
"mcpServers": {
"livinisto-intent-mcp": {
"type": "streamableHttp",
"url": "https://www.livinisto.cz/mcp/zamery",
"disabled": false
}
}
}VS Code
{
"servers": {
"livinisto-intent-mcp": {
"type": "http",
"url": "https://www.livinisto.cz/mcp/zamery"
}
}
}Gemini CLI
gemini mcp add --transport http livinisto-intent-mcp https://www.livinisto.cz/mcp/zameryClaude Desktop
{
"mcpServers": {
"livinisto-intent-mcp": {
"url": "https://www.livinisto.cz/mcp/zamery"
}
}
}Windsurf
{
"mcpServers": {
"livinisto-intent-mcp": {
"serverUrl": "https://www.livinisto.cz/mcp/zamery"
}
}
}Let your agent find its tools
Find servers like LivinIsto Intent MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other crm, sales, and marketing servers
Do you run LivinIsto Intent MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.