VOOZH about

URL: https://glama.ai/mcp/servers/kubegrind/upwork-mcp?locale=ru-RU

⇱ upwork-mcp by kubegrind | Glama


upwork-mcp

MCP-сервер для автоматизации работы на Upwork. Ищите вакансии, составляйте и отправляйте заявки, управляйте сообщениями и контрактами — всё это из Claude Desktop или любого MCP-совместимого клиента.

Возможности

  • Поиск вакансий — поиск по ключевым словам с фильтрами (бюджет, почасовая ставка, уровень опыта, рейтинг клиента, свежесть), автоматическая оценка и обнаружение «красных флагов»

  • Рабочий процесс с заявками — создание черновиков по шаблонам, предварительный просмотр и отправка с явным подтверждением; действует суточный лимит

  • Проверка клиентов — проверка по 7 критериям «красных флагов» (верификация платежей, рейтинг, история найма, возраст аккаунта, количество повторных публикаций, объем заявок, минимальная почасовая ставка)

  • Сообщения — список непрочитанных диалогов, чтение переписки, создание черновиков и отправка ответов

  • Контракты — список активных/прошлых контрактов, просмотр деталей и записей в рабочем дневнике

  • Безопасность сессии — постоянный профиль Chromium, обнаружение Cloudflare, истечение срока действия через 7 дней бездействия, ограничение домена upwork.com

  • Журнал аудита — каждый вызов инструмента записывается в ~/.upwork-mcp/audit.log (только метаданные, без содержимого)

Требования

  • Python 3.11+

  • uv (рекомендуется) или pip

  • Действующая учетная запись Upwork

Установка

Использование uv (рекомендуется)

git clone https://github.com/kubegrind/upwork-mcp
cd upwork-mcp
uv sync
uv run playwright install chromium

Использование pip

git clone https://github.com/kubegrind/upwork-mcp
cd upwork-mcp
pip install -e .
playwright install chromium

Конфигурация

Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
 "mcpServers": {
 "upwork": {
 "command": "uv",
 "args": [
 "--directory",
 "/absolute/path/to/upwork-mcp",
 "run",
 "upwork-mcp"
 ]
 }
 }
}

Claude Code

claude mcp add upwork -- uv --directory /absolute/path/to/upwork-mcp run upwork-mcp

Переменные окружения

Переменная

По умолчанию

Описание

UPWORK_MCP_HOME

~/.upwork-mcp

Директория данных для профиля, логов, шаблонов

UPWORK_MCP_MIN_HOURLY_RATE

25

Минимальная приемлемая почасовая ставка для обнаружения «красных флагов»

Аутентификация

Сервер использует постоянный профиль браузера Chromium. При первом запуске выполните аутентификацию вручную:

uv run upwork-mcp --no-headless

Откроется окно браузера. Войдите в Upwork обычным способом. Сессия сохраняется в ~/.upwork-mcp/profile/ и используется повторно при последующих запусках. Сессии истекают через 7 дней бездействия.

Инструменты

Вакансии

Инструмент

Описание

upwork_search_jobs

Поиск по ключевым словам с фильтрами; возвращает оцененные и ранжированные результаты

upwork_get_job_details

Полные детали вакансии, включая историю клиента и процент приглашений на интервью

upwork_score_job

Оценка конкретной вакансии от 1 до 10

upwork_flag_client

Проверка клиента по 7 критериям «красных флагов»

upwork_run_saved_search

Запуск сохраненного поиска из ~/.upwork-mcp/searches/<name>.json

Заявки

Инструмент

Описание

upwork_get_proposals

Список отправленных заявок со статусами

upwork_get_proposal_details

Детали конкретной заявки

upwork_draft_proposal

Создание черновика заявки по шаблону

upwork_preview_proposal

Предварительный просмотр черновика перед отправкой

upwork_submit_proposal

ЗАПИСЬ — отправка заявки (требуется confirmed: true)

upwork_withdraw_proposal

ЗАПИСЬ — отзыв отправленной заявки (требуется confirmed: true)

Сообщения

Инструмент

Описание

upwork_get_messages

Список непрочитанных диалогов

upwork_get_conversation

Чтение последних 10 сообщений в ветке

upwork_draft_message

Создание черновика ответа для проверки

upwork_send_message

ЗАПИСЬ — отправка сообщения (требуется confirmed: true)

Контракты

Инструмент

Описание

upwork_get_contracts

Список активных и прошлых контрактов

upwork_get_contract_details

Детали контракта и этапы

upwork_get_work_diary

Часы и записи в рабочем дневнике для контракта

Профиль

Инструмент

Описание

upwork_get_my_profile

Имя и заголовок из вашего профиля

upwork_get_connects_balance

Текущий баланс Connects с предупреждением о низком остатке

upwork_get_profile_stats

JSS, статус Top Rated и общий заработок

Сессия и аудит

Инструмент

Описание

upwork_check_session

Проверка аутентификации сессии

upwork_close_session

ЗАПИСЬ — закрытие сессии браузера

upwork_rotate_session

ЗАПИСЬ — перезапуск контекста браузера

upwork_view_audit_log

Просмотр последних N записей журнала аудита

Шаблоны заявок

Шаблоны хранятся в ~/.upwork-mcp/templates/. Шаблон по умолчанию загружается из default.txt, если он существует. Передайте имя файла через template_name, чтобы использовать пользовательский шаблон.

Поддерживаемые переменные:

{job_title} {client_name} {key_skill}
{estimated_timeline} {rate} {years_experience}
{industries} {custom_paragraph} {start_date}
{your_name}

Пример шаблона (~/.upwork-mcp/templates/default.txt):

Hi {client_name},

I noticed you're looking for {key_skill} help on {job_title}.
I have {years_experience} years of relevant experience and can deliver {estimated_timeline}.

My rate is {rate}.

{your_name}

Сохраненные поиски

Создавайте JSON-файлы в ~/.upwork-mcp/searches/ для сохранения конфигураций поиска:

{
 "query": "devops kubernetes",
 "experience_level": "expert",
 "budget_min": 500,
 "client_rating_min": 4.5
}

Запуск через upwork_run_saved_search(search_name="devops").

Оценка вакансий

Вакансии оцениваются по шкале 1–10 с использованием взвешенной модели:

Фактор

Вес

Соответствие бюджету

30%

Соответствие навыкам

25%

Качество клиента

20%

Конкуренция заявок

15%

Свежесть

10%

Вакансии с оценкой ниже 4.0 фильтруются из результатов. Вакансии с оценкой 7.0 и выше помечаются как [HIGH PRIORITY].

Безопасность

  • Инструменты ЗАПИСИ (submit_proposal, withdraw_proposal, send_message, close_session, rotate_session) требуют confirmed: true — модель не может действовать без явного подтверждения пользователя

  • Суточный лимит заявок — жесткое ограничение в 10 заявок в день

  • Ограничение домена — навигация в браузере ограничена upwork.com

  • Отсутствие утечки учетных данных — файлы cookie и токены никогда не возвращаются, не записываются в логи и не выводятся на экран

  • Защита от обхода путей — имена файлов шаблонов и сохраненных поисков проверяются с помощью Path.is_relative_to()

  • Журнал аудита — все вызовы инструментов записываются с указанием времени, типа действия, цели и статуса

Разработка

uv sync --extra dev
uv run pytest
uv run ruff check src
uv run mypy src

Лицензия

MIT

A
license - permissive license
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/kubegrind/upwork-mcp'

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