Skip to main content
Glama

regwatch-co

Colombian regulatory and legislative monitor with mandatory provenance. No data enters without a checkable URL, capture date, and an explicit statement of how far its evidence reaches.

The query this project exists to answer is not "find me this law", it is "what did this regulation say on March 3, 2024?" — and answering it requires a graph of typed effects, not a search engine.

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

That clause in quotes is not decorative: it is the proof. Without it the row does not exist — a schema constraint prevents it, not a convention.

Estado real

This is a project under construction and the README is not going to say otherwise.

Collection

Senate (1.694 bills, 5 legislatures), Constitutional Court (21.661 rulings, 2015-2026), article by article. They run against live sources

Validity as of arbitrary date

Works end to end, with the evidentiary clause and its Official Gazette

Lexical search

FTS in Spanish over regulations, bills, and rulings

MCP server

Two read-only tools, with a provenance warning in each response

🟡 Corpus loaded

The database has a seed, not the corpus. Loading it requires SUPABASE_DB_URL

🟡 Semantic search

hybrid_search is complete and degrades exactly to lexical without vectors. Embeddings require VOYAGE_API_KEY

Q&A with citations

Citation validation (R2) and context are written and tested; exposing it requires ANTHROPIC_API_KEY and passing the gold set

Email alerts

The digest and sending are written; sending requires an email provider

House of Representatives

The collector is written with a guard that prevents running it until there is a response to the right of petition (legal/peticiones/)

What this project does not promise, and will not promise: that the data is certain. It can prove that it is consistent with what the source published, that the provenance is as declared, and that nothing arrived through a broken path. If the official source publishes wrong data, no gate sees it. That is why the claim "validated data" alone is prohibited in this repo — and so is "no hallucinations".

This is not legal advice. It is an index with provenance; the legal reading is done on the official text, and each result links to its own.

Related MCP server: secop-mcp-server

How to use

Requires Node ≥ 24 (uses native TypeScript stripping, which is why imports carry the .ts extension) and pnpm 11. .nvmrc sets 24; development and verification are done on 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

The .env goes in the root of the monorepo. The Next app lives in web/ and would not read it on its own; web/next.config.ts loads it explicitly.

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

Collectors never write directly to the database: they produce a validated artifact and a second step imports it. That is what allows you to inspect a run before it touches data.

MCP server

{
  "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_..."
      }
    }
  }
}

It exposes buscar_normatividad and consultar_vigencia. Both are read-only and neither asserts validity without a primary source.

How it is built

pnpm monorepo: collectors/ (collection, gates, and RAG), db/ (schema and importers), web/ (Next 16), and mcp/. Postgres 17 with pgvector on Supabase.

Three things that are not implementation details:

  1. Validity never comes from a language model. afectacion.fecha_derivation enforces it with CHECK constraints: a date without provenance does not enter, and if it was derived by rule, the rule must be written.

  2. Zero rows does not mean "valid forever". It means that no captured effect is recorded. The interface says it in those words.

  3. Third-party editorial apparatus is not republished. The articles are public domain (art. 41 of Law 23 of 1982); the validity and editor notes of private compilations are not, and there is a structural cleanup with tests that prevents it.

The complete rules are in GOVERNANCE.md, which states for each one where it is enforced. The plan and its measured corrections, in PLAN-V2.md.

License

MIT — see LICENSE. The code is MIT; the regulatory text it indexes belongs to its official sources and each record links to its own.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for accessing Uruguay's IMPO open data API with SQLite caching. Provides tools to retrieve legal norms, search regulations, and access schema documentation from Uruguay's official legal database.
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server to query Colombian public procurement data from SECOP I and II in real time, enabling contract research, transparency oversight, and data journalism.
    10
    2
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).

  • MCP for CanLII: Canadian case law and legislation metadata (federal, provincial, territorial).

  • A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/LesVulture/regwatch-co'

If you have feedback or need assistance with the MCP directory API, please join our Discord server