Upwork MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| upwork_search_jobsA | Search for jobs on Upwork matching the specified criteria. Returns a list of job summaries with title, budget, client info, and URL. |
| upwork_get_job_detailsB | Get detailed information about a specific Upwork job posting. Returns comprehensive job details including description, client history, skills required, and application requirements. |
| upwork_get_my_profileA | Get your Upwork freelancer profile information. Returns profile data including name, title, hourly rate, JSS score, availability status, and skill tags. |
| upwork_get_connects_balanceA | Get current Upwork Connects balance. Returns the number of available connects. |
| upwork_get_profile_statsB | Get profile statistics including earnings and work history. Returns stats like total earnings, hours worked, jobs completed. |
| upwork_get_proposalsA | Get your submitted proposals on Upwork. Returns a list of proposals with job title, status, bid amount, and dates. |
| upwork_get_proposal_detailsA | Get detailed information about a specific proposal. Returns details including cover letter, bid, and any messages. |
| upwork_submit_proposalA | Submit a proposal to an Upwork job. IMPORTANT: This is a sensitive action that will spend Connects. Make sure the cover letter and rate/bid are correct before submitting. Returns submission status and connects used. |
| upwork_withdraw_proposalB | Withdraw a submitted proposal. Returns withdrawal status. |
| upwork_get_messagesA | Get messages from Upwork inbox. Returns a list of conversations with last message, sender info, and unread status. |
| upwork_get_conversationB | Get all messages in a specific conversation. Returns conversation details with full message history. |
| upwork_send_messageC | Send a message in an Upwork conversation. Returns send status. |
| upwork_get_unread_countA | Get count of unread messages. Returns total unread message count. |
| upwork_get_contractsB | Get your Upwork contracts. Returns a list of contracts with client name, job title, status, and earnings. |
| upwork_get_contract_detailsA | Get detailed information about a specific contract. Returns full contract details including milestones, hours logged, and feedback. |
| upwork_get_work_diaryA | Get work diary entries for a contract. Returns work diary with daily hours and earnings. |
| upwork_check_sessionA | Check if the current Upwork session is valid. Returns session status and whether re-login is needed. |
| upwork_close_sessionA | Close browser session and cleanup resources. Call this when you're done using Upwork tools to free up resources. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Most tools have distinct purposes (e.g., get_messages vs get_conversation), but a few pairs like get_proposals vs get_proposal_details could be confused without careful reading. The consistent prefix helps overall.
All tools follow a uniform `upwork_verb_noun` pattern in snake_case, with clear verbs like get, search, send, submit, withdraw. No mixing of styles.
18 tools cover the essential freelancer actions on Upwork—session, profile, finances, contracts, jobs, proposals, messages—without bloat. It's well-scoped for a single-purpose server.
Tools cover core workflows (viewing and submitting proposals, messaging, checking balance/contracts). Minor gaps like updating profile or ending contracts exist but don't severely hinder usability.