📝 FastMCP - Ejemplo de implementación
Metadata de la clase
Fecha: 2026-05-06 Hora: 15:10 Profesor: No especificado Estado: 🟡 Por procesar
🎯 Objetivo de la clase
Registrar el patrón de uso de FastMCP con funciones decoradas y entender cómo se usa en un ejemplo real de búsqueda de papers.
📊 Captura Rápida
- Se define un servidor
FastMCP("research"). - Las herramientas se declaran con
@mcp.tool(). search_papers(topic, max_results)busca en arXiv y guarda resultados en JSON.extract_info(paper_id)recorre las carpetas y devuelve información del paper.- El servidor se arranca con
mcp.run(transport='stdio').
📝 Notas detalladas
Patrón principal
- Importar
FastMCP. - Crear la instancia del MCP.
- Definir funciones de herramienta con
@mcp.tool(). - Usar type hints y docstrings para la generación automática de schemas.
- Inicializar el servidor con el transporte adecuado.
Ejemplo de herramientas
-
search_papers(topic: str, max_results: int = 5) -> List[str]- Busca artículos en arXiv.
- Guarda los datos en
papers_info.json. - Devuelve lista de IDs de papers.
-
extract_info(paper_id: str) -> str- Lee los JSON guardados.
- Busca el paper solicitado.
- Devuelve información en formato JSON o un mensaje de error.
Detalles importantes
- Se crea la ruta
papers/<topic>y se guardapapers_info.json. - Se maneja
FileNotFoundErroryjson.JSONDecodeErrorpara evitar fallos. - FastMCP convierte estos métodos en herramientas usables por el LLM.
🔗 Conexiones
🎴 Flashcards
- ¿Cómo se declara una herramienta FastMCP?
- Con
@mcp.tool()sobre una función.
- Con
- ¿Qué hace
mcp.run(transport='stdio')?- Arranca el servidor MCP usando stdio como transporte.
- ¿Por qué usar docstrings en FastMCP?
- Para que el framework genere automáticamente los esquemas de herramienta.
🧪 Aplicación
- Explicarlo sin consultar la nota
- Resolver un caso nuevo o escribir un ejemplo
- Compararlo con una alternativa
- Usarlo en un proyecto