MCP Plugins en Python: El Prompt Que Te Ahorrará Horas de Código
MCP Plugins en Python: El Prompt Que Te Ahorrará Horas de Código
Mira, colega, si estás aquí es porque ya sabes lo que es MCP (Model Context Protocol) y quieres sacarle jugo a los plugins en Python. No voy a perder tiempo explicándote qué es un plugin MCP, porque si no lo sabes, este artículo no es para ti. Vamos al grano: cómo usar prompts que te hagan la vida más fácil.
El problema real con MCP Plugins
Tío, la mayoría de la gente se pierde en la documentación y acaba copiando ejemplos que no funcionan. Los MCP plugins en Python son potentes, pero requieren que sepas conectar bien las piezas. Aquí te dejo 5 prompts que uso yo mismo para no volverme loco.
Prompt #1: El esqueleto básico de un plugin MCP
Prompt: Genera un plugin MCP en Python con estructura básica
Incluye: cliente MCP, manejo de errores básico, y un endpoint simple
from mcp import Client, Tool
import logging
class MiPluginMCP:
def __init__(self, server_url: str):
self.client = Client(server_url)
logging.basicConfig(level=logging.INFO)
@Tool()
def procesar_datos(self, datos: dict) -> dict:
try:
resultado = self.client.call("procesar", datos)
logging.info(f"Datos procesados: {resultado}")
return {"status": "ok", "data": resultado}
except Exception as e:
logging.error(f"Error: {e}")
return {"status": "error", "message": str(e)}
Prompt #2: Plugin con autenticación y caché
Prompt: Crea un plugin MCP con autenticación por token y caché en memoria
Usa: decoradores, functools.lru_cache, y manejo de tokens
from functools import lru_cache
import time
class PluginAutenticado:
def __init__(self, token: str):
self.token = token
self._cache = {}
@lru_cache(maxsize=100)
def consultar_api(self, endpoint: str, params: dict) -> dict:
headers = {"Authorization": f"Bearer {self.token}"}
# Simulación de llamada a API
time.sleep(0.5)
return {"endpoint": endpoint, "params": params}
Prompt #3: Pipeline de datos con MCP
Prompt: Pipeline de procesamiento de datos con MCP plugins
Incluye: transformación, validación y exportación
from typing import List, Dict
import json
class PipelineMCP:
def __init__(self, plugins: List[object]):
self.plugins = plugins
def ejecutar(self, datos: Dict) -> Dict:
resultado = datos
for plugin in self.plugins:
resultado = plugin.procesar(resultado)
return resultado
def exportar_json(self, datos: Dict, archivo: str):
with open(archivo, 'w') as f:
json.dump(datos, f, indent=2)
Prompt #4: Plugin con reintentos automáticos
Prompt: Plugin MCP con política de reintentos exponenciales
Usa: tenacity, retry, y backoff
from tenacity import retry, stop_after_attempt, wait_exponential
class PluginResiliente:
@retry(stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=2, max=10))
def llamar_con_reintentos(self, funcion: callable, *args, **kwargs):
return funcion(*args, **kwargs)
Prompt #5: Plugin con logging estructurado
Prompt: Plugin MCP con logging estructurado y métricas
Incluye: time.time, logging con formato JSON
import time
import json
import logging
class PluginMetricas:
def __init__(self):
self.metricas = {}
def medir_tiempo(self, funcion: callable):
def wrapper(*args, **kwargs):
inicio = time.time()
resultado = funcion(*args, **kwargs)
duracion = time.time() - inicio
self.metricas[funcion.__name__] = duracion
logging.info(json.dumps({
"funcion": funcion.__name__,
"duracion": duracion,
"args": args
}))
return resultado
return wrapper
Cómo usar estos prompts
Tío, no copies y pegues sin más. Cada prompt está pensado para una situación específica. Mi recomendación:
- Empieza con el Prompt #1 para entender la estructura base
- Añade autenticación (#2) cuando necesites seguridad
- Combina los prompts según tu caso de uso
El truco está en entender que los MCP plugins son como piezas de Lego: cada prompt te da un bloque que puedes combinar.
Y tú, colega, ¿qué prompt usas para tus plugins MCP en Python? Cuéntame en los comentarios, que esto es un trabajo en equipo.


