volo-mcp
by weihermans
README.md
# volo-mcp
[](https://www.npmjs.com/package/volo-mcp)
[](./LICENSE)
[](https://modelcontextprotocol.io)
**Give your agent VOLO's evidence base on how AI, robotics and automation are changing specific jobs — task by task, with sources.**
[VOLO](https://flyvolo.ai) 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):**
```bash
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):
```json
{
"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)
```json
{
"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
```json
{ "type": "mcp", "server_label": "volo", "server_url": "https://mcp.flyvolo.ai/mcp", "require_approval": "never" }
```
## 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.
## Links
- Site: <https://flyvolo.ai> · How to read it: <https://flyvolo.ai/llms.txt>
- Method and evidence stages: <https://flyvolo.ai/en/method>
- Source: <https://github.com/weihermans/VOLO> (server) · this bridge: <https://github.com/weihermans/volo-mcp>
MIT.
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