Guía de Desarrollo de Servidores MCP
Descripción General
Cree servidores MCP (Model Context Protocol) que permitan a los LLMs interactuar con servicios externos a través de herramientas bien diseñadas. La calidad de un servidor MCP se mide por cuán bien permite a los LLMs realizar tareas del mundo real.
Proceso
🚀 Flujo de Trabajo de Alto Nivel
Crear un servidor MCP de alta calidad implica cuatro fases principales:
Fase 1: Investigación y Planificación Profunda
1.1 Comprender el Diseño Moderno de MCP
Cobertura de API vs. Herramientas de Flujo de Trabajo: Equilibre la cobertura completa de endpoints de API con herramientas de flujo de trabajo especializadas. Las herramientas de flujo de trabajo pueden ser más convenientes para tareas específicas, mientras que la cobertura completa brinda a los agentes flexibilidad para componer operaciones. El rendimiento varía según el cliente; algunos clientes se benefician de la ejecución de código que combina herramientas básicas, mientras que otros funcionan mejor con flujos de trabajo de nivel superior. Cuando no esté seguro, priorice la cobertura completa de API.
Nombres y Descubrimiento de Herramientas:
Los nombres de herramientas claros y descriptivos ayudan a los agentes a encontrar las herramientas adecuadas rápidamente. Use prefijos consistentes (por ejemplo, github_create_issue, github_list_repos) y nombres orientados a la acción.
Gestión de Contexto: Los agentes se benefician de descripciones de herramientas concisas y la capacidad de filtrar/paginar resultados. Diseñe herramientas que devuelvan datos enfocados y relevantes. Algunos clientes admiten la ejecución de código, lo que puede ayudar a los agentes a filtrar y procesar datos de manera eficiente.
Mensajes de Error Accionables: Los mensajes de error deben guiar a los agentes hacia soluciones con sugerencias específicas y próximos pasos.
1.2 Estudiar la Documentación del Protocolo MCP
Navegue por la especificación MCP:
Comience con el mapa del sitio para encontrar páginas relevantes: https://modelcontextprotocol.io/sitemap.xml
Luego obtenga páginas específicas con el sufijo .md para formato markdown (por ejemplo, https://modelcontextprotocol.io/specification/draft.md).
Páginas clave a revisar:
- Descripción general de la especificación y arquitectura
- Mecanismos de transporte (HTTP transmisible, stdio)
- Definiciones de herramientas, recursos y prompts
1.3 Estudiar la Documentación del Framework
Stack recomendado:
- Lenguaje: TypeScript (soporte SDK de alta calidad y buena compatibilidad en muchos entornos de ejecución, por ejemplo, MCPB. Además, los modelos de IA son buenos generando código TypeScript, beneficiándose de su amplio uso, tipado estático y buenas herramientas de linting)
- Transporte: HTTP transmisible para servidores remotos, usando JSON sin estado (más simple de escalar y mantener, en contraste con sesiones con estado y respuestas en streaming). stdio para servidores locales.
Cargar documentación del framework:
- Mejores Prácticas de MCP: 📋 Ver Mejores Prácticas - Pautas principales
Para TypeScript (recomendado):
El SDK de TypeScript tiene dos versiones principales. Elija una antes de escribir código:
- v2 (
@modelcontextprotocol/server): la versión estable actual. Úsela para servidores nuevos. - v1 (
@modelcontextprotocol/sdk): solo recibe correcciones de errores y seguridad. Úselo solo cuando elpackage.jsondel proyecto ya dependa de@modelcontextprotocol/sdk, o migre ese proyecto connpx @modelcontextprotocol/codemod@latest v1-to-v2 .
Si el proyecto ya usa v1, dígale al usuario una vez, en una o dos oraciones, que v2 (@modelcontextprotocol/server) es la versión estable actual, que v1 solo recibe correcciones de errores y seguridad, y que npx @modelcontextprotocol/codemod@latest v1-to-v2 . migra el proyecto. Luego continúe con v1 a menos que el usuario pida migrar.
No mezcle las dos en un mismo proyecto: los ejemplos de código de v1 (importaciones de @modelcontextprotocol/sdk/...) no aplican a v2.
- TypeScript SDK (v2): Use WebFetch para cargar
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md; el índice completo de documentación eshttps://ts.sdk.modelcontextprotocol.io/v2/llms.txt - ⚡ Guía de TypeScript (v2) - Patrones y ejemplos de TypeScript
- Solo para proyectos v1:
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/v1.x/README.mdy la Guía de TypeScript (v1)
Para Python:
- Python SDK: Use WebFetch para cargar
https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md - 🐍 Guía de Python - Patrones y ejemplos de Python
1.4 Planifique su Implementación
Comprenda la API: Revise la documentación de la API del servicio para identificar endpoints clave, requisitos de autenticación y modelos de datos. Use búsqueda web y WebFetch según sea necesario.
Selección de Herramientas: Priorice la cobertura completa de API. Enumere los endpoints a implementar, comenzando con las operaciones más comunes.
Fase 2: Implementación
2.1 Configurar la Estructura del Proyecto
Consulte las guías específicas del lenguaje para la configuración del proyecto:
- ⚡ Guía de TypeScript (v2) - Estructura del proyecto, package.json, tsconfig.json (v1 para proyectos v1 existentes)
- 🐍 Guía de Python - Organización de módulos, dependencias
2.2 Implementar la Infraestructura Base
Cree utilidades compartidas:
- Cliente API con autenticación
- Ayudantes de manejo de errores
- Formato de respuestas (JSON/Markdown)
- Soporte de paginación
2.3 Implementar Herramientas
Para cada herramienta:
Esquema de Entrada:
- Use Zod (TypeScript) o Pydantic (Python)
- Incluya restricciones y descripciones claras
- Agregue ejemplos en las descripciones de los campos
Esquema de Salida:
- Defina
outputSchemacuando sea posible para datos estructurados - Use
structuredContenten las respuestas de la herramienta (característica del SDK de TypeScript) - Ayuda a los clientes a comprender y procesar las salidas de la herramienta
Descripción de la Herramienta:
- Resumen conciso de la funcionalidad
- Descripciones de parámetros
- Esquema del tipo de retorno
Implementación:
- Async/await para operaciones de E/S
- Manejo de errores adecuado con mensajes accionables
- Soporte de paginación donde corresponda
- Devuelva tanto contenido de texto como datos estructurados cuando use SDKs modernos
Anotaciones:
readOnlyHint: true/falsedestructiveHint: true/falseidempotentHint: true/falseopenWorldHint: true/false
Fase 3: Revisión y Prueba
3.1 Calidad del Código
Revise para:
- Sin código duplicado (principio DRY)
- Manejo de errores consistente
- Cobertura de tipos completa
- Descripciones de herramientas claras
3.2 Construcción y Prueba
TypeScript:
- Ejecute
npm run buildpara verificar la compilación - Proyectos v2: ejecute el script de autoverificación de la guía v2 contra el servidor compilado
- Pruebe con MCP Inspector:
npx @modelcontextprotocol/inspector
Python:
- Verifique la sintaxis:
python -m py_compile your_server.py - Pruebe con MCP Inspector
Consulte las guías específicas del lenguaje para enfoques de prueba detallados y listas de verificación de calidad.
Fase 4: Crear Evaluaciones
Después de implementar su servidor MCP, cree evaluaciones integrales para probar su efectividad.
Cargue la ✅ Guía de Evaluación para pautas completas de evaluación.
4.1 Comprender el Propósito de la Evaluación
Use evaluaciones para probar si los LLMs pueden usar efectivamente su servidor MCP para responder preguntas realistas y complejas.
4.2 Crear 10 Preguntas de Evaluación
Para crear evaluaciones efectivas, siga el proceso descrito en la guía de evaluación:
- Inspección de Herramientas: Liste las herramientas disponibles y comprenda sus capacidades
- Exploración de Contenido: Use operaciones de SOLO LECTURA para explorar los datos disponibles
- Generación de Preguntas: Cree 10 preguntas realistas y complejas
- Verificación de Respuestas: Resuelva cada pregunta usted mismo para verificar las respuestas
4.3 Requisitos de Evaluación
Asegúrese de que cada pregunta sea:
- Independiente: No dependiente de otras preguntas
- Solo lectura: Solo requiere operaciones no destructivas
- Compleja: Requiere múltiples llamadas a herramientas y exploración profunda
- Realista: Basada en casos de uso reales que los humanos considerarían importantes
- Verificable: Respuesta única y clara que se puede verificar mediante comparación de cadenas
- Estable: La respuesta no cambiará con el tiempo
4.4 Formato de Salida
Cree un archivo XML con esta estructura:
<evaluation>
<qa_pair>
<question>Encuentre discusiones sobre lanzamientos de modelos de IA con nombres en código de animales. Un modelo necesitaba una designación de seguridad específica que usa el formato ASL-X. ¿Qué número X se estaba determinando para el modelo nombrado en honor a un gato salvaje moteado?</question>
<answer>3</answer>
</qa_pair>
<!-- Más qa_pairs... -->
</evaluation>
Archivos de Referencia
📚 Biblioteca de Documentación
Cargue estos recursos según sea necesario durante el desarrollo:
Documentación Principal de MCP (Cargar Primero)
- Protocolo MCP: Comience con el mapa del sitio en
https://modelcontextprotocol.io/sitemap.xml, luego obtenga páginas específicas con el sufijo.md - 📋 Mejores Prácticas de MCP - Pautas universales de MCP que incluyen:
- Convenciones de nombres de servidores y herramientas
- Pautas de formato de respuestas (JSON vs Markdown)
- Mejores prácticas de paginación
- Selección de transporte (HTTP transmisible vs stdio)
- Estándares de seguridad y manejo de errores
Documentación del SDK (Cargar Durante la Fase 1/2)
- Python SDK: Obtener de
https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.md - TypeScript SDK (v2): Obtener de
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.md; índice completo de documentación enhttps://ts.sdk.modelcontextprotocol.io/v2/llms.txt - TypeScript SDK (v1, solo proyectos v1 existentes): Obtener de
https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/v1.x/README.md
Guías de Implementación Específicas del Lenguaje (Cargar Durante la Fase 2)
-
🐍 Guía de Implementación de Python - Guía completa de Python/FastMCP con:
- Patrones de inicialización del servidor
- Ejemplos de modelos Pydantic
- Registro de herramientas con
@mcp.tool - Ejemplos completos funcionales
- Lista de verificación de calidad
-
⚡ Guía de Implementación de TypeScript (SDK v2) - Guía completa de TypeScript para
@modelcontextprotocol/servercon:- Configuración del proyecto y la fábrica de servidores
- Diseño de herramientas: esquemas Zod 4, formatos de salida, paginación, errores
- Un ejemplo completo que sirve stdio y HTTP transmisible, más autenticación bearer
- Recursos, prompts y notificaciones
- Un script de autoverificación para verificar el servidor compilado
- Enlaces a ejemplos del SDK para características avanzadas
- Una tabla de traducción v1 → v2, pasos de migración y una lista de verificación de calidad
-
⚡ Guía de Implementación de TypeScript (SDK v1) - La guía equivalente para proyectos existentes de
@modelcontextprotocol/sdk
Guía de Evaluación (Cargar Durante la Fase 4)
- ✅ Guía de Evaluación - Guía completa de creación de evaluaciones con:
- Pautas de creación de preguntas
- Estrategias de verificación de respuestas
- Especificaciones de formato XML
- Ejemplos de preguntas y respuestas
- Ejecutar una evaluación con los scripts proporcionados