regwatch-co
An MCP server for querying Colombian legislative norms and their current legal effect, with read-only tools for normativity search and validity consultation. It provides provenance-backed data with explicit citations to official sources.
README
regwatch-co
Monitor normativo y legislativo colombiano con procedencia obligatoria. Ningún dato entra sin URL checkeable, fecha de captura y una declaración explícita de qué tan lejos llega su evidencia.
La consulta que el proyecto existe para responder no es «búscame esta ley», es «¿qué decía esta norma el 3 de marzo de 2024?» — y responderla exige un grafo de afectaciones tipadas, no un buscador.
$ regwatch → /vigencia/ley/1616/2013
ley 1616 de 2013 · Vigencia a día de hoy
AFECTADA — el cambio ya surtió efecto a la fecha consultada
Artículo 1 · por ley 2460 de 2025 · Diario Oficial 53.153 · efecto 2025-06-18
«ARTÍCULO 3o. Modifíquese el artículo 1o de la Ley 1616 de 2013, el cual quedará así:»
Regla: «La presente ley entrará a regir a partir de su sanción, promulgación y
publicación en el Diario Oficial…» (Ley 2460 de 2025, art. 39) + DO 53.153
declarado_en_norma · tier primaria · verificar en la fuente ↗
Esa cláusula entre comillas no es decorativa: es la prueba. Sin ella la fila no existe — lo impide una restricción del esquema, no una convención.
Estado real
Esto es un proyecto en construcción y el README no va a decir otra cosa.
| ✅ Recolección | Senado (1.694 proyectos, 5 legislaturas), Corte Constitucional (21.661 providencias, 2015-2026), articulado por artículo. Corren contra las fuentes vivas |
| ✅ Vigencia a fecha arbitraria | Funciona de punta a punta, con la cláusula probatoria y su Diario Oficial |
| ✅ Búsqueda léxica | FTS en español sobre normas, proyectos y providencias |
| ✅ Servidor MCP | Dos herramientas de solo lectura, con advertencia de procedencia en cada respuesta |
| 🟡 Corpus cargado | La base tiene una semilla, no el corpus. Cargarlo requiere SUPABASE_DB_URL |
| 🟡 Búsqueda semántica | hybrid_search está entera y degrada exactamente a la léxica sin vectores. Los embeddings requieren VOYAGE_API_KEY |
| ⛔ Q&A con citas | La validación de citas (R2) y el contexto están escritos y probados; exponerlo requiere ANTHROPIC_API_KEY y superar el gold set |
| ⛔ Alertas por correo | El digest y el envío están escritos; enviar requiere un proveedor de correo |
| ⛔ Cámara de Representantes | El colector está escrito con una guarda que impide correrlo hasta que haya respuesta al derecho de petición (legal/peticiones/) |
Lo que este proyecto no promete, y no lo va a prometer: que los datos sean ciertos. Puede probar que son consistentes con lo que la fuente publicó, que la procedencia es la declarada y que nada llegó por un camino roto. Si la fuente oficial publica un dato equivocado, ningún gate lo ve. Por eso está prohibido en este repo el claim «datos validados» a secas — y el de «sin alucinaciones».
Esto no es asesoría jurídica. Es un índice con procedencia; la lectura jurídica se hace sobre el texto oficial, y cada resultado enlaza al suyo.
Cómo se usa
Requiere Node ≥ 24 (usa el stripping nativo de TypeScript, por eso los import llevan extensión .ts) y pnpm 11. .nvmrc fija 24; se desarrolla y verifica sobre 26.
git clone https://github.com/LesVulture/regwatch-co.git
cd regwatch-co
pnpm install
cp .env.example .env # y rellena SUPABASE_URL y SUPABASE_ANON_KEY
pnpm web:dev # http://localhost:3000
El .env va en la raíz del monorepo. La aplicación de Next vive en web/ y no lo leería sola; web/next.config.ts lo carga explícitamente.
pnpm verify # lint + typecheck + 330 tests + build de la web
pnpm collect:senado # proyectos de ley → artefactos/senado-pdly.json
pnpm collect:corte # providencias → artefactos/corte-relatoria.json
pnpm collect:articulado Ley 1616 2013
pnpm db:load # carga el artefacto (requiere SUPABASE_DB_URL)
pnpm db:load-chunks artefactos/articulado-ley_1616_2013.json
pnpm mcp:start # servidor MCP por stdio
Los colectores no escriben nunca directo a la base: producen un artefacto validado y un segundo paso lo importa. Es lo que permite mirar una corrida antes de que toque datos.
Servidor MCP
{
"mcpServers": {
"regwatch-co": {
"command": "node",
"args": ["/ruta/a/regwatch-co/mcp/src/server.ts"],
"env": {
"SUPABASE_URL": "https://TU-PROYECTO.supabase.co",
"SUPABASE_ANON_KEY": "sb_publishable_..."
}
}
}
}
Expone buscar_normatividad y consultar_vigencia. Las dos son de solo lectura y ninguna afirma vigencia sin fuente primaria.
Cómo está hecho
Monorepo pnpm: collectors/ (recolección, gates y RAG), db/ (esquema e importadores), web/ (Next 16) y mcp/. Postgres 17 con pgvector en Supabase.
Tres cosas que no son detalles de implementación:
- La vigencia nunca sale de un modelo de lenguaje.
afectacion.fecha_derivationlo hace cumplir con restriccionesCHECK: una fecha sin procedencia no entra, y si se derivó por regla, la regla tiene que estar escrita. - Cero filas no significa «vigente para siempre». Significa que no consta ninguna afectación capturada. La interfaz lo dice con esas palabras.
- El aparato editorial de terceros no se republica. El articulado es dominio público (art. 41 de la Ley 23 de 1982); las notas de vigencia y del editor de las compilaciones privadas no lo son, y hay un saneado estructural con tests que lo impide.
Las reglas completas están en GOVERNANCE.md, que dice de cada una dónde se hace cumplir. El plan y sus correcciones medidas, en PLAN-V2.md.
Licencia
MIT — ver LICENSE. El código es MIT; el texto normativo que indexa es de sus fuentes oficiales y cada registro enlaza a la suya.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。