Escribir un servidor MCP
Del archivo vacío al servidor que un host puede conectar, en un centenar de líneas
El primer servidor MCP que se escribe rara vez funciona a la primera, y casi nunca por el motivo que uno imagina. El problema no es el protocolo: las bibliotecas se encargan de él. Es un print de depuración que acaba en la salida estándar y destruye el flujo JSON-RPC; es una herramienta que lanza una excepción en lugar de devolver un error legible; es un servidor que arranca perfectamente a mano y que el host no consigue lanzar porque no encuentra el intérprete del entorno virtual correcto.
Esta lección construye un servidor completo (dos herramientas y un recurso sobre un dominio de facturación) y después lo prueba sin agente, sin modelo y sin host. El orden es lo que importa: mientras no haya visto con sus propios ojos las respuestas JSON-RPC, conectar un agente equivale a depurar a la vez dos sistemas no deterministas. Un servidor MCP es un programa corriente, se prueba como un programa corriente, y eso es precisamente lo que hace que el protocolo resulte agradable de implementar.
Puesta en marcha
python -m venv .venv
.venv/bin/pip install "mcp[cli]>=1.9"
El paquete oficial ofrece dos niveles de API. FastMCP genera los esquemas JSON a partir de sus anotaciones de tipo y de sus docstrings; el servidor de bajo nivel le deja escribir a mano los manejadores de tools/list y tools/call. Utilice el primero, salvo que necesite explícitamente un control total sobre los esquemas.
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión