bots-garden/mini-mepublic Fork
⑂ v0.1.6
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. f854e27 · on v0.1.6 · k33g · Sep 23, 2026
mcp-authentification.md · 276 lines · 8.1 KBmarkdown
Blame HistoryOpen raw

Référence de l'authentification MCP

Ce document décrit les méthodes d'authentification prises en charge par le client MCP de mini-me.

Aperçu

Les serveurs MCP peuvent nécessiter différentes méthodes d'authentification. Mini-me prend actuellement en charge :

  • none : Aucune authentification (serveurs publics)
  • bearer : Authentification par token Bearer (en-tête HTTP Authorization)
  • api_key : Authentification par clé API (en-tête personnalisé)

Types d'authentification

Type : none

Cas d'utilisation : Serveurs MCP publics qui ne nécessitent pas d'authentification.

Configuration :

servers:
  - name: wikipedia
    transport: http
    url: https://wikipedia-mcp.vercel.app/mcp
    auth:
      type: none

Comportement : Aucun en-tête d'authentification n'est ajouté aux requêtes.


Type : bearer

Cas d'utilisation : Serveurs MCP qui utilisent l'authentification par token Bearer (le plus courant).

Configuration :

servers:
  - name: github
    transport: http
    url: https://api.githubcopilot.com/mcp/
    auth:
      type: bearer
      tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN

Requis : tokenEnv - Nom de la variable d'environnement contenant le token.

Comportement : Ajoute l'en-tête Authorization: Bearer {token} à toutes les requêtes.

En-tête HTTP :

Authorization: Bearer ghp_votre_token_ici

Serveurs pris en charge :

  • GitHub MCP Server (api.githubcopilot.com)
  • Context7 MCP Server (mcp.context7.com)
  • Tout serveur acceptant l'authentification par token Bearer

Type : api_key

Cas d'utilisation : Serveurs MCP qui utilisent l'authentification par clé API avec des en-têtes personnalisés.

Configuration :

servers:
  - name: duckduckgo
    transport: http
    url: https://mcp.hasdata.com/mcp
    auth:
      type: api_key
      apiKeyEnv: HASDATA_API_KEY
      apiKeyHeader: x-api-key

Requis :

  • apiKeyEnv - Nom de la variable d'environnement contenant la clé API
  • apiKeyHeader - Nom de l'en-tête HTTP à utiliser

Optionnel : Si apiKeyHeader n'est pas spécifié, la valeur par défaut est Authorization.

Comportement : Ajoute l'en-tête {apiKeyHeader}: {api_key} à toutes les requêtes.

En-tête HTTP :

X-API-Key: votre_clé_api_ici

Serveurs pris en charge :

  • DuckDuckGo MCP Server via HasData

Non encore pris en charge

OAuth 2.0

Statut : Non encore implémenté dans mini-me.

Cas d'utilisation : Serveurs MCP qui nécessitent un flux d'authentification OAuth 2.0 (connexion via navigateur).

Exemple de serveur : Certains serveurs MCP personnalisés qui implémentent OAuth.

Solution de contournement : Utilisez un serveur MCP auto-hébergé qui accepte des tokens Bearer ou des clés API.


Variables d'environnement

Les tokens d'authentification et les clés API sont chargés à partir de variables d'environnement. C'est une bonne pratique de sécurité qui empêche les secrets d'être commités dans le contrôle de version.

Définir les variables d'environnement

Linux/macOS :

# Temporaire (session actuelle)
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_votre_token_ici"

# Permanent (ajouter à ~/.bashrc ou ~/.zshrc)
echo 'export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_votre_token_ici"' >> ~/.bashrc
source ~/.bashrc

# Commande unique
GITHUB_PERSONAL_ACCESS_TOKEN="ghp_votre_token_ici" mm --config votre_config.yaml

Windows (Invite de commandes) :

set GITHUB_PERSONAL_ACCESS_TOKEN=ghp_votre_token_ici
mm --config votre_config.yaml

Windows (PowerShell) :

$env:GITHUB_PERSONAL_ACCESS_TOKEN="ghp_votre_token_ici"
mm --config votre_config.yaml

