=== Isto Intents Holder ===
Contributors: autoisto
Tags: ai, mcp, classifieds, real estate, car dealer
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Lets AI assistants ask your listing site to keep looking for a car or a home. The person confirms on your site; you e-mail the listings that fit.

== Description ==

People increasingly ask an AI assistant — ChatGPT, Claude and others — to find them a used car or a flat. **Isto Intents Holder** lets such an assistant ask *your* listing site to keep looking for that person, under an open interface (Isto Intents, consent-link profile).

1. The assistant sends your site the wish in the person's own words ("estate car, petrol, up to 15 000 EUR") — and nothing else: no name, e-mail or phone.
2. Your site answers with a link to its own confirmation page. The person enters their e-mail there, ticks the consent and confirms it from the e-mail (double opt-in).
3. Once an hour the plugin compares every confirmed wish with your newest listings and e-mails those that fit, each once, with a link to stop. The assistant can show the same listings, and every link leads to your listing page.

The person stays your visitor and your subscriber. Contact data is entered only on your site.

**Features**

* MCP server (Streamable HTTP) with the four tools of the consent-link profile: `intent_publish_intent`, `intent_get_intent`, `intent_list_matches`, `intent_withdraw_intent`.
* Confirmation page (shortcode `[isto_intents_consent]`, created on activation) with double opt-in; a link opened by a mail scanner confirms nothing.
* Holder descriptor at `/.well-known/isto-intents.json`, so assistants and the Isto Intents Registry can find you by country and category.
* Matching against any post type, with an optional price field; replace it with your own search through the `isto_intents_holder_find_matches` filter.
* A private price limit is sealed: never returned to the assistant, never shown.
* Limits per network, and a separate limit for the signed calls of the Isto Intents forwarder.
* Privacy tools: export and erasure of a person's wishes; the e-mail address is deleted as soon as a wish ends; deleting the plugin deletes all its data.
* E-mails through `wp_mail()`, so your SMTP plugin applies.
* Translations: English, Slovak, Czech, German, Hungarian, Polish.

== Installation ==

1. Upload the plugin and activate it. It creates its tables, a confirmation page and an hourly task.
2. Go to **Settings → Isto Intents**: your name, a role contact address, country, categories, languages and — required — the post type of your listings (and the price field, if you have one).
3. Press **Check readiness (with a trial run)**, then **Submit to the registry**.

Requirements: HTTPS; for `/.well-known/isto-intents.json` pretty permalinks and WordPress at the root of the domain (otherwise the settings page links the descriptor, which you save as a file).

== Frequently Asked Questions ==

= Does the AI assistant get the person's e-mail? =

No. The tools take no contact data and refuse any argument they do not declare. The person types the e-mail on your confirmation page.

= How does it decide which listings fit? =

By default a listing fits when its title, text and categories contain every word of the wish and its price is within the stated limit. Numbers it cannot place (a year, a mileage) are reported to the assistant as not understood. Developers replace the matching with the `isto_intents_holder_find_matches` filter.

= Does the plugin contact any outside service? =

Only when an administrator presses one of the two buttons on the settings page. See "External services" below.

== External services ==

This plugin connects to the **Isto Intents Registry** at istointents.org, operated by AutoIsto s. r. o., and only when an administrator presses one of two buttons on **Settings → Isto Intents**:

* **Check readiness** sends your site's host name to `https://istointents.org/registry/v0/check`. The registry then reads your public descriptor and calls your public MCP server once with a test wish, which it withdraws at once.
* **Submit to the registry** sends your site's host name to `https://istointents.org/registry/v0/submit`. The registry lists your host and re-checks your public descriptor and MCP server about every six hours.

Nothing else is sent: no data about people, wishes, users or visitors. Registry terms: https://istointents.org/registry/terms/ · Privacy: https://istointents.com/privacy/

AI assistants and the Isto Intents forwarder (istointents.com) call your site's public MCP endpoint on their own; the plugin answers them but does not contact them. Forwarding terms: https://istointents.org/forwarding/terms/

== Changelog ==

= 1.0.0 =
* First release: consent-link profile 1.0 of Isto Intents.
