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Переменные окружения
Переменная | По умолчанию | Описание |
|
| Директория данных для профиля, логов, шаблонов |
|
| Минимальная приемлемая почасовая ставка для обнаружения «красных флагов» |
Аутентификация
Сервер использует постоянный профиль браузера Chromium. При первом запуске выполните аутентификацию вручную:
uv run upwork-mcp --no-headlessОткроется окно браузера. Войдите в Upwork обычным способом. Сессия сохраняется в ~/.upwork-mcp/profile/ и используется повторно при последующих запусках. Сессии истекают через 7 дней бездействия.
Инструменты
Вакансии
Инструмент | Описание |
| Поиск по ключевым словам с фильтрами; возвращает оцененные и ранжированные результаты |
| Полные детали вакансии, включая историю клиента и процент приглашений на интервью |
| Оценка конкретной вакансии от 1 до 10 |
| Проверка клиента по 7 критериям «красных флагов» |
| Запуск сохраненного поиска из |
Заявки
Инструмент | Описание |
| Список отправленных заявок со статусами |
| Детали конкретной заявки |
| Создание черновика заявки по шаблону |
| Предварительный просмотр черновика перед отправкой |
| ЗАПИСЬ — отправка заявки (требуется |
| ЗАПИСЬ — отзыв отправленной заявки (требуется |
Сообщения
Инструмент | Описание |
| Список непрочитанных диалогов |
| Чтение последних 10 сообщений в ветке |
| Создание черновика ответа для проверки |
| ЗАПИСЬ — отправка сообщения (требуется |
Контракты
Инструмент | Описание |
| Список активных и прошлых контрактов |
| Детали контракта и этапы |
| Часы и записи в рабочем дневнике для контракта |
Профиль
Инструмент | Описание |
| Имя и заголовок из вашего профиля |
| Текущий баланс Connects с предупреждением о низком остатке |
| JSS, статус Top Rated и общий заработок |
Сессия и аудит
Инструмент | Описание |
| Проверка аутентификации сессии |
| ЗАПИСЬ — закрытие сессии браузера |
| ЗАПИСЬ — перезапуск контекста браузера |
| Просмотр последних 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
This server cannot be installed
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
