Servidor Model Context Protocol en TypeScript que permite a asistentes de IA buscar negocios locales de Acámbaro, Guanajuato, y generar un diagnóstico de presencia digital vinculado a los servicios de SDDA.
Qué es: un MCP que conecta el directorio de Acambaro.com.mx con Claude. Pasos: esqueleto → datos y lógica → tools/resources/prompts → pruebas y CI → despliegue en OCI → vitrina de portafolio.
flowchart TD
Cliente["Claude Desktop / Claude Code / otro cliente MCP"]
Cliente -- "stdio (src/index.ts)" --> Servidor
Cliente -- "Streamable HTTP + token (src/http.ts)" --> Servidor
subgraph Servidor["src/server.ts (McpServer)"]
Tools["tools/"]
Resources["resources/"]
Prompts["prompts/"]
end
Tools --> Dominio
Resources --> Dominio
Prompts --> Dominio
subgraph Dominio["src/domain/ (lógica pura, sin SDK)"]
Horario["horario.ts"]
Busqueda["busqueda.ts"]
Diagnostico["diagnostico.ts"]
end
Dominio --> Repo["src/data/repo.ts (SQLite en memoria)"]
Repo --> Json["src/data/negocios.json"]
| Archivo | De qué trata |
|—|—|
| docs/00-VISION-Y-ALCANCE.md | Por qué, para quién, alcance y criterios de éxito |
| docs/01-ARQUITECTURA.md | Stack, capacidades MCP, modelo de datos, estructura |
| docs/02-ROADMAP.md | Fases y checklist de construcción |
| docs/03-DESPLIEGUE.md | Despliegue en OCI A1 detrás de Cloudflare (Docker o systemd) |
| CLAUDE.md | Instrucciones para Claude Code |
buscar_negocios, detalle_negocio, negocios_abiertos, diagnostico_digitaldirectorio://categorias, sdda://serviciosrecomendar_negocio, propuesta_sddasrc/index.ts) para Claude Desktop/Code, y Streamable HTTP con token por header (src/http.ts) para despliegue remoto.src/data/repo.ts).Salida real de la tool diagnostico_digital (probada con MCP Inspector y por stdio):
Prompt: “¿Qué tan bien está la presencia digital de la Ferretería El Tornillo Feliz?”
Ferretería El Tornillo Feliz: 20/100 (nivel bajo)
❌ Sitio web propio (25 pts)
❌ WhatsApp de contacto (20 pts)
❌ Presencia en redes sociales (20 pts)
❌ Ubicación en Google Maps (15 pts)
✅ Teléfono de contacto (10 pts)
✅ Descripción con contenido suficiente (10 pts)
Servicio sugerido: Diagnóstico y arranque digital SDDA: presencia básica (perfil, WhatsApp, ubicación).
GIF de demo en vivo: pendiente de grabar una vez desplegado en producción (ver
docs/02-ROADMAP.md, Fase 6).
git clone https://github.com/atapia9/mcp-directorio-acambaro
cd mcp-directorio-acambaro
npm install
npm run build
Probarlo sin ningún cliente, con MCP Inspector:
npm run inspect
Conectarlo a Claude Desktop, agregando esto a tu claude_desktop_config.json
(o desde Settings → Conectores/MCP si tu versión de la app lo gestiona ahí):
{
"mcpServers": {
"directorio-acambaro": {
"command": "node",
"args": ["/ruta/absoluta/a/mcp-directorio-acambaro/dist/index.js"]
}
}
}
Modo HTTP (para desplegarlo, ver docs/03-DESPLIEGUE.md):
MCP_TOKEN="un-token-largo-y-aleatorio" PORT=3000 npm run start:http
Armando Tapia — Acambaro.com.mx · SDDA · GitHub @atapia9
MIT