76 lines
3.0 KiB
Markdown
76 lines
3.0 KiB
Markdown
# 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.
|