voyagier-cliCAUTION
Search, plan, and book real travel from the command line or any AI agent. Flights, hotels, activities — price-gated booking, quotes, MCP server built in.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://github.com/Voyagier-Travel/voyagier-cli/actions/workflows/tests-and-coverage.yaml) [](https://www.npmjs.com/package/@voyagier/cli) [](https://www.npmjs.com/package/@voyagier/cli) [](https://github.com/Voyagier-Travel/voyagier-cli#connect-an-ai-agent) [](https://github.com/Voyagier-Travel/voyagier-cli/blob/main/LICENSE)
Plan, price and book real trips from your terminal. Everything syncs to voyagier.com.
The CLI is a shell for the Voyagier MCP server: one command per tool. Every trip-planning command is one MCP tool — voyagier -- — built at runtime from the server's tool list at https://mcp.voyagier.com/api/mcp. The same tools power claude.ai, Claude Desktop and every other MCP client, so there is one implementation of every verb and a tool published on the server shows up in your terminal without an upgrade. For hosts that only speak stdio, voyagier mcp is a proxy for the same server.
npm install -g voyagier # or the canonical package: @voyagier/cli voyagier auth login # browser flow; keeps the token out of shell history voyagier doctor # credentials, MCP connection, tool count, version voyagier mcp install claude-code # point an MCP client at the hosted server (also: cursor, claude-desktop)
voyagier is a convenience alias that tracks the latest compatible @voyagier/cli release. Pinning an exact version? Use the canonical package: npm install -g @voyagier/cli@.
No install permissions (sandboxed agent, CI)? Every command works zero-inst
da2a968ff413OBSERVED · 2026-10-11Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add cli --env VOYAGIER_TOKEN=${VOYAGIER_TOKEN} -- npx -y @voyagier/[email protected] mcpExposed tools (3)
3 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
a | read | first |
badname | read | real |
evil_tool | read | Desc \u001b]0;pwned\u0007 here |
Trust audit
CAUTIONgrade B · trust 81/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (4 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (18)
console.log(` Token: ${chalk.dim(masked)}`);console.log(` 2. Generate a Personal Access Token`);
console.log(` token: ${chalk.dim(maskToken(token))}`);console.log(` token: ${chalk.dim(maskToken(token))}`);| VOYAGIER_TOKEN=placeholder VOYAGIER_MCP_URL=http://127.0.0.1:1/api/mcp node "$stage/server/node_modules/@voyagier/cli/dist/index.js" mcp 2>"$stage/smoke.stderr" \
const TOKEN = "test_fixture_token_9876";
import { makeMockRemote, jsonResponse } from "../../test/mock-remote.js";import { makeMockRemote } from "../../test/mock-remote.js";import { makeMockRemote, jsonResponse, MOCK_REMOTE_URL, type MockRemoteOptions } from "../../test/mock-remote.js";const pkg = JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf-8")) as { version: string };profile: { location: "Beacon Hill", city: { name: "Boston" }, country: { name: "USA" } },location: "Beacon Hill",
it("accepts http://127.0.0.1 (loopback dev exemption)", () => {expect(() => assertSecureApiUrl("http://127.0.0.1:8080")).not.toThrow();@voyagier/cli
@modelcontextprotocol/sdk, chalk, commander, zod, @golevelup/ts-jest, @jest/globals, @types/jest, @types/node
Option names, hotel names, plan titles, descriptions and error details originate from third-party suppliers and user-entered fields. The CLI strips ANSI escape sequences and control characters from ev
Once your account is granted API access, mint a personal access token at [travel.voyagier.com/me/settings/tokens](https://travel.voyagier.com/me/settings/tokens) and you're in. Two account tiers use t
Gates applied: no_behavioural_pass.
da2a968ff413full audit observations/trust-audit/mcp-server/voyagier-travel__voyagier-cli.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-11 | da2a968ff413 | CAUTION | B | 81 | first audit |
Questions
What is the voyagier-cli MCP server?
Search, plan, and book real travel from the command line or any AI agent. Flights, hotels, activities — price-gated booking, quotes, MCP server built in.
What tools does voyagier-cli expose?
3 in total: 3 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is voyagier-cli safe to connect to an agent?
With care. The audit graded it B (81/100) and found 18 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does voyagier-cli need?
It reads DD_API_KEY and VOYAGIER_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does voyagier-cli run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as @voyagier/cli at 4.4.0.
How current is this page?
The grade is for one exact copy of the source (da2a968ff413), read on 2026-10-11. The repository is watched and re-audited when it changes.