Sync Indy integre dans l'interface web + anti-doublon

This commit is contained in:
2026-06-30 14:08:35 +02:00
parent 458f80f201
commit 75af558b49
13 changed files with 665 additions and 48 deletions
+75
View File
@@ -0,0 +1,75 @@
# MCP Indy custom
Petit serveur MCP qui appelle l'**API privée d'Indy** avec ton token, pour
récupérer tes transactions (et plus) sans OCR. Tu le branches sur Claude Desktop,
ou tu t'en sers comme base pour le sync de JB Compta.
> ⚠️ API non officielle, pour **tes propres données**. Zone grise vis-à-vis des CGU
> d'Indy, peut casser si Indy change son interface, et le token JWT expire.
## Étape 1 — Capturer l'API d'Indy (le cœur du sujet)
On a besoin de voir la vraie requête que fait le site quand il charge tes transactions.
1. Ouvre **https://app.indy.fr** dans Chrome et connecte-toi.
2. Appuie sur **F12** → onglet **Network** (Réseau). Coche **Fetch/XHR**.
3. Va sur ta page **Transactions** (ou recharge-la). Des requêtes apparaissent.
4. Repère celle qui **renvoie tes transactions en JSON** (clique dessus, onglet
*Response/Aperçu* : tu dois voir tes opérations). Note :
- l'**URL** complète (onglet *Headers**Request URL*) ;
- la **méthode** (GET/POST) ;
- les **paramètres** éventuels (dates, page) ;
- l'en-tête **Authorization** (commence souvent par `Bearer eyJ...`) — c'est ton token ;
ou, si pas d'Authorization, l'en-tête **Cookie**.
5. **Copie-moi** : l'URL, la méthode, les paramètres, et un **extrait du JSON de réponse**
(2-3 transactions suffisent). **Masque la valeur du token** (garde juste « Bearer … »).
Avec ça, je complète `lister_transactions` (et j'ajoute clients, factures…) avec les
bons endpoints et le bon mapping.
## Étape 2 — Configurer et lancer
```bash
cd indy-mcp
python -m venv .venv && source .venv/bin/activate # ou ton uv
pip install -r requirements.txt
cp .env.example .env # puis renseigne INDY_TOKEN (et INDY_TRANSACTIONS_PATH)
python server.py # démarre le MCP (stdio)
```
## Étape 3 — Brancher sur Claude Desktop
`Settings… > Developer > Edit Config` :
```jsonc
{
"mcpServers": {
"indy-custom": {
"command": "python",
"args": ["/chemin/vers/indy-mcp/server.py"],
"env": { "INDY_TOKEN": "eyJ...ton-token...", "INDY_BASE_URL": "https://app.indy.fr" }
}
}
}
```
Redémarre Claude Desktop.
## Outils fournis
| Outil | Rôle |
|-------|------|
| `etat` | Vérifie la config (token présent, URL). |
| `appel_api` | **Explorateur** : appelle n'importe quel endpoint. Sert à découvrir/valider une URL captée avant de la figer. |
| `lister_transactions` | Liste les transactions (une fois `INDY_TRANSACTIONS_PATH` renseigné). |
**Workflow de découverte** : une fois connecté, demande à Claude
« appelle `appel_api` avec path=`/l-url-que-tu-as-captée` » → si tu vois ton JSON,
l'endpoint est bon, on le fige dans `lister_transactions`.
## Récupérer le token rapidement
Dans DevTools → onglet **Application** (ou **Storage**) → *Local Storage* /
*Cookies* de `app.indy.fr` : le token JWT (`eyJ...`) y est souvent stocké. Sinon,
copie l'en-tête `Authorization` d'une requête dans l'onglet **Network**.
Le token **expire** : s'il ne marche plus, recapture-le.