Skip to main content
Glama
ivanprytula

cv-rest-mcp-server

by ivanprytula

CV REST/MCP сервер

Сервис FastAPI + FastMCP, который отображает резюме в формате JSON или тематических PDF.

Запуск

just setup && just dev

Сервер: http://localhost:8080 · MCP: /mcp (JSON-RPC, не браузерная страница)

Related MCP server: cv-builder

REST API

Метод

Путь

Описание

GET

/

Посадочная страница

GET

/health

Проверка состояния

GET

/cv

Резюме в формате JSON

GET

/cv/html?theme=<name>

Отрендеренное резюме в HTML

GET

/cv/preview?theme=<name>

Страница предпросмотра с панелью инструментов

GET

/cv/pdf?theme=<name>

Резюме в PDF (вложение)

Интерактивная документация OpenAPI (Swagger UI): /docs

MCP

Смонтировано на /mcp через транспорт Streamable HTTP.

Инструменты

Инструмент

Параметры

Возвращает

get_cv

—

JSON-объект с полными данными резюме

get_available_themes

—

list[str] с названиями тем

generate_cv_pdf

theme: str

PDF-байты в кодировке Base64

Подключение из MCP-клиента

Любой MCP-совместимый клиент (Claude Desktop, Cursor, VS Code с Kilo, Windsurf) может использовать этот сервер. Добавьте в конфигурацию MCP вашего клиента:

{
  "mcpServers": {
    "cv-rest-mcp-server": {
      "url": "http://localhost:8080/mcp"
    }
  }
}

Для развернутого экземпляра замените URL на ваш публичный endpoint.

Темы

classic · minimal · modern · original — определены в app/themes/<name>.py как строки CSS.

Содержимое и настройка

Отредактируйте data/cv.json (проверяется на соответствие CVData в app/cv_data.py). Перезапустите после изменений.

Установите CV_DATA_PATH, чтобы указать на другой JSON-файл. Полную схему см. в data/cv.example.json.

Ограничение частоты запросов

По IP, в памяти. localhost освобожден.

Endpoint

Лимит

/

30/min

/health

60/min

/cv*

30/min

/cv/pdf

5/15min

Docker

just build && just run

Развертывание в GCP

Пуши в main запускают CI, и после прохождения заданий качества и тестов автоматически выполняется развертывание в Cloud Run. Добавьте [skip deploy] в сообщение коммита, чтобы запустить CI без развертывания. Нативные для GitHub [skip ci], [ci skip], [no ci], [skip actions] и [actions skip] полностью пропускают workflow, что может оставить обязательные проверки в статусе ожидания.

Одноразовая настройка оператора использует скрипт развертывания (идемпотентный; SVC_NAME в .env задает имя сервиса, образа и производных сервисных аккаунтов):

just deploy bootstrap                                  # first full run
just deploy upload-cv                                   # publish personal CV data
just deploy wif                                        # one-time GitHub OIDC wiring

Для обычного релиза кода отправьте зеленое изменение в main; не запускайте этапы сборки/развертывания/проверки вручную. Задание проверки CD выводит URL развернутого сервиса. Он также виден в Google Cloud Console в разделе Cloud Run, затем сервис, затем URL. Поиск через CLI использует текущие SVC_NAME и GCP_REGION; идентификаторы сервисных аккаунтов не являются частью URL.

Стек

FastAPI · FastMCP v3 · WeasyPrint · Jinja2 · совместим с Cloud Run (без состояния, учитывает $PORT)

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides MCP tools for managing a CV as structured content, including a SQLite-backed snippet library with tools to list, create, update, and match job postings, compose role-tailored CV variants, and manage drafts.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to query a person's CV and portfolio content via MCP tools and resources, returning grounded answers from local markdown data instead of relying on resume parsing.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to create, retrieve, update, delete, and export CVs as PDFs through MCP, sharing documents with the web editor.
    MIT