loading…
Search for a command to run...
loading…
Phase 2.x — MCP (Model Context Protocol) server scaffolding for the catalog plane. Wraps the catalog plane's APIs as agent-callable tools so AI assistants (Clau
Phase 2.x — MCP (Model Context Protocol) server scaffolding for the catalog plane. Wraps the catalog plane's APIs as agent-callable tools so AI assistants (Claude, ChatGPT plugins, custom agents) connect with tenant-scoped credentials and call tools rathe
Voyant is an open-source framework for travel companies. It ships starter apps, durable workflow orchestration, and a wide set of headless domain modules — CRM, products, availability, bookings, finance, distribution, resources, legal, charters, cruises, and more — that you can compose into your own travel platform.
npm install -g @voyantjs/cli
You can also use pnpm add -g @voyantjs/cli.
voyant new my-travel-app --template dmc
cd my-travel-app
pnpm install
Built-in starters are downloaded from the matching GitHub Release for your installed CLI version. You can also point --template at a custom local starter directory.
cp .dev.vars.example .dev.vars
Set your secrets in .dev.vars and provide DATABASE_URL in .env for Drizzle and local worker processes.
pnpm db:migrate
pnpm dev
Voyant ships two first-party starters:
| Starter | Purpose | Stack |
|---|---|---|
| templates/dmc | Destination management company workflows | Cloudflare Workers, TanStack Start, Hono, Better Auth, Drizzle |
| templates/operator | Tour operator workflows | Cloudflare Workers, TanStack Start, Hono, Better Auth, Drizzle |
crm-ui, products-ui, bookings-ui, …) for installable UI blockscrm-react, products-react, bookings-react, …) that wrap the HTTP contract of each moduleStep-based workflows with durable state, retries, and a shared wire protocol — runnable on Cloudflare Workers + Durable Objects, Node, or Voyant Cloud.
Reference apps under apps/ compose these into deployable shapes — workflows-orchestrator-worker, workflows-tenant-worker, workflows-selfhost-cloudflare-worker, workflows-selfhost-node-server, workflows-node-step-container, and workflows-local-dashboard.
Each domain module has matching -ui (shadcn registry source) and -react (hooks + provider) packages — for example @voyantjs/crm-ui + @voyantjs/crm-react, @voyantjs/bookings-ui + @voyantjs/bookings-react, and so on across products, finance, availability, distribution, markets, pricing, legal, resources, facilities, hospitality, suppliers, identity, external-refs, charters, cruises, extras, sellability, booking-requirements. The shared admin shell lives in @voyantjs/admin; cross-cutting primitives in packages/ui.
This repository is the workspace that powers the framework, starters, runners, and examples.
| Area | What it contains |
|---|---|
| packages/* | Reusable business logic, schemas, services, transport adapters, and integrations |
| packages/plugins/* | First-party plugin bundles (payments, invoicing, CMS sync) |
| templates/* | First-party starter apps |
| apps/dev | Internal playground for broader module coverage |
| apps/registry | Hosted shadcn registry for installable Voyant UI components |
| apps/workflows-* | Reference orchestrator/tenant/self-host workers and the local workflows dashboard |
| apps/scripts | Workspace scripts (e.g. seed operator data) |
| examples/* | Reference apps that consume Voyant surfaces (e.g. nextjs-booking-portal) |
| Command | Description |
|---|---|
pnpm install |
Install workspace dependencies |
pnpm build |
Build the workspace with Turborepo |
pnpm typecheck |
Run workspace typechecks |
pnpm test |
Run workspace tests |
pnpm test:bookings:integration |
Start or reuse the Docker test Postgres, ensure the bookings test schema, and run the bookings integration files serially |
pnpm lint |
Run Biome checks across the repo |
pnpm generate:schema-docs |
Regenerate SCHEMA.md from the Drizzle table definitions |
pnpm registry:build |
Aggregate per-package shadcn registries into apps/registry/public/r/ |
pnpm -F dmc dev |
Start the DMC template on port 3100 |
pnpm -F operator dev |
Start the operator template on port 3300 |
pnpm -F dev dev |
Start the internal playground on port 3200 |
The shared Docker test Postgres is defined in docker-compose.test.yml.
5436TEST_DATABASE_PORTTEST_DATABASE_URLFor the bookings package, contributors can use:
pnpm test:bookings:integration
That helper starts or reuses the Docker test DB, applies template migrations, ensures the current additive bookings-session table exists, and runs the bookings DB-backed integration files serially to avoid deadlocks from concurrent table truncation.
Voyant keeps a strict boundary:
packages/* hold reusable business logic, schemas, services, routes, adapters, and contractstemplates/* and app shells own UI, auth wiring, deployment shape, and runtime-specific configurationArchitecture decisions live in docs/adr/; domain conventions live in docs/architecture/; per-minor migration notes live in docs/migrations/.
One Postgres database + one runtime per organization. Tenancy is enforced at the deployment boundary, not by in-process middleware. See ADR-0001 for the full rationale, the alternatives considered, and the conditions under which the decision should be revisited.
Voyant is created and maintained by PixelMakers.
Apache License, Version 2.0 (Apache-2.0). See LICENSE.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"catalog-mcp": {
"command": "npx",
"args": [
"-y",
"@voyantjs/catalog-mcp"
]
}
}
}