Saltar al contenido
Plugins

Cómo crear tu primer Plugin MCP en 10 minutos con Python y FastMCP

· Foto: Pexels
Compartir X Facebook

Conecta tus herramientas favoritas con MCP y plugins de IA.

Cómo crear tu primer Plugin MCP en 10 minutos con Python y FastMCP
Foto: Pexels

¿Qué es MCP y por qué te interesa?

MCP (Model Context Protocol) es un estándar abierto desarrollado por Anthropic que permite a los asistentes de IA, como Claude, conectarse directamente con herramientas externas, bases de datos o APIs. En lugar de depender de respuestas genéricas, un plugin MCP convierte a la IA en un asistente que puede ejecutar acciones reales: consultar tu base de datos, enviar correos, calcular precios o leer archivos de tu servidor.

Lo mejor de todo es que no necesitas ser un experto en backends ni dominar frameworks complejos. Con Python y la librería FastMCP, puedes tener tu primer plugin funcional en menos de 10 minutos. FastMCP abstrae toda la complejidad del protocolo y te permite exponer funciones de Python como herramientas que la IA puede invocar directamente.

En este artículo práctico, vas a construir desde cero un plugin MCP que permita a Claude consultar el clima de cualquier ciudad usando una API pública. No necesitas experiencia previa con MCP, solo tener Python instalado y ganas de experimentar.

Preparación del entorno: instalar FastMCP y configurar tu proyecto

Antes de escribir código, asegúrate de tener Python 3.10 o superior instalado. Abre tu terminal y crea un directorio para tu proyecto:

BASHmkdir mi-primer-mcp cd mi-primer-mcp python -m venv venv source venv/bin/activate # En Windows: venv\Scripts\activate Ahora instala FastMCP y la librería para hacer peticiones HTTP:

BASHpip install fastmcp httpx FastMCP es una envoltura ligera sobre el protocolo MCP. Te permite definir funciones decoradas con @mcp.tool() y automáticamente se convierten en herramientas que Claude puede usar. No necesitas tocar JSON-RPC ni gestionar conexiones manualmente.

Para este ejemplo, usaremos la API pública de Open-Meteo que no requiere clave de API. Es perfecta para pruebas rápidas.

Construir el plugin paso a paso: la función del clima

Crea un archivo llamado plugin.py y escribe el siguiente código. Te explico cada parte mientras lo construimos:

PYTHONimport httpx from fastmcp import FastMCP 1. Crear la instancia del servidor MCP mcp = FastMCP("ClimaPlugin") 2. Definir una herramienta que Claude podrá invocar @mcp.tool() async def obtener_clima(ciudad: str) -> str: """ Obtiene el clima actual de una ciudad usando Open-Meteo. Args: ciudad: Nombre de la ciudad en español (ej: "Madrid", "Buenos Aires") Returns: Temperatura actual en grados Celsius y descripción del clima. """ # 3. Geocodificar la ciudad a coordenadas geo_url = f"https://geocoding-api.open-meteo.com/v1/search?name={ciudad}&count=1&language=es" async with httpx.AsyncClient() as client: geo_resp = await client.get(geo_url) geo_data = geo_resp.json() if not geo_data.get("results"): return f"No encontré la ciudad: {ciudad}" lat = geo_data["results"][0]["latitude"] lon = geo_data["results"][0]["longitude"] nombre_oficial = geo_data["results"][0]["name"] # 4. Consultar el clima en esas coordenadas weather_url = f"https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lon}&current_weather=true" weather_resp = await client.get(weather_url) weather_data = weather_resp.json() temp = weather_data["current_weather"]["temperature"] viento = weather_data["current_weather"]["windspeed"] return f"Clima actual en {nombre_oficial}: {temp}°C, viento de {viento} km/h." 5. Iniciar el servidor if __name__ == "__main__": mcp.run() Analicemos qué hace cada parte:

  • Paso 1: FastMCP("ClimaPlugin") crea un servidor MCP con nombre identificativo. Este nombre lo verá Claude cuando se conecte.
  • Paso 2: El decorador @mcp.tool() convierte la función obtener_clima en una herramienta invocable. El docstring (los comentarios entre triple comilla) es crucial: Claude lo lee para entender qué hace la herramienta y cómo usarla.
  • Paso 3: La geocodificación convierte el nombre de la ciudad en coordenadas. Open-Meteo nos devuelve latitud y longitud.
  • Paso 4: Con las coordenadas, consultamos el clima actual y devolvemos un string legible.
  • Paso 5: mcp.run() inicia el servidor en modo transporte estándar (stdio por defecto).

Para probar que funciona, ejecuta el script en tu terminal:

BASHpython plugin.py Verás que el script se queda en espera. Esto es normal: está listo para recibir conexiones desde Claude.

Conectar el plugin con Claude Desktop y probarlo en acción

Ahora viene la parte más emocionante: conectar tu plugin recién creado con Claude Desktop. Si aún no tienes Claude Desktop, descárgalo desde claude.ai/download.

Una vez instalado, abre Claude y ve a la configuración. En la sección "Developer" o "MCP Servers", encontrarás un archivo de configuración llamado claude_desktop_config.json (en macOS suele estar en ~/Library/Application Support/Claude/).

Edítalo para agregar tu servidor MCP:

JSON{ "mcpServers": { "clima-plugin": { "command": "python", "args": ["/ruta/completa/a/tu/proyecto/plugin.py"], "env": {} } } } Reemplaza /ruta/completa/a/tu/proyecto/plugin.py con la ruta absoluta donde guardaste tu archivo. En Windows sería algo como C:\Users\tu_usuario\mi-primer-mcp\plugin.py.

Guarda el archivo y reinicia Claude Desktop. Ahora, en cualquier conversación, puedes pedirle a Claude que use tu plugin:

PROMPT¿Qué clima hace ahora en Barcelona? Usa el plugin de clima para consultarlo en tiempo real. Claude detectará automáticamente que tiene una herramienta llamada obtener_clima y la invocará. Verás que el asistente responde con datos reales obtenidos de Open-Meteo. Si pruebas con "Buenos Aires" o "Tokio", funcionará igual.

Tip: Si tu plugin no aparece, asegúrate de que la ruta en el JSON sea absoluta y que el virtualenv esté activo. Puedes comprobar los logs de Claude en Ayuda > Ver registros de desarrollo para ver si hay errores de conexión.

Ya tienes tu primer plugin MCP funcionando. Pero esto es solo el comienzo. A partir de esta base, puedes extenderlo para:

  • Consultar APIs internas de tu empresa (bases de datos, CRMs, ERPs).
  • Ejecutar comandos en tu servidor (con cuidado y validación).
  • Leer archivos locales o procesar datos en tiempo real.
  • Integrar servicios como Gmail, Slack o Notion mediante sus APIs.

La magia de MCP es que no necesitas construir una interfaz de usuario ni una API REST compleja. Solo defines funciones Python y Claude las convierte en superpoderes conversacionales. En menos de 10 minutos pasaste de tener una idea a tener un asistente de IA que puede consultar el clima mundial. ¿Qué otra herramienta te gustaría que Claude pudiera usar?

Más sobre Plugins

Ver todo →