Skip to main content
Glama
RaphaelCerri

mcp-job-radar

by RaphaelCerri

MCP Job Radar

Английский · Португальский

Безопасный сервер Model Context Protocol только для чтения для поиска вакансий и объяснимого сопоставления.

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

Описания вакансий могут содержать инъекции в промпты, команды, запросы секретов и вредоносные ссылки. Этот сервер предоставляет возможности поиска вакансий AI-хостам, не превращая ненадежные списки в канал инструкций. Каждый инструмент типизирован, ограничен, проверен, доступен только для чтения и протестирован через реальный внутрипроцессный MCP-клиент.

Что рецензент может проверить за три минуты

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

Демо подключает официальный MCP-клиент к серверу, обнаруживает инструменты через tools/list, вызывает search_jobs и выводит его структурированный результат. Тесты покрывают обнаружение инструментов, JSON Schema, детерминированное ранжирование, типизированные ошибки, тайм-ауты, повторные попытки, разрыв цепи и враждебный контент.

Related MCP server: LinkedIn Jobs MCP Server

Инструменты

Инструмент

Что возвращает

Граница безопасности

search_jobs

Ограниченные совпадения по названию и заявленным навыкам

Описания не влияют на поиск

rank_jobs

Оценка, причины и компромиссы относительно типизированного профиля

Детерминированная политика, без скрытых суждений LLM

explain_match

Точные факторы, стоящие за одной оценкой

Та же политика, что и при ранжировании, без постфактум-объяснений

export_shortlist

Markdown или JSON в ответе

Нет записи в файловую систему или подачи заявки

Все входные и выходные данные используют строгие модели Pydantic. Недопустимый, отсутствующий, дублирующийся или избыточный ввод приводит к стабильной машиночитаемой ошибке, а не к трассировке реализации.

Архитектура

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

Адаптер MCP не содержит логики ранжирования. Сервис приложения владеет вариантами использования, шлюз безопасности владеет границей доверия, а репозиторий владеет устойчивостью источников. Такое разделение делает протокол заменяемым, а критические политики — независимо тестируемыми.

Прочтите полную архитектуру и модель угроз и матрицу враждебных тестов.

Меры безопасности

  • Описания вакансий ограничиваются, нормализуются, сканируются и редактируются перед попаданием в контекст агента.

  • Фразы с инъекциями в промпты, запросы секретов, команды и встроенные URL становятся явными находками.

  • URL-адреса вакансий должны использовать публичный HTTPS и не могут содержать учетные данные или указывать на локальные/частные хосты.

  • Количество результатов и идентификаторы пакетов ограничены 25.

  • Доступ к источникам имеет тайм-аут, ограниченные повторные попытки и внутрипроцессный предохранитель.

  • События аудита содержат имя инструмента, статус, длительность и тип ошибки, но никогда аргументы или тела результатов.

  • Намеренно отсутствуют выполнение команд, произвольная загрузка, чтение локальных файлов, автоматическая подача заявок или возможность постоянного экспорта.

Пример запроса

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

Результат содержит числовую оценку, а также положительные сигналы и явные компромиссы. Объяснения генерируются той же функцией оценки, поэтому они не могут отклоняться от ранжирования.

Запуск в качестве MCP-сервера

Транспорт по умолчанию — stdio:

uv run mcp-job-radar

Пример конфигурации хоста:

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

Проект использует официальный Python SDK v2 и его текущую линию протокола MCP 2026-07-28. Автоматизированный интеграционный тест использует Client(mcp), внутрипроцессный клиент SDK, а не вызывает функции Python напрямую.

Связь с radar-de-vagas

radar-de-vagas владеет загрузкой из шести публичных источников, двухуровневой фильтрацией релевантности, нормализацией, глобальной дедупликацией и упорядочиванием по приоритету. mcp-job-radar добавляет контракт, ориентированный на агента, и границу безопасности. Его проверенный нормализованный набор данных делает тесты детерминированными и сохраняет CI независимым от скрапинга, учетных данных, ограничений скорости и сбоев сторонних сервисов.

Измеряемое поведение

Набор приемочных тестов проверяет:

  • ровно четыре обнаруживаемых инструмента MCP;

  • структурированные результаты MCP и сгенерированные схемы ввода;

  • повторяемое ранжирование и объяснения соответствия;

  • все определенные классы враждебного контента отредактированы;

  • небезопасные классы URL отклонены;

  • некорректные и медленные источники возвращаются как типизированные повторяемые ошибки;

  • отсутствует поверхность автоматической подачи заявок или постоянной записи.

Покрытие поддерживается на уровне 85% в CI. README сообщает только о поведении, подтвержденном репозиторием, а не о производственном трафике или синтетических заявлениях о точности бизнеса.

Корректировки, обусловленные проверкой

  • Реализация была приведена в соответствие с установленным API MCP SDK v2 после того, как интеграционный тест проверил перемещенную границу ToolError и типизированную оболочку ответа list_tools().

  • Нормализованный фикстур был перемещен внутрь Python-пакета после проверки собранного wheel. Это предотвращает демо, которое работает только из редактируемой копии исходников.

  • Аннотации только для чтения, неразрушающие, идемпотентные и закрытого мира проверяются для всех четырех обнаруженных инструментов, поэтому опубликованные метаданные проверяются, а не просто документируются.

Ограничения и следующие шаги

  • Демонстрационные данные синтетические и нормализованные. Они доказывают границу агента, а не время безотказной работы живых источников.

  • Ранжирование лексическое и основано на политике; семантическая эквивалентность и нюансы карьеры остаются за пределами v0.1.

  • Предохранитель является локальным для процесса. Распределенное развертывание потребовало бы общего состояния и метрик.

  • Живой адаптер должен потреблять версионированный нормализованный вывод из radar-de-vagas, а не импортировать его скрипт или дублировать специфичный для источника скрапинг.

  • Аутентификация и развертывание Streamable HTTP намеренно отсутствуют в этой локальной демонстрации stdio. Они становятся необходимыми только при предоставлении доступа к серверу за пределами доверенного хоста.

Раскрытие информации об использовании ИИ

Репозиторий был разработан с использованием ИИ-ассистированной реализации и рецензирования. Архитектура, заявления о безопасности, тесты, ограничения и опубликованные артефакты были проверены на соответствие исполняемому поведению. Ответственность за авторство и окончательные технические решения остаются за Рафаэлем Кавеагной.

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