Conecta Claude a tu base de datos local con MCP: paso a paso
El Model Context Protocol (MCP) de Anthropic te permite darle a Claude acceso directo a tu propia base de datos o documentos. Te cuento cómo monté un servidor MCP en mi VPS y por qué cambia las reglas del juego.
01 01. ¿Qué es MCP y por qué debería importarte?
Hasta hace poco, Claude era una caja negra: le preguntabas cosas basadas en su conocimiento de entrenamiento y poco más. Con el Model Context Protocol (MCP), Anthropic ha abierto la puerta a que Claude pueda consultar bases de datos, leer archivos locales, llamar APIs externas y básicamente actuar como un asistente que sí tiene acceso a tu mundo digital real.
MCP funciona con una arquitectura cliente-servidor. Tú corres un servidor MCP (puede estar en local o en un VPS), y desde la interfaz de Claude (o desde la API) le dices: “oye, usa este servidor para responder”. El servidor expone herramientas (tools) que Claude puede invocar. Por ejemplo, una tool para ejecutar consultas SQL, otra para leer ficheros, otra para buscar en un vector store…
Lo interesante es que no necesitas ser un genio de la infraestructura. Con Python y unas pocas líneas puedes tener tu propio servidor MCP en marcha. Y lo mejor: es completamente open-source y auto-gestionado, sin depender de servicios cloud externos para tus datos sensibles.
02 02. Mi setup: servidor MCP con SQLite y búsqueda semántica
Para probarlo, monté un servidor MCP que expone dos herramientas: una para hacer consultas SQL a una base de datos SQLite local (donde tengo mis notas personales) y otra para búsqueda semántica sobre esos mismos documentos usando embeddings generados localmente con sentence-transformers.
El flujo es simple: desde Claude (vía la web o la API), le pido algo como “¿qué anoté sobre Docker compose hace dos meses?”. Claude consulta el servidor MCP, que ejecuta una búsqueda semántica sobre mis archivos markdown, devuelve los fragmentos relevantes, y Claude arma una respuesta coherente. No es RAG de manual, pero funciona de miedo.
Usé la librería oficial `mcp` de Anthropic (https://github.com/modelcontextprotocol/python-sdk) para Python. El código es sorprendentemente limpio: defines las tools como funciones asíncronas decoradas con `@mcp.tool()`, y el SDK se encarga del protocolo y la comunicación vía stdio o TCP.
03 03. El código del servidor (la parte que importa)
Te dejo un ejemplo mínimo pero funcional. Primero instalas la dependencia:
Luego creas un archivo `server.py` con una tool que consulta SQLite:
Ese servidor se conecta a tu base de datos `notas.db`. Cuando Claude lo invoca, ejecuta la query y devuelve los resultados en formato texto. El SDK se encarga de todo el serializado y las llamadas.
Para la búsqueda semántica añadí otra tool usando `sentence-transformers/all-MiniLM-L6-v2` (modelo ligero que corre en CPU sin problema). La tool recibe una query, genera el embedding, y hace una búsqueda por similitud coseno sobre embeddings precalculados de mis documentos. Devuelve los top 3 fragmentos. Sencillo pero efectivo.
pip install mcp sqlite304 04. Conectando Claude al servidor MCP
Tienes dos opciones: usar la interfaz web de Claude (versión Pro) o la API. En la web, desde la configuración de perfil puedes añadir un servidor MCP local (si usas Claude Desktop) o remoto (si usas Claude Code o la API). Yo lo tengo corriendo en un VPS con systemd, y lo expongo vía TCP en un puerto no público, con autenticación mediante token.
Para la API, la llamada es similar a un tool call normal. En el request incluyes la definición de las tools del servidor MCP (el SDK las exporta como JSON Schema), y Claude las invoca automáticamente cuando considera necesario. No tienes que hardcodear nada.
Un detalle clave: el servidor MCP no necesita acceso a internet. Todo corre local o en tu VPS. Tus datos nunca salen de tu máquina. Perfecto para documentación interna, base de conocimiento personal o incluso logs de sistemas.
05 05. ¿Vale la pena? Casos de uso reales
En mi día a día, lo uso para tres cosas: (1) consultar mis notas técnicas sin tener que recordar dónde guardé cada cosa; (2) extraer métricas de una base de datos de proyectos (horas, estado, presupuestos) con lenguaje natural; (3) como copiloto de documentación: le paso el contenido de una API y le pido que genere ejemplos de uso.
No es magia, pero sí es un salto cualitativo respecto a tener que buscar manualmente o depender de herramientas separadas. El MCP hace que Claude sea un asistente que realmente entiende tu contexto.
Eso sí, requiere un mínimo de montaje. Si no te sientes cómodo abriendo un terminal, igual no es para ti. Pero si ya tienes Docker o Python instalado, es cosa de una tarde.
¿Ya has probado MCP con Claude? ¿Tienes algún otro caso de uso interesante? Cuéntamelo en los comentarios, que ando buscando ideas para el próximo experimento.