Vectreal

io.github.VectrealPublished by GitHub account Vectrealv3.1.0Updated Oct 29, 2026

Upload, publish and embed 3D models on any website from your agent.

Overview

AI-generated overview

Vectreal's CLI MCP server lets an assistant upload local GLB models, configure and publish 3D scenes, and get embed snippets for websites.

What you can do
  • Search and read the Vectreal documentation without signing in
  • Inspect the signed-in user, organization, projects and scenes, and create projects
  • Upload a local GLB as a draft scene and describe its size, meshes, materials and animation clips
  • Read and change scene settings such as lighting, environment, controls, bounds, shadows and presentation
  • Compress and publish a local GLB, take a scene offline, and get an embed snippet and preview URL
When to use it
Useful when you work with 3D assets in a Vectreal organization and want an agent to upload, configure, publish or embed scenes from the project directory instead of using the web dashboard.
Requirements
Runs locally over stdio via the npm package @vctrl/cli (npx or global install). Requires a Vectreal account and a prior browser sign-in with the vectreal login command, which stores the session in the OS keychain. Network access to the Vectreal origin (default vectreal.com, or VECTREAL_ORIGIN). A project is linked with vectreal init, or found via CLAUDE_PROJECT_DIR.
Before you install
Tools act on a real organization: they create projects, upload files, change scene settings, publish or unpublish scenes, and can create embed keys and allow domains. The session is kept in the OS keychain, or in a credentials file under the config directory when no keychain is available. Uploaded GLB files and scene data go to the Vectreal service.

Installation

In SourceWeft

  1. Open Vectreal in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@vctrl/cli

The Vectreal command line: sign in once, then let a terminal or an agent act for you in the organization you chose.

Run it with npx, or install it globally to get the vectreal command:

bash
npx -y @vctrl/cli login
bash
npm install -g @vctrl/cli

Setup for Claude Code, Cursor and VS Code is in the agents docs.

Commands

CommandWhat it does
vectreal login [--origin <url>] [--no-browser]Signs in through the browser and keeps the session in the OS keychain. Remembers the origin for later commands.
vectreal whoami [--json]Shows the user, organization, role and scopes the session acts as.
vectreal init [--project <id> | --create <name>]Links the current directory to a project by writing .vectreal/project.json.
vectreal logoutEnds the session on the server and forgets it here.
vectreal mcpServes the Vectreal tools to an agent over stdio (MCP) until the agent closes the stream.
vectreal mcp install [--origin <url>]Registers that server in the current directory's .mcp.json, launched the way this CLI was.

The origin is --origin, then VECTREAL_ORIGIN, then the last one signed in to, then https://vectreal.com. Plain http is allowed on localhost only.

The MCP server

vectreal mcp gives an agent these tools:

ToolDoes
search_docs, read_docSearch and read the Vectreal docs. No sign-in needed.
whoami, list_projects, create_project, list_scenesWho the session is, and the organization's projects and scenes.
create_scene_from_fileUploads a local GLB as a draft scene, as it is.
describe_modelA local GLB's size, meshes, materials and animation clips, and where the viewer places it, without rendering it.
get_scene_settings, update_scene_settingsRead every settings section; change lighting, environment, controls, bounds, shadows and presentation. Lighting supersedes environment and shadows once a scene has it.
publish_scene, unpublish_sceneCompress a local GLB as the publisher does (Draco, KTX2) and publish it; take a scene offline.
get_embed_snippetThe snippet and preview URL for a published scene, creating an embed key and allowing domains when asked.

Tools that take projectId default to the project vectreal init linked. The server finds that project in CLAUDE_PROJECT_DIR when the agent sets it, else in the directory it was started from. It signs in with the stored session, so run vectreal login first; a tool called without one says so.

To register it with Claude Code, run this in the project directory:

bash
claude mcp add vectreal -- npx -y @vctrl/cli mcp

Or let the CLI write the entry into the current directory's .mcp.json:

bash
npx -y @vctrl/cli mcp install

Run from npx, the entry it writes is npx -y @vctrl/cli mcp, so .mcp.json can be committed. Run from a checkout of this repository, it names paths on that machine instead.

The server is also listed in the MCP Registry as io.github.Vectreal/vectreal.

Output and exit codes

Results go to stdout, as JSON with --json. Everything else goes to stderr.

CodeMeaning
0Done
1Failed
2Wrong usage
3Not signed in, or the server no longer accepts the session: run vectreal login

Where the session is kept

In the OS keychain (macOS Keychain, Windows Credential Manager, Secret Service on Linux), one entry per origin. Where the keychain cannot be used, as on a headless Linux box with no Secret Service, the session goes to $XDG_CONFIG_HOME/vectreal/credentials.json (default ~/.config/vectreal) instead, and each command that does so says it on stderr. On macOS and Linux that file is readable only by you; on Windows it relies on your profile folder's permissions.

Signing in against a local stack

Register the CLI's OAuth client on the local Supabase stack once, then point the CLI at the dev server:

bash
pnpm nx run vectreal-platform:supabase-register-cli-client
bash
pnpm -s vectreal login --origin http://localhost:4200

From a checkout, use pnpm's -s: without it, pnpm prints its own banner to stdout before the CLI does, which breaks anything reading --json output.

Source: packages/cli/README.md at commit ad294e2

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v3.1.0LatestOct 29, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts