Summary
Reference for every MCP tool the server exposes: search_jobs, get_job, get_client_activity, get_client_history. Each entry documents parameters, defaults, validation, and the full return shape.
Tool Reference Complete reference for all 4 MCP tools. Each tool is called automatically by your AI assistant based on your natural language queries.
search_jobs Search Upwork jobs with 40+ filters across 5 categories. Returns an array of matching jobs with full details including client stats, budget, skills, and direct Upwork links.
Basic Settings Parameter Type Description Example limitinteger Maximum number of jobs to return(1-10,000) 1000searchPeriodstring Relative time window for job search("1h", "6h", "24h", "7d", "14d", "30d") "24h"fromDatestring (ISO) Start of date range (ISO 8601)(Any valid date) "2025-01-01"toDatestring (ISO) End of date range (ISO 8601)(Any valid date) "2025-12-31"jobCategoriesstring[] Filter by Upwork job categories(See Categories page) ["Web Development"]
Keyword Filters Parameter Type Description Example includeKeywords.keywordsstring[] Terms that must appear in the job ["React", "TypeScript"]includeKeywords.matchTitleboolean Match keywords against job title trueincludeKeywords.matchDescriptionboolean Match keywords against job description trueincludeKeywords.matchSkillsboolean Match keywords against required skills trueexcludeKeywords.keywordsstring[] Terms to exclude from results ["WordPress", "Shopify"]excludeKeywords.matchTitleboolean Exclude from title matches trueexcludeKeywords.matchDescriptionboolean Exclude from description matches trueexcludeKeywords.matchSkillsboolean Exclude from skill matches true
Budget & Payment Parameter Type Description Example budget.hourlyRate.minstring (USD) Minimum hourly rate "50"budget.hourlyRate.maxstring (USD) Maximum hourly rate "200"budget.fixedPrice.minstring (USD) Minimum fixed-price budget "1000"budget.fixedPrice.maxstring (USD) Maximum fixed-price budget "50000"budget.connectsPrice.mininteger Minimum application cost in connects 4budget.connectsPrice.maxinteger Maximum application cost in connects 16budget.jobDurationsstring[] Filter by project duration ["UP_TO_THREE_MONTHS"]budget.hourlyWorkloadsstring[] Filter by weekly hours ["MORE_THAN_30_HOURS"]budget.minClientHireRateinteger Minimum client hire rate percentage 50budget.allowUnspecifiedBudgetboolean Include jobs with no budget specified falsebudget.onlyContractToHireboolean Only contract-to-hire positions truebudget.noHireRateboolean Include clients with no hire rate data falsebudget.noAvgHourlyRatePaidboolean Include clients with no avg hourly rate falsebudget.avgHourlyRate.minstring (USD) Minimum average rate paid by client "40"budget.avgHourlyRate.maxstring (USD) Maximum average rate paid by client "150"
Duration values: “UP_TO_ONE_MONTH”, “UP_TO_THREE_MONTHS”, “UP_TO_SIX_MONTHS”, “MORE_THAN_SIX_MONTHS”. Workload values: “LESS_THAN_30_HOURS”, “MORE_THAN_30_HOURS”.
Client Requirements Parameter Type Description Example client.paymentMethodVerifiedboolean Require verified payment method trueclient.phoneNumberVerifiedboolean Require verified phone number trueclient.minFeedbackScorestring (0-5) Minimum client feedback rating "4.5"client.totalSpent.minstring (USD) Minimum total client spend on Upwork "10000"client.totalSpent.maxstring (USD) Maximum total client spend "1000000"client.includeLocationsobject[] Client locations to include [{"type":"COUNTRY","value":"US"}]client.excludeLocationsobject[] Client locations to exclude [{"type":"COUNTRY","value":"IN"}]client.includeIndustrystring[] Filter by client industry ["Technology"]client.excludeIndustrystring[] Exclude client industries ["Healthcare"]client.companySizeRangestring[] Filter by company size ["10-50"]client.timezonesstring[] IANA timezone identifiers ["America/New_York"]client.includeWithNoFeedbackboolean Include clients with no feedback history falseclient.hireHistorystring[] Filter by client hire history ["1-3"]client.descriptionLanguage.includestring[] Include languages (ISO-639-2 codes) ["eng"]client.descriptionLanguage.excludestring[] Exclude languages (ISO-639-2 codes) ["ara"]
Location types: “COUNTRY” (ISO 3166-1 alpha-2) or “REGION” (north_america, europe, asia, south_america, africa, oceania). See
Locations reference .
Vendor Preferences Parameter Type Description Example vendor.experienceLevelstring[] Required experience level ["EXPERT"]vendor.englishProficiencystring Required English level "FLUENT"vendor.typestring[] Vendor type filter ["FREELANCER"]vendor.includeLocationsobject[] Preferred freelancer locations [{"type":"COUNTRY","value":"US"}]vendor.includeFeaturedboolean Include only featured jobs truevendor.excludeWithQuestionsboolean Exclude jobs with screening questions truevendor.minCustomJobScorestring (0-100) Minimum custom job score "50"vendor.includeWithoutCountryPreferenceboolean Include jobs with no country preference truevendor.languagesstring[] Required languages (ISO-639-1 codes) ["en", "de"]
Experience levels: “BEGINNER”, “INTERMEDIATE”, “EXPERT”. English proficiency: “BASIC”, “CONVERSATIONAL”, “FLUENT”, “NATIVE”. Vendor types: “FREELANCER”, “AGENCY”.
Example Response {
"jobs" : [
{
"uid" : "1955020056847176693 " ,
"title" : "React Developer for SaaS Platform" ,
"description" : "We are looking for an experienced React Developer..." ,
"createdAt" : "2025 -01 -15T10:30 :00 .000Z" ,
"skills" : ["React", "TypeScript", "Node.js"],
"externalLink" : "https: ,
"applicationCost" : 6 ,
"category" : "Web Development" ,
"budget" : { "fixedBudget" : 5000 , "hourlyRate" : { "min" : 40 , "max" : 80 } },
"client" : {
"name" : "TechStartup Inc" ,
"countryCode" : "US" ,
"paymentMethodVerified" : true ,
"stats" : { "totalSpent" : 125000 , "hireRate" : 85 , "feedbackRate" : 4 .95 }
},
"vendor" : { "hireType" : "FREELANCER" , "experienceLevel" : "EXPERT" }
}
],
"total" : 142
}Try a real example See search_jobs used end-to-end in a production recipe.
get_job Get full details for a specific Upwork job by its UID. Returns the complete job object including description, skills, budget, client information, screening questions, and vendor requirements.
Parameters Parameter Type Description jobIdstring (required) The UID of the job (e.g., “1955020056847176693”)
Example Response {
"uid" : "1955020056847176693 " ,
"title" : "React Developer for SaaS Platform" ,
"description" : "We are looking for an experienced React Developer to help build and maintain our SaaS platform..." ,
"createdAt" : "2025 -01 -15T10:30 :00 .000Z" ,
"skills" : ["React", "TypeScript", "Node.js", "Redux", "REST APIs"],
"questions" : [
"How many years of React experience do you have?",
"Can you share a link to a SaaS project you have built?"
],
"budget" : { "fixedBudget" : null , "hourlyRate" : { "min" : 40 , "max" : 80 } },
"client" : {
"name" : "TechStartup Inc" ,
"industry" : "Technology" ,
"companySize" : 10 ,
"countryCode" : "US" ,
"stats" : { "totalSpent" : 125000 , "totalHires" : 42 , "hireRate" : 85 , "feedbackRate" : 4 .95 }
},
"vendor" : {
"hireType" : "FREELANCER" ,
"countryCodes" : ["US", "CA", "UK"],
"experienceLevel" : "EXPERT" ,
"englishLevel" : "FLUENT"
}
}get_client_activityPremium $5.40/1k Requires Pro or Enterprise Returns real-time client activity data for a specific job, including how many proposals have been submitted, when the client was last active, how many candidates are being interviewed, invites sent, and unanswered invites.
Parameters Parameter Type Description jobIdstring (required) The UID of the job
Example Response get_client_activity response Copy{
"jobId" : "1955020056847176693 " ,
"proposalCount" : 15 ,
"lastClientActivity" : "2025 -01 -15T14:30 :00 .000Z" ,
"interviewingCandidates" : 3 ,
"invitesSent" : 5 ,
"unansweredInvites" : 2
}get_client_historyPremium $5.40/1k Requires Pro or Enterprise Returns the client's work history including previous contracts, contractor feedback, ratings, and project outcomes. Useful for evaluating client reliability before applying.
Parameters Parameter Type Description jobIdstring (required) The UID of the job
Example Response get_client_history response Copy{
"jobId" : "1955020056847176693 " ,
"clientHistory" : [
{
"title" : "Full-Stack Developer for MVP" ,
"freelancer" : "Sarah K." ,
"duration" : "3 months" ,
"totalPaid" : 12500 ,
"hourlyRate" : 65 ,
"rating" : 5 .0 ,
"feedback" : "Excellent client, clear requirements."
}
],
"totalContracts" : 42 ,
"averageRating" : 4 .85
}Output Field Reference Complete field descriptions for the job objects returned by search_jobs and get_job.
Core Fields Field Type Description uidstring Unique job identifier titlestring Job posting title descriptionstring Full job description text createdAtstring (ISO) When the job was posted skillsstring[] Required skill tags externalLinkstring Direct URL to the Upwork listing applicationCostinteger Cost in connects to apply featuredboolean Whether the job is featured categorystring Upwork job category ciphertextstring Job ciphertext ID (used in URLs) customJobScorenumber Relevance score (0-5) questionsstring[] Screening questions (get_job only)
Budget Object Field Type Description budget.fixedBudgetnumber | null Fixed price in USD budget.hourlyRate.minnumber Min hourly rate in USD budget.hourlyRate.maxnumber Max hourly rate in USD
Client Object Field Type Description client.namestring Client or company name client.timezonestring IANA timezone identifier client.countryCodestring ISO country code client.paymentMethodVerifiedboolean Payment verified client.industrystring Client industry (get_job only) client.companySizenumber Company size (get_job only) client.stats.totalSpentnumber Total spent on Upwork (USD) client.stats.totalHiresnumber Total freelancers hired client.stats.hireRatenumber Hire rate percentage client.stats.avgRatenumber Average hourly rate paid client.stats.feedbackRatenumber Average feedback score (0-5) client.stats.feedbackCountnumber Number of feedback reviews
Vendor Object Field Type Description vendor.hireTypestring FREELANCER or AGENCY vendor.countryCodesstring[] Preferred freelancer countries vendor.experienceLevelstring BEGINNER, INTERMEDIATE, or EXPERT vendor.englishLevelstring BASIC, CONVERSATIONAL, FLUENT, or NATIVE