Metadata-Version: 2.5
Name: lex-api-mx-mcp
Version: 0.4.0
Summary: Servidor MCP de Lex API MX: legislación mexicana vigente y verificable para agentes de IA
Project-URL: Homepage, https://lexapi.mx
Project-URL: Documentation, https://lexapi.mx/docs
Project-URL: Repository, https://github.com/Julio-Patron/lexapi-mx
Author-email: Lex API MX <admin@lexapi.mx>
License-Expression: MIT
License-File: LICENSE
Keywords: ai-agents,legal,legislacion,leyes,mcp,mexico,model-context-protocol
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: Spanish
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Requires-Dist: lex-api-mx-client<0.5,>=0.4.0
Requires-Dist: mcp<3,>=2.2
Description-Content-Type: text/markdown

<!-- mcp-name: io.github.Julio-Patron/lex-api-mx -->
# Lex API MX — servidor MCP

Servidor [Model Context Protocol](https://modelcontextprotocol.io) que conecta
Claude Desktop, Claude Code, Cursor o cualquier agente MCP con la legislación
federal mexicana vigente de [Lex API MX](https://lexapi.mx).

El servidor es un adaptador ligero y de código abierto (MIT): no contiene el
corpus. Cada llamada consulta la API de Lex API MX con tu clave y devuelve el
paquete normativo tal cual, con cita canónica, vigencia, fuente oficial y
checksum SHA-256 del texto. La estructura de una norma llega como un índice
compacto (el árbol completo de la Ley Federal del Trabajo pesa más de 1 MB; su
índice, unos 15 KB).

## Herramientas

| Herramienta | Endpoint | Para qué |
|---|---|---|
| `resolve_legal_citation` | `POST /api/v1/resolve` | Resolver una cita o situación a un paquete normativo verificable. |
| `search_mexican_law` | `GET /api/v1/articulos/search` | Buscar artículos vigentes por texto, norma o materia. |
| `get_norm_structure` | `GET /api/v1/normas/{slug}/estructura` | Índice de una norma: primer y último artículo, divisiones en orden y números de artículo. El texto (`include_text`, por páginas de nodos con `page`) se rige por los permisos y la cuota de la cuenta. |

Todas exigen `fecha` (`"vigente"` o `YYYY-MM-DD`). Las de búsqueda y resolución
exigen además `jurisdiccion`; hoy la única cobertura es `"federal"`.

## Instalación

Requiere [uv](https://docs.astral.sh/uv/) y una clave de Lex API MX. El plan
gratuito publica sus límites vigentes en Cuenta: crea tu cuenta con tu correo y genera la
clave en [lexapi.mx/cuenta](https://lexapi.mx/cuenta).

```json
{
  "mcpServers": {
    "lex-api-mx": {
      "command": "uvx",
      "args": ["lex-api-mx-mcp"],
      "env": { "LEX_API_MX_KEY": "tu_clave" }
    }
  }
}
```

- **Claude Desktop:** *Settings → Developer → Edit Config* y pega el bloque
  anterior en `claude_desktop_config.json`; reinicia la aplicación.
- **Claude Code:**
  `claude mcp add lex-api-mx --env LEX_API_MX_KEY=tu_clave -- uvx lex-api-mx-mcp`
- **Cursor:** el mismo bloque en `~/.cursor/mcp.json` (global) o
  `.cursor/mcp.json` (proyecto).

Pruébalo preguntando: *¿Cuáles son las causas de rescisión de la relación de
trabajo sin responsabilidad para el patrón? Cita el artículo exacto.*

## Variables de entorno

| Variable | Obligatoria | Valor por defecto |
|---|---|---|
| `LEX_API_MX_KEY` | Sí | — |
| `LEX_API_MX_BASE_URL` | No | `https://api.lexapi.mx` |

## Errores

Los errores de la API llegan al modelo como errores de herramienta legibles y
con la acción para la siguiente llamada: clave inválida (401), permiso faltante
o plan requerido (403), saldo agotado (402: no reintentar y avisar al
responsable de la cuenta con el enlace de recarga), norma inexistente o fecha
anterior a la cobertura (404: qué slug o qué fecha usar) y límite de peticiones
(429). Ante un 429 con espera de 30 segundos o menos, el servidor reintenta solo
hasta dos veces.

## Código fuente

[github.com/Julio-Patron/lexapi-mx](https://github.com/Julio-Patron/lexapi-mx/tree/main/packages/lex-mcp-server)
(licencia MIT). También está en el [MCP Registry](https://registry.modelcontextprotocol.io)
como `io.github.Julio-Patron/lex-api-mx`.

## Lectura incluida y versión 0.4.0

API y MCP requieren la misma clave de una cuenta con correo confirmado. La política
activa de Cuenta determina cuota y permisos; la lectura incluida no exige créditos.
La cuota mensual se comparte entre claves por cuenta y mes UTC. `monthly_quota_exceeded`
indica cuándo se renueva; no se resuelve comprando créditos. Se mantienen límites de
texto, resultados, tamaño y concurrencia.

El MCP 0.4.0 incluye búsqueda, estructura, resolve, `map_legal_topic`,
`get_legal_article`, `list_legal_norms`, `get_legal_norm`,
`get_legal_article_history` y `get_corpus_status`.
El mapa conserva un catálogo limitado de temas. Las ocho lecturas normativas aceptan
`idempotency_key`: conserva identificador y parámetros para el mismo reintento;
una petición distinta es otro evento. No se eliminan límites de ráfagas por reintentar.
`get_corpus_status` consulta el estado público y no consume cuota.

Los contratos previos, saldos e historial se conservan. El catálogo activo informa
la oferta gratuita y empresarial por volumen/garantías verificadas; sin precio ni
SLA por defecto, semántica, alertas en tiempo real ni CFDI automático operativo.
