Skip to main content
Glama

upwork-mcp

Ein MCP-Server für die Upwork-Automatisierung. Suchen Sie nach Jobs, entwerfen und senden Sie Vorschläge, verwalten Sie Nachrichten und Verträge – alles direkt aus Claude Desktop oder einem beliebigen MCP-kompatiblen Client.

Funktionen

  • Jobsuche — Stichwortsuche mit Filtern (Budget, Stundensatz, Erfahrungsstufe, Kundenbewertung, Aktualität), automatische Bewertung und Erkennung von Warnsignalen (Red Flags)

  • Vorschlags-Workflow — Entwürfe aus Vorlagen erstellen, Vorschau anzeigen und dann mit expliziter Bestätigung einreichen; tägliches Limit wird durchgesetzt

  • Kundenüberprüfung — 7-Punkte-Check für Warnsignale (Zahlungsbestätigung, Bewertung, Einstellungshistorie, Kontoalter, Anzahl der Neuausschreibungen, Anzahl der Vorschläge, Mindeststundensatz)

  • Nachrichten — Ungelesene Konversationen auflisten, Threads lesen, Antworten entwerfen und senden

  • Verträge — Aktive/vergangene Verträge auflisten, Details und Arbeitstagebucheinträge anzeigen

  • Sitzungssicherheit — Persistentes Chromium-Profil, Cloudflare-Erkennung, Ablauf bei 7 Tagen Inaktivität, Domain-Beschränkung auf upwork.com

  • Audit-Log — Jeder Tool-Aufruf wird an ~/.upwork-mcp/audit.log angehängt (nur Metadaten, kein Inhalt)

Anforderungen

  • Python 3.11+

  • uv (empfohlen) oder pip

  • Ein gültiges Upwork-Konto

Installation

Mit uv (empfohlen)

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

Mit pip

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

Konfiguration

Claude Desktop

Hinzufügen zu ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder %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

Umgebungsvariablen

Variable

Standardwert

Beschreibung

UPWORK_MCP_HOME

~/.upwork-mcp

Datenverzeichnis für Profil, Logs, Vorlagen

UPWORK_MCP_MIN_HOURLY_RATE

25

Mindeststundensatz für die Erkennung von Warnsignalen

Authentifizierung

Der Server verwendet ein persistentes Chromium-Browserprofil. Authentifizieren Sie sich beim ersten Start manuell:

uv run upwork-mcp --no-headless

Ein Browserfenster öffnet sich. Melden Sie sich wie gewohnt bei Upwork an. Die Sitzung wird unter ~/.upwork-mcp/profile/ gespeichert und bei nachfolgenden Ausführungen wiederverwendet. Sitzungen laufen nach 7 Tagen Inaktivität ab.

Tools

Jobs

Tool

Beschreibung

upwork_search_jobs

Suche nach Stichworten mit Filtern; gibt bewertete, sortierte Ergebnisse zurück

upwork_get_job_details

Vollständige Jobdetails inklusive Kundenhistorie und Interviewrate

upwork_score_job

Bewertung eines bestimmten Jobs von 1–10

upwork_flag_client

Überprüfung eines Kunden anhand von 7 Warnsignal-Bedingungen

upwork_run_saved_search

Ausführen einer gespeicherten Suche aus ~/.upwork-mcp/searches/<name>.json

Vorschläge

Tool

Beschreibung

upwork_get_proposals

Liste der eingereichten Vorschläge mit Status

upwork_get_proposal_details

Details zu einem bestimmten Vorschlag

upwork_draft_proposal

Entwurf eines Vorschlags aus einer Vorlage

upwork_preview_proposal

Vorschau eines Entwurfs vor der Einreichung

upwork_submit_proposal

SCHREIBEN — Vorschlag einreichen (erfordert confirmed: true)

upwork_withdraw_proposal

SCHREIBEN — Eingereichten Vorschlag zurückziehen (erfordert confirmed: true)

Nachrichten

Tool

Beschreibung

upwork_get_messages

Liste der ungelesenen Konversationen

upwork_get_conversation

Die letzten 10 Nachrichten in einem Thread lesen

upwork_draft_message

Antwort zur Überprüfung entwerfen

upwork_send_message

SCHREIBEN — Nachricht senden (erfordert confirmed: true)

Verträge

Tool

Beschreibung

upwork_get_contracts

Liste aktiver und vergangener Verträge

upwork_get_contract_details

Vertragsdetails und Meilensteine

upwork_get_work_diary

Stunden und Memo-Einträge für einen Vertrag

Profil

Tool

Beschreibung

upwork_get_my_profile

Name und Titel aus Ihrem Profil

upwork_get_connects_balance

Aktueller Connects-Kontostand mit Warnung bei niedrigem Stand

upwork_get_profile_stats

JSS, Top-Rated-Status und Gesamtverdienst

Sitzung & Audit

Tool

Beschreibung

upwork_check_session

Überprüfen, ob die Sitzung authentifiziert ist

upwork_close_session

SCHREIBEN — Browsersitzung schließen

upwork_rotate_session

SCHREIBEN — Browser-Kontext neu starten

upwork_view_audit_log

Die letzten N Audit-Log-Einträge anzeigen

Vorschlagsvorlagen

Vorlagen befinden sich in ~/.upwork-mcp/templates/. Die Standardvorlage wird aus default.txt geladen, falls vorhanden. Übergeben Sie einen Dateinamen über template_name, um eine benutzerdefinierte Vorlage zu verwenden.

Unterstützte Variablen:

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

Beispielvorlage (~/.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}

Gespeicherte Suchen

Erstellen Sie JSON-Dateien in ~/.upwork-mcp/searches/, um Suchkonfigurationen zu speichern:

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

Ausführen mit upwork_run_saved_search(search_name="devops").

Job-Bewertung

Jobs werden auf einer Skala von 1–10 anhand eines gewichteten Modells bewertet:

Faktor

Gewichtung

Budget-Übereinstimmung

30%

Fähigkeiten-Übereinstimmung

25%

Kundenqualität

20%

Wettbewerb bei Vorschlägen

15%

Aktualität

10%

Jobs mit einer Bewertung unter 4.0 werden aus den Ergebnissen gefiltert. Jobs mit einer Bewertung von 7.0 oder höher werden als [HIGH PRIORITY] markiert.

Sicherheit

  • SCHREIBEN-Tools (submit_proposal, withdraw_proposal, send_message, close_session, rotate_session) erfordern confirmed: true — das Modell kann nicht ohne explizite Benutzerbestätigung handeln

  • Tägliches Vorschlagslimit — harte Sperre bei 10 Einreichungen pro Tag

  • Domain-Beschränkung — Browser-Navigation ist auf upwork.com beschränkt

  • Keine Offenlegung von Anmeldedaten — Cookies und Token werden niemals zurückgegeben, protokolliert oder gedruckt

  • Schutz vor Pfad-Traversal — Dateinamen für Vorlagen und gespeicherte Suchen werden mit Path.is_relative_to() validiert

  • Audit-Log — alle Tool-Aufrufe werden mit Zeitstempel, Aktionstyp, Ziel und Status aufgezeichnet

Entwicklung

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

Lizenz

MIT

Related MCP Connectors