Configuration YAML
Docker s'est associé à Anthropic pour créer des images de conteneurs pour les implémentations de référence des serveurs MCP disponibles sur Docker Hub sous l'espace de noms mcp.
Lorsque vous exécutez la commande docker ai
dans votre terminal pour poser une question, Gordon
recherche dans le fichier gordon-mcp.yml
de votre répertoire de travail (s'il est présent) une
liste de serveurs MCP qui doivent être utilisés dans ce contexte. Le
fichier gordon-mcp.yml
est un fichier Docker Compose qui configure les serveurs MCP comme
services Compose pour que Gordon puisse y accéder.
L'exemple minimal suivant montre comment vous pouvez utiliser le serveur mcp-time pour fournir des capacités temporelles à Gordon. Pour plus d'informations, vous pouvez consulter le code source et la documentation.
Créez le fichier gordon-mcp.yml
dans votre répertoire de travail et ajoutez le serveur
time :
services:
time:
image: mcp/time
Avec ce fichier présent, vous pouvez maintenant demander à Gordon de vous dire l'heure dans un autre fuseau horaire :
$ docker ai 'quelle heure est-il maintenant à kiribati ?'
• Appel de get_current_time
L'heure actuelle à Kiribati (Tarawa) est 21h38 le 7 janvier 2025.
Comme vous pouvez le voir, Gordon a trouvé le serveur MCP time et a appelé son outil quand nécessaire.
Utilisation avancée
Certains serveurs MCP ont besoin d'accéder à votre système de fichiers ou aux variables d'environnement système.
Docker Compose peut aider avec cela. Puisque gordon-mcp.yml
est un fichier Compose, vous
pouvez ajouter des montages de liaison en utilisant la syntaxe Docker Compose habituelle, ce qui rend vos
ressources de système de fichiers disponibles au conteneur :
services:
fs:
image: mcp/filesystem
command:
- /rootfs
volumes:
- .:/rootfs
Le fichier gordon-mcp.yml
ajoute des capacités d'accès au système de fichiers à Gordon et
puisque tout s'exécute dans un conteneur, Gordon n'a accès qu'aux
répertoires que vous spécifiez.
Gordon peut gérer n'importe quel nombre de serveurs MCP. Par exemple, si vous donnez à Gordon
l'accès à internet avec le serveur mcp/fetch
:
services:
fetch:
image: mcp/fetch
fs:
image: mcp/filesystem
command:
- /rootfs
volumes:
- .:/rootfs
Vous pouvez maintenant demander des choses comme :
$ docker ai peux-tu récupérer rumpl.dev et écrire le résumé dans un fichier test.txt
• Appel de fetch ✔️
• Appel de write_file ✔️
Le résumé du site web rumpl.dev a été écrit avec succès dans le fichier test.txt dans le répertoire autorisé. Faites-moi savoir si vous avez besoin d'aide supplémentaire !
$ cat test.txt
Le site web rumpl.dev présente une variété d'articles de blog et d'articles rédigés par le propriétaire du site. Voici un résumé du contenu :
1. **Wasmio 2023 (25 mars 2023)** : Un récapitulatif de la conférence WasmIO 2023 qui s'est tenue à Barcelone. L'auteur partage son expérience en tant qu'orateur et félicite les organisateurs pour un événement réussi.
2. **Écrire un gestionnaire de fenêtres en Rust - Partie 2 (3 janvier 2023)** : La deuxième partie d'une série sur la création d'un gestionnaire de fenêtres en Rust. Cet épisode se concentre sur l'amélioration de la fonctionnalité pour gérer efficacement les fenêtres.
3. **Bilan 2022 (29 décembre 2022)** : Un récapitulatif personnel et professionnel de l'année 2022. L'auteur réfléchit sur les hauts et les bas de l'année, en mettant l'accent sur les réalisations professionnelles.
4. **Écrire un gestionnaire de fenêtres en Rust - Partie 1 (28 décembre 2022)** : La première partie de la série sur la construction d'un gestionnaire de fenêtres en Rust. L'auteur discute de la configuration d'une machine Linux et des défis de travailler avec X11 et Rust.
5. **Ajouter docker/docker à vos dépendances (10 mai 2020)** : Un guide pour les développeurs Go sur la façon d'utiliser la bibliothèque client Docker dans leurs projets. L'article inclut un extrait de code démontrant l'intégration.
6. **Premier (11 octobre 2019)** : L'article inaugural du blog, présentant un simple programme "Hello World" en Go.
Et maintenant ?
Maintenant que vous avez appris à utiliser les serveurs MCP avec Gordon, voici quelques façons de commencer :
- Expérimentez : Essayez d'intégrer un ou plusieurs des serveurs MCP testés dans votre
fichier
gordon-mcp.yml
et explorez leurs capacités. - Explorez l'écosystème : Consultez les implémentations de référence sur GitHub ou parcourez l'espace de noms MCP Docker Hub pour des serveurs supplémentaires qui pourraient répondre à vos besoins.
- Construisez le vôtre : Si aucun des serveurs existants ne répond à vos besoins, ou si vous êtes curieux d'explorer comment ils fonctionnent plus en détail, envisagez de développer un serveur MCP personnalisé. Utilisez la spécification MCP comme guide.
- Partagez vos commentaires : Si vous découvrez de nouveaux serveurs qui fonctionnent bien avec Gordon ou rencontrez des problèmes avec les existants, partagez vos découvertes pour aider à améliorer l'écosystème.
Avec le support MCP, Gordon offre une extensibilité et une flexibilité puissantes pour répondre à vos cas d'usage spécifiques, que vous ajoutiez une conscience temporelle, une gestion de fichiers, ou un accès internet.
Serveurs MCP compatibles
Voici les serveurs MCP qui ont été testés avec Gordon et sont connus pour fonctionner :
mcp/time
mcp/fetch
mcp/filesystem
mcp/postgres
mcp/git
mcp/sqlite
mcp/github
Non testés (devraient fonctionner avec les jetons API appropriés)
Voici les serveurs MCP qui n'ont pas été testés mais devraient fonctionner si on leur donne les jetons API appropriés :
mcp/brave-search
mcp/gdrive
mcp/slack
mcp/google-maps
mcp/gitlab
mcp/everything
mcp/aws-kb-retrieval-server
mcp/sentry
Non pris en charge
Voici les serveurs MCP qui sont actuellement connus pour ne pas être pris en charge :
mcp/sequentialthinking
- (La description de l'outil est trop longue)mcp/puppeteer
- Puppeteer renvoie des images et Gordon ne sait pas comment les gérer, il ne gère que les réponses texte des outilsmcp/everart
- Everart renvoie des images et Gordon ne sait pas comment les gérer, il ne gère que les réponses texte des outilsmcp/memory
- Il n'y a aucun moyen de configurer le serveur pour utiliser un chemin personnalisé pour sa base de connaissances