Skip to main content
Glama
weihermans

volo-mcp

by weihermans

volo-mcp

npm version license MCP

Give your agent VOLO's evidence base on how AI, robotics and automation are changing specific jobs — task by task, with sources.

VOLO publishes, for 70 occupations and 14 university majors, what is changing in a specific job, what the evidence for that is, and what the evidence does not establish. Every judgement is labelled evidenced or inferred; every verified record carries its source, scope and dates. This package exposes all of it to any MCP client.

v2.0.0 is a different product from v1.x. The 1.x releases were an aviation booking server for an earlier VOLO; that product was retired in September 2026 and its endpoints answer 410. If you installed 1.x, upgrade — the tool names, schemas and purpose have all changed.

Two ways to connect

Remote — any MCP client that speaks Streamable HTTP (recommended):

https://mcp.flyvolo.ai/mcp

Public, read-only, no key, JSON-RPC 2.0, protocol 2025-06-18. Registry name ai.flyvolo/knowledge.

Local — clients that only speak stdio (Claude Desktop, Cursor, Claude Code, CLI tools):

npx volo-mcp

This package is a thin bridge: it forwards every request to the remote server and holds no logic of its own, so it can never drift from what flyvolo.ai shows. Override the endpoint with VOLO_MCP_URL if you run a mirror.

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) · %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "volo": { "command": "npx", "args": ["-y", "volo-mcp"] }
  }
}

Cursor · Claude Code · other stdio clients

Same shape: command npx, args ["-y", "volo-mcp"].

Claude API (MCP connector — no local install)

{
  "mcp_servers": [{ "type": "url", "url": "https://mcp.flyvolo.ai/mcp", "name": "volo" }],
  "tools": [{ "type": "mcp_toolset", "mcp_server_name": "volo" }]
}

with beta header anthropic-beta: mcp-client-2025-11-20. No authorization_token is needed.

OpenAI Responses API

{ "type": "mcp", "server_label": "volo", "server_url": "https://mcp.flyvolo.ai/mcp", "require_approval": "never" }

Related MCP server: mcp-travelcode

Tools

Sixteen, all read-only. locale accepts en or zh (the site itself is in en · zh · ja · es · pt; tool output in the other three is on the roadmap). Start with resolve_occupation_or_major whenever a person names their job or degree.

Tool

Arguments

What it returns

resolve_occupation_or_major

query, locale?

Resolve a job title, a company's internal name for a role, a nickname or a degree name to a canonical VOLO entity.

search

query, locale?, limit?

Search occupations, majors and verified change records by keyword.

get_occupation

slug, locale?

Full task-level assessment of one occupation.

get_role_tasks

slug, locale?

The task breakdown for one occupation.

find_evidence

slug, taskId?, locale?

Verified evidence records for an occupation, optionally for one task.

get_change

id, locale?

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.

find_affected

id, locale?

Which occupation and which specific tasks a change record bears on.

get_change_history

slug, locale?

The verified change timeline for an occupation, oldest first.

find_transition_paths

slug, locale?

Options for someone in this occupation.

list_business_functions

locale?

For the business side: the functions a company is organised into, and which occupations sit in each.

get_major

slug, locale?

A degree and the occupations it feeds.

find_majors_for_occupation

slug, locale?

Which degrees lead into this occupation.

find_notes

query?, locale?

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.

get_note

slug, locale?

The full text of one note, section by section, each section with the verified records it rests on.

find_notes_for_occupation

slug, locale?

Which notes argue from this occupation's own records or task judgements.

describe_coverage

locale?

What VOLO covers and what it does not, including which occupations have no evidence yet.

Every task comes back with its basis and its limits; every record with its scope, stage and source tier. Carry those into the answer — an inferred judgement presented as a finding misrepresents the source.

What these tools will not return

  • A number of years. "How long do I have?" is answered with a signal the person can check, never a date.

  • A risk score, probability of job loss, or readiness rating for a person, occupation or major.

  • A recommendation about who to make redundant, or which vendor to buy.

  • A verdict on whether a forecast came true. Forecasts are recorded with who said them and when; the arithmetic is left to the reader.