Bonnes pratiques

  1. Ne jamais coder en dur les secrets : Utilisez toujours des variables d'environnement ou des systèmes de gestion de secrets
  2. Utilisez les fichiers .env avec prudence : Si vous utilisez des fichiers .env, ajoutez-les à .gitignore
  3. Limitez les permissions : Utilisez des tokens/clés API avec les permissions minimales requises
  4. Rotation régulière : Faites une rotation régulière des tokens et clés API
  5. Audit des accès : Passez régulièrement en revue quels services ont accès à vos tokens

Exigences spécifiques aux serveurs

GitHub MCP Server

Point de terminaison : https://api.githubcopilot.com/mcp/

Authentification : Token Bearer (bearer type)

Autorisations requises :

  • read:user - Pour l'accès au profil utilisateur (get_me)
  • repo - Pour l'accès aux dépôts (la plupart des outils)
  • read:org - Pour l'accès aux organisations
  • user - Informations de base de l'utilisateur

Type de token : Classic Personal Access Token (PAT)

Génération du token :

  1. Allez sur https://github.com/settings/tokens
  2. Cliquez sur "Generate new token (classic)"
  3. Sélectionnez les autorisations requises
  4. Générez le token
  5. Copiez le token (il ne sera plus affiché)

Context7 MCP Server

Point de terminaison : https://mcp.context7.com/mcp

Authentification : Token Bearer (bearer type)

Token : Clé API Context7

Génération du token :

  1. Inscrivez-vous sur https://context7.com
  2. Obtenez votre clé API depuis le tableau de bord
  3. Définissez-la comme variable d'environnement CONTEXT7_API_KEY

Wikipedia MCP Server

Point de terminaison : https://wikipedia-mcp.vercel.app/mcp

Authentification : Aucune (none type)

Token : Non requis


HasData (DuckDuckGo) MCP Server

Point de terminaison : https://mcp.hasdata.com/mcp?apis=duckduckgo

Authentification : Clé API (api_key type)

Token : Clé API HasData

En-têtes :

  • Nom de l'en-tête : x-api-key
  • Variable d'environnement : HASDATA_API_KEY

Résolution des problèmes

Erreur "missing bearer token" ou "missing API key"

Cause : La variable d'environnement requise n'est pas définie ou est vide.

Solution :

  1. Vérifiez que la variable est définie : echo $NOM_VARIABLE
  2. Vérifiez qu'elle est exportée : env | grep NOM_VARIABLE
  3. Vérifiez les fautes de frappe dans le nom de la variable dans votre config

L'authentification échoue mais le token fonctionne avec curl

Cause : Exigences d'authentification différentes entre l'API REST et le point de terminaison MCP.

Exemple : API REST GitHub (api.github.com) vs MCP GitHub (api.githubcopilot.com)

Solution :

  • Testez directement avec le point de terminaison MCP :
    curl -X POST https://api.githubcopilot.com/mcp/ \
      -H "Authorization: Bearer $GITHUB_PERSONAL_ACCESS_TOKEN" \
      -H "Accept: application/json, text/event-stream" \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
    
  • Assurez-vous que votre token a les autorisations requises pour le serveur MCP

Le serveur retourne 403 Forbidden

Cause : Le token manque des permissions requises ou des exigences spécifiques au serveur.

Solution :

  • Vérifiez si le token a expiré
  • Vérifiez que le token a les bonnes autorisations
  • Certains serveurs peuvent nécessiter des en-têtes ou paramètres supplémentaires

La connexion au serveur expire

Solution :

  • Augmentez le timeout dans votre configuration de serveur
  • Vérifiez la connectivité réseau vers le point de terminaison du serveur MCP
  • Vérifiez que le serveur est en ligne et accessible

Considérations de sécurité

  1. Portée du token : N'accordez que les autorisations minimales requises
  2. Stockage du token : Utilisez des variables d'environnement, pas des fichiers de configuration
  3. Partage du token : Ne partagez jamais les tokens ni ne les commitez dans le contrôle de version
  4. Rotation du token : Faites une rotation régulière des tokens, surtout s'ils sont compromis
  5. Sécurité réseau : Assurez-vous que les connexions aux serveurs MCP utilisent HTTPS

Voir aussi

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
# Référence de l'authentification MCP

Ce document décrit les méthodes d'authentification prises en charge par le client MCP de mini-me.

## Aperçu

Les serveurs MCP peuvent nécessiter différentes méthodes d'authentification. Mini-me prend actuellement en charge :

