All 59 MCP tools, grouped by what they operate on.
Every tool below takes an organizationId parameter unless marked otherwise. If you belong to exactly one organization the agent may omit it; with more than one, the server asks the agent to call organization_list first.
Tools that change something always report back what changed, and the server requires the agent to confirm writes with you before executing them. High-impact rules (budget floors, filter policies, evidence requirements) are enforced server-side, not just suggested.
The web dashboard in one call: KPIs, day-by-day series, and breakdowns by campaign, cover letter, and bidder account. Invites match job_invitation_list for the same period; profile views and ad metrics are null on days Upwork stats were not collected.
job_invitation_list
Upwork job invitations received by your bidder accounts, with applied flags, the matched inbox room, and where each bid stands (bidState: sent, skipped, blocked, failed, not sent, the same states as campaign leads). period filters by the date each invitation was received.
Your actual Upwork positioning: accounts, agencies, contractors, portfolios, highlights, and campaign mappings. The agent grounds knowledge base and campaign advice in this.
upwork_profile_scrape
Live scrape of a public Upwork profile by URL (30 to 90 seconds), used during onboarding before an account is connected.
Send a proposal for a single Upwork job your campaigns missed, from the conversation. Same steps and checks as the web Send Proposal page.
Tool
What it does
job_proposal_draft
Takes a pasted job link: finds the job, checks no campaign already sent it, rates the fit, and writes the letter and screening answers with the template you pick. Sends nothing.
job_proposal_update
Edits the letter, answers, boost and rate settings, profile highlights or attachments before sending.
job_proposal_send
Sends it now or after a delay. A sent proposal can't be taken back, so the agent shows you the final text and asks first.
job_proposal_cancel
Stops a scheduled send before the bidder picks it up.
job_proposal_get
Whether it went out, when, with what bid and boost, or why it didn't.
Updates name, body, instructions, or status. Archiving is blocked while a live campaign uses the template.
cover_letter_simulate
Renders what the production proposal agent would actually write for sampled jobs, for the saved template or a proposed change. Each sampled job is a full AI run, so the agent offers this rather than running it automatically.
Snapshot of your pipeline: column layout, counts by status, deal value totals, unread, tasks, connected accounts.
inbox_rooms_list
Paginated triage view of message rooms across accounts, with search.
inbox_room_get
Full context for one room: counterparty, client history, CRM fields, notes, tasks, optionally messages. Long messages are shortened unless you pass fullMessages: true. Reading messages marks the room as read on Upwork, except when Lancer could not fetch the latest messages and answered with its stored copy (messages.stale).
inbox_room_attachment_get
Fetches the content of a chat or job post attachment. Long documents come back in 40,000 character parts (textOffset).