MCP (Model Context Protocol): conecta Claude a tus herramientas en menos de 30 minutos
El problema que nadie te cuenta sobre los LLMs en producción
Tienes Claude. Tienes tus herramientas internas: bases de datos, APIs, sistemas de archivos, repositorios. Y tienes un abismo entre ambos que cierras a mano cada vez que necesitas contexto real. El Model Context Protocol (MCP) es la respuesta de Anthropic a ese problema, y en este artículo vas a ver cómo funciona y cómo tenerlo operativo hoy mismo.
Qué es MCP y por qué importa ahora
MCP es un protocolo abierto, presentado por Anthropic en noviembre de 2024, que estandariza cómo los modelos de lenguaje se conectan con fuentes de datos y herramientas externas. Piénsalo como el USB-C de la integración de LLMs: un estándar único que reemplaza cables propietarios.
Antes de MCP, integrar Claude con, por ejemplo, una base de datos PostgreSQL requería lógica personalizada en cada aplicación, manejo manual del contexto y prompts frágiles. Con MCP, defines un servidor MCP que expone recursos y herramientas, y cualquier cliente compatible (Claude Desktop, tu propia app) los consume de forma uniforme.
El protocolo funciona sobre JSON-RPC 2.0 y soporta tres primitivas fundamentales:
- Resources: datos que el modelo puede leer (archivos, registros de DB, respuestas de API).
- Tools: funciones que el modelo puede invocar (ejecutar una query, enviar un email).
- Prompts: plantillas reutilizables que el servidor expone al cliente.
Arquitectura en 5 minutos
Un setup MCP tiene tres componentes: el host (Claude Desktop o tu aplicación), el cliente MCP integrado en el host, y el servidor MCP que tú controlas. La comunicación puede ser local via stdio o remota via HTTP + SSE.
Para desarrollo local, stdio es la opción más rápida: el host lanza el servidor como subproceso y se comunican por entrada/salida estándar. Sin puertos, sin configuración de red.
Guía paso a paso: tu primer servidor MCP en Python
Usaremos el SDK oficial de Python. Tiempo estimado: 20-25 minutos.
Paso 1: Instala las dependencias
pip install mcp anthropic
Paso 2: Crea el servidor
Este ejemplo expone una herramienta que ejecuta queries SQL contra una base de datos SQLite local:
import sqlite3
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp import types
app = Server("mi-db-server")
@app.list_tools()
async def list_tools() -> list[types.Tool]:
return [
types.Tool(
name="query_db",
description="Ejecuta una query SELECT en la base de datos local",
inputSchema={
"type": "object",
"properties": {
"sql": {"type": "string", "description": "Query SQL a ejecutar"}
},
"required": ["sql"]
}
)
]
@app.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "query_db":
conn = sqlite3.connect("datos.db")
cursor = conn.execute(arguments["sql"])
rows = cursor.fetchall()
cols = [d[0] for d in cursor.description]
conn.close()
resultado = [dict(zip(cols, row)) for row in rows]
return [types.TextContent(type="text", text=str(resultado))]
if __name__ == "__main__":
import asyncio
asyncio.run(stdio_server(app))
Paso 3: Registra el servidor en Claude Desktop
Edita el archivo de configuración de Claude Desktop. En macOS está en ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"mi-db-server": {
"command": "python",
"args": ["/ruta/absoluta/a/tu/servidor.py"]
}
}
}
Paso 4: Reinicia Claude Desktop y verifica
Al reiniciar, verás un icono de herramientas en la interfaz. Claude ahora puede invocar query_db de forma autónoma cuando lo necesite en una conversación.
Paso 5: Pruébalo con un prompt real
Escribe en Claude Desktop:
Dame un resumen de los 5 clientes con mayor volumen de compras este trimestre,
consultando directamente la base de datos.
Claude identificará que necesita la herramienta, solicitará tu confirmación (si tienes aprobación manual activada) y ejecutará la query apropiada.
Errores comunes y cómo evitarlos
- Rutas relativas en la configuración: usa siempre rutas absolutas en
claude_desktop_config.json. Las relativas fallan silenciosamente. - Schemas de entrada poco descriptivos: Claude usa el campo
descriptionpara decidir cuándo y cómo usar la herramienta. Sé explícito. - No manejar excepciones en el servidor: un error no capturado mata el proceso y Claude pierde acceso a todas las herramientas de ese servidor.
- Exponiendo herramientas de escritura sin validación: si tu herramienta puede modificar datos, añade validación explícita en el esquema y considera requerir aprobación manual.
Servidores MCP ya disponibles que puedes usar hoy
No necesitas construirlo todo desde cero. El repositorio oficial modelcontextprotocol/servers en GitHub incluye servidores listos para:
- Sistema de archivos local
- GitHub (leer repos, abrir issues)
- PostgreSQL y SQLite
- Brave Search y fetch de URLs
- Slack y Google Drive
El siguiente paso concreto
MCP cambia la ecuación de lo que puedes delegar a Claude: deja de ser un generador de texto y empieza a actuar como un agente con acceso real a tu stack. La curva de entrada es baja, el SDK está bien documentado y el ecosistema crece semana a semana.
Tu acción inmediata: clona el repositorio modelcontextprotocol/python-sdk, ejecuta uno de los ejemplos incluidos y tenlo funcionando en Claude Desktop antes de que acabe el día. Una vez que veas a Claude consultar tu propia base de datos en tiempo real, el modelo mental de lo que es posible cambia por completo.