mcp-directorio-acambaro

MCP Directorio Acámbaro

CI License: MIT Node Release

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.

Resumen

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.

Arquitectura

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"]

Documentación

| 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 |

Capacidades (v0.2)

Ejemplo de uso

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).

Instalación en 5 minutos

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

Autor

Armando Tapia — Acambaro.com.mx · SDDA · GitHub @atapia9

Licencia

MIT