bots-garden/mini-mepublic Fork
⑂ v0.2.0
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.2.0 · k33g · Sep 23, 2026
mcp-configuration.md · 308 lines · 9.0 KBmarkdown
Blame HistoryOpen raw

Référence de configuration MCP

Ce document décrit toutes les options de configuration pour le client MCP (Model Context Protocol) dans mini-me.

Aperçu

La configuration MCP fait partie du fichier de configuration principal (généralement agent.yaml). Le bloc MCP configure le client et ses serveurs.

Structure de configuration

mcp:
  enabled: true                    # Activer/désactiver la prise en charge MCP
  permissions: ask                 # Mode de permission par défaut
  discoveryTimeout: 10s            # Délai d'attente pour la découverte des outils
  servers:                        # Liste des serveurs MCP
    - name: nom-du-serveur
      transport: http              # Type de transport (http ou stdio)
      url: https://example.com/mcp  # URL pour le transport HTTP
      timeout: 30s                 # Délai d'attente des requêtes
      auth:                         # Authentification
        type: bearer              # Type d'auth : none, bearer, api_key
        tokenEnv: VAR_TOKEN       # Variable d'environnement pour le token bearer
        apiKeyEnv: VAR_CLE_API    # Variable d'environnement pour la clé API
        apiKeyHeader: X-API-Key    # Nom de l'en-tête pour la clé API
      headers:                     # En-têtes HTTP personnalisés
        Accept: "application/json, text/event-stream"
      permissions: ask             # Remplacer les permissions globales pour ce serveur
      tools:                        # Optionnel : Filtrer les outils à exposer
        - nom_outil_1
        - nom_outil_2

Options de niveau supérieur

enabled

  • Type : boolean
  • Valeur par défaut : false
  • Description : Active ou désactive entièrement la prise en charge du client MCP.
  • Exemple : enabled: true

permissions

  • Type : string
  • Valeur par défaut : ask
  • Valeurs valides : ask, auto
  • Description : Mode de permission par défaut pour les outils MCP.
    • ask : Demande à l'utilisateur avant d'exécuter chaque outil MCP
    • auto : Exécute les outils MCP automatiquement sans demande
  • Exemple : permissions: ask

discoveryTimeout

  • Type : duration
  • Valeur par défaut : 5s
  • Description : Délai d'attente pour la découverte des outils depuis tous les serveurs MCP au démarrage. Si la découverte prend plus de temps, le serveur sera ignoré avec un avertissement.
  • Exemple : discoveryTimeout: 10s

Configuration du serveur

Chaque serveur dans la liste servers peut avoir les options suivantes :

name (Obligatoire)

  • Type : string
  • Description : Identifiant unique pour ce serveur MCP. Utilisé comme préfixe pour les noms d'outils (ex: github_list_repos).
  • Exemple : name: github

