Upwork MCP Server
Enables AI assistants to interact with the Upwork freelance marketplace, including job search, proposal management, contract tracking, and earnings monitoring.
README
Upwork MCP Server
A Model Context Protocol (MCP) server for interacting with the Upwork freelance marketplace. Search jobs, manage proposals, track contracts, and monitor earnings - all through AI assistants like Claude.
Features
Job Search & Discovery
- Search Jobs: Find freelance opportunities with filters for skills, budget, category, experience level, and more
- Get Job Details: View complete job information including client history and requirements
- Save Jobs: Bookmark jobs for later review
- Get Recommendations: Personalized job suggestions based on your profile
Proposal Management
- Submit Proposals: Apply to jobs with cover letters and custom bids
- Track Proposals: Monitor proposal status (pending, accepted, declined)
- Update Proposals: Modify bids and cover letters before client response
- Withdraw Proposals: Cancel applications when needed
- View Statistics: Analyze your proposal success rates
Contract Management
- List Contracts: View all your active, paused, and completed contracts
- Contract Details: See terms, milestones, and feedback
- Work Diary: Track time logged on hourly contracts
- Milestones: Manage fixed-price project milestones
- Request Payment: Submit work and request payment
- End Contracts: Close contracts with feedback
Profile & Earnings
- View Profile: See your complete freelancer profile
- Update Profile: Modify title, skills, rate, and availability
- Earnings Reports: Detailed income breakdown by period and contract
- Transaction History: View all financial transactions
- Connects Balance: Monitor your proposal credits
- Job Success Score: Track your JSS and factors
Messaging
- List Conversations: View all message rooms with clients
- Read Messages: Access full conversation history
- Send Messages: Communicate with clients
Installation
# Clone or download the server
cd upwork-mcp-server
# Install dependencies
npm install
# Build the server
npm run build
Configuration
Getting Your Access Token
- Go to Upwork API Center
- Create a new API application or select an existing one
- Request OAuth 2.0 credentials
- Generate an access token with appropriate scopes
Environment Variables
# Required
UPWORK_ACCESS_TOKEN=your_oauth2_access_token
# Optional (for HTTP mode)
PORT=3000
TRANSPORT=http # or 'stdio' (default)
Usage
With Claude Desktop
Add to your Claude Desktop configuration (~/.config/claude/claude_desktop_config.json on macOS/Linux or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"upwork": {
"command": "node",
"args": ["/path/to/upwork-mcp-server/dist/index.js"],
"env": {
"UPWORK_ACCESS_TOKEN": "your_token_here"
}
}
}
}
Command Line
# Run with stdio (default)
UPWORK_ACCESS_TOKEN=xxx npm start
# Run as HTTP server
UPWORK_ACCESS_TOKEN=xxx npm start -- --http
# Development mode with auto-reload
UPWORK_ACCESS_TOKEN=xxx npm run dev
HTTP API
When running in HTTP mode, the server exposes:
POST /mcp- MCP protocol endpointGET /health- Health check
Available Tools
Jobs
| Tool | Description |
|---|---|
upwork_search_jobs |
Search jobs with filters |
upwork_get_job |
Get detailed job information |
upwork_list_saved_jobs |
List your saved jobs |
upwork_save_job |
Save/unsave a job |
upwork_get_job_recommendations |
Get personalized recommendations |
Proposals
| Tool | Description |
|---|---|
upwork_list_proposals |
List your proposals |
upwork_get_proposal |
Get proposal details |
upwork_submit_proposal |
Submit a new proposal |
upwork_update_proposal |
Update an existing proposal |
upwork_withdraw_proposal |
Withdraw a proposal |
upwork_get_proposal_stats |
Get proposal statistics |
Contracts
| Tool | Description |
|---|---|
upwork_list_contracts |
List your contracts |
upwork_get_contract |
Get contract details |
upwork_get_work_diary |
Get work diary entries |
upwork_list_milestones |
List contract milestones |
upwork_submit_milestone |
Submit milestone work |
upwork_request_payment |
Request payment |
upwork_end_contract |
End a contract |
Profile & Earnings
| Tool | Description |
|---|---|
upwork_get_profile |
Get freelancer profile |
upwork_update_profile |
Update your profile |
upwork_get_earnings |
Get earnings report |
upwork_get_transactions |
Get transaction history |
upwork_get_connects |
Get Connects balance |
upwork_get_job_success_score |
Get your JSS |
Messages
| Tool | Description |
|---|---|
upwork_list_messages |
List message rooms/conversations |
upwork_send_message |
Send a message |
Examples
Search for React Jobs
Use upwork_search_jobs with:
- query: "react developer"
- skills: ["react", "javascript", "typescript"]
- job_type: "hourly"
- experience_level: "intermediate"
Submit a Proposal
Use upwork_submit_proposal with:
- job_id: "~01abc123..."
- cover_letter: "Your personalized cover letter..."
- bid_amount: 50
- bid_type: "hourly"
Check Earnings
Use upwork_get_earnings with:
- start_date: "2024-01-01"
- end_date: "2024-12-31"
API Scopes
The server requires these Upwork API scopes:
job:read- Search and view jobsproposal:read,proposal:write- Manage proposalscontract:read,contract:write- Manage contractsprofile:read,profile:write- Access and update profileearning:read- View earningsmessage:read,message:write- Access messages
Development
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build
npm run build
# Clean build artifacts
npm run clean
License
MIT
Resources
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。