MCP Plugins en Python: Cómo conectar tu código con ChatGPT sin volverte loco
MCP Plugins en Python: Cómo conectar tu código con ChatGPT sin volverte loco
Mira, colega, llevo tiempo dándole vueltas a esto de los MCP plugins y Python. Si eres como yo, que te gusta tener el control de lo que hace la IA con tu código, esto te va a interesar. No es teoría de manual, es práctica pura y dura.
Los MCP (Model Context Protocol) plugins te permiten que ChatGPT o cualquier modelo de lenguaje se comunique directamente con tu código Python. ¿Para qué? Pues para que puedas ejecutar funciones, consultar bases de datos o procesar archivos sin tener que copiar-pegar como un animal. Vamos al grano.
¿Qué necesitas exactamente?
Tres cosas: Python 3.8+, el paquete mcp y un servidor que conecte con tu lógica. Nada más. Olvídate de frameworks enormes. Esto es ligero y directo.
Instalación rápida:
pip install mcp
Y ahora, los prompts que realmente funcionan. Cópialos y pégaliós, que para eso estamos aquí.
Prompt 1: Conectar tu script Python con ChatGPT
Este es el básico, el que te saca del apuro cuando quieres que la IA ejecute una función tuya:
Crea un servidor MCP en Python que exponga una función llamada "analizar_texto" que reciba un string y devuelva el número de palabras, caracteres y frases. Usa el decorador @mcp.tool() para definirla. El servidor debe escuchar en localhost:8000.
Código funcional:
import mcp
@mcp.tool()
def analizar_texto(texto: str) -> dict:
palabras = len(texto.split())
caracteres = len(texto)
frases = len([f for f in texto.split('.') if f])
return {"palabras": palabras, "caracteres": caracteres, "frases": frases}
mcp.run(host="localhost", port=8000)
Prompt 2: Leer archivos locales desde ChatGPT
Esto es oro puro cuando trabajas con datos locales. Ni FTP, ni subidas a la nube:
Crea un servidor MCP en Python con una herramienta llamada "leer_archivo" que acepte una ruta de archivo como string y devuelva su contenido. Incluye manejo de errores para archivos que no existan. El servidor debe usar logging básico.
Código funcional:
import mcp
import logging
logging.basicConfig(level=logging.INFO)
@mcp.tool()
def leer_archivo(ruta: str) -> str:
try:
with open(ruta, 'r', encoding='utf-8') as f:
return f.read()
except FileNotFoundError:
return f"Error: archivo {ruta} no encontrado"
except Exception as e:
return f"Error inesperado: {str(e)}"
mcp.run()
Prompt 3: Base de datos SQLite en tiempo real
Tío, esto es lo que necesitas si trabajas con datos persistentes. ChatGPT consulta tu BD directamente:
Crea un servidor MCP en Python con dos herramientas: "consultar_db" que ejecute SELECTs y "insertar_db" que haga INSERTs. Conéctate a una base de datos SQLite llamada "datos.db". La tabla se llama "usuarios" con columnas id, nombre, email. Incluye validación básica de SQL injection.
Código funcional:
import mcp
import sqlite3
def get_db():
return sqlite3.connect('datos.db')
@mcp.tool()
def consultar_db(query: str) -> list:
if not query.lower().startswith('select'):
return "Solo consultas SELECT permitidas"
conn = get_db()
cursor = conn.cursor()
cursor.execute(query)
resultados = cursor.fetchall()
conn.close()
return resultados
@mcp.tool()
def insertar_db(nombre: str, email: str) -> str:
conn = get_db()
cursor = conn.cursor()
cursor.execute("INSERT INTO usuarios (nombre, email) VALUES (?, ?)", (nombre, email))
conn.commit()
conn.close()
return f"Usuario {nombre} insertado correctamente"
mcp.run()
Prompt 4: Procesar imágenes con PIL
Este es para los que trabajan con imágenes. Directo, sin rodeos:
Crea un servidor MCP en Python con una herramienta "procesar_imagen" que acepte una ruta de imagen y un modo (escala_grises, rotar_90, invertir). Usa PIL para procesar y guarda el resultado como "procesada.jpg". Devuelve la ruta del archivo generado.
Código funcional:
import mcp
from PIL import Image
@mcp.tool()
def procesar_imagen(ruta: str, modo: str) -> str:
img = Image.open(ruta)
if modo == "escala_grises":
img = img.convert('L')
elif modo == "rotar_90":
img = img.rotate(90, expand=True)
elif modo == "invertir":
img = Image.eval(img, lambda x: 255 - x)
else:
return "Modo no soportado"
img.save("procesada.jpg")
return "procesada.jpg"
mcp.run()
Prompt 5: Llamar a APIs externas desde ChatGPT
El clásico, pero con MCP. Útil cuando quieres que la IA tire de datos actualizados:
Crea un servidor MCP en Python con una herramienta "llamar_api" que acepte una URL y devuelva el JSON de respuesta. Incluye timeout de 10 segundos y manejo de errores HTTP. Usa la librería requests.
Código funcional:
import mcp
import requests
@mcp.tool()
def llamar_api(url: str) -> dict:
try:
respuesta = requests.get(url, timeout=10)
respuesta.raise_for_status()
return respuesta.json()
except requests.exceptions.Timeout:
return {"error": "Timeout excedido"}
except requests.exceptions.HTTPError as e:
return {"error": f"HTTP {e.response.status_code}"}
except Exception as e:
return {"error": str(e)}
mcp.run()
Mi opinión, sin filtros
Los MCP plugins son el futuro de la integración IA-código, pero ojo: no te confíes. Esto no es magia. Necesitas tener claro qué quieres exponer y cómo. Yo los uso para automatizar tareas repetitivas de procesamiento de datos y va de puta madre. Pero si esperas que la IA haga todo por ti sin entender el código, vas listo.
Y tú, ¿qué prompt usas para conectar tu código con ChatGPT? Cuéntame, que siempre se aprende algo nuevo.


