# Zactonz AI Connector for Mistral AI

> Mistral AI connector for the WordPress AI Client. Open-weight and commercial models, vision, tool calling, structured output with a real JSON schema and reasoning effort, with every capability read from Mistral's own catalogue.

- **Type:** Plugin (WordPress plugins)
- **Version:** 1.0.0, released 9 Oct 2026
- **Requires:** WordPress 7.0+, PHP 7.4+, A Mistral AI account and API key
- **Tested with:** WordPress 7.1.2
- **Licence:** GPL-2.0-or-later
- **Documentation:** https://developers.zactonz.com/wordpress/plugins/zactonz-ai-connector-for-mistral-ai/

## Overview

Zactonz AI Connector for Mistral AI registers Mistral AI as a connector for the WordPress AI Client. It is built for the **Settings › Connectors** screen and for the plugin-directory connector search, so when WordPress asks for a connector you can add Mistral AI in a couple of clicks. Once active, the models on your Mistral AI account are available to AI features in WordPress.

Mistral AI is unusual among providers in that it reports what each model can do, model by model, in its own catalogue. The connector reads those flags rather than guessing from model names, so a model is offered as vision-capable, tool-calling or reasoning-capable because Mistral says it is.

### Features

- Text generation with every Mistral AI chat model your credentials can reach, from the Ministral 3 family through Mistral Small, Medium and Large to Codestral.
- Automatic model discovery, with each model's display name, context window and capability flags taken from the Mistral AI catalogue.
- Vision input on the models that accept images.
- Tool calling on the models that report function support.
- Structured output against a JSON schema, not only JSON mode, because Mistral AI accepts a schema.
- Reasoning effort control for the default text model.
- Single and batch embedding generation, offered once the WordPress AI Client ships its embedding model contract.
- Cancellable server-sent event streaming for content, reasoning and tool-call chunks.
- Configurable request timeouts for text and embeddings.
- API key supplied by a PHP constant or an environment variable instead of the database.
- An API base URL override for a proxy or gateway, within the hosts and ports WordPress allows outbound requests to.
- Redacted diagnostics and a WordPress Site Health connectivity test.

### What the model list leaves out, and why

Mistral AI answers one catalogue endpoint for its whole range, which is wider than the kinds of model the WordPress AI Client can represent. Transcription, text-to-speech, OCR, moderation and safety-classification models are listed there alongside the chat models. The connector reads the task each model reports and leaves those out, so the model picker only ever offers something WordPress can actually call. It reads the reported task rather than the identifier because the identifier does not always say: Shieldstral is a safety classifier whose name gives no hint of it.

Two other kinds of model are kept but moved to the back of the list. Mistral AI publishes a retirement date on a model as soon as a replacement exists, and that model keeps working until the date arrives — so it stays available to choose, but it will not be handed to a site that never chose anything. Mistral's `labs-` models are experimental and documented as unfit for production, and one of those would otherwise sort ahead of every `mistral-` model on an alphabetical list. Both remain selectable; neither becomes a default by accident.

### A note on structured output

Mistral AI accepts `response_format` as plain text, as JSON mode, and as a JSON schema. The connector therefore advertises schema support for Mistral models and sends the schema a WordPress feature asks for, rather than falling back to JSON mode and hoping the shape comes out right. Not every provider in this family can do that — DeepSeek, for one, rejects a schema — so this is a real difference rather than a formality.

### Part of a family