transport (Obligatoire)

  • Type : string
  • Valeurs valides : http, stdio
  • Description : Protocole de transport pour la connexion au serveur MCP.
    • http : Transport HTTP/HTTPS (pour les serveurs MCP streamables via HTTP)
    • stdio : Transport standard entrée/sortie (N'EST PAS ENCORE IMPLÉMENTÉ dans mini-me)
  • Exemple : transport: http

url (Obligatoire pour le transport HTTP)

  • Type : string
  • Description : Point de terminaison URL du serveur MCP. Pour le transport HTTP, ceci doit être l'URL complète incluant le chemin /mcp si requis.
  • Exemples :
    • url: https://api.githubcopilot.com/mcp/
    • url: https://wikipedia-mcp.vercel.app/mcp
    • url: https://mcp.context7.com/mcp

timeout

  • Type : duration
  • Valeur par défaut : 30s
  • Description : Délai d'attente pour les requêtes individuelles vers ce serveur MCP.
  • Exemple : timeout: 60s

Options d'authentification

Le bloc auth configure l'authentification pour le serveur MCP.

type

  • Type : string
  • Valeurs valides : none, bearer, api_key
  • Description : Méthode d'authentification pour le serveur MCP.

type: none

Aucune authentification requise. Le serveur accepte les requêtes non authentifiées.

Exemple :

auth:
  type: none

Cas d'utilisation : Serveurs MCP publics comme Wikipedia.

type: bearer

Authentification par token Bearer (en-tête HTTP Authorization).

Requis : tokenEnv

Exemple :

auth:
  type: bearer
  tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN

Cas d'utilisation : Serveur MCP GitHub, Context7.

type: api_key

Authentification par clé API (en-tête personnalisé).

Requis : apiKeyEnv, apiKeyHeader

Exemple :

auth:
  type: api_key
  apiKeyEnv: HASDATA_API_KEY
  apiKeyHeader: x-api-key

Cas d'utilisation : Serveur MCP DuckDuckGo (via HasData).

Options spécifiques au serveur

headers

  • Type : map[string]string
  • Description : En-têtes HTTP personnalisés à envoyer avec chaque requête.
  • Exemple :
headers:
  Accept: "application/json, text/event-stream"
  Custom-Header: "valeur-personnalisée"

permissions

  • Type : string
  • Valeur par défaut : Hérite de mcp.permissions global
  • Valeurs valides : ask, auto
  • Description : Remplace le paramètre de permission global pour ce serveur spécifique.
  • Exemple : permissions: auto

tools

  • Type : list<string>
  • Valeur par défaut : Tous les outils du serveur
  • Description : Liste optionnelle des outils à exposer depuis ce serveur. Si non spécifié, tous les outils découverts seront disponibles. Si spécifié, seuls les outils listés seront disponibles.
  • Exemple :
tools:
  - get_me
  - list_repositories
  - search_code

Exemples de configuration complète

Serveur MCP Wikipedia

mcp:
  enabled: true
  servers:
    - name: wikipedia
      transport: http
      url: https://wikipedia-mcp.vercel.app/mcp
      timeout: 30s
      auth:
        type: none

Serveur MCP Context7

mcp:
  enabled: true
  servers:
    - name: context7
      transport: http
      url: https://mcp.context7.com/mcp
      timeout: 60s
      auth:
        type: bearer
        tokenEnv: CONTEXT7_API_KEY
      headers:
        Accept: "application/json, text/event-stream"

Serveur MCP GitHub

mcp:
  enabled: true
  servers:
    - name: github
      transport: http
      url: https://api.githubcopilot.com/mcp/
      timeout: 60s
      auth:
        type: bearer
        tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN
      headers:
        Accept: "application/json, text/event-stream"
      tools:
        - get_me
        - list_repositories
        - list_issues
        - get_file_contents
        - search_code

Serveurs multiples

mcp:
  enabled: true
  permissions: ask
  discoveryTimeout: 15s
  servers:
    - name: wikipedia
      transport: http
      url: https://wikipedia-mcp.vercel.app/mcp
      auth:
        type: none
    
    - name: context7
      transport: http
      url: https://mcp.context7.com/mcp
      auth:
        type: bearer
        tokenEnv: CONTEXT7_API_KEY
    
    - name: github
      transport: http
      url: https://api.githubcopilot.com/mcp/
      auth:
        type: bearer
        tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN
      tools:
        - get_me
        - list_repositories

Variables d'environnement

Variable Serveur Description
GITHUB_PERSONAL_ACCESS_TOKEN GitHub Token d'accès personnel GitHub
CONTEXT7_API_KEY Context7 Clé API Context7
HASDATA_API_KEY DuckDuckGo/HasData Clé API HasData

Validation

Les configurations de serveur sont validées au démarrage. Erreurs de validation courantes :

  • Champs requis manquants (name, transport, url)
  • Type transport invalide
  • Type auth.type invalide
  • Variable d'environnement manquante pour l'authentification
  • Durée de délai d'attente invalide

Les erreurs seront affichées sous forme d'avertissements au démarrage.

Considérations de performance

  • Chaque serveur MCP est découverts au démarrage, ce qui ajoute au temps de démarrage
  • discoveryTimeout limite le temps d'attente pour les serveurs lents
  • Le filtrage des outils avec l'option tools réduit le temps de démarrage
  • Les serveurs dont la découverte échoue seront ignorés avec un avertissement

Remarques de sécurité

  • Ne commitez jamais de secrets dans le contrôle de version : Les variables d'environnement sont le moyen le plus sûr de fournir l'authentification
  • Utilisez le principe du moindre privilège : N'accordez que les autorisations minimales requises pour chaque serveur MCP
  • Vérifiez la confiance du serveur : Ne vous connectez qu'aux serveurs MCP en lesquels vous avez confiance, car ils peuvent exécuter des outils arbitraires
  • Mode de permission : Utilisez permissions: ask pour la production afin d'éviter l'exécution inattendue d'outils

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
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
# Référence de configuration MCP

Ce document décrit toutes les options de configuration pour le client MCP (Model Context Protocol) dans mini-me.

## Aperçu

La configuration MCP fait partie du fichier de configuration principal (généralement `agent.yaml`). Le bloc MCP configure le client et ses serveurs.

## Structure de configuration

```yaml
mcp:
  enabled: true                    # Activer/désactiver la prise en charge MCP
  permissions: ask                 # Mode de permission par défaut
  discoveryTimeout: 10s            # Délai d'attente pour la découverte des outils
  servers:                        # Liste des serveurs MCP
    - name: nom-du-serveur
      transport: http              # Type de transport (http ou stdio)
      url: https://example.com/mcp  # URL pour le transport HTTP
      timeout: 30s                 # Délai d'attente des requêtes
      auth:                         # Authentification
        type: bearer              # Type d'auth : none, bearer, api_key
        tokenEnv: VAR_TOKEN       # Variable d'environnement pour le token bearer
        apiKeyEnv: VAR_CLE_API    # Variable d'environnement pour la clé API
        apiKeyHeader: X-API-Key    # Nom de l'en-tête pour la clé API
      headers:                     # En-têtes HTTP personnalisés
        Accept: "application/json, text/event-stream"
      permissions: ask             # Remplacer les permissions globales pour ce serveur
      tools:                        # Optionnel : Filtrer les outils à exposer
        - nom_outil_1
        - nom_outil_2
```

## Options de niveau supérieur

### `enabled`

- **Type :** `boolean`
- **Valeur par défaut :** `false`
- **Description :** Active ou désactive entièrement la prise en charge du client MCP.
- **Exemple :** `enabled: true`

### `permissions`

- **Type :** `string`
- **Valeur par défaut :** `ask`
- **Valeurs valides :** `ask`, `auto`
- **Description :** Mode de permission par défaut pour les outils MCP.
  - `ask` : Demande à l'utilisateur avant d'exécuter chaque outil MCP
  - `auto` : Exécute les outils MCP automatiquement sans demande
- **Exemple :** `permissions: ask`

### `discoveryTimeout`

- **Type :** `duration`
- **Valeur par défaut :** `5s`
- **Description :** Délai d'attente pour la découverte des outils depuis tous les serveurs MCP au démarrage. Si la découverte prend plus de temps, le serveur sera ignoré avec un avertissement.
- **Exemple :** `discoveryTimeout: 10s`

## Configuration du serveur

Chaque serveur dans la liste `servers` peut avoir les options suivantes :

### `name` (Obligatoire)

- **Type :** `string`
- **Description :** Identifiant unique pour ce serveur MCP. Utilisé comme préfixe pour les noms d'outils (ex: `github_list_repos`).
- **Exemple :** `name: github`

### `transport` (Obligatoire)

- **Type :** `string`
- **Valeurs valides :** `http`, `stdio`
- **Description :** Protocole de transport pour la connexion au serveur MCP.
  - `http` : Transport HTTP/HTTPS (pour les serveurs MCP streamables via HTTP)
  - `stdio` : Transport standard entrée/sortie (N'EST PAS ENCORE IMPLÉMENTÉ dans mini-me)
- **Exemple :** `transport: http`

### `url` (Obligatoire pour le transport HTTP)

- **Type :** `string`
- **Description :** Point de terminaison URL du serveur MCP. Pour le transport HTTP, ceci doit être l'URL complète incluant le chemin `/mcp` si requis.
- **Exemples :**
  - `url: https://api.githubcopilot.com/mcp/`
  - `url: https://wikipedia-mcp.vercel.app/mcp`
  - `url: https://mcp.context7.com/mcp`

### `timeout`

- **Type :** `duration`
- **Valeur par défaut :** `30s`
- **Description :** Délai d'attente pour les requêtes individuelles vers ce serveur MCP.
- **Exemple :** `timeout: 60s`

## Options d'authentification

Le bloc `auth` configure l'authentification pour le serveur MCP.

### `type`

- **Type :** `string`
- **Valeurs valides :** `none`, `bearer`, `api_key`
- **Description :** Méthode d'authentification pour le serveur MCP.

#### `type: none`

Aucune authentification requise. Le serveur accepte les requêtes non authentifiées.

**Exemple :**
```yaml
auth:
  type: none
```

**Cas d'utilisation :** Serveurs MCP publics comme Wikipedia.

#### `type: bearer`

Authentification par token Bearer (en-tête HTTP Authorization).

**Requis :** `tokenEnv`

**Exemple :**
```yaml
auth:
  type: bearer
  tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN
```

**Cas d'utilisation :** Serveur MCP GitHub, Context7.

#### `type: api_key`

Authentification par clé API (en-tête personnalisé).

**Requis :** `apiKeyEnv`, `apiKeyHeader`

**Exemple :**
```yaml
auth:
  type: api_key
  apiKeyEnv: HASDATA_API_KEY
  apiKeyHeader: x-api-key
```

**Cas d'utilisation :** Serveur MCP DuckDuckGo (via HasData).

## Options spécifiques au serveur

### `headers`

- **Type :** `map[string]string`
- **Description :** En-têtes HTTP personnalisés à envoyer avec chaque requête.
- **Exemple :**
```yaml
headers:
  Accept: "application/json, text/event-stream"
  Custom-Header: "valeur-personnalisée"
```

### `permissions`

- **Type :** `string`
- **Valeur par défaut :** Hérite de `mcp.permissions` global
- **Valeurs valides :** `ask`, `auto`
- **Description :** Remplace le paramètre de permission global pour ce serveur spécifique.
- **Exemple :** `permissions: auto`

### `tools`

- **Type :** `list<string>`
- **Valeur par défaut :** Tous les outils du serveur
- **Description :** Liste optionnelle des outils à exposer depuis ce serveur. Si non spécifié, tous les outils découverts seront disponibles. Si spécifié, seuls les outils listés seront disponibles.
- **Exemple :**
```yaml
tools:
  - get_me
  - list_repositories
  - search_code
```

## Exemples de configuration complète

### Serveur MCP Wikipedia

```yaml
mcp:
  enabled: true
  servers:
    - name: wikipedia
      transport: http
      url: https://wikipedia-mcp.vercel.app/mcp
      timeout: 30s
      auth:
        type: none
```

### Serveur MCP Context7

```yaml
mcp:
  enabled: true
  servers:
    - name: context7
      transport: http
      url: https://mcp.context7.com/mcp
      timeout: 60s
      auth:
        type: bearer
        tokenEnv: CONTEXT7_API_KEY
      headers:
        Accept: "application/json, text/event-stream"
```

### Serveur MCP GitHub

```yaml
mcp:
  enabled: true
  servers:
    - name: github
      transport: http
      url: https://api.githubcopilot.com/mcp/
      timeout: 60s
      auth:
        type: bearer
        tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN
      headers:
        Accept: "application/json, text/event-stream"
      tools:
        - get_me
        - list_repositories
        - list_issues
        - get_file_contents
        - search_code
```

### Serveurs multiples

```yaml
mcp:
  enabled: true
  permissions: ask
  discoveryTimeout: 15s
  servers:
    - name: wikipedia
      transport: http
      url: https://wikipedia-mcp.vercel.app/mcp
      auth:
        type: none
    
    - name: context7
      transport: http
      url: https://mcp.context7.com/mcp
      auth:
        type: bearer
        tokenEnv: CONTEXT7_API_KEY
    
    - name: github
      transport: http
      url: https://api.githubcopilot.com/mcp/
      auth:
        type: bearer
        tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN
      tools:
        - get_me
        - list_repositories
```

## Variables d'environnement

| Variable | Serveur | Description |
|----------|---------|-------------|
| `GITHUB_PERSONAL_ACCESS_TOKEN` | GitHub | Token d'accès personnel GitHub |
| `CONTEXT7_API_KEY` | Context7 | Clé API Context7 |
| `HASDATA_API_KEY` | DuckDuckGo/HasData | Clé API HasData |

## Validation

Les configurations de serveur sont validées au démarrage. Erreurs de validation courantes :

- Champs requis manquants (`name`, `transport`, `url`)
- Type `transport` invalide
- Type `auth.type` invalide
- Variable d'environnement manquante pour l'authentification
- Durée de délai d'attente invalide

Les erreurs seront affichées sous forme d'avertissements au démarrage.

## Considérations de performance

- Chaque serveur MCP est découverts au démarrage, ce qui ajoute au temps de démarrage
- `discoveryTimeout` limite le temps d'attente pour les serveurs lents
- Le filtrage des outils avec l'option `tools` réduit le temps de démarrage
- Les serveurs dont la découverte échoue seront ignorés avec un avertissement

## Remarques de sécurité

- **Ne commitez jamais de secrets dans le contrôle de version :** Les variables d'environnement sont le moyen le plus sûr de fournir l'authentification
- **Utilisez le principe du moindre privilège :** N'accordez que les autorisations minimales requises pour chaque serveur MCP
- **Vérifiez la confiance du serveur :** Ne vous connectez qu'aux serveurs MCP en lesquels vous avez confiance, car ils peuvent exécuter des outils arbitraires
- **Mode de permission :** Utilisez `permissions: ask` pour la production afin d'éviter l'exécution inattendue d'outils

## Voir aussi

- [Premiers pas avec MCP](tutorials/premiers-pas.md)
- [Architecture MCP](explanation/architecture.md)
- [Décisions de conception](explanation/decisions.md)