Koskamo

AutoIsto Intent MCP

An official MCP server operated by AutoIsto that allows AI assistants to publish, retrieve, list, and withdraw car search intents on behalf of users. It enables agents to set up watchlists for specific vehicle criteria, which are then monitored by the AutoIsto platform to notify users when matching cars appear.

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.

AutoIsto Intent MCP logo, by AutoIsto s. r. o.Vendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by AutoIsto s. r. o.
MCP endpoint (Streamable HTTP)
https://www.autoisto.cz/mcp/zamery
Vendor documentation

What you can do with it

  • Publish a car search intent with specific criteria
  • Retrieve details of an existing search intent
  • List all active search intents for a user
  • Withdraw an existing search intent

Source and maintenance

Vendor evidenceRegistry 0.1.1

Protocol and capabilities

Server
autoisto-cz-zamery 0.1.0
MCP protocol
2025-06-18
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

This server lets a person ask AutoIsto CZ, a Czech car listings portal, to keep watching new car listings for them (an "intent", Isto Intents protocol v0.1). Use intent_publish_intent when the user wants to be told about matching cars over time. It returns a consentUrl: the USER must open it, enter their own e-mail there and confirm the link AutoIsto e-mails them — nothing is watched before that. Never ask for or pass the user's e-mail, and never open or fill in the link for them. Keep the returned intentCode in the conversation; use intent_get_intent for the state, intent_list_matches for found cars and intent_withdraw_intent to stop. Use intent_search_offers to see what AutoIsto CZ offers today; when it answers suggestIntent: true, offer intent_publish_intent with the same statement. Matches cover only cars listed on AutoIsto CZ (Czech Republic, CZK) and may be incomplete. Show every url unchanged. Intent servers for other countries and categories are listed in the Isto Intents Registry: https://istointents.org/registry.json.

Tools

5 advertised

