Skip to main content
Glama
RaphaelCerri

mcp-job-radar

by RaphaelCerri

MCP Job Radar

English · Português

Ein sicherer, schreibgeschützter Model Context Protocol-Server für Jobsuche und erklärbares Matching.

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

Stellenbeschreibungen können Prompt-Injection, Befehle, geheime Anfragen und bösartige Links enthalten. Dieser Server stellt KI-Hosts Jobsuch-Fähigkeiten bereit, ohne unvertrauenswürdige Einträge in einen Befehls- bzw. Anweisungskanal zu verwandeln. Jedes Tool ist typisiert, begrenzt, geprüft, schreibgeschützt und wird über einen echten In-Memory-MCP-Client getestet.

Was ein Prüfer in drei Minuten verifizieren kann

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

Die Demo verbindet einen offiziellen MCP-Client mit dem Server, entdeckt die Tools über tools/list, ruft search_jobs auf und gibt das strukturierte Ergebnis aus. Tests decken Tool-Entdeckung, JSON-Schema, deterministisches Ranking, typisierte Fehler, Timeouts, Wiederholungsversuche, Circuit-Breaking und adversariale Inhalte ab.

Related MCP server: LinkedIn Jobs MCP Server

Tools

Tool

Was es zurückgibt

Sicherheitsgrenze

search_jobs

Begrenzte Treffer aus Titel und angegebenen Fähigkeiten

Beschreibungen beeinflussen die Suche nicht

rank_jobs

Punktzahl, Gründe und Abwägungen gegenüber einem typisierten Profil

Deterministische Richtlinie, keine versteckte LLM-Beurteilung

explain_match

Exakte Faktoren hinter einer einzelnen Punktzahl

Gleiche Richtlinie wie beim Ranking, keine nachträgliche Erklärung

export_shortlist

Markdown oder JSON in der Antwort

Kein Dateisystem-Schreibzugriff und keine Bewerbung

Alle Eingaben und Ausgaben verwenden strikte Pydantic-Modelle. Ungültige, fehlende, doppelte oder übermäßige Eingaben erzeugen einen stabilen maschinenlesbaren Fehler anstelle eines Implementierungs-Tracebacks.

Architektur

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

Der MCP-Adapter enthält keine Ranking-Logik. Der Anwendungsdienst besitzt die Anwendungsfälle, das Sicherheits-Gateway die Vertrauensgrenze und das Repository die Quellenresilienz. Diese Trennung hält das Protokoll austauschbar und die kritischen Richtlinien unabhängig testbar.

Lesen Sie das vollständige Architektur- und Bedrohungsmodell und die adversariale Testmatrix.

Sicherheitskontrollen

  • Stellenbeschreibungen werden begrenzt, normalisiert, gescannt und geschwärzt, bevor sie in den Agentenkontext gelangen.

  • Prompt-Injection-Phrasen, Geheimnisanfragen, Befehle und eingebettete URLs werden zu expliziten Befunden.

  • Auflistungs-URLs müssen öffentliches HTTPS verwenden und dürfen keine Anmeldeinformationen enthalten oder auf lokale/private Hosts zielen.

  • Ergebnisanzahl und Batch-IDs sind auf 25 begrenzt.

  • Der Quellzugriff hat ein Timeout, begrenzte Wiederholungsversuche und einen prozessinternen Circuit Breaker.

  • Audit-Ereignisse enthalten Tool-Name, Status, Dauer und Fehlertyp, niemals Argumente oder Ergebnisinhalte.

  • Es gibt bewusst keine Befehlsausführung, kein beliebiges Abrufen, kein Lesen lokaler Dateien, keine automatische Bewerbung und keine persistente Exportfunktion.

Beispielanfrage

{
  "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
}

Das Ergebnis enthält eine numerische Punktzahl sowie positive Signale und explizite Abwägungen. Erklärungen werden von derselben Scoring-Funktion erzeugt, sodass sie nicht vom Ranking abweichen können.

