{"serverId":"mcp-registry/ai.flyvolo/knowledge","tools":[{"name":"describe_coverage","fixed":{"name":"describe_coverage","description":"What VOLO covers and what it does not: the full list of covered occupations and degrees (slug and name), which occupations have no evidence yet, and the counts. Call this when someone asks whether their job is covered, and whenever resolve_occupation_or_major returns null — then decide from the list which entry, if any, the person means. The answer is a fact about this site rather than a guess about their job.","inputSchema":{"type":"object","properties":{"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"find_affected","fixed":{"name":"find_affected","description":"Which occupation and which specific tasks a change record bears on.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"find_evidence","fixed":{"name":"find_evidence","description":"Verified evidence records for an occupation, optionally for one task. Each record carries its scope (where it applies), its stage, whether that stage can move a task judgement at all, and its source tier. Repeat the scope rather than smoothing it away.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"},"taskId":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"find_majors_for_occupation","fixed":{"name":"find_majors_for_occupation","description":"Which degrees lead into this occupation.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"find_notes","fixed":{"name":"find_notes","description":"VOLO's long-form answers to the big questions — how many jobs AI has actually taken, what actually gets automated, how long someone has, what AI law already changed, where AI lands in a company. Call this FIRST for any question that is about the whole picture rather than one occupation: those are exactly the questions you can answer fluently without evidence, and these notes are the evidence. Each result carries the note's own limits.","inputSchema":{"type":"object","properties":{"query":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":160,"tokensAfter":160},{"name":"find_notes_for_occupation","fixed":{"name":"find_notes_for_occupation","description":"Which notes argue from this occupation's own records or task judgements. Use it to point someone from their own page to the wider answer.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"find_transition_paths","fixed":{"name":"find_transition_paths","description":"Options for someone in this occupation. Every path carries its real constraints (time, pay cut, seniority) and one action they can take this week that produces information. Never present a path without its constraint.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"get_action_brief","fixed":{"name":"get_action_brief","description":"Use this when a person asks what they should do about AI or automation in their job (\"I'm an accountant, how do I stay employable?\"). One call returns, task by task: where the task is heading and how strong the evidence is; which laws, regulators, courts or collective agreements keep that task (or its signature) with a person; which employers or regulators have already moved it; and transition paths, each with its real constraints and one thing to check this week. Pass the job title as the perso","inputSchema":{"type":"object","required":["occupation"],"properties":{"locale":{"type":"string"},"taskIds":{"type":"array","items":{"type":"string"}},"occupation":{"type":"string","description":"Job title in the person's words, or an occupation slug"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":223,"tokensAfter":223},{"name":"get_change","fixed":{"name":"get_change","description":"One verified change record by id, with VOLO's reading: what it means, what it does not yet establish, and what a reader can verify themselves.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"get_change_history","fixed":{"name":"get_change_history","description":"The verified change timeline for an occupation, oldest first.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":63,"tokensAfter":63},{"name":"get_major","fixed":{"name":"get_major","description":"A degree and the occupations it feeds. There is no score for a major and never will be — answer 'should I switch majors' by pointing at where it leads and what transfers.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":91,"tokensAfter":91},{"name":"get_note","fixed":{"name":"get_note","description":"The full text of one note, section by section, each section with the verified records it rests on. Use it when you need to quote or cite rather than summarise.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"get_occupation","fixed":{"name":"get_occupation","description":"Full task-level assessment of one occupation. Every task carries direction, basis (evidenced vs inferred) and limits — what that judgement does NOT establish. The impact index is not a probability of job loss and never appears without its confidence and assessment date.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"get_ontology","fixed":{"name":"get_ontology","description":"Where an occupation or a degree sits in the official classifications (U.S. Department of Labor O*NET 31.0; U.S. Department of Education CIP–SOC crosswalk; the EU's ESCO, the ILO's ISCO-08 and Singapore's SSOC 2024): the matching codes with how well each fits, the skills, knowledge and work activities O*NET rates highest (as O*NET's own importance words, no numbers), related occupations and which degrees lead to it; each of this site's tasks aligned to O*NET detailed work activities (or why none ","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":184,"tokensAfter":184},{"name":"get_role_tasks","fixed":{"name":"get_role_tasks","description":"The task breakdown for one occupation. The unit of assessment is the task, never the job title.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"list_business_functions","fixed":{"name":"list_business_functions","description":"For the business side: the functions a company is organised into, and which occupations sit in each. Use this when someone describes a company rather than themselves.","inputSchema":{"type":"object","properties":{"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"query_ontology","fixed":{"name":"query_ontology","description":"Walk the VOLO Ontology directly. No arguments: the object types and link types. `type`: the objects of that type. `type` + `id`: one object's properties and everything it links to, grouped by link. Add `link` (and `direction`: out|in) to follow one link. Types include Occupation, Task, TaskJudgement, Evidence, Regulation, WorkActivity and ClassificationConcept. Read-only; judgements keep their basis and limits, evidence its scope — carry them into the answer. No aggregate score exists.","inputSchema":{"type":"object","properties":{"id":{"type":"string"},"link":{"type":"string"},"type":{"type":"string"},"locale":{"type":"string"},"direction":{"enum":["out","in"],"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":203,"tokensAfter":203},{"name":"resolve_occupation_or_major","fixed":{"name":"resolve_occupation_or_major","description":"Resolve a job title, a company's internal name for a role, a nickname or a degree name to a canonical VOLO entity. Call this FIRST whenever a person names their job. It matches names; it does not read sentences — so work out yourself which job the person means and pass only that title, in the singular (\"taxi driver\", not \"Will robotaxis replace taxi drivers?\"). Returns a match field of exact or approximate — when it is approximate, say which entity you read the question as. Null means this name ","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":189,"tokensAfter":189},{"name":"search","fixed":{"name":"search","description":"Search occupations, majors and verified change records by keyword. Returns entries, not judgements.","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"number"},"query":{"type":"string"},"locale":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":78,"tokensAfter":78}],"toolsChanged":19,"tokensSaved":0,"todo":[{"tool":"describe_coverage","params":["locale"]},{"tool":"find_affected","params":["id","locale"]},{"tool":"find_evidence","params":["slug","locale","taskId"]},{"tool":"find_majors_for_occupation","params":["slug","locale"]},{"tool":"find_notes","params":["query","locale"]},{"tool":"find_notes_for_occupation","params":["slug","locale"]},{"tool":"find_transition_paths","params":["slug","locale"]},{"tool":"get_action_brief","params":["locale","taskIds"]},{"tool":"get_change","params":["id","locale"]},{"tool":"get_change_history","params":["slug","locale"]},{"tool":"get_major","params":["slug","locale"]},{"tool":"get_note","params":["slug","locale"]},{"tool":"get_occupation","params":["slug","locale"]},{"tool":"get_ontology","params":["slug","locale"]},{"tool":"get_role_tasks","params":["slug","locale"]},{"tool":"list_business_functions","params":["locale"]},{"tool":"query_ontology","params":["id","link","type","locale","direction"]},{"tool":"resolve_occupation_or_major","params":["query","locale"]},{"tool":"search","params":["limit","query","locale"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}