intent_publish_intent — Watch new car listings for the user (needs the user's confirmation)
Advertised by the server during the last successful anonymous check.

Use this when the user asks AutoIsto to keep watching Czech car listings for them over time (e.g. "let me know until March about an estate car under 300 000 CZK, not diesel"). This does NOT start watching by itself and takes no e-mail address or other personal data: it returns a consentUrl on www.autoisto.cz that the user must open themselves, enter their own e-mail there and confirm by clicking the link AutoIsto 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 cars 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, stored encrypted and never shown to sellers or returned by any tool; pass it only if the user said it. Matches come from listings AutoIsto CZ aggregates from the Czech market (its own sellers' listings and public listings from Czech car portals), so they cover only cars listed on AutoIsto CZ (Czech Republic, CZK) and may be incomplete.

intent_publish_intent input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "statement"
  ],
  "properties": {
    "buyBy": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date (YYYY-MM-DD) by which the user wants to buy; watching stops after it."
    },
    "statement": {
      "type": "string",
      "maxLength": 300,
      "minLength": 2,
      "description": "What the car MUST be, as one short Czech (or Slovak) phrase with prices in CZK, e.g. \"kombi do 300000 Kč ne diesel\"."
    },
    "niceToHave": {
      "type": "string",
      "maxLength": 300,
      "description": "Wishes that are not required (never filters), e.g. \"tažné, automat\"."
    },
    "hiddenLimitCzk": {
      "type": "integer",
      "maximum": 250000000,
      "description": "Optional private maximum price in CZK; encrypted on receipt and never returned by any tool.",
      "exclusiveMinimum": 0
    }
  }
}
intent_publish_intent output schema
{
  "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 AutoIsto page yet; awaiting_email_confirmation = the user filled in the page and must click the link in the e-mail; active = AutoIsto 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.autoisto.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 AutoIsto 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. 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
}
intent_publish_intent annotations
{
  "title": "Watch new car listings",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
intent_get_intent — Get the state of a car watch
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

intent_get_intent input schema
{
  "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."
    }
  }
}
intent_get_intent output schema
{
  "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 AutoIsto page yet; awaiting_email_confirmation = the user filled in the page and must click the link in the e-mail; active = AutoIsto 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
}
intent_get_intent annotations
{
  "title": "Get the state of a car watch",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
intent_list_matches — List cars found for a car watch
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when the user asks what AutoIsto has found for an intent created with intent_publish_intent. These are the same cars AutoIsto 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 price in CZK and AutoIsto 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 AutoIsto CZ aggregates from the market, so they cover only cars listed on AutoIsto CZ and may be incomplete; a car may already be sold.

intent_list_matches input schema
{
  "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."
    }
  }
}
intent_list_matches output schema
{
  "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 AutoIsto page yet; awaiting_email_confirmation = the user filled in the page and must click the link in the e-mail; active = AutoIsto 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": [
          "carId",
          "brand",
          "model",
          "year",
          "mileageKm",
          "priceCzk",
          "priceCzkAtMatch",
          "priceVerdictAtMatch",
          "matchedAt",
          "stillListed",
          "url"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "Link to the car on www.autoisto.cz — show it unchanged."
          },
          "year": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "brand": {
            "type": "string"
          },
          "carId": {
            "type": "string"
          },
          "model": {
            "type": "string"
          },
          "priceCzk": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "description": "Asking price today in CZK."
          },
          "matchedAt": {
            "type": "string"
          },
          "mileageKm": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "stillListed": {
            "type": "boolean"
          },
          "priceCzkAtMatch": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "priceVerdictAtMatch": {
            "anyOf": [
              {
                "enum": [
                  "below_market",
                  "around_market",
                  "above_market"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
intent_list_matches annotations
{
  "title": "List cars found for a car watch",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
intent_withdraw_intent — Stop a car watch
Advertised by the server during the last successful anonymous check.
Advertised destructive

Use this when the user wants AutoIsto to stop watching for an intent created with intent_publish_intent. Takes effect immediately; nothing more is e-mailed for it. Requires the intentCode.

intent_withdraw_intent input schema
{
  "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."
    }
  }
}
intent_withdraw_intent output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "found"
  ],
  "properties": {
    "found": {
      "type": "boolean"
    },
    "status": {
      "enum": [
        "withdrawn"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
intent_withdraw_intent annotations
{
  "title": "Stop a car watch",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
intent_search_offers — Search cars AutoIsto CZ offers today
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when the user wants to find a used car for sale in the Czech Republic now. Pass what they are looking for as one short phrase (Czech or Slovak works best), e.g. "toyota rav4 hybrid do 600000 Kč". Returns up to 20 cars from AutoIsto CZ's offer in its own order, each with a link to the car on www.autoisto.cz, plus what was understood, which words were not applied and what had to be relaxed. 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 AutoIsto CZ keeps watching. Results come from listings AutoIsto CZ aggregates from the Czech market and may be incomplete; no seller contact is returned.

intent_search_offers input schema
{
  "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 cars (default 10; AutoIsto CZ returns at most 10)."
    },
    "statement": {
      "type": "string",
      "maxLength": 300,
      "minLength": 2,
      "description": "What the user is looking for, e.g. \"suv automat do 500000 Kč\"."
    }
  }
}
intent_search_offers annotations
{
  "title": "Search cars AutoIsto CZ offers today",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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
778 ms
95th percentile latency
778 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 778 ms · metadata changed · 5 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http autoisto-intent-mcp https://www.autoisto.cz/mcp/zamery

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add autoisto-intent-mcp --url https://www.autoisto.cz/mcp/zamery

Cursor

Merge this server into .cursor/mcp.json in your project, then enable autoisto-intent-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "autoisto-intent-mcp": {
      "url": "https://www.autoisto.cz/mcp/zamery"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "autoisto-intent-mcp": {
      "type": "streamableHttp",
      "url": "https://www.autoisto.cz/mcp/zamery",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start autoisto-intent-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "autoisto-intent-mcp": {
      "type": "http",
      "url": "https://www.autoisto.cz/mcp/zamery"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http autoisto-intent-mcp https://www.autoisto.cz/mcp/zamery

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "autoisto-intent-mcp": {
      "url": "https://www.autoisto.cz/mcp/zamery"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "autoisto-intent-mcp": {
      "serverUrl": "https://www.autoisto.cz/mcp/zamery"
    }
  }
}

Let your agent find its tools

Find servers like AutoIsto Intent MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run AutoIsto 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.

Claim this listing