These are enforced by the server's return types, not by a prompt.

MIT.

Available Tools

7 tools
check_empty_legsA

Check for discounted empty leg flights (repositioning flights at 50-75% off). Great for flexible travelers looking for deals.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion to search for empty legs (default: any)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It only states it checks for discounted flights without explaining return format, limitations, or any side effects. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first defines action and benefit, second specifies target audience. Efficient and front-loaded with no superfluous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional enum parameter and no output schema, the description is adequate. It could improve by hinting at return type (e.g., list of flights) but not strictly necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with region description. The tool description adds no additional parameter meaning beyond what's already in schema, earning a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Check for discounted empty leg flights' with specific discount range (50-75% off), targeting flexible travelers. This distinguishes it from sibling tools like search_flights which are for regular flights.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Great for flexible travelers looking for deals' provides context on when to use, but lacks explicit guidance on when not to use or direct comparison with alternatives like search_flights.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_aircraftA

Compare 2-3 aircraft side-by-side. Shows specs, pricing, and best use cases.

ParametersJSON Schema
NameRequiredDescriptionDefault
aircraftYesAircraft names to compare (e.g., ["Gulfstream G650ER", "Global 7500"])

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description should disclose behavioral traits. It mentions output (specs, pricing, use cases) but does not confirm read-only nature or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero wasted words. Front-loaded with purpose and clear scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool, the description covers purpose and output hints. Could be improved by mentioning read-only behavior or more details on the output format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the parameter description already explains the format. The tool description adds no new semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'compare' and the resource 'aircraft', including the range '2-3' and side-by-side format. This distinguishes it from siblings like check_empty_legs or get_fleet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for comparing aircraft but does not explicitly state when to use versus alternatives. No exclusions or alternative tools are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_destinationsA

Explore popular private aviation destinations by region. Returns city names and regional highlights.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoRegion to browse (default: all)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Only states it returns city names and highlights; no mention of read-only nature, authentication, rate limits, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with verb and object, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple exploration tool with one parameter and no output schema. Minor gaps: no mention of result format, pagination, or limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter with description and enum. Description adds 'popular private aviation' context but does not significantly enhance parameter meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Explore' and resource 'popular private aviation destinations', and specifies output 'city names and regional highlights'. Distinguishes from siblings like search_flights or get_fleet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for browsing destinations by region but lacks explicit guidance on when to use this versus sibling tools or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fleetA

Browse VOLO's fleet of 15 private jets across 4 categories. Filter by category, passenger count, or range requirements.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoAircraft category (default: all)
min_passengersNoMinimum passenger capacity
min_range_kmNoMinimum range in kilometers

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It indicates a read-only 'browse' operation but does not mention what fields are returned, whether results are paginated, or the default behavior when no filters are applied. The lack of output schema further limits transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded with the primary action and resource. Every word earns its place with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose and filtering capabilities but omits what the output contains (e.g., jet details like model, capacity, range). With no output schema, this missing context reduces completeness for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds no additional meaning beyond the parameter descriptions. It merely restates the filter options already documented in the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Browse VOLO's fleet') and the resource (15 private jets across 4 categories). It distinguishes itself from sibling tools like search_flights and compare_aircraft, which address different use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for browsing and filtering aircraft, but does not explicitly state when to use this tool versus alternatives (e.g., compare_aircraft). There is no guidance on when not to use it or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quoteB

Get a detailed pricing estimate for a private jet route. Returns itemized cost breakdown by aircraft category.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesDeparture city
toYesArrival city
passengersNoNumber of passengers (default: 4)
round_tripNoWhether this is a round trip (default: false)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full burden. It does not disclose whether the tool is read-only, requires authentication, or has destructive side effects. The verb 'Get' implies read-only, but this is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose, and contains no extraneous information. Every sentence is essential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 4 parameters and no output schema, the description fails to explain what 'itemized cost breakdown' entails, how pricing is calculated, or what factors influence the estimate. An agent would lack sufficient context to interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The tool description does not add meaning beyond what is already in the schema's parameter descriptions (e.g., 'Departure city', 'Arrival city').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a detailed pricing estimate for a private jet route' and specifies the output ('itemized cost breakdown by aircraft category'), which distinguishes it from sibling tools like 'compare_aircraft' and 'submit_quote'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'check_empty_legs' or 'compare_aircraft'. The description lacks any context about prerequisites or typical workflow steps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_flightsA

