Outil gratuit

API REST vers serveur MCP en Ruby

Ce qu'il faut réellement pour exposer une API REST en serveur MCP avec Ruby : le SDK, un outil fonctionnel, et la partie qui décide si un agent s'en sert correctement.

SDK communautaire community SDKs
Installation
gem install mcp
Un outil MCP fonctionnel en Ruby
# Community SDK; check the gem tracks a current spec revision before relying on it.
server = MCP::Server.new(name: "my-server")

server.register_tool(
  name: "get_order",
  description: "Look up one order by its id and return its current status.",
  input_schema: { type: "object",
                  properties: { orderId: { type: "string",
                                           description: "The order id to look up" } },
                  required: ["orderId"] }
) { |args| fetch_order(args["orderId"]) }

Il tourne. Personne d'autre ne peut le voir.

Un serveur qui fonctionne, c'est là où l'effort s'arrête et où la vente commence. Pointez MCP Showcase dessus et obtenez un playground en direct que vos clients peuvent essayer, avec une documentation générée pour chaque outil.

Comment ça marche

link
Installez le SDK

Indiqué ci-dessus, avec le fait qu'il soit officiellement maintenu ou communautaire, ce qui compte plus dans certains langages que dans d'autres.

play_circle
Encapsulez un endpoint

Commencez par un seul outil, pas par toute votre API. Les définitions d'outils sont envoyées au modèle à chaque requête, et la justesse de la sélection baisse à mesure que la liste s'allonge.

checklist
Testez avant de brancher un agent

Passez l'URL déployée dans le MCP Inspector pour confirmer que le handshake aboutit et que les outils apparaissent comme prévu.

Le SDK pour Ruby

gem install mcpcommunity SDKs, un projet communautaire : il n'existe pas de SDK sous modelcontextprotocol pour Ruby.

Cela compte plus qu'il n'y paraît. Le protocole a avancé vite, en particulier sur les transports, et un portage qui a cessé de suivre les révisions fonctionnera avec certains clients et échouera en silence avec d'autres. Vérifiez la dernière révision suivie par la bibliothèque avant de bâtir dessus.

Aucun SDK officiel unique

Ruby n'a pas de SDK maintenu sous modelcontextprotocol : les options sont donc des gems communautaires de complétude et d'actualité variables. Vérifiez à quand remonte la dernière révision de la spécification suivie par la gem avant de vous engager, car le protocole a avancé plus vite que la plupart des portages communautaires, en particulier sur les transports.

Encapsuler un endpoint REST

Un serveur MCP est une fine couche au-dessus de code que vous avez déjà. Chaque outil a besoin de trois choses : un nom, une description disant ce qu'il fait et quand le choisir, et un schéma d'entrée. Le SDK pour Ruby s'occupe du protocole ; ce que vous écrivez, c'est la correspondance entre ces arguments et votre appel HTTP existant.

Commencez par un endpoint plutôt que par toute votre API. Les définitions d'outils sont renvoyées au modèle à chaque requête : chacune est donc un coût de contexte permanent, et la capacité du modèle à choisir correctement baisse quand la liste s'allonge. Huit outils bien décrits valent mieux que quatre-vingts.

La partie qui ne dépend pas de Ruby

Quel que soit le langage, ce sont les descriptions qui décident du comportement de l'agent. Elles sont lues par le modèle, pas par vos collègues, et un outil décrit en trois mots est appelé au hasard. Vous pouvez vérifier les vôtres avec l'analyseur de schémas MCP, et voir ce que la liste coûte par requête avec le calculateur de tokens.

Outils et guides liés

Un serveur qui fonctionne, c'est la moitié du travail

Une fois qu'il tourne, il reste que personne ne peut dire ce qu'il fait. Un prospect ne peut pas lire votre code Ruby et n'installera pas un client pour le découvrir. MCP Showcase pointe sur la même URL et produit un playground en direct avec une documentation générée pour chaque outil, pour qu'évaluer votre serveur prenne un clic.

Questions fréquentes

Encapsulez chaque endpoint qu'un agent doit atteindre dans un outil : un nom, une phrase disant ce qu'il fait et quand l'utiliser, et un schéma d'entrée. Le SDK pour Ruby s'occupe du protocole ; ce que vous écrivez, c'est la correspondance entre les arguments de l'outil et votre appel HTTP existant.

Non, et c'est l'erreur la plus fréquente. Les définitions d'outils sont renvoyées à chaque requête : quatre-vingts endpoints, ce sont quatre-vingts descriptions dans la fenêtre de contexte de chaque tour, et la capacité du modèle à choisir le bon chute nettement quand la liste s'allonge. Commencez par les quelques-uns dont un agent a vraiment besoin.

Le badge au-dessus du code vous le dit. Là où il n'y a pas de SDK officiel, les options communautaires suivent la spécification de plus ou moins près : vérifiez à quand remonte la dernière révision du protocole prise en charge, surtout côté transports, avant de bâtir dessus.

Streamable HTTP pour tout ce qui est déployé. Les clients l'essaient de plus en plus en premier et certains ne se replient plus sur l'ancien HTTP+SSE, ce qui se manifeste par un client qui ne voit tout simplement pas votre serveur plutôt que par une erreur.

Vous ne pouvez pas le juger en relisant votre propre code, puisque vous savez déjà ce que font les outils. Passez le serveur dans l'analyseur de schémas : il examine les descriptions et les schémas d'entrée comme un modèle les lit et signale ceux qui obligeraient un agent à deviner.

Autres outils MCP gratuits