Saltar al contenido
Plugins

MCP Server Tutorial: Cómo conectar ChatGPT a bases de datos y APIs sin ser un má

· (banco local)
Compartir X Facebook
MCP Server Tutorial: Cómo conectar ChatGPT a bases de datos y APIs sin ser un má
(banco local)

MCP Server Tutorial: Cómo conectar ChatGPT a bases de datos y APIs sin ser un mártir del código

Mira, colega, te voy a contar la movida de los MCP servers de una vez. No es magia, no es humo. Es la forma más directa de que ChatGPT deje de ser un loro y se convierta en tu asistente con acceso a datos reales. ¿Te imaginas preguntarle "dame el total de ventas del mes pasado" y que te saque el número de tu base de datos? Pues eso es un MCP server bien montado.

Vamos al lío. Un MCP (Model Context Protocol) server no es más que un intermediario que le da a la IA acceso a tus herramientas. Bases de datos, APIs, archivos locales. Lo configuras una vez y ChatGPT puede ejecutar consultas como si fuera un desarrollador junior que no se queja.

Lo que necesitas (sin florituras)

  • Node.js 18+ instalado (si no lo tienes, colega, estás en 2024 sin wifi)
  • Una API key de OpenAI o Anthropic (según el modelo que uses)
  • Un cliente MCP (recomiendo el plugin de Claude Desktop o la extensión para VS Code)
  • Un par de huevos para configurar cosas

Prompt 1: El esqueleto de un MCP server básico

npx @modelcontextprotocol/create-server mi-servidor-mcp

cd mi-servidor-mcp

npm install

Eso te genera la estructura. Luego editas src/index.ts con esto:

import { Server } from '@modelcontextprotocol/sdk/server/index.js';

import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

const server = new Server({

name: 'mi-servidor-mcp',

version: '1.0.0',

}, {

capabilities: {

tools: {},

resources: {}

}

});

async function main() {

const transport = new StdioServerTransport();

await server.connect(transport);

console.error('MCP server corriendo');

}

main();

Prompt 2: Conectar a una base de datos SQLite

import Database from 'better-sqlite3';

const db = new Database('datos.db');

server.setRequestHandler(ListToolsRequestSchema, async () => ({

tools: [{

name: 'consultar_ventas',

description: 'Obtiene ventas de los últimos 30 días',

inputSchema: {

type: 'object',

properties: {}

}

}]

}));

server.setRequestHandler(CallToolRequestSchema, async (request) => {

if (request.params.name === 'consultar_ventas') {

const rows = db.prepare('SELECT SUM(total) as total FROM ventas WHERE fecha > date("now", "-30 days")').get();

return { content: [{ type: 'text', text: JSON.stringify(rows) }] };

}

});

Prompt 3: Exponer una API externa (ejemplo: clima)

server.setRequestHandler(ListToolsRequestSchema, async () => ({

tools: [{

name: 'clima_ciudad',

description: 'Obtiene el clima actual de una ciudad',

inputSchema: {

type: 'object',

properties: {

ciudad: { type: 'string' }

},

required: ['ciudad']

}

}]

}));

server.setRequestHandler(CallToolRequestSchema, async (request) => {

if (request.params.name === 'clima_ciudad') {

const { ciudad } = request.params.arguments;

const response = await fetch(https://api.weatherapi.com/v1/current.json?key=TU_API_KEY&q=${ciudad});

const data = await response.json();

return { content: [{ type: 'text', text: Temperatura en ${ciudad}: ${data.current.temp_c}°C }] };

}

});

Prompt 4: Script para probar el servidor localmente

En terminal 1

npm run build && node dist/index.js

En terminal 2 (cliente MCP)

npx @modelcontextprotocol/inspector node dist/index.js

Prompt 5: Desplegar en producción con Docker

FROM node:18-alpine

WORKDIR /app

COPY package*.json ./

RUN npm ci --only=production

COPY dist/ ./dist/

CMD ["node", "dist/index.js"]

Y luego docker build -t mi-mcp-server . && docker run -d mi-mcp-server

El truco del almendruco

Colega, aquí va la clave: los MCP servers no son para hacer cosas complejas. Son para tareas concretas, repetitivas, que una IA puede resolver si tiene acceso. No te pongas a crear un servidor que haga 50 cosas. Haz uno que haga 3 cosas bien.

Yo uso MCP servers para:

  • Consultar métricas de negocio en tiempo real
  • Buscar documentación técnica interna
  • Ejecutar scripts de mantenimiento

¿Sabes qué es lo mejor? Que una vez configurado, no vuelves a tocar nada. La IA lo llama cuando lo necesita.

Y tú, colega, ¿qué prompt usas para conectar ChatGPT a tus datos reales?

Más sobre Plugins

Ver todo →