Sync Indy integre dans l'interface web + anti-doublon
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user