Skip to main content
Glama
RaphaelCerri

mcp-job-radar

by RaphaelCerri

MCP Job Radar

Inglés · Português

Un servidor de Model Context Protocol seguro y de solo lectura para descubrimiento de empleos y coincidencias explicables.

CI Python 3.11+ MCP 2026-07-28 License MIT

Las descripciones de empleo pueden contener inyecciones de prompts, comandos, solicitudes de secretos y enlaces maliciosos. Este servidor expone capacidades de búsqueda de empleo a los hosts de IA sin convertir listados no confiables en un canal de instrucciones. Cada herramienta está tipada, acotada, auditada, es de solo lectura y se ejercita mediante un cliente MCP real en memoria.

Lo que un revisor puede verificar en tres minutos

uv sync --extra dev
uv run pytest
uv run mcp-job-radar-demo

La demo conecta un cliente MCP oficial al servidor, descubre las herramientas mediante tools/list, llama a search_jobs e imprime su resultado estructurado. Las pruebas cubren descubrimiento de herramientas, JSON Schema, clasificación determinista, errores tipados, tiempos de espera, reintentos, interruptor de circuito y contenido adversario.

Related MCP server: LinkedIn Jobs MCP Server

Herramientas

Herramienta

Qué devuelve

Límite de seguridad

search_jobs

Coincidencias acotadas de título y habilidades declaradas

Las descripciones no afectan la búsqueda

rank_jobs

Puntuación, razones y compensaciones frente a un perfil tipado

Política determinista, sin juicio de LLM oculto

explain_match

Factores exactos detrás de una puntuación

Misma política que la clasificación, sin explicación a posteriori

export_shortlist

Markdown o JSON dentro de la respuesta

Sin escritura en el sistema de archivos ni solicitud de empleo

Todas las entradas y salidas usan modelos Pydantic estrictos. La entrada inválida, faltante, duplicada o excesiva produce un error estable legible por máquina en lugar de un traceback de implementación.

Arquitectura

flowchart LR
    H[AI host] -->|MCP| M[MCP adapter]
    M --> A[Safe audit boundary]
    A --> S[Typed job service]
    S --> R[Deterministic ranker]
    S --> G[Untrusted-content gateway]
    S --> D[Timeout, retry, circuit breaker]
    D --> F[(Normalized fixtures)]
    G -->|bounded and redacted| M

El adaptador MCP no contiene lógica de clasificación. El servicio de aplicación posee los casos de uso, la puerta de enlace de seguridad posee el límite de confianza y el repositorio posee la resiliencia de la fuente. Esta separación mantiene el protocolo reemplazable y las políticas críticas independientemente probables.

Lea el modelo de arquitectura y amenazas completo y la matriz de pruebas adversarias.

Controles de seguridad

  • Las descripciones de empleo se acotan, normalizan, escanean y redactan antes de entrar al contexto del agente.

  • Las frases de inyección de prompts, solicitudes de secretos, comandos y URL incrustadas se convierten en hallazgos explícitos.

  • Las URL de listados deben usar HTTPS público y no pueden contener credenciales ni apuntar a hosts locales/privados.

  • El número de resultados y los IDs de lote están limitados a 25.

  • El acceso a la fuente tiene un tiempo de espera, reintento acotado y un interruptor de circuito en proceso.

  • Los eventos de auditoría contienen nombre de herramienta, estado, duración y tipo de error, nunca argumentos ni cuerpos de resultados.

  • Intencionalmente no hay ejecución de comandos, búsqueda arbitraria, lectura de archivos locales, autoaplicación ni capacidad de exportación persistente.

Ejemplo de solicitud

{
  "job_ids": ["remoteok-1001", "remotive-3003"],
  "profile": {
    "target_titles": ["AI Engineer", "AI Solutions Architect"],
    "skills": ["Python", "RAG", "LLM", "MCP"],
    "remote_required": true,
    "seniority": "senior",
    "minimum_salary_brl": 20000
  },
  "limit": 10
}

El resultado lleva una puntuación numérica más señales positivas y compensaciones explícitas. Las explicaciones se generan con la misma función de puntuación, por lo que no pueden desviarse de la clasificación.

Ejecutar como servidor MCP

El transporte predeterminado es stdio:

