Skip to main content
Glama

upwork-mcp

一个用于 Upwork 自动化的 MCP 服务器。从 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}

已保存的搜索

~/.upwork-mcp/searches/ 中创建 JSON 文件以保存搜索配置:

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

Related MCP Connectors

  • MCP server for generating rough-draft project plans from natural-language prompts.

  • Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

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

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