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). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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