UpworkBridge

UpworkBridge

A Model Context Protocol (MCP) server that connects AI coding assistants and agentic workflows to the Upwork freelance marketplace. Enables AI-powered job discovery, proposal generation, and contract management through a structured tool interface.

Category
Visit Server

README

UpworkBridge — MCP Server for Upwork

A Model Context Protocol (MCP) server that connects AI coding assistants and agentic workflows to the Upwork freelance marketplace. Enables AI-powered job discovery, proposal generation, and contract management through a structured tool interface.

Overview

UpworkBridge exposes Upwork's platform capabilities as MCP tools, allowing AI agents to:

  • Search jobs across 25+ skill categories with configurable scoring and filtering
  • Generate tailored proposals using freelancer profile data and job-specific context
  • Manage contracts and messages (proposed — requires OAuth scope)
  • Monitor activity via a cron-enabled scanning pipeline

Architecture

┌─────────────────────────────────────────────────────┐
│                  AI Assistant (Host)                  │
│  (Claude Code, Cursor, Copilot, Hermes Agent, etc.) │
└────────────────────┬────────────────────────────────┘
                     │ MCP Protocol (stdio/SSE)
                     ▼
┌─────────────────────────────────────────────────────┐
│                  UpworkBridge Server                  │
│                                                       │
│  ┌──────────────┐    ┌───────────────────────────┐   │
│  │  Scanner     │ →  │  Job Search & Scoring     │   │
│  │  Module      │    │  - 25+ predefined queries │   │
│  └──────────────┘    │  - Multi-tier categories  │   │
│                      │  - Smart scoring engine   │   │
│  ┌──────────────┐    └───────────────────────────┘   │
│  │  Proposer    │    ┌───────────────────────────┐   │
│  │  Module      │ →  │  Proposal Generation      │   │
│  └──────────────┘    │  - AI-assisted drafting   │   │
│                      │  - Skill-based templates  │   │
│                      │  - Best practices engine  │   │
│  ┌──────────────┐    └───────────────────────────┘   │
│  │  OAuth       │    ┌───────────────────────────┐   │
│  │  Handler     │ →  │  Token Management         │   │
│  └──────────────┘    │  - OAuth 2.0 auth flow    │   │
│                      │  - Auto token refresh     │   │
│  ┌──────────────┐    └───────────────────────────┘   │
│  │  Config      │    ┌───────────────────────────┐   │
│  │  Engine      │ →  │  Search params, scoring   │   │
│  └──────────────┘    │  weights, user profile    │   │
│                      └───────────────────────────┘   │
└────────────────────┬────────────────────────────────┘
                     │ Upwork API (OAuth 2.0)
                     ▼
┌─────────────────────────────────────────────────────┐
│                  Upwork Platform                      │
│  Job listings · Proposals · Contracts · Messages     │
└─────────────────────────────────────────────────────┘

Quick Start

Prerequisites

  • Python 3.10+
  • Upwork API credentials (OAuth 2.0 — apply here)

Installation

# Clone the repo
git clone https://github.com/your-org/upworkbridge.git
cd upworkbridge

# Install dependencies
pip install -r requirements.txt

# Configure credentials
cp config.example.py config.py
# Edit config.py with your Upwork Client ID and Secret

# Run initial OAuth authorization
python src/scanner.py --auth

# Search for jobs
python src/scanner.py

# Generate a proposal
python src/propose.py --job-id <JOB_ID>

MCP Integration

To connect UpworkBridge to an MCP-compatible AI assistant:

{
  "mcpServers": {
    "upwork": {
      "command": "python",
      "args": ["/path/to/upworkbridge/src/scanner.py", "--mcp"],
      "env": {
        "UPWORK_CLIENT_ID": "your_client_id",
        "UPWORK_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Features

🔍 Job Scanner

Searches Upwork across 10 categories organized in 3 tiers:

Tier Category Target Rate Query Volume
1 AI/ML Implementation $85–$175/hr 5 queries
1 Government/Defense IT $100–$250/hr 2 queries
2 Data Analysis $40–$80/hr 3 queries
2 Process Automation $50–$100/hr 3 queries
2 Technical Writing $40–$80/hr 2 queries
3 Language Services $35–$55/hr 2 queries
3 Systems Admin $35–$65/hr 2 queries
3 Virtual Assistant $20–$45/hr 1 query
3 Real Estate $30–$60/hr 1 query
3 AI Training $40–$80/hr 1 query

📊 Smart Scoring

Jobs are scored 0–100 based on:

Factor Weight Description
Payment Verified 25 pts Client must have verified payment
Client Rating 10× Multiplied by (rating - 3) / 2
Budget 5–30 pts Scaled by project value
Region 10 pts US/CA/UK/AU preference
Freshness 15 pts Posted within 24 hours
Competition 5–10 pts Fewer proposals = higher score

📝 Proposal Generator

AI-assisted proposal drafting with:

  • Job-specific context analysis
  • Freelancer profile integration
  • Skill-based template matching
  • Best-practices checklist
  • Dry-run mode for review before submission

Configuration

All configuration lives in config.py:

  • API Credentials — OAuth 2.0 client ID and secret
  • Search Queries — Customizable per category
  • Scoring Weights — Adjustable preference factors
  • Filtering Rules — Minimum client rating, budget thresholds, country preferences
  • Freelancer Profile — Skills, certifications, portfolio, rate range

Roadmap

  • [x] Job scanning with multi-query search
  • [x] AI-assisted proposal generation
  • [x] OAuth 2.0 token management
  • [ ] MCP server mode (stdio transport)
  • [ ] Proposal submission & tracking
  • [ ] Message monitoring
  • [ ] Contract status tracking
  • [ ] Docker deployment
  • [ ] Pre-built GitHub Action for cron scanning

License

MIT — see LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured