MCP: Cómo conectar Claude con cualquier herramienta externa en menos de 30 minutos
El problema real: Claude no sabe lo que pasa fuera de su contexto
Tienes Claude funcionando. Está respondiendo bien. Pero cuando le preguntas por el estado de tu base de datos, los tickets abiertos en Jira o los archivos de tu sistema local, la respuesta es siempre la misma: "No tengo acceso a esa información." Ese muro tiene nombre: falta de integración con herramientas externas. Y la solución ya existe: se llama Model Context Protocol (MCP).
Qué es MCP y por qué cambia la forma de trabajar con LLMs
MCP es un protocolo abierto desarrollado por Anthropic que estandariza cómo los modelos de lenguaje se conectan con fuentes de datos y herramientas externas. En lugar de construir una integración ad hoc para cada caso, MCP define un contrato claro entre el modelo (cliente) y cualquier servicio externo (servidor MCP).
La arquitectura es simple: un servidor MCP expone recursos, herramientas y prompts mediante un protocolo JSON-RPC sobre stdio o HTTP con SSE. Claude actúa como cliente, descubre qué capacidades tiene disponibles y las invoca cuando la conversación lo requiere.
Esto significa que puedes darle a Claude acceso real a tu sistema de archivos, tu base de datos PostgreSQL, la API de GitHub o cualquier servicio interno, sin tocar el modelo ni depender de plugins propietarios.
Guía paso a paso: tu primer servidor MCP en menos de 30 minutos
Paso 1: Instala el SDK oficial de MCP
Anthropic mantiene SDKs en Python y TypeScript. Usaremos Python por claridad:
pip install mcp
Paso 2: Crea un servidor MCP mínimo funcional
El siguiente servidor expone una herramienta que consulta el estado de un servicio HTTP externo. Es un ejemplo realista: cualquier equipo de DevOps puede adaptarlo a su stack.
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp import types
import httpx
app = Server("monitor-servicios")
@app.list_tools()
async def listar_herramientas() -> list[types.Tool]:
return [
types.Tool(
name="verificar_estado",
description="Verifica si una URL responde correctamente",
inputSchema={
"type": "object",
"properties": {
"url": {"type": "string", "description": "URL a verificar"}
},
"required": ["url"]
}
)
]
@app.call_tool()
async def llamar_herramienta(name: str, arguments: dict) -> list[types.TextContent]:
if name == "verificar_estado":
url = arguments["url"]
async with httpx.AsyncClient() as client:
try:
resp = await client.get(url, timeout=5.0)
resultado = f"Estado {resp.status_code} — {url} responde correctamente"
except Exception as e:
resultado = f"Error al conectar con {url}: {str(e)}"
return [types.TextContent(type="text", text=resultado)]
if __name__ == "__main__":
import asyncio
asyncio.run(stdio_server(app))
Paso 3: Regístralo en Claude Desktop
Claude Desktop (disponible para macOS y Windows) ya soporta MCP de forma nativa. Abre el archivo de configuración:
~/Library/Application Support/Claude/claude_desktop_config.json
Y añade tu servidor:
{
"mcpServers": {
"monitor-servicios": {
"command": "python",
"args": ["/ruta/a/tu/servidor.py"]
}
}
}
Reinicia Claude Desktop. En la interfaz verás el icono de herramientas activo, indicando que el servidor MCP está conectado.
Paso 4: Pruébalo con un prompt real
Abre una conversación y escribe:
¿Puedes verificar si https://api.tuempresa.com/health está respondiendo?
Claude identificará que tiene la herramienta verificar_estado disponible, la invocará automáticamente y te devolverá el resultado dentro de la conversación. Sin copiar y pegar, sin salir del chat.
Qué más puedes conectar con MCP
- Bases de datos: Anthropic ya publica servidores MCP oficiales para PostgreSQL y SQLite. Claude puede ejecutar queries bajo tu supervisión.
- Sistema de archivos local: El servidor
filesystemdel repositorio oficial de Anthropic permite que Claude lea y escriba archivos en directorios que tú defines explícitamente. - GitHub: El servidor MCP de GitHub expone repositorios, pull requests e issues como recursos navegables.
- APIs internas: Cualquier servicio con una API REST puede envolverse en un servidor MCP en menos de 50 líneas de Python.
Una advertencia técnica importante
MCP no es un sandbox. Cuando registras un servidor con acceso al sistema de archivos o a una base de datos, Claude puede invocar esas herramientas dentro de la conversación. Define siempre los permisos con el principio de mínimo privilegio: rutas de solo lectura donde no necesites escritura, bases de datos con usuarios de solo consulta, timeouts explícitos en todas las llamadas HTTP.
Siguiente paso: explora el ecosistema de servidores MCP existentes
Antes de construir desde cero, revisa el repositorio oficial modelcontextprotocol/servers en GitHub. Hay más de 20 servidores mantenidos por Anthropic y la comunidad: Slack, Google Drive, Brave Search, Puppeteer para navegación web y más. En muchos casos, tu integración ya está hecha. Solo necesitas configurarla.
MCP convierte a Claude en un agente con manos, no solo con palabras. La diferencia entre un chatbot y una herramienta de trabajo real empieza aquí.