# Instrucciones para el agente: FastMCP: publica herramientas Python para agentes

Pega este texto a tu agente (Claude Code, Codex, OpenCode, Hermes o el que uses) y dile «ayúdame a montarlo». Son los pasos para ponerlo en marcha; el porqué de cada pieza está en la guía completa.

- Dificultad: intermedio
- Proyecto: https://github.com/PrefectHQ/fastmcp (licencia Apache-2.0)
- Guía completa: https://lab.wisd.ai/hub/fastmcp

---

## Para el agente: cómo acompañar al usuario

1. Pregunta primero para qué lo quiere. Si su objetivo no necesita algún paso, sáltalo.
2. Antes de instalar, comprueba lo que ya tiene (versiones, claves, sistema operativo).
3. Avanza un paso cada vez: explica en una frase qué vas a hacer y deja que el usuario lo ejecute o lo apruebe.
4. Tras cada paso, comprueba que funcionó antes de seguir. Si falla, para y explica el error.
5. No inventes comandos ni opciones: si la documentación del proyecto contradice estos pasos, manda la documentación.
6. Al terminar, haz una prueba real con el objetivo del usuario y dile dónde profundizar.

---

## Pasos de configuración

Comprueba que tienes Python ≥3.10, uv y un proyecto Python inicializado. Desde su raíz, instala con el comando del README:

```bash
uv add fastmcp
```

Guarda como `server.py` su ejemplo mínimo:

```python
from fastmcp import FastMCP

mcp = FastMCP("Demo 🚀")

@mcp.tool
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

if __name__ == "__main__":
    mcp.run(transport="http", port=8000)
```

## Comprobación

Desde la raíz, inicia el servidor en una terminal con `uv run python server.py`. En la misma carpeta guarda `client.py`, adaptando el [cliente del tutorial oficial](https://github.com/PrefectHQ/fastmcp/blob/main/docs/getting-started/quickstart.mdx) a la herramienta `add`:

```python
import asyncio
from fastmcp import Client

async def main():
    async with Client("http://localhost:8000/mcp") as client:
        result = await client.call_tool("add", {"a": 2, "b": 3})
        print(result)

asyncio.run(main())
```

En otra terminal, desde la misma raíz, ejecuta `uv run python client.py`. Comprueba que la respuesta contiene `5`. Mantén el servidor activo durante la llamada y detenlo con Ctrl+C al terminar.

## Si algo falla

Revisa el transporte del cliente y los registros del servidor antes de añadir servicios externos.