- **`none`** : Aucune authentification (serveurs publics)
- **`bearer`** : Authentification par token Bearer (en-tête HTTP Authorization)
- **`api_key`** : Authentification par clé API (en-tête personnalisé)

## Types d'authentification

### Type : `none`

**Cas d'utilisation :** Serveurs MCP publics qui ne nécessitent pas d'authentification.

**Configuration :**
```yaml
servers:
  - name: wikipedia
    transport: http
    url: https://wikipedia-mcp.vercel.app/mcp
    auth:
      type: none
```

**Comportement :** Aucun en-tête d'authentification n'est ajouté aux requêtes.

---

### Type : `bearer`

**Cas d'utilisation :** Serveurs MCP qui utilisent l'authentification par token Bearer (le plus courant).

**Configuration :**
```yaml
servers:
  - name: github
    transport: http
    url: https://api.githubcopilot.com/mcp/
    auth:
      type: bearer
      tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN
```

**Requis :** `tokenEnv` - Nom de la variable d'environnement contenant le token.

**Comportement :** Ajoute l'en-tête `Authorization: Bearer {token}` à toutes les requêtes.

**En-tête HTTP :**
```
Authorization: Bearer ghp_votre_token_ici
```

**Serveurs pris en charge :**
- GitHub MCP Server (`api.githubcopilot.com`)
- Context7 MCP Server (`mcp.context7.com`)
- Tout serveur acceptant l'authentification par token Bearer

---

### Type : `api_key`

**Cas d'utilisation :** Serveurs MCP qui utilisent l'authentification par clé API avec des en-têtes personnalisés.

**Configuration :**
```yaml
servers:
  - name: duckduckgo
    transport: http
    url: https://mcp.hasdata.com/mcp
    auth:
      type: api_key
      apiKeyEnv: HASDATA_API_KEY
      apiKeyHeader: x-api-key
```

**Requis :**
- `apiKeyEnv` - Nom de la variable d'environnement contenant la clé API
- `apiKeyHeader` - Nom de l'en-tête HTTP à utiliser

**Optionnel :** Si `apiKeyHeader` n'est pas spécifié, la valeur par défaut est `Authorization`.

**Comportement :** Ajoute l'en-tête `{apiKeyHeader}: {api_key}` à toutes les requêtes.

**En-tête HTTP :**
```
X-API-Key: votre_clé_api_ici
```

**Serveurs pris en charge :**
- DuckDuckGo MCP Server via HasData

---

## Non encore pris en charge

### OAuth 2.0

**Statut :** Non encore implémenté dans mini-me.

**Cas d'utilisation :** Serveurs MCP qui nécessitent un flux d'authentification OAuth 2.0 (connexion via navigateur).

**Exemple de serveur :** Certains serveurs MCP personnalisés qui implémentent OAuth.

**Solution de contournement :** Utilisez un serveur MCP auto-hébergé qui accepte des tokens Bearer ou des clés API.

---

## Variables d'environnement

Les tokens d'authentification et les clés API sont chargés à partir de variables d'environnement. C'est une bonne pratique de sécurité qui empêche les secrets d'être commités dans le contrôle de version.

### Définir les variables d'environnement

**Linux/macOS :**
```bash
# Temporaire (session actuelle)
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_votre_token_ici"

# Permanent (ajouter à ~/.bashrc ou ~/.zshrc)
echo 'export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_votre_token_ici"' >> ~/.bashrc
source ~/.bashrc

# Commande unique
GITHUB_PERSONAL_ACCESS_TOKEN="ghp_votre_token_ici" mm --config votre_config.yaml
```

**Windows (Invite de commandes) :**
```cmd
set GITHUB_PERSONAL_ACCESS_TOKEN=ghp_votre_token_ici
mm --config votre_config.yaml
```

**Windows (PowerShell) :**
```powershell
$env:GITHUB_PERSONAL_ACCESS_TOKEN="ghp_votre_token_ici"
mm --config votre_config.yaml
```

### Bonnes pratiques

1. **Ne jamais coder en dur les secrets :** Utilisez toujours des variables d'environnement ou des systèmes de gestion de secrets
2. **Utilisez les fichiers `.env` avec prudence :** Si vous utilisez des fichiers `.env`, ajoutez-les à `.gitignore`
3. **Limitez les permissions :** Utilisez des tokens/clés API avec les permissions minimales requises
4. **Rotation régulière :** Faites une rotation régulière des tokens et clés API
5. **Audit des accès :** Passez régulièrement en revue quels services ont accès à vos tokens

