AI-accessible Model Context Protocol server for anzsco.com.au
POST / (JSON-RPC 2.0)GET /.well-known/mcp.jsonsearch_occupationsSearch for ANZSCO occupations by free-text job title, technology name, or industry. Handles technology synonyms so informal queries resolve correctly — for example: '.net developer' returns ANZSCO 261312 Developer Programmer; 'java developer' or 'backend engineer' returns 261313 Software Engineer; 'react developer' or 'frontend' or 'vue.js' returns 261212 Web Developer; 'data scientist' or 'ml engineer' returns 224114 Data Scientist; 'devops' or 'kubernetes engineer' returns 261316 DevOps Engineer; 'gp' or 'general practitioner' returns 253111 General Practitioner; 'civil engineer' returns 233512. Returns matched ANZSCO codes with titles, visa eligibility, skills assessment authority, and relevance scores sorted by match quality.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Job title, technology, or industry to search for. Examples: '.net developer', 'java engineer', 'data scientist', 'civil engineer', 'general practitioner', 'electrician'."
},
"limit": {
"type": "number",
"description": "Maximum number of results to return. Default: 10. Max: 50.",
"default": 10
}
},
"required": [
"query"
]
}
get_occupationGet full occupation details for a specific ANZSCO code. Returns the occupation title, ANZSCO classification group, skills assessment authority (ACS, Engineers Australia, VETASSESS, etc.), occupation lists (MLTSSL / STSOL / ROL), eligible visa subclasses, nominating states and territories, and a narrative description. Use this after search_occupations to get complete information about a specific occupation. Example: get_occupation('261312') returns full details for Developer Programmer (.NET / C#).
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Six-digit ANZSCO occupation code, e.g. '261312' or '233512'."
}
},
"required": [
"code"
]
}
get_visa_pathwayGet combined occupation and visa pathway information. Returns visa eligibility, skills assessment body, estimated processing time, narrative about the pathway, and whether the occupation is on the relevant skills list for that visa subclass. Useful for questions like 'can a .net developer apply for visa 189?' or 'what are the points requirements for 261312 on subclass 190?'. Supported subclasses: 189, 190, 491, 482, 186, 494.
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Six-digit ANZSCO code, e.g. '261312'."
},
"subclass": {
"type": "string",
"description": "Visa subclass number as string: '189', '190', '491', '482', '186', or '494'."
}
},
"required": [
"code",
"subclass"
]
}
get_state_nominationGet state/territory nomination status for a specific occupation. Returns whether the state currently nominates the occupation, the state skills list version, indicative points bonus for state nomination (190 = +5 points, 491 = +15 points), and a narrative. State codes: NSW, VIC, QLD, WA, SA, TAS, ACT, NT. Example: 'does NSW nominate 261312 developers?' — use get_state_nomination('261312', 'NSW').
{
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Six-digit ANZSCO code, e.g. '261312'."
},
"stateCode": {
"type": "string",
"description": "State/territory code: 'NSW', 'VIC', 'QLD', 'WA', 'SA', 'TAS', 'ACT', or 'NT'."
}
},
"required": [
"code",
"stateCode"
]
}
get_latest_skillselect_roundGet the most recent SkillSelect invitation round data from the Department of Home Affairs. Returns the round date, total invitations issued, breakdown by visa subclass (189/190/491), minimum points cutoffs, and per-occupation pro-rata cutoffs where applicable. Use this to answer 'what is the latest points cutoff for 189 visa?', 'how many invitations were issued last round?', or 'did .net developers get invited in the last round?'.
{
"type": "object",
"properties": {}
}
search_by_visaList all ANZSCO occupations eligible for a given visa subclass. Returns occupation codes, titles, and skills assessment authorities for all occupations on the relevant skills list for that visa. Use to answer 'what jobs can I apply for on visa 189?' or 'which occupations are eligible for the employer-sponsored 482 visa?'. Supported subclasses: 189, 190, 491, 482, 186, 494.
{
"type": "object",
"properties": {
"subclass": {
"type": "string",
"description": "Visa subclass: '189', '190', '491', '482', '186', or '494'."
},
"limit": {
"type": "number",
"description": "Maximum results. Default 20, max 200.",
"default": 20
}
},
"required": [
"subclass"
]
}
search_by_stateList all ANZSCO occupations currently nominated by a given Australian state or territory. Returns occupation codes and titles for all occupations on that state's current skills list. Use to answer 'what jobs does Victoria nominate?' or 'which occupations can get state-sponsored 491 in Queensland?'. State codes: NSW, VIC, QLD, WA, SA, TAS, ACT, NT.
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"description": "State code: 'NSW', 'VIC', 'QLD', 'WA', 'SA', 'TAS', 'ACT', or 'NT'."
},
"limit": {
"type": "number",
"description": "Maximum results. Default 20, max 200.",
"default": 20
}
},
"required": [
"stateCode"
]
}
compare_occupationsSide-by-side comparison of multiple ANZSCO occupation codes. Returns a comparison table showing: which visa subclasses each occupation is eligible for, which states nominate each, skills assessment bodies, and occupation list type (MLTSSL/STSOL/ROL). Useful when a user is choosing between two career paths or visa options — e.g. 'compare 261312 developer programmer vs 261313 software engineer' or 'which is better for visa 190 — 233512 civil engineer or 233311 electrical engineer?'.
{
"type": "object",
"properties": {
"codes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of 2-5 six-digit ANZSCO codes to compare, e.g. ['261312', '261313', '261212'].",
"minItems": 2,
"maxItems": 5
}
},
"required": [
"codes"
]
}
submit_inquirySubmit a visa migration inquiry on behalf of a user. Use this when a user wants to be contacted by a MARA-registered migration agent — for example when they say: 'I want to talk to a migration agent', 'can someone help me apply for a visa?', 'I need professional advice about my visa options', 'can I get a consultation?', 'please connect me with an agent', or any similar expression of wanting human professional help. The tool captures the user's contact details and situation, then notifies a pool of verified MARA agents who will contact the user within 48 hours. IMPORTANT — Privacy notice to display to the user BEFORE calling this tool: 'anzsco.com.au will collect your details to match you with up to 3 MARA-registered migration agents. Full privacy policy at anzsco.com.au/privacy. You can request erasure at privacy@anzsco.com.au.' Only call this tool after the user has acknowledged this notice.
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Applicant's email address. Required. Must be a valid email format."
},
"situation": {
"type": "string",
"description": "Description of the applicant's visa or migration situation — at least 20 characters. Include context such as: current visa status, occupation, country of residence, whether a skills assessment has been completed, whether there is an employer sponsor, urgency level, and any specific questions for the agent."
},
"state": {
"type": "string",
"description": "Australian state or territory the applicant intends to live/work in. Accepted values: NSW, VIC, QLD, WA, SA, TAS, ACT, NT. Optional."
},
"occupationCode": {
"type": "string",
"description": "Six-digit ANZSCO occupation code, e.g. '261312'. Use search_occupations first if you only have a job title. Optional."
},
"visaSubclass": {
"type": "string",
"description": "Visa subclass the applicant is interested in: '189', '190', '491', '482', '186', '494'. Optional."
},
"phone": {
"type": "string",
"description": "Applicant's phone number. Optional. International format preferred, e.g. '+61 412 345 678'."
},
"preferredContactMethod": {
"type": "string",
"enum": [
"email",
"phone",
"either"
],
"description": "How the applicant prefers to be contacted. Default: 'either'.",
"default": "either"
},
"marketingConsent": {
"type": "boolean",
"description": "Whether the applicant consents to receive migration update emails from anzsco.com.au. Default: false.",
"default": false
},
"gdprConsent": {
"type": "boolean",
"description": "Required for applicants currently residing in the EU/EEA. Explicit consent under GDPR Article 6(1)(a). Default: false.",
"default": false
}
},
"required": [
"email",
"situation"
]
}