Normativa Colombia — servidor MCP

Consulta la normativa y la jurisprudencia colombiana desde cualquier asistente de IA que hable Model Context Protocol, sin abrir el navegador ni pelear con formularios.
Conecta seis fuentes oficiales:
- Gestor Normativo del Departamento Administrativo de la Función Pública — leyes, decretos, resoluciones, circulares y conceptos del sector público, con la consulta temática y los restrictores que explican por qué cada norma aplica a un tema.
- Relatoría de la Corte Constitucional — 44.839 providencias según su propio índice, con fallos recientes publicados el mismo año.
- SUIN-Juriscol del Ministerio de Justicia — el estado de vigencia, que ninguna otra fuente del país publica, y su buscador nuevo: unos 103.000 documentos de 1844 a 2026 (leyes, decretos, resoluciones, circulares, reglamentos técnicos y la jurisprudencia que afectó la vigencia de alguna norma), con su texto, muchos de los cuales el Gestor no tiene.
- Corte Suprema de Justicia — providencias de las salas de Tutelas, Civil, Laboral y Penal, cada una con las normas que cita.
- Consejo de Estado — providencias tituladas de lo contencioso administrativo, con el problema jurídico que la Sala se planteó, su respuesta y el texto completo. Con esta se completan las tres altas cortes, y las tres entregan texto.
- Normograma de la DIAN — normativa tributaria, aduanera y cambiaria.
Es un servidor MCP estándar que se comunica por stdio, así que sirve en Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Zed, Continue, LM Studio, agentes propios hechos con los SDK de MCP y cualquier cliente que aparezca después.
Instalación
Opción A — Claude Desktop, con un clic
La más sencilla si usas Claude Desktop: no requiere Node ni tocar archivos de configuración.
- Descarga
normativa-colombia.mcpb desde Releases.
- Abre Claude Desktop → Configuración → Extensiones.
- Arrastra el archivo a esa ventana y confirma.
- (Opcional: instalar sin ciertas fuentes) En Claude Desktop, abre la configuración de la extensión Normativa Colombia. En el campo Fuentes puedes indicar qué fuentes desactivar (p. ej.
-creg,-anh,-upme,-anla,-sectorial para instalar sin fuentes sectoriales y ahorrar contexto) o cuáles conservar (corte,suin). Si lo dejas vacío, incluye todas.
Claude Desktop trae su propio Node, así que no hace falta instalar nada más.
Actualizaciones: una extensión .mcpb no se actualiza sola. Cuando npm tenga una versión más nueva que la instalada, la primera respuesta de la sesión lo avisa una vez, con el enlace al último release; descárgalo y arrástralo igual que la primera vez. Si prefieres no volver a hacerlo, usa la Opción B: con @latest se actualiza sola.
Opción B — cualquier otro cliente MCP, desde npm (recomendada)
La forma más sencilla y la que evita errores de rutas: no hay que clonar nada ni apuntar a archivos locales. Requiere Node 18 o superior.
# sin instalar nada, la forma habitual en clientes MCP
npx -y normativa-colombia-mcp@latest
# o instalado en el proyecto
npm install normativa-colombia-mcp
# o disponible en todo el sistema
npm install -g normativa-colombia-mcp
El sufijo @latest importa: sin él, npx reutiliza la copia que ya tiene en su caché y no vuelve a mirar el registro, así que te quedas con la versión del primer día. Con @latest consulta npm en cada arranque y trae la versión más reciente. Si ya tenías configurado el servidor sin @latest, añádelo al argumento. Además, el servidor avisa una vez por sesión cuando hay una versión más nueva que la que corre.
Casi todos los clientes comparten este formato:
{
"mcpServers": {
"normativa-colombia": {
"command": "npx",
"args": ["-y", "normativa-colombia-mcp@latest"]
}
}
}
Para instalar sin ciertas fuentes (por ejemplo, sin los reguladores sectoriales para reducir consumo de contexto), añade la variable FUENTES en env:
{
"mcpServers": {
"normativa-colombia": {
"command": "npx",
"args": ["-y", "normativa-colombia-mcp@latest"],
"env": {
"FUENTES": "-creg,-anh,-upme,-anla,-sectorial"
}
}
}
}
| Cliente | Dónde va esa configuración |
|---|
| Claude Desktop (manual) | claude_desktop_config.json — en Configuración → Desarrollador → Editar configuración |
| Cursor | .cursor/mcp.json en el proyecto, o ~/.cursor/mcp.json para todos |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Continue | El bloque mcpServers de su configuración |
| LM Studio | Program → Install → Edit mcp.json |
| Agente propio | Como StdioServerParameters del SDK de MCP, en Python o TypeScript |
Claude Code no usa archivo; se registra por línea de comandos:
# con todas las fuentes
claude mcp add normativa-colombia -- npx -y normativa-colombia-mcp@latest
# o sin fuentes sectoriales
claude mcp add normativa-colombia -e FUENTES="-creg,-anh,-upme,-anla,-sectorial" -- npx -y normativa-colombia-mcp@latest
VS Code usa la clave servers en vez de mcpServers, en .mcp.json del proyecto o en la configuración de usuario:
{
"servers": {
"normativa-colombia": {
"type": "stdio",
"command": "npx",
"args": ["-y", "normativa-colombia-mcp@latest"],
"env": {
"FUENTES": "-creg,-anh,-upme,-anla,-sectorial"
}
}
}
}
Si lo instalaste con npm install -g, el comando es normativa-colombia-mcp a secas, sin argumentos.
Si tu cliente no está en la lista, busca dónde declara servidores MCP por stdio: el comando y los argumentos son siempre los mismos.
Comprobar que quedó bien
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"prueba","version":"1"}}}' \
| npx -y normativa-colombia-mcp@latest
Debe responder un JSON con "name":"normativa-colombia" y un campo instructions.
Opción C — desde el código
Para desarrollar o para fijar una versión propia. Requiere Node 22 o superior:
git clone https://github.com/Angelthebestone/Normativa-colombiana-MCP.git
cd Normativa-colombiana-MCP
npm install
npm run generar-indice # índice temático, ~20 MB de descarga, una sola vez
npm run build # genera server/: el lanzador index.js, el bundle servidor.js y el trozo de unpdf que se carga al leer un PDF
Después se apunta el cliente a node /ruta/absoluta/a/Normativa-colombiana-MCP/server/index.js, con el mismo formato de arriba. Funciona desde cualquier directorio de trabajo.
Carpeta sin espacios: si la ruta local contiene espacios (p. ej. C:\Users\…\normativa mcp\server\index.js), algunos clientes lanzan el comando sin comillas y Node solo ve la primera parte (C:\Users\…\normativa) y sale con código 1. Para instalación local, clona en una carpeta sin espacios o usa la Opción B (npx), que no tiene este problema.
Opción D — con Bun (alternativa opcional)
Node sigue siendo el runtime de referencia: es el de las pruebas (npm run check) y el del .mcpb. El servidor construido en la Opción C también arranca con Bun, y se ha probado a mano con Bun 1.4.2: mismo tools/list, mismas respuestas y TLS íntegro (Bun respeta la cadena de certificados propia del servidor). Arranca unos 40 ms antes y ocupa unos 19 MB menos de memoria; la latencia de cada consulta es la misma, porque la marca el portal. No se prueba en cada versión: si algo falla solo con Bun, reprodúcelo antes con Node.
El cliente se apunta a bun /ruta/absoluta/a/Normativa-colombiana-MCP/server/index.js (misma nota de la carpeta sin espacios). Construir sigue requiriendo Node.
Qué recibe el cliente
Al conectarse, el servidor entrega 28 herramientas, 5 prompts y sus propias instrucciones de uso: a qué tipo de pregunta corresponde cada herramienta, que debe citarse siempre la fuente y que nunca debe afirmarse por cuenta propia que una norma está vigente. Los clientes que respetan el campo instructions del protocolo lo aprovechan sin configurar nada.