upwork-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BID_RATE_MAX | No | The maximum hourly rate or bid amount allowed. | |
| BID_RATE_MIN | No | The minimum hourly rate or bid amount allowed. | |
| UPWORK_EMAIL | Yes | Your Upwork account email address. | |
| UPWORK_PASSWORD | Yes | Your Upwork account password. | |
| BID_RATE_DEFAULT | No | The default hourly rate or bid amount to use for proposals. | |
| BROWSER_HEADLESS | No | Whether to run the browser in headless mode. Set to 'false' for initial login or 2FA handling. | true |
| FREELANCER_NICHE | No | Your freelancer niche keywords, separated by commas (e.g., n8n,workflow automation,make.com). | |
| FREELANCER_TITLE | No | Your freelancer title (e.g., n8n Workflow Automation Expert). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| manual_loginA | Step 1: Open a visible browser window at Upwork login page. Returns immediately — you then login manually in the browser (solve CAPTCHA, enter credentials, handle 2FA). After login is complete, call save_session to persist the session. |
| save_sessionA | Step 2: After manually logging in via manual_login, call this to save the browser session. Checks if login was successful and saves cookies/storage for future headless use. Must be called AFTER you have fully logged in to Upwork in the browser window. |
| update_profileA | Update your Upwork freelancer profile fields. Can update: title, description/bio, hourly_rate, skills. Each field is optional — only provide what you want to change. Uses the edit buttons on your profile page (requires browser via connect-chrome.bat). |
| search_jobsB | Search for jobs on Upwork. Optimized for n8n workflow automation niche. Returns a list of jobs with title, budget, description snippet, required skills, client info, and proposal count. Use this to find potential clients and opportunities. |
| get_job_detailsA | Get full details of a specific Upwork job posting. Returns complete description, all screening questions, client history (jobs posted, hire rate, spend), required skills, budget, and proposal stats. ALWAYS call this before submitting a proposal to get screening questions and understand client context. |
| submit_proposalA | Submit a proposal/bid for an Upwork job. Before calling this:
The agent will automatically type and submit the proposal. |
| get_proposalsA | Get list of your submitted proposals on Upwork. Shows status, bid rate, submission date, and whether the client is interviewing you. Use this to track which proposals need follow-up. |
| get_messagesA | Read Upwork messages.
Use this to check for client responses, new invitations, and ongoing contract discussions. |
| send_messageA | Send a message in an Upwork conversation. Use this to:
Keep messages professional, specific to the project, and value-adding. |
| get_profileA | Get your Upwork freelancer profile, stats, and connects balance. Returns: name, title, skills, hourly rate, JSS score, Top Rated status, total earnings, connects balance. Use this to understand your current standing and available connects before bidding. |
| analyze_jobA | Analyze a job opportunity and score it across 5 dimensions to decide whether to apply. Scoring breakdown (100 pts max):
Returns: grade (A+/A/B/C/D/F), recommendation (APPLY NOW/APPLY/CONSIDER/SKIP/AVOID), suggested bid, estimated project value, key selling points, and proposal tips. RECOMMENDED WORKFLOW:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/zcrossoverz/upwork-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server