
REPSE — Padrón de la STPS (servicios especializados)
io.github.edbrorPublished by GitHub account edbrorv0.2.0Updated Oct 26, 2026
Vigencia REPSE (STPS) en vivo, cruzada con 38 listas: SAT, sanciones, inhabilitaciones, PEP.
Overview
Checks a Mexican contractor's REPSE (STPS) registration status live, returning a validity verdict and authorized activities.
- What you can do
- Verify one contractor by RFC, folio or company name and get a validity verdict plus authorized activities
- Check a whole supplier portfolio in batch, returning counts and only the records that need action
- Search the public contractor registry by company name
- Check availability and latency of the STPS source portal
- Report statuses such as current, expiring soon, expired, not registered or undetermined
- When to use it
- Useful for procurement, supplier onboarding, due diligence and accounts-payable checks where you need to confirm whether a Mexican specialized-services contractor holds a valid REPSE registration before approving or paying.
- Requirements
- Remote MCP endpoint with OAuth authentication required. No environment variables or headers are declared in the manifest. The server queries the public STPS portal live, so network access to that source is needed.
Installation
In SourceWeft
- Open REPSE — Padrón de la STPS (servicios especializados) in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.edbror%2Frepse-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"repse-padr-n-de-la-stps-servicios-especi": {
"type": "http",
"url": "https://repse.watr.mx/connect"
}
}
}README
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
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:
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úblicoGET /padron-public-excel(~155k filas), rebuild-on-boot + cron diario. VerSPEC.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)
Registro en Claude Code (scope user, editando ~/.claude.json directamente):
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.
Source: README.md at commit 0ae31f9
Tools
0Version history
2- v0.2.0LatestOct 22, 2026
- v0.1.0Oct 22, 2026
Score
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.