uv run mcp-job-radar

Ejemplo de configuración del host:

{
  "mcpServers": {
    "job-radar": {
      "command": "uv",
      "args": ["--directory", "ABSOLUTE_PATH_TO_REPOSITORY", "run", "mcp-job-radar"]
    }
  }
}

El proyecto usa el SDK oficial de Python v2 y su línea de protocolo MCP 2026-07-28 actual. La prueba de integración automatizada usa Client(mcp), el cliente en memoria del SDK, en lugar de invocar funciones de Python directamente.

Relación con radar-de-vagas

radar-de-vagas posee la ingesta de seis fuentes públicas, el filtrado de relevancia en dos capas, la normalización, la deduplicación global y el orden de prioridad. mcp-job-radar añade el contrato orientado al agente y el límite de seguridad. Su conjunto de datos normalizado verificado hace que las pruebas sean deterministas y mantiene la CI independiente del raspado, las credenciales, los límites de tasa y las interrupciones de terceros.

Comportamiento medido

El conjunto de aceptación verifica:

  • exactamente cuatro herramientas MCP descubribles;

  • resultados MCP estructurados y esquemas de entrada generados;

  • clasificación y explicaciones de coincidencia repetibles;

  • todas las clases de contenido hostil definidas redactadas;

  • clases de URL inseguras rechazadas;

  • fuentes malformadas y lentas devueltas como fallos reintentables tipados;

  • sin superficie de autoaplicación ni escritura persistente.

La cobertura se aplica al 85% en CI. El README informa solo comportamientos afirmados por el repositorio, no tráfico de producción ni afirmaciones sintéticas de precisión empresarial.

Ajustes impulsados por verificación

  • La implementación se alineó con la API v2 del SDK de MCP instalado después de que una prueba de integración verificara el límite movido de ToolError y el sobre de respuesta tipado de list_tools().

  • El fixture normalizado se movió dentro del paquete de Python después de inspeccionar la rueda construida. Esto evita una demo que funcione solo desde un checkout de código fuente editable.

  • Las anotaciones de solo lectura, no destructivas, idempotentes y de mundo cerrado se afirman en las cuatro herramientas descubiertas, de modo que los metadatos publicados se verifican en lugar de solo documentarse.

Limitaciones y próximos pasos

  • Los datos de la demo son sintéticos y normalizados. Prueban el límite del agente, no el tiempo de actividad de fuentes en vivo.

  • La clasificación es léxica y basada en políticas; la equivalencia semántica y el matiz profesional quedan fuera de v0.1.

  • El interruptor de circuito es local al proceso. Un despliegue distribuido requeriría estado compartido y métricas.

  • Un adaptador en vivo debería consumir una salida normalizada versionada de radar-de-vagas, no importar su script ni duplicar el raspado específico de la fuente.

  • La autenticación y el despliegue HTTP de Streamable están intencionalmente ausentes de esta demostración local de stdio. Se vuelven necesarios solo al exponer el servidor más allá de un host confiable.

Divulgación de asistencia de IA

El repositorio se desarrolló con implementación y revisión asistidas por IA. La arquitectura, las afirmaciones de seguridad, las pruebas, las limitaciones y los artefactos publicados se verificaron contra el comportamiento ejecutable. La responsabilidad de autoría y las decisiones técnicas finales permanecen en Raphael Caveagna.

A
license - permissive license
A
quality
C
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
    Not graded
    quality
    D
    maintenance
    Enables AI agents to search and analyze LinkedIn jobs with advanced filters, salary requirements, and market insights through natural language.
    21
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to discover, filter, and track job openings based on the user's local resume, without uploading data to the cloud.
    12
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to search live jobs, view full details, save and track applications in a Kanban board, set follow-up reminders, and subscribe to job alerts—no account needed for searching.
    20
    269
    MIT

View all related MCP servers

Related MCP Connectors

  • Semantic search over 3.5M+ live US job postings pulled straight from company ATSes. Read-only.

  • Job platform for AI agents. Track tech jobs from companies that match your stack.

  • AI job search for Claude, ChatGPT, Cursor. 170K+ jobs, 3,800+ companies. OAuth or stdio.

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/RaphaelCerri/mcp-job-radar'

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