> Ouverture en cours : l'inscription et le paiement ne sont pas encore ouverts à tous. L'état du jour : https://subagent.fr/docs/etat.md
>
> Pour un agent : la carte du site est sur https://subagent.fr/llms.txt ; chaque page existe en Markdown, à la même adresse suffixée `.md`.

# `add_suppression`

> Ajoute une adresse ou un domaine entier à la liste de blocage de l’espace : plus rien ne leur sera envoyé, et ce qui attendait de partir vers eux est annulé.

## En bref

| Propriété | Valeur |
|---|---|
| Titre | Bloquer une adresse ou un domaine |
| Outil MCP | `add_suppression`, sur `https://api.subagent.fr/mcp` |
| Appel HTTP | `POST https://api.subagent.fr/v1/add_suppression` |
| Accès | permission `send` ou `approve` |
| État de l'espace | vérifié ou non |
| Effet | écriture |
| Vue dans l'assistant | non |

## Ce que fait l'outil

Le serveur décrit l'outil ainsi à l'agent qui se branche :

> Ajoute une adresse ou un domaine entier à la liste de blocage de l’espace : plus rien ne leur sera envoyé, et ce qui attendait de partir vers eux est annulé. À utiliser dès qu’un correspondant demande à ne plus être contacté. Une messagerie publique (gmail.com…) ne se bloque pas en entier. Lever ensuite ce blocage (`remove_suppression`) demande la permission approve : un agent qui ne l’a pas ne revient pas dessus seul.

## Paramètres

`add_suppression` accepte ces paramètres. Un paramètre inconnu est refusé avec le code `invalid_argument`.

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `address` | texte | oui | Une adresse (marie@example.com) ou un domaine entier (@example.com). |
| `note` | texte | non | Pourquoi, pour le journal. 300 caractères au plus. |

## Résultat

L'outil rend un texte lisible en français et un objet structuré (`structuredContent`). En HTTP, la réponse est cet objet.

| Champ | Type | Contenu |
|---|---|---|
| `cancelled_messages` | entier | Le nombre de messages en attente annulés. |
| `kind` | texte | `address` : une adresse ; `domain` : un domaine entier. |
| `new` | booléen | Entrée nouvelle. |
| `value` | texte | Ce qui est bloqué. |

## Exemple d'appel

Les valeurs sont fictives.

HTTP :

```sh
curl -X POST https://api.subagent.fr/v1/add_suppression \
  -H "Authorization: Bearer $SUBAGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "address": "julien.roux@exemple.com",
  "note": "A demandé par téléphone à ne plus être contacté"
}'
```

MCP (`tools/call`) :

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_suppression",
    "arguments": {
      "address": "julien.roux@exemple.com",
      "note": "A demandé par téléphone à ne plus être contacté"
    }
  }
}
```

## Refus possibles

| Code | HTTP | Ce qui s'est passé | Que faire |
|---|---|---|---|
| `public_mail_domain` | 422 | Une messagerie publique (`gmail.com`…) ne se bloque pas en entier, et ne s'enregistre pas comme domaine. | Bloquer les adresses une à une. Enregistrer un domaine dont vous gérez le DNS. |

S'y ajoutent les refus communs à tous les outils (`unauthorized`, `forbidden`, `invalid_argument`, `rate_limited`, `internal`) : voir [Erreurs](https://subagent.fr/docs/erreurs.md#acces).

## Voir aussi

- [Désinscription et blocages : add_suppression](https://subagent.fr/docs/desinscription.md#add_suppression)
- [`list_suppressions`](https://subagent.fr/docs/reference/list_suppressions.md)
- [`remove_suppression`](https://subagent.fr/docs/reference/remove_suppression.md)
- [Tous les outils](https://subagent.fr/docs/reference/index.md)
