bora-mcp
# Argentina BORA - MCP Server
[](https://www.npmjs.com/package/bora-mcp)
[](https://www.typescriptlang.org/)
[](https://modelcontextprotocol.io/)
MCP Server para buscar y extraer avisos, decretos y resoluciones del **Boletín Oficial de la República Argentina** ([boletinoficial.gob.ar](https://www.boletinoficial.gob.ar)). Conecta cualquier LLM compatible (Claude, Cursor, Antigravity) con el portal oficial para realizar búsquedas en tiempo real y extraer el articulado completo con **fidelidad jurídica sin alucinaciones**.
---
## 🚀 Características Principales
* **Buscador Avanzado Integrado (`buscar_avisos`)**: Búsquedas avanzadas multiplataforma en tiempo real por texto libre, secciones, número o año de norma, y rango de fechas en toda la base histórica de avisos.
* **Fidelidad Verbatim Absoluta (`obtener_detalle_aviso`)**: Recupera el cuerpo oficial de cualquier ley o aviso, removiendo scripts y estilos dinámicos pero conservando de forma exacta la alineación de párrafos y saltos de línea con fidelidad jurídica total.
* **Scraping Concurrente e Índices Diarios (`obtener_sumario_del_dia`)**: Agrega en paralelo, mediante concurrencia asíncrona optimizada, los sumarios diarios de las 4 secciones regulatorias oficiales para obtener una visión unificada agrupada por rubro y tema.
* **Captura Dinámica de Portada (`obtener_portada`)**: Scrapea la página de inicio del Boletín Oficial, detecta la fecha activa en Argentina, extrae carruseles informativos gubernamentales y construye enlaces directos de descarga para los PDFs firmados digitalmente.
* **Buscadores Temáticos Optimizados**:
* **Constitución de Sociedades Comerciales** (Sección Segunda).
* **Licitaciones Públicas y Compras del Estado** (Sección Tercera).
* **Resiliencia Criptográfica**: Configurado con agentes HTTPS tolerantes a fallos criptográficos para saltear bloqueos por expiración de cadenas de confianza SSL en los portales gubernamentales.
---
## 🛠️ Instalación y Configuración Rápida
Para utilizar este servidor MCP de forma inmediata, necesitas tener instalado [Node.js](https://nodejs.org/) (versión 18 o superior).
### 1. Cursor IDE / Windsurf
Tanto Cursor como Windsurf admiten servidores MCP de forma nativa a través del protocolo standard I/O (`stdio`):
1. Abre la configuración (Settings) de tu entorno de desarrollo y busca la sección **MCP**.
2. Haz clic en **+ Add New MCP Server**.
3. Completa los campos requeridos:
* **Name:** `bora-mcp`
* **Type:** `command`
* **Command:** `npx -y bora-mcp` (o la ruta al paquete local publicado).
### 2. Claude Desktop
1. Abre tu archivo de configuración de Claude Desktop. En Windows, se localiza normalmente en:
`C:\Users\<TuUsuario>\AppData\Roaming\Claude\claude_desktop_config.json`
2. Agrega el servidor dentro de la clave `mcpServers`:
```json
{
"mcpServers": {
"bora-mcp": {
"command": "npx",
"args": ["-y", "bora-mcp"],
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}
```
> [!IMPORTANT]
> La variable de entorno `"NODE_TLS_REJECT_UNAUTHORIZED": "0"` es fundamental para saltear problemas periódicos con los certificados SSL vencidos o mal configurados del sitio del Boletín Oficial de la Nación.
### 3. Antigravity / Codex
Configura el servidor dentro del archivo de configuración global `mcp_config.json`:
```json
{
"mcpServers": {
"bora-mcp": {
"command": "npx",
"args": ["-y", "bora-mcp"],
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}
```
### 4. Claude Web (Claude.ai Custom Connectors)
> [!TIP]
> **¿Estás utilizando Claude Web (Claude.ai)?** ¡No necesitas instalar Node.js ni ejecutar nada localmente! Puedes conectar este servidor de forma 100% remota y serverless utilizando nuestro endpoint oficial.
Para conectarlo en segundos, solo necesitas ingresar estos dos datos:
1. Ve a la sección de configuración de conectores personalizados en [Claude.ai Connectors](https://claude.ai/customize/connectors).
2. Haz clic en **Add Connector** o **Connect Server**.
3. Completa los campos requeridos:
* **Name:** `bora-mcp`
* **URL:** `https://bora-mcp.vercel.app/api/mcp/sse`
4. Guarda la configuración. ¡Listo! Claude Web ahora se comunicará en tiempo real con el portal oficial del BORA de manera serverless.
---
💡 **¿Necesitas ejemplos de prompts para aprender a promptear a la IA y usar correctamente este MCP?**
Consulta nuestra biblioteca interactiva con prompts óptimos y flujos de trabajo combinados en: **[bora-mcp.vercel.app/prompts](https://bora-mcp.vercel.app/prompts)**
---
### 5. Antigravity / Codex (Integración SSE Remota)
Para configurar la versión serverless de alta disponibilidad directamente en Antigravity u otros clientes compatibles con MCP SSE:
Agrega la siguiente configuración en tu archivo `mcp_config.json`:
```json
{
"mcpServers": {
"bora-mcp-sse": {
"type": "sse",
"url": "https://bora-mcp.vercel.app/api/mcp/sse"
}
}
}
```
*💡 **Ventaja de la integración SSE Remota:** No requiere ejecutar comandos locales (`npx`), instalar Node.js ni consumir recursos en tu máquina, ya que se ejecuta de manera 100% serverless en Vercel Edge con caching de base de datos.*
---
## 💻 Instalación Manual (Para Desarrolladores)
Si deseas descargar el código fuente, auditar la lógica de scraping o contribuir al desarrollo local:
1. Clona el repositorio oficial:
```bash
git clone https://github.com/voftec/bora-mcp.git
cd bora-mcp
```
2. Instala las dependencias de desarrollo y producción:
```bash
npm install
```
3. Compila el código TypeScript a JavaScript de distribución ESM:
```bash
npm run build
```
4. Configura tu cliente MCP local apuntando directamente a la build construida:
* **Cursor Command:** `node D:/ruta-a-tu-carpeta/bora-mcp/build/index.js`
* **Claude Desktop Config:**
```json
"bora-mcp": {
"command": "node",
"args": ["D:/ruta-a-tu-carpeta/bora-mcp/build/index.js"],
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
```
---
## ⚖️ Catálogo de Herramientas Disponibles (Tools)
El servidor expone **14 herramientas especializadas** diseñadas para emular con precisión metodológica a un investigador jurídico experto:
| Herramienta | Descripción Técnica | Parámetros Clave |
|---|---|---|
| `buscar_avisos` | Búsqueda avanzada multisección de edictos y leyes. | `criterio`, `seccion`, `fechaDesde`, `fechaHasta`, `nroNorma`, `pagina` |
| `obtener_detalle_aviso` | Extrae el cuerpo verbatim íntegro de un aviso o ley. | `seccion`, `idAviso`, `fecha` |
| `obtener_sumario_seccion` | Recupera el sumario completo de una sección del día agrupado por rubros (con parser NIC Argentina en Sección 4). | `seccion`, `fecha` |
| `obtener_enlace_pdf` | Genera la ruta directa oficial para descarga del PDF firmado. | `seccion`, `idAviso`, `fecha` |
| `buscar_nuevas_sociedades` | Buscador optimizado para constituciones de firmas comerciales (Sección 2). | `fechaDesde`, `fechaHasta`, `pagina` |
| `buscar_licitaciones_publicas` | Buscador especializado de contrataciones y pliegos públicos (Sección 3). | `criterio`, `fechaDesde`, `fechaHasta`, `pagina` |
| `alcance_fuente` | Información sobre la fuente legal, limitaciones técnicas y disclaimer de uso. | *(Ninguno)* |
| `obtener_portada` | Scrapea la portada de hoy, destaques y descargas de PDFs de edición completa. | *(Ninguno)* |
| `obtener_sumario_del_dia` | Agregador altamente concurrente de sumarios de las 4 secciones unificadas. | `fecha` |
| `buscar_sociedades_por_tipo` | Buscador en la Segunda Sección con filtros por tipo de acto y tipo societario. | `tipoActo`, `tipoSocietario`, `fechaDesde`, `fechaHasta`, `pagina` |
| `buscar_norma_primera_seccion` | Búsqueda directa de normas oficiales (decretos, resoluciones, leyes) por N° y/o año. | `nroNorma`, `anioNorma`, `criterio`, `fechaDesde`, `fechaHasta`, `pagina` |
| `buscar_avisos_judiciales` | Buscador especializado en edictos, sucesiones e inhibiciones (Sección Segunda). | `criterio`, `fechaDesde`, `fechaHasta`, `pagina` |
| `buscar_marcas_patentes` | Buscador en la Cuarta Sección con ventana móvil automática de 15 días. | `criterio`, `fechaDesde`, `fechaHasta`, `pagina` |
| `rastrear_vigencia_norma` | Rastreo cronológico de referencias de una norma para analizar su vigencia histórica. | `nroNorma`, `anioNorma`, `fechaDesde`, `fechaHasta` |
---
## 📝 Licencia
Este proyecto se distribuye de forma abierta y transparente bajo los términos de la **Licencia MIT**. Consulta el archivo `LICENSE` para más detalles.
TDQS
Scored across 14 tools
Each tool has a clearly distinct purpose: general search, specialized searches by section or topic, detail retrieval, summaries, and tracking. Even overlapping search functions are differentiated by their scope and filters, reducing ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., buscar_avisos, obtener_detalle_aviso). The naming is uniform and predictable across the entire set.
With 14 tools, the server is well-scoped for the domain of the Argentine Official Bulletin. Each tool serves a specific function, and the count is neither overwhelming nor insufficient.
The tool set covers the full lifecycle: information about the connector, general and specialized searches, detail retrieval, PDF links, daily/section summaries, and norm tracking. There are no obvious gaps for typical use cases.