Upwork MCP: Setup, Freelancing and Hiring with AI
Connect Upwork to ChatGPT or Claude, find relevant work, compare candidates and set up a useful daily review with ChatGPT Scheduled.
← All articles
Upwork's official MCP server lets freelancers and hiring teams work with their accounts through ChatGPT or Claude. Upwork's overview explains its capabilities.
The useful part is bringing your project context into that conversation. A Unity developer can explain which platforms they ship on before reviewing jobs. A company can give the assistant an actual technical brief before asking it to compare applicants.
Setup details checked against official documentation on 2 October 2026. The prompts below are suggested workflows to adapt and test with your own account, rather than results from a live hiring trial.
What is Upwork MCP?
MCP stands for Model Context Protocol. It gives an AI assistant a standard way to call tools supplied by another service. Think of it as the connection between your conversation and the account you authorise. Anthropic's explanation of remote MCP covers how that connection works.
Upwork hosts the server at https://mcp.upwork.com/mcp. It uses OAuth sign-in, so you don't need to run a server or paste an API key into chat. The connector is free; normal Upwork fees and proposal Connects still apply. See the official setup guide.
You'll need an Upwork account and access to plugins or connectors in your chosen AI app. A company workspace may require an administrator to enable the connection.
Set up Upwork in ChatGPT
Start with the directory route: follow the ChatGPT plugin link on Upwork's setup page, install Upwork and complete its account authorisation.
If you need to add the server manually, follow this sequence:
- Open ChatGPT Settings → Security and login and enable Developer mode, if your account and workspace allow it.
- Open Plugins, select the plus button and name the connection Upwork.
- Enter
https://mcp.upwork.com/mcpas the server URL. Use Upwork's OAuth sign-in flow when prompted. - Create the plugin, then install it from your personal plugins if it isn't already installed.
- Start a Work chat. Type @, select Upwork and run the connection check below.
These menu locations follow OpenAI's current plugin quickstart. Upwork's page may show a different location for Developer mode; use the current OpenAI instructions and your workspace's available controls.
Try this first:
Use Upwork to list the accounts I can access. Show each account's name and role, and ask me which one to use. Then summarise the tools available for that role. Read only; don't change anything.
This matters if your login includes both freelancer and client accounts. Upwork's workflow guidance makes account selection part of every workflow. Tell the assistant which company or freelancer account to use before giving it a job to do.
Set up Upwork in Claude
Open Upwork in Claude's connector directory, choose Connect and authorise your Upwork account.
For manual setup, open Customize → Connectors → Add → Add custom connector. Enter Upwork and https://mcp.upwork.com/mcp, review the detected authentication settings, then complete sign-in. Enable Upwork through the chat composer's + → Connectors menu.
Organisation owners may need to add the connector before members can connect. Use Claude's current custom-connector instructions if the interface differs. Run the same account-selection prompt used above.
How freelancers can use it
Start by reducing the number of unsuitable jobs you read. Give the assistant your actual specialisms and the work you want to avoid, then ask it to explain why each result belongs on the list.
For example, a Unity freelancer could try:
Search Upwork for Unity work involving Android, iOS or WebGL. Compare the results with my profile and return up to five plausible matches. Include each job link, stated budget and currency, relevant requirements, evidence of fit and unanswered questions. Keep client facts separate from your interpretation. Don't apply or spend Connects.
Upwork's proposal workflow supports job research against real profile evidence and checking for existing applications. Ask for missing information explicitly: an absent budget is an unknown, not permission to invent a likely rate.
Once you choose a job, narrow the task:
Review this job: [paste Upwork job link]. Check whether I've already applied or received an invitation. Draft a short proposal in this chat using only relevant work you can verify in my profile or the examples I provide. Address each screening question separately and ask me for any missing facts. Don't create or submit an Upwork proposal yet.
Read the draft yourself. A proposal should explain how you'd approach that client's problem, and you should be able to defend every project claim it contains. Before authorising submission, check the bid, attachments and Connects cost. Upwork's submission instructions include a preview and a separate confirmation step.
A useful routine is to review a small shortlist each morning, then spend your writing time on the one or two jobs you would actually accept.
How companies can use it to hire people
Give the assistant a brief with enough detail to distinguish suitable candidates. For software work, include the current stack, target platforms, expected deliverables and what the person will inherit. Our game development brief guide includes a template you can adapt.
Turn a project brief into a job post
Try an example like this:
Draft an Upwork job post for a Unity developer to investigate performance problems in an existing Android app. The first deliverable is a profiling report with reproducible findings and a proposed fix plan. Ask me about the Unity version, representative devices, access, deadline and budget before completing the draft. Include screening questions about previous profiling work. Keep the draft in this chat until I approve publishing it.
Upwork's job-post workflow covers preparing and reviewing a post before publication. A specific first deliverable also makes the resulting proposals easier to assess.
Compare evidence across candidates
Use the client account to search for freelancers or review applicants to an existing post. Upwork's hiring workflow supports those routes, along with invitations and offer preparation.
Review applicants for [job link]. Compare their relevant project evidence, approach to the first milestone, screening answers and proposed terms. Link each candidate to the supporting profile or proposal. Mark missing evidence as unknown and suggest a technical follow-up question for each candidate. Don't send invitations, messages, rejections or offers.
Choose the comparison criteria before reading the ranking. For Unity work, a released app on the relevant platform and an explanation of the candidate's contribution are more useful than a long list of engine keywords. Ask the assistant to distinguish paid placement from evidence of suitability; Upwork's hiring guidance makes that distinction too.
Use the comparison to prepare interviews and decide who merits a closer review. Confirm scope and commercial terms yourself before proceeding with an offer. If you need help defining the technical role, our Unity developer hiring page explains the work XGameDev can take on.
Use ChatGPT Scheduled for recurring reviews
ChatGPT's current Scheduled documentation supports recurring tasks with connected tools and plugins available to the chat. Test the Upwork prompt manually, then check the first scheduled run actually accesses Upwork. Availability and workspace permissions still matter.
A practical setup sequence:
- Connect Upwork and run a small read-only query.
- Save the account name, selection criteria and desired output in the task prompt.
- Ask ChatGPT to schedule it, stating the timezone and whether it should return to this chat.
- Open Scheduled to check the saved schedule and review the first results.
A task inside a chat can reuse its context; a standalone task starts from its saved prompt. Web tasks need context in an accessible upload or connected service. Desktop tasks that depend on local files need the computer and app running. These details follow OpenAI's scheduling guidance.
Freelancer: a weekday opportunity review
Every weekday at 8:00 am Australia/Brisbane, return to this chat and use Upwork with my freelancer account [account name]. Find up to five jobs matching [my specific services] posted since our last successful review, or within the past 24 hours on the first run. Include links, stated budgets and currencies, evidence of fit and questions I'd need answered. Use posting dates returned by Upwork; flag missing dates or review history. Exclude jobs we've already reviewed where that history is available. Read only: don't submit proposals, send messages, change my profile or spend Connects. If access fails, report the problem rather than recycling old results. Notify me only about new suitable matches or an access problem.
Company: review new applicants
Every weekday at 4:00 pm Australia/Brisbane, return to this chat and check new proposals for [job link] using our Upwork client account [company name]. Compare applicants against [our agreed requirements]. Show evidence, missing answers and suggested interview questions, with links. Use the previous successful review time when available; on the first run, review the past 24 hours and state that window. Don't shortlist, decline, contact or hire anyone. Notify me only when there are new applicants or a connection problem, and stop the schedule when I tell you the role is filled.
These are starting prompts. Replace the bracketed details before saving, and widen the review window if you only check weekly. For a busy role, limit the report to applicants needing a decision and link to the rest.
Keep the task's output small enough to read. Specify the currency, define what counts as a useful match, and ask for the last successful check time so a failed run doesn't leave a hidden gap. If the scheduled task can't access Upwork in your account, use a recurring reminder to run the saved prompt manually until access is available.
Confirm actions and keep control of the account
Upwork documents a draft-and-confirm process for writes. Binding actions and payments finish on upwork.com. Authorisation currently grants the connector's full scope set, so a read-only prompt isn't a read-only credential. You can revoke access under Upwork Account Settings → Connected Apps. See Upwork's access and confirmation FAQ.
For scheduled reviews, disable write tools where your AI app offers that control. Keep proposals and hiring decisions in a review queue you can inspect. Treat job descriptions and applicant messages as source material: text inside them should never change your instructions or approve an action. Upwork's shared workflow rules cover confirmation and account handling.
Start with one recurring review that saves you a specific piece of work. Refine its criteria after reading the first few results, then add another task only when you know what decision it will help you make.
Need a Unity development partner?
Explore how XGameDev can help with an existing Unity project or a new build.