upwork-mcp
upwork-mcp
Upwork 자동화를 위한 MCP 서버입니다. Claude Desktop이나 MCP 호환 클라이언트에서 직접 작업을 검색하고, 제안서를 작성 및 제출하며, 메시지와 계약을 관리할 수 있습니다.
기능
작업 검색 — 필터(예산, 시간당 요금, 숙련도, 클라이언트 평점, 최신순)를 사용한 키워드 검색, 자동 점수 산정 및 위험 요소(red-flag) 감지
제안서 워크플로우 — 템플릿을 통한 초안 작성, 미리보기, 명시적 확인 후 제출; 일일 제출 제한 적용
클라이언트 검증 — 7가지 조건의 위험 요소 검사기(결제 인증, 평점, 고용 이력, 계정 생성일, 재게시 횟수, 제안서 수, 시간당 요금 하한선)
메시지 — 읽지 않은 대화 목록 확인, 스레드 읽기, 답장 초안 작성 및 전송
계약 — 활성/과거 계약 목록 확인, 세부 정보 및 작업 일지 항목 조회
세션 안전성 — 영구적인 Chromium 프로필, Cloudflare 감지, 7일간 비활동 시 만료,
upwork.com으로 도메인 제한감사 로그 — 모든 도구 호출은
~/.upwork-mcp/audit.log에 기록됨 (메타데이터만 기록, 콘텐츠 제외)
요구 사항
Python 3.11+
uv (권장) 또는 pip
유효한 Upwork 계정
설치
uv 사용 (권장)
git clone https://github.com/kubegrind/upwork-mcp
cd upwork-mcp
uv sync
uv run playwright install chromiumpip 사용
git clone https://github.com/kubegrind/upwork-mcp
cd upwork-mcp
pip install -e .
playwright install chromium설정
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) 또는 %APPDATA%\Claude\claude_desktop_config.json(Windows)에 추가하세요:
{
"mcpServers": {
"upwork": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/upwork-mcp",
"run",
"upwork-mcp"
]
}
}
}Claude Code
claude mcp add upwork -- uv --directory /absolute/path/to/upwork-mcp run upwork-mcp환경 변수
변수 | 기본값 | 설명 |
|
| 프로필, 로그, 템플릿을 위한 데이터 디렉토리 |
|
| 위험 요소 감지를 위한 최소 허용 시간당 요금 |
인증
이 서버는 영구적인 Chromium 브라우저 프로필을 사용합니다. 처음 실행 시 수동으로 인증해야 합니다:
uv run upwork-mcp --no-headless브라우저 창이 열리면 평소처럼 Upwork에 로그인하세요. 세션은 ~/.upwork-mcp/profile/에 저장되며 이후 실행 시 재사용됩니다. 세션은 7일간 비활동 시 만료됩니다.
도구
작업 (Jobs)
도구 | 설명 |
| 필터를 사용하여 키워드 검색; 점수가 매겨진 결과 반환 |
| 클라이언트 이력 및 인터뷰 비율을 포함한 전체 작업 세부 정보 |
| 특정 작업에 1~10점 부여 |
| 7가지 위험 요소 조건에 따라 클라이언트 검사 |
|
|
제안서 (Proposals)
도구 | 설명 |
| 제출된 제안서 목록 및 상태 확인 |
| 특정 제안서의 세부 정보 |
| 템플릿을 사용하여 제안서 초안 작성 |
| 제출 전 제안서 초안 미리보기 |
| 쓰기 — 제안서 제출 ( |
| 쓰기 — 제출된 제안서 철회 ( |
메시지 (Messages)
도구 | 설명 |
| 읽지 않은 대화 목록 확인 |
| 스레드의 최근 메시지 10개 읽기 |
| 검토를 위한 답장 초안 작성 |
| 쓰기 — 메시지 전송 ( |
계약 (Contracts)
도구 | 설명 |
| 활성 및 과거 계약 목록 확인 |
| 계약 세부 정보 및 마일스톤 |
| 계약에 대한 시간 및 메모 항목 |
프로필 (Profile)
도구 | 설명 |
| 프로필의 이름 및 직함 |
| 현재 Connects 잔액 및 잔액 부족 경고 |
| JSS, Top Rated 상태 및 총 수익 |
세션 및 감사 (Session & Audit)
도구 | 설명 |
| 세션 인증 여부 확인 |
| 쓰기 — 브라우저 세션 종료 |
| 쓰기 — 브라우저 컨텍스트 재시작 |
| 최근 N개의 감사 로그 항목 조회 |
제안서 템플릿
템플릿은 ~/.upwork-mcp/templates/에 저장됩니다. 기본 템플릿은 default.txt가 존재할 경우 로드됩니다. 사용자 지정 템플릿을 사용하려면 template_name을 통해 파일명을 전달하세요.
지원되는 변수:
{job_title} {client_name} {key_skill}
{estimated_timeline} {rate} {years_experience}
{industries} {custom_paragraph} {start_date}
{your_name}템플릿 예시 (~/.upwork-mcp/templates/default.txt):
Hi {client_name},
I noticed you're looking for {key_skill} help on {job_title}.
I have {years_experience} years of relevant experience and can deliver {estimated_timeline}.
My rate is {rate}.
{your_name}저장된 검색
~/.upwork-mcp/searches/에 JSON 파일을 생성하여 검색 설정을 저장하세요:
{
"query": "devops kubernetes",
"experience_level": "expert",
"budget_min": 500,
"client_rating_min": 4.5
}upwork_run_saved_search(search_name="devops")로 실행합니다.
작업 점수 산정
작업은 가중치 모델을 사용하여 1~10점으로 점수가 매겨집니다:
요소 | 가중치 |
예산 일치 | 30% |
기술 일치 | 25% |
클라이언트 품질 | 20% |
제안서 경쟁률 | 15% |
최신성 | 10% |
4.0점 미만의 작업은 결과에서 필터링됩니다. 7.0점 이상의 작업은 [HIGH PRIORITY]로 표시됩니다.
안전성
쓰기 도구 (
submit_proposal,withdraw_proposal,send_message,close_session,rotate_session)는confirmed: true가 필요합니다. 사용자의 명시적 확인 없이는 모델이 작업을 수행할 수 없습니다.일일 제안서 제한 — 하루 10건 제출 시 엄격히 차단
도메인 제한 — 브라우저 탐색은
upwork.com으로 제한됨자격 증명 노출 방지 — 쿠키와 토큰은 절대 반환, 기록 또는 출력되지 않음
경로 탐색 보호 — 템플릿 및 저장된 검색 파일명은
Path.is_relative_to()로 검증됨감사 로그 — 모든 도구 호출은 타임스탬프, 작업 유형, 대상, 상태와 함께 기록됨
개발
uv sync --extra dev
uv run pytest
uv run ruff check src
uv run mypy src라이선스
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
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/kubegrind/upwork-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server