Als MCP-Server ausführen

Der Standardtransport ist stdio:

uv run mcp-job-radar

Beispielkonfiguration für den Host:

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

Das Projekt verwendet das offizielle Python-SDK v2 und dessen aktuelle MCP-Protokolllinie vom 2026-07-28. Der automatisierte Integrationstest verwendet Client(mcp), den In-Memory-Client des SDK, anstatt Python-Funktionen direkt aufzurufen.

Beziehung zu radar-de-vagas

radar-de-vagas besitzt die Erfassung aus sechs öffentlichen Quellen, die zweischichtige Relevanzfilterung, Normalisierung, globale Deduplizierung und Prioritätsreihenfolge. mcp-job-radar fügt den agentenorientierten Vertrag und die Sicherheitsgrenze hinzu. Sein eingecheckter normalisierter Datensatz macht Tests deterministisch und hält CI unabhängig von Scraping, Anmeldeinformationen, Ratenlimits und Ausfällen von Drittanbietern.

Gemessenes Verhalten

Die Akzeptanzsuite verifiziert:

  • genau vier auffindbare MCP-Tools;

  • strukturierte MCP-Ergebnisse und generierte Eingabeschemata;

  • wiederholbare Ranking- und Matching-Erklärungen;

  • alle definierten feindlichen Inhaltsklassen geschwärzt;

  • unsichere URL-Klassen abgelehnt;

  • fehlerhafte und langsame Quellen als typisierte, wiederholbare Fehler zurückgegeben;

  • keine Oberfläche für automatische Bewerbungen oder persistente Schreibvorgänge.

Die Abdeckung wird in CI bei 85% erzwungen. Die README berichtet nur über Verhaltensweisen, die vom Repository bestätigt werden, nicht über Produktionsverkehr oder synthetische Geschäftsgenauigkeitsbehauptungen.

Verifikationsgetriebene Anpassungen

  • Die Implementierung wurde an die installierte MCP-SDK-v2-API angepasst, nachdem ein Integrationstest die verschobene ToolError-Grenze und den typisierten list_tools()-Antwortenvelope verifiziert hatte.

  • Die normalisierte Fixture wurde nach der Inspektion des gebauten Wheels in das Python-Paket verschoben. Dies verhindert eine Demo, die nur aus einem bearbeitbaren Quellcode-Checkout funktioniert.

  • Schreibgeschützte, nicht destruktive, idempotente und geschlossene Welt-Annotationen werden auf allen vier entdeckten Tools bestätigt, sodass die veröffentlichten Metadaten überprüft statt nur dokumentiert werden.

Einschränkungen und nächste Schritte

  • Die Demodaten sind synthetisch und normalisiert. Sie beweisen die Agentengrenze, nicht die Verfügbarkeit von Live-Quellen.

  • Das Ranking ist lexikalisch und richtlinienbasiert; semantische Äquivalenz und Karrierenuancen liegen außerhalb von v0.1.

  • Der Circuit Breaker ist prozesslokal. Ein verteiltes Deployment würde gemeinsamen Zustand und Metriken erfordern.

  • Ein Live-Adapter sollte eine versionierte normalisierte Ausgabe von radar-de-vagas konsumieren, nicht dessen Skript importieren oder quellenspezifisches Scraping duplizieren.

  • Authentifizierung und Streamable-HTTP-Bereitstellung sind in dieser lokalen stdio-Demonstration bewusst weggelassen. Sie werden erst notwendig, wenn der Server über einen vertrauenswürdigen Host hinaus exponiert wird.

Offenlegung der KI-Unterstützung

Das Repository wurde mit KI-gestützter Implementierung und Überprüfung entwickelt. Architektur, Sicherheitsbehauptungen, Tests, Einschränkungen und veröffentlichte Artefakte wurden gegen ausführbares Verhalten geprüft. Die Verantwortung für die Autorenschaft und die endgültigen technischen Entscheidungen liegen bei 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