Search available private jet aircraft for a city pair. Returns matching aircraft with estimated flight times and cost ranges. Use this when a user mentions a route (e.g., 'New York to London').

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesDeparture city (e.g., 'New York', 'Beijing', 'London')
toYesArrival city (e.g., 'Aspen', 'Tokyo', 'Dubai')
passengersNoNumber of passengers (default: 4)
categoryNoAircraft category filter

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully covers behavioral aspects by stating it returns 'matching aircraft with estimated flight times and cost ranges,' indicating a read-only search operation. No contradictions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the action and purpose. Every sentence provides value with no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description adequately covers purpose, usage, and output. No output schema exists, but the description mentions 'estimated flight times and cost ranges,' which is sufficient for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 4 parameters have 100% schema description coverage, so the baseline is 3. The description adds no additional meaning beyond the schema, as it only reinforces the city pair concept already defined in the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Search') and resource ('available private jet aircraft for a city pair'), clearly stating what the tool does. It distinguishes from sibling tools like get_destinations and get_fleet by focusing on route-based search and returning estimated flight times and cost ranges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Use this when a user mentions a route (e.g., 'New York to London').' This clearly indicates the triggering condition, though it does not mention when not to use, which is acceptable given the straightforward context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_quoteA

Submit a formal quote request to VOLO's operations team. They respond within 15 minutes during business hours. Requires route, date, and passenger count at minimum.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesDeparture city
toYesArrival city
dateYesDeparture date (YYYY-MM-DD or natural language)
passengersYesNumber of passengers
nameYesClient name
emailNoClient email
phoneNoClient phone number
round_tripNoWhether this is a round trip
return_dateNoReturn date for round trips
notesNoSpecial requests (pets, catering, luggage, etc.)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description provides useful behavioral information: the action is a submission (write operation), the team will respond within 15 minutes, and the tool has minimum input requirements. It could be more explicit about side effects (e.g., record creation) or asynchronous behavior, but it covers key behavioral traits adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences: one stating the core action and one providing response time and minimum input requirements. There is no redundant information, and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 parameters, no output schema, and no annotations, the description covers the core purpose and minimum requirements but lacks information about the response format (e.g., returns quote ID or confirmation), whether the operation is synchronous or asynchronous, and any post-submission behavior. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the descriptions for each parameter are already present in the input schema. The tool description adds minimal additional semantics beyond repeating the minimum requirements. The baseline score of 3 is appropriate as the schema already provides clear meaning for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'submit' and the resource 'formal quote request', distinguishing it from sibling tools like get_quote and search_flights. It also specifies the target team (VOLO's operations team), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the minimum required inputs (route, date, passenger count) which aligns with the schema's required fields. It also sets expectations about response time (15 minutes during business hours). However, it lacks explicit guidance on when to use this tool versus alternatives, but the context is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.1
    • First observedcheck_empty_legs
    • First observedcompare_aircraft
    • First observedget_destinations
    • First observedget_fleet
    • First observedget_quote
    • First observedsearch_flights
    • First observedsubmit_quote

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: empty legs, aircraft comparison, destination exploration, fleet browsing, pricing estimation, route search, and formal quote submission. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (check_empty_legs, compare_aircraft, get_destinations, etc.) with clear, descriptive verbs.

Tool Count5/5

7 tools is ideal for a private aviation server. It covers all essential actions without being too sparse or overwhelming.

Completeness4/5

The tool set covers the full workflow from exploration to formal booking submission. Minor gap: no tool for updating or cancelling a quote, but the core lifecycle is well-represented.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to search flights and hotels, manage bookings, check flight status, and access delay statistics through the TravelCode corporate travel API, all via natural language conversations.
    8 npm
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides AI assistants with access to real-time flight data, airport schedules, delays, and aviation reference databases through natural language queries.
    12
    130 npm
    MIT