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é APIapiKeyHeader- 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
- Ne jamais coder en dur les secrets : Utilisez toujours des variables d'environnement ou des systèmes de gestion de secrets
- Utilisez les fichiers
.envavec prudence : Si vous utilisez des fichiers.env, ajoutez-les à.gitignore - Limitez les permissions : Utilisez des tokens/clés API avec les permissions minimales requises
- Rotation régulière : Faites une rotation régulière des tokens et clés API
- 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 organisationsuser- Informations de base de l'utilisateur
Type de token : Classic Personal Access Token (PAT)
Génération du token :
- Allez sur https://github.com/settings/tokens
- Cliquez sur "Generate new token (classic)"
- Sélectionnez les autorisations requises
- Générez le token
- 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 :
- Inscrivez-vous sur https://context7.com
- Obtenez votre clé API depuis le tableau de bord
- 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 :
- Vérifiez que la variable est définie :
echo $NOM_VARIABLE - Vérifiez qu'elle est exportée :
env | grep NOM_VARIABLE - 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
timeoutdans 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é
- Portée du token : N'accordez que les autorisations minimales requises
- Stockage du token : Utilisez des variables d'environnement, pas des fichiers de configuration
- Partage du token : Ne partagez jamais les tokens ni ne les commitez dans le contrôle de version
- Rotation du token : Faites une rotation régulière des tokens, surtout s'ils sont compromis
- 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 |
|