REPSE — Padrón de la STPS (servicios especializados)

السجل الرسمي أخرى

Vigencia REPSE (STPS) en vivo, cruzada con 38 listas: SAT, sanciones, inhabilitaciones, PEP.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

Remote (streamable-http)
Claude Code
claude mcp add --transport http repse-padr-n-de-la-stps-servicios-especi 'https://repse.watr.mx/connect'
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "repse-padr-n-de-la-stps-servicios-especi": {
            "type": "http",
            "url": "https://repse.watr.mx/connect"
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. repse-mcp
  2. Tools
  3. Arquitectura: en vivo, sin índice
  4. Uso local (stdio)
  5. Despliegue (Render)
  6. Aviso

repse-mcp

MCP server para consultar el Padrón Público de Contratistas de Servicios Especializados u Obras Especializadas (REPSE) de la STPS, en vivo, desde cualquier cliente MCP (Claude Desktop, Claude Code, Cowork, apps propias).

Convierte una verificación manual —entrar al portal, capturar RFC por RFC, interpretar el resultado— en una capacidad programática de cumplimiento para compras, alta de proveedores, due diligence y cuentas por pagar.

Hermano de sat69-mcp (listas SAT 69/69-B). Se complementan: un proveedor con REPSE vigente que además es EFOS definitivo sigue siendo un "no".

Tools

ToolQué hace
verificar_repse(termino)RFC, folio o razón social → veredicto de vigencia + actividades autorizadas
verificar_lote(rfcs)Cartera de proveedores → conteos y sólo los que requieren acción
buscar_padron(texto)Búsqueda por razón social en el padrón
estado_fuente()Disponibilidad y latencia del portal de la STPS

Estados: VIGENTE · POR_VENCER (≤60 días, configurable) · VENCIDO · SIN_REGISTRO · INDETERMINADO. El booleano vigente es el que debe gobernar un bloqueo de alta o de pago.

Arquitectura: en vivo, sin índice

El portal de la STPS no requiere scraping de HTML. Su bundle JS llama a dos endpoints JSON públicos y sin autenticación:

GET  /busca_razon_social?term=…          → [{id, text}]   (RFC, folio o razón social)
POST /buscar-padron   razon_social=<id>  → detalle + actividades autorizadas

buscar-padron es POST de Laravel: exige cookie de sesión + X-CSRF-TOKEN, que el cliente toma del <meta csrf-token> del home y renueva solo ante un 419.

Consecuencia: no hay base de datos, ni Turso, ni pipeline de ingesta, ni navegador headless. Cada consulta va en vivo al padrón, así que la frescura del dato es total y no hay índice que se quede viejo. Se paga con latencia (~1 s) en vez de infraestructura.

Para búsqueda masiva y ventanas de vencimiento existe el índice local (padron.py): SQLite+FTS5 reconstruido desde el xlsx público GET /padron-public-excel (~155k filas), rebuild-on-boot + cron diario. Ver SPEC.md §2.

La trampa del campo registro

buscar-padron devuelve registro: 1 para registros ya vencidos: significa "lo encontré en el padrón", no "está vigente". Verificado contra el portal el 2026-08-01: el RFC ASE100712TT2 regresa registro: 1 con fecha_vencimiento_registro: 2024-09-10.

Quien lea registro como vigencia aprueba proveedores vencidos. La vigencia se calcula aquí, contra la fecha de vencimiento (src/repse/risk.py, cubierto en tests/test_risk.py).

Uso local (stdio)

python3 -m venv .venv && .venv/bin/pip install -e ".[dev]"
.venv/bin/repse-mcp          # stdio
.venv/bin/pytest -q          # tests

Registro en Claude Code (scope user, editando ~/.claude.json directamente):

"repse": {
  "command": "/Users/ed/mcp-servers/repse-mcp/.venv/bin/repse-mcp"
}

Despliegue (Render)

render.yaml en la raíz. Runtime Python nativo, plan free, health check en /health, MCP en /connect, landing de venta en /.

Variables: MCP_API_KEY (bearer estático), AUTHKIT_DOMAIN + BASE_URL (OAuth WorkOS, opcional), REPSE_BASE_URL (override de fuente).

Aviso

Esta herramienta informa; no emite la constancia oficial ni sustituye la verificación directa en repse.stps.gob.mx ni el criterio legal. No afiliado a la STPS.

الأسئلة الشائعة

ما هو REPSE — Padrón de la STPS (servicios especializados)؟

Vigencia REPSE (STPS) en vivo, cruzada con 38 listas: SAT, sanciones, inhabilitaciones, PEP.

كيف أثبّت REPSE — Padrón de la STPS (servicios especializados)؟

يعمل كخادم بعيد. في Claude Code: claude mcp add --transport http repse-padr-n-de-la-stps-servicios-especi 'https://repse.watr.mx/connect'. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج REPSE — Padrón de la STPS (servicios especializados) إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل REPSE — Padrón de la STPS (servicios especializados) مفتوح المصدر؟

شيفرته علنية على GitHub، لكن المستودع لا يعلن ترخيصًا قياسيًا.

من يصون REPSE — Padrón de la STPS (servicios especializados)؟

ينشره edbror. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.