---

## Exigences spécifiques aux serveurs

### GitHub MCP Server

**Point de terminaison :** `https://api.githubcopilot.com/mcp/`

**Authentification :** Token Bearer (`bearer` type)

**Autorisations requises :**
- `read:user` - Pour l'accès au profil utilisateur (`get_me`)
- `repo` - Pour l'accès aux dépôts (la plupart des outils)
- `read:org` - Pour l'accès aux organisations
- `user` - Informations de base de l'utilisateur

**Type de token :** Classic Personal Access Token (PAT)

**Génération du token :**
1. Allez sur [https://github.com/settings/tokens](https://github.com/settings/tokens)
2. Cliquez sur "Generate new token (classic)"
3. Sélectionnez les autorisations requises
4. Générez le token
5. Copiez le token (il ne sera plus affiché)

---

### Context7 MCP Server

**Point de terminaison :** `https://mcp.context7.com/mcp`

**Authentification :** Token Bearer (`bearer` type)

**Token :** Clé API Context7

**Génération du token :**
1. Inscrivez-vous sur [https://context7.com](https://context7.com)
2. Obtenez votre clé API depuis le tableau de bord
3. Définissez-la comme variable d'environnement `CONTEXT7_API_KEY`

---

### Wikipedia MCP Server

**Point de terminaison :** `https://wikipedia-mcp.vercel.app/mcp`

**Authentification :** Aucune (`none` type)

**Token :** Non requis

---

### HasData (DuckDuckGo) MCP Server

**Point de terminaison :** `https://mcp.hasdata.com/mcp?apis=duckduckgo`

**Authentification :** Clé API (`api_key` type)

**Token :** Clé API HasData

**En-têtes :**
- Nom de l'en-tête : `x-api-key`
- Variable d'environnement : `HASDATA_API_KEY`

---

## Résolution des problèmes

### Erreur "missing bearer token" ou "missing API key"

**Cause :** La variable d'environnement requise n'est pas définie ou est vide.

**Solution :**
1. Vérifiez que la variable est définie : `echo $NOM_VARIABLE`
2. Vérifiez qu'elle est exportée : `env | grep NOM_VARIABLE`
3. Vérifiez les fautes de frappe dans le nom de la variable dans votre config

### L'authentification échoue mais le token fonctionne avec curl

**Cause :** Exigences d'authentification différentes entre l'API REST et le point de terminaison MCP.

**Exemple :** API REST GitHub (`api.github.com`) vs MCP GitHub (`api.githubcopilot.com`)

**Solution :**
- Testez directement avec le point de terminaison MCP :
  ```bash
  curl -X POST https://api.githubcopilot.com/mcp/ \
    -H "Authorization: Bearer $GITHUB_PERSONAL_ACCESS_TOKEN" \
    -H "Accept: application/json, text/event-stream" \
    -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
  ```
- Assurez-vous que votre token a les autorisations requises pour le serveur MCP

### Le serveur retourne 403 Forbidden

**Cause :** Le token manque des permissions requises ou des exigences spécifiques au serveur.

**Solution :**
- Vérifiez si le token a expiré
- Vérifiez que le token a les bonnes autorisations
- Certains serveurs peuvent nécessiter des en-têtes ou paramètres supplémentaires

### La connexion au serveur expire

**Solution :**
- Augmentez le `timeout` dans votre configuration de serveur
- Vérifiez la connectivité réseau vers le point de terminaison du serveur MCP
- Vérifiez que le serveur est en ligne et accessible

---

## Considérations de sécurité

1. **Portée du token :** N'accordez que les autorisations minimales requises
2. **Stockage du token :** Utilisez des variables d'environnement, pas des fichiers de configuration
3. **Partage du token :** Ne partagez jamais les tokens ni ne les commitez dans le contrôle de version
4. **Rotation du token :** Faites une rotation régulière des tokens, surtout s'ils sont compromis
5. **Sécurité réseau :** Assurez-vous que les connexions aux serveurs MCP utilisent HTTPS

---

## Voir aussi

- [Référence de configuration MCP](configuration.md)
- [Outils MCP disponibles](outils-disponibles.md)
- [Architecture MCP](explanation/architecture.md)