MCP Plugins en Python: El Prompt Que Te Ahorra Días de Curva de Aprendizaje
MCP Plugins en Python: El Prompt Que Te Ahorra Días de Curva de Aprendizaje
Mira, colega, llevo tiempo dándole vueltas a esto de los MCP (Model Context Protocol) plugins en Python. Y tío, la documentación oficial a veces parece escrita por un robot que odia a los humanos. Así que voy a ir al grano: te voy a dar 4 prompts que he ido currando para que integres MCP en tus proyectos Python sin volverte loco.
Primero lo primero: MCP no es magia, es un protocolo para que tus modelos de lenguaje se comuniquen con herramientas externas. Pero si no sabes cómo estructurarlo, te vas a pasar horas debuggeando. Con estos prompts, te saltas esa parte.
1. Prompt para estructura base MCP en Python
Reemplaza "nombre_plugin" por tu plugin
from mcp import MCPServer, MCPPlugin
class MiPlugin(MCPPlugin):
async def handle_request(self, request):
return {"status": "ok", "plugin": "nombre_plugin"}
server = MCPServer()
server.register_plugin(MiPlugin())
server.run()
Este es el esqueleto básico. No te compliques, tío. Con esto ya tienes un servidor MCP funcional.
2. Prompt para añadir funciones personalizadas a tu plugin MCP
Añade funciones que el modelo pueda llamar
from mcp import function_tool
@function_tool
def calcular_potencia(base: float, exponente: float) -> float:
"""Calcula base^exponente"""
return base ** exponente
@function_tool
def procesar_texto(texto: str, modo: str = "mayusculas") -> str:
"""Procesa texto según modo: mayusculas/minusculas"""
if modo == "mayusculas":
return texto.upper()
return texto.lower()
¿Ves? Así de sencillo. El modelo de lenguaje podrá llamar a calcular_potencia o procesar_texto directamente. Sin middleware raro.
3. Prompt para conectar tu plugin MCP con APIs externas
Integra APIs reales en tu plugin
import aiohttp
from mcp import async_tool
@async_tool
async def obtener_clima(ciudad: str) -> dict:
"""Obtiene clima actual de una ciudad"""
async with aiohttp.ClientSession() as session:
async with session.get(
f"https://api.weather.com/v1/{ciudad}",
headers={"Authorization": "Bearer TU_API_KEY"}
) as resp:
return await resp.json()
Esto es lo que realmente importa, colega. Tu plugin MCP puede hablar con cualquier API. El modelo pide el clima y tú se lo sirves en bandeja.
4. Prompt para manejar errores y logging en MCP
Logging y manejo de errores como un pro
import logging
from mcp import MCPError
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("mcp_plugin")
@function_tool
def buscar_usuario(usuario_id: int) -> dict:
try:
# Tu lógica aquí
if usuario_id <= 0:
raise MCPError("ID de usuario inválido")
logger.info(f"Buscando usuario {usuario_id}")
return {"id": usuario_id, "nombre": "Ejemplo"}
except MCPError as e:
logger.error(f"Error: {e}")
return {"error": str(e)}
Tío, no subestimes el logging. Cuando tu plugin falle a las 3 de la mañana, me lo agradecerás.
5. Prompt para testing automático de tu plugin MCP
Testea tu plugin sin desplegar
import pytest
from mcp.testing import MCPTestClient
def test_mi_plugin():
client = MCPTestClient(MiPlugin())
# Simula una petición del modelo
response = client.send_request({
"tool": "calcular_potencia",
"args": {"base": 2, "exponente": 3}
})
assert response["result"] == 8
print("Plugin funciona correctamente")
Y esto, colega, te ahorra horas de debugging. Testea antes de desplegar, que luego los modelos se vuelven locos.
Y tú, ¿qué prompt usas para integrar MCP en tus proyectos Python?