This connector is one of the Zactonz AI Connector plugins, which add the providers WordPress core leaves out. They follow one set of conventions, so every connector behaves the same way in the admin. [Zactonz AI Connector for Ollama](https://developers.zactonz.com/wordpress/plugins/zactonz-ai-provider-ollama/) covers local, self-hosted and Ollama Cloud models; [Zactonz AI Connector for OpenRouter](https://developers.zactonz.com/wordpress/plugins/zactonz-ai-connector-for-openrouter/) covers hundreds of hosted models behind one key; [Zactonz AI Connector for Groq](https://developers.zactonz.com/wordpress/plugins/zactonz-ai-connector-for-groq/) covers very low latency inference on GroqCloud; [Zactonz AI Connector for DeepSeek](https://developers.zactonz.com/wordpress/plugins/zactonz-ai-connector-for-deepseek/) covers DeepSeek's long-context models. All of them are listed under [WordPress](https://developers.zactonz.com/wordpress/).

### Not affiliated

This connector is developed by Zactonz Technologies and is not affiliated with, endorsed by or sponsored by Mistral AI. Mistral AI is a trademark of Mistral AI SAS.

## Installation & setup

### Install the plugin

This connector is awaiting review for the WordPress plugin directory. The directory steps below are the route once it is listed; until then, install it from the plugin zip.

From the dashboard, go to **Plugins › Add New**, search for **Zactonz AI Connector for Mistral AI** and click **Install Now**, then **Activate**. WordPress also links here directly from **Settings › Connectors** when it needs a connector that is not installed yet.

With WP-CLI:

```bash
wp plugin install zactonz-ai-connector-for-mistral-ai --activate
```

To install manually, upload the folder to `/wp-content/plugins/zactonz-ai-connector-for-mistral-ai/` and activate it from the **Plugins** menu.

### Connect to Mistral AI

1. Create an API key in [the Mistral AI console](https://console.mistral.ai/api-keys).
2. Go to **Settings › Connectors** and paste the key into the Mistral AI connector.
3. Go to **Settings › Mistral AI** to review the discovered models and choose a default model per capability, a reasoning level for the default text model, and the request timeouts.

The key is stored in the option WordPress registers for the connector, so the Connectors screen and the connector's own settings screen always show the same credential.

### Keep the key out of the database

Define `MISTRAL_API_KEY` in `wp-config.php`, or set an environment variable of the same name. When either is present the connector uses it, the settings field is disabled, and nothing is written to the database.

```php
define( 'MISTRAL_API_KEY', '…' );
```

### Choosing a default model

Mistral AI returns its whole catalogue from one endpoint, so the picker shows more than you will use. A few things are worth knowing while you choose:

- An alias such as `mistral-small-latest` follows Mistral's newest release of that model, including across generations. Pinning a version identifier such as `mistral-small-2603` keeps behaviour and pricing stable, at the cost of having to move it yourself later.
- A model with an announced retirement date still answers until that date. The connector keeps it in the list but will not pick it for you.
- A `labs-` model is experimental and Mistral does not recommend it for production. It is listed last for that reason.

### Reasoning effort

Mistral's newer general-purpose models think on request rather than always. **Settings › Mistral AI** has a reasoning control that applies to the default text model; it is sent only with requests to that model and left off every other request. **No reasoning** turns it off. Which levels a model accepts is up to Mistral, so a model that does not reason, or that does not accept the level chosen, may ignore or refuse it. A reasoning reply takes longer to arrive, so raise the request timeout if you ask for long answers at the highest level.

### Embeddings

Mistral AI offers `mistral-embed` for text and `codestral-embed` for code. The connector discovers both and generates embeddings singly or in batches, but only once the WordPress AI Client ships its embedding model contract — WordPress 7.1 defines the capability without it. Until then the embedding models are not offered, because offering one would fail the moment it was used.

### Use a proxy or gateway

**Settings › Mistral AI** has an API base URL field. Leave it empty to use `https://api.mistral.ai/v1`, or point it at a gateway that speaks the same API.

AI features reach the gateway through the WordPress AI Client, which sends every request with `wp_safe_remote_request()`. WordPress refuses such requests to loopback and private network addresses and to any port other than 80, 443 and 8080, so a gateway on a LAN address or a non-standard port will not work unless the site allows that host with the `http_request_host_is_external` filter. The connector's own connection check and Site Health test do not apply that restriction, so with such a gateway they can report a healthy connection while AI features still cannot reach it. Use a public hostname on a standard port, or add the filter.

### Check the connection

**Tools › Site Health** includes a connectivity test for Mistral AI, which runs in the background so it never holds the screen open. **Settings › Mistral AI** has a diagnostics button that reports the endpoint, HTTP status, latency, the number of discovered models, any configured defaults missing from the current catalogue, and the AI Client version. The key never appears in the report.

## FAQ

### Where do I get an API key?

Create one in the Mistral AI console at [console.mistral.ai/api-keys](https://console.mistral.ai/api-keys).

### Which models will I see?

Every model your Mistral AI account can reach. Each one's display name, context window and capabilities come from the Mistral AI catalogue, so vision, tool calling and reasoning appear on the models Mistral reports them for and not on the others.

### Why are some Mistral models missing from the picker?

Mistral AI lists its transcription, text-to-speech, OCR, moderation and safety-classification models from the same endpoint as its chat models. The WordPress AI Client has no contract for those tasks, so the connector leaves them out rather than offering something WordPress cannot call.

### Can I ask for a JSON schema?

Yes. Mistral AI accepts a JSON schema, not only JSON mode, so the connector advertises schema support for Mistral models and sends the schema a feature asks for. This differs from some other providers, which accept JSON mode only.

### Can I turn reasoning off?

Yes. **Settings › Mistral AI** has a reasoning control for the default text model, and **No reasoning** switches it off. It is sent only with requests to that model and left off every other request. Which levels a model accepts is up to Mistral, so a model that does not reason, or that does not accept the level you chose, may ignore or refuse it; check the model's documentation before relying on a particular level.

### A model I use has a retirement date. Will the connector stop offering it?

No. Mistral announces a retirement as soon as a replacement exists, and the model keeps working until the date arrives, so the connector keeps listing it. What it will not do is pick that model for a site that never chose one — it is moved to the end of the list, behind the models that are not going away. The same applies to Mistral's experimental `labs-` models.

### Are embeddings available?

The connector discovers `mistral-embed` and `codestral-embed` and can generate embeddings singly or in batches, but it offers them only once the WordPress AI Client ships its embedding model contract. WordPress 7.1 defines the embedding capability without that contract, so using a model then would fail; the connector checks and stays quiet until it is there.

### Does this replace the connectors in WordPress core?

No. WordPress core ships its own connectors. This plugin adds Mistral AI alongside them, and you can keep several connectors active at once and pick a default model per capability.

### Is my key ever displayed or logged?

No. It is never rendered back into the settings screen, and it is excluded from the diagnostics report and from Site Health debug information.

### Which WordPress and PHP versions are supported?

WordPress 7.0 or newer and PHP 7.4 or newer. The connector is tested against the AI Client build that ships with WordPress 7.1 as well as the newest release.

## Changelog

### 1.0.0 — 9 October 2026

- Initial release.
- Registers Mistral AI with the WordPress AI Client and the Settings › Connectors screen.
- Discovers models from the Mistral AI catalogue, reading each model's reported capability flags for vision, tool calling and reasoning rather than inferring them from its name.
- Leaves out the transcription, speech, OCR, moderation and classification models Mistral returns from the same endpoint, by the task each one reports.
- Keeps a model with an announced retirement date, and an experimental `labs-` model, selectable but never the default.
- Structured output against a JSON schema, which Mistral AI accepts.
- Reasoning effort control for the default text model, sent only with requests to that model.
- Single and batch embedding generation for `mistral-embed` and `codestral-embed`, offered once the WordPress AI Client ships its embedding model contract.
- Cancellable server-sent event streaming for content, reasoning and tool-call chunks.
- Redacted diagnostics report and an asynchronous WordPress Site Health connectivity test.
- API key from a PHP constant or an environment variable.
