Skip to main content
Glama
vitrine3d

Vitrine MCP Server

Official
by vitrine3d

vitrine MCP server

npm Glama License: MIT

MCP server for vitrine — the 3D product viewer platform. Upload GLB models, configure scenes, publish embeds, and manage Looks from any AI agent.

Setup

Add to your MCP client config (Claude Code, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "vitrine": {
      "command": "npx",
      "args": ["@vitrine3d/mcp"]
    }
  }
}

Works immediately with no API key — anonymous uploads expire after 48 hours.

Keep your models

Say "log me in" to your AI agent. A browser window opens, you sign in (or sign up for free), and your models become permanent. No manual key copying needed.

Or set an API key manually:

{
  "mcpServers": {
    "vitrine": {
      "command": "npx",
      "args": ["@vitrine3d/mcp"],
      "env": {
        "VITRINE_API_KEY": "vt_..."
      }
    }
  }
}

Generate keys at app.vitrine3d.com → Account → API Keys.

Related MCP server: Wix MCP Server

What you can do

Ask your AI agent things like:

  • "Upload this shoe model and give me an embed code"

  • "Make the lighting warmer and add bloom"

  • "List my models and publish the chair"

  • "Create a Look called 'Noir' with dark background and dramatic lighting"

Tools

Models

Tool

Description

vitrine_list_models

List all models with IDs, names, and publish status

vitrine_upload_model

Upload a GLB file from disk

vitrine_model_info

Get model details, thumbnail, and merged config

vitrine_delete_model

Delete a model and its storage

Configuration

Tool

Description

vitrine_get_config

Get the full scene config for a model

vitrine_set_config

Apply a config patch (lighting, camera, background, effects)

vitrine_list_hdris

List available HDRI environment presets

vitrine_config_schema

Get the full config JSON schema

Publishing

Tool

Description

vitrine_publish

Publish or unpublish a model

vitrine_get_embed

Get ready-to-paste embed HTML

Looks

Tool

Description

vitrine_list_looks

List your saved Looks

vitrine_apply_look

Apply a Look to a model

vitrine_create_look

Save a config as a named Look

Account

Tool

Description

vitrine_account_info

Current plan, usage, and limits

vitrine_login

Connect your account via browser

vitrine_logout

Remove saved credentials

vitrine_feedback

Submit a bug report or feature request

Resources

Resource

Description

vitrine://config-schema

Full SceneConfig JSON schema

vitrine://hdri-presets

Available HDRI presets

vitrine://embed-template

Embed code template

HTTP transport

Run as a hosted HTTP server instead of stdio:

npx @vitrine3d/mcp --http          # default port 3000
PORT=8080 npx @vitrine3d/mcp --http # custom port

The server exposes a Streamable HTTP endpoint at /mcp, compatible with Smithery, Glama connectors, and any MCP client that supports HTTP transport.

How it works

You -> AI Agent (Claude, Cursor, etc.)
        | MCP protocol (stdio or HTTP)
      vitrine MCP server
        | HTTPS
      api.vitrine3d.com
        |
      Supabase (database, storage, auth)

Documentation

License

MIT

Available Tools

17 tools
vitrine_account_infoAccount InfoA

Get current account info: plan tier, usage counts, and limits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states it 'gets' info, with no mention of authentication requirements, rate limits, potential side effects, or response behavior. This is minimal for an operation that likely requires a valid session.

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 a single sentence that is clear, direct, and contains no extraneous information. Every word contributes to understanding the tool's purpose.

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 lists key output fields but does not detail the return format, error conditions, or prerequisites (e.g., authentication). Given no output schema, more detail would improve completeness, but for a simple read tool it is adequate.

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

Parameters4/5

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

There are zero parameters, so schema coverage is 100%. The description adds value by specifying what the returned info includes (plan tier, usage counts, limits), which goes beyond the empty schema. Baseline for zero params is 4, and the description meets that.

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 ('Get') and resource ('current account info'), and lists the exact contents ('plan tier, usage counts, and limits'), clearly distinguishing it from sibling tools that deal with looks, models, or configuration.

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 states what the tool does but does not provide explicit guidance on when to use it versus alternatives, nor does it mention any prerequisites or context. Its purpose is implied as a read-only account info retrieval, but no 'when-not' 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.

vitrine_apply_lookApply LookB

Apply a Look preset to a model by setting its look_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
look_idYesLook ID to apply
model_idYesModel ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It discloses that this is a mutation (applying a look) but does not explain side effects (e.g., overwriting existing looks), idempotency, or error conditions.

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

Conciseness4/5

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

The description is a single, short sentence. It is concise and front-loaded, though it could include more behavioral context without becoming verbose.

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?

Given no annotations, no output schema, and the tool being a mutation, the description lacks critical context such as return value, reversibility, and error handling. An agent needs more information to use this tool correctly.

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% (both parameters have descriptions). The description adds minimal value by phrasing 'by setting its look_id', but the schema already captures the parameters adequately.

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 'Apply a Look preset to a model' and uses the primary parameter 'look_id'. It distinguishes from sibling tools like vitrine_create_look and vitrine_list_looks, as 'apply' is a distinct operation.

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?

The description provides no guidance on when to use this tool vs alternatives. It does not mention prerequisites (e.g., needing a valid look_id from list_looks) or when not to use it.

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

vitrine_config_schemaConfig SchemaA

Get the full SceneConfig JSON schema — all fields, types, enums, and defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It indicates a read-only operation ('Get'), which is safe and idempotent. While it doesn't explicitly state safety or side effects, the behavior is clear for a schema retrieval tool.

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 a single, well-structured sentence that front-loads the action and quickly conveys the tool's purpose. No redundant or unnecessary words.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, no output schema), the description is fully complete. It tells the agent exactly what the tool returns and what it contains.

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

Parameters4/5

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

There are no parameters, so the input schema fully covers the tool's interface (100% coverage). The description adds no parameter information, but none is needed. Baseline for zero parameters is 4.

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 returns the full SceneConfig JSON schema, specifying fields, types, enums, and defaults. It uses a specific verb ('Get') and resource ('SceneConfig JSON schema'), distinguishing it from sibling tools like vitrine_get_config or vitrine_set_config.

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 when one needs the schema structure, but does not explicitly state when to use or avoid this tool versus alternatives. No exclusions or alternatives are mentioned, so it meets a basic 'implied usage' level.

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

vitrine_create_lookCreate LookB

Save a scene config as a named Look preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLook name
configYesScene config for this look

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description is too brief. It does not disclose mutational effects (e.g., whether existing looks are overwritten), error states, or required authentication.

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?

Single sentence, direct, no fluff. Contains all essential information without unnecessary words.

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?

Given no output schema and no annotations, the description is insufficient. It omits success/failure behavior, overwrite semantics, and any constraints on the config object.

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 description only rephrases the parameter purposes without adding new details beyond 'name' and 'config'.

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 'Save' and the resource 'scene config as a named Look preset'. It distinguishes from sibling tools like vitrine_apply_look (apply) and vitrine_list_looks (list).

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 on when to use this tool vs alternatives. Does not mention prerequisites, when not to use, or differentiate from vitrine_set_config or vitrine_apply_look.

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

vitrine_delete_modelDelete ModelA
Destructive

Delete a model and all its associated storage files.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYesModel ID to delete

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already set destructiveHint=true, indicating destruction. The description adds context about associated storage files, which goes beyond the annotation. However, it does not mention irreversibility, necessary permissions, or any 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?

The description is a single, clear sentence that is front-loaded with the action and key information. No unnecessary words.

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 delete tool with one parameter and no output schema, the description is adequate. It states the action and scope. However, it could mention that deletion is permanent (implied by destructiveHint) and what the return result looks like.

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 the parameter documented as 'Model ID to delete'. The description does not add any further meaning or constraints 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 'Delete' and the resource 'model', and specifies the scope 'all its associated storage files'. It effectively distinguishes this tool from siblings like vitrine_list_models or vitrine_model_info which are read-only.

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 when to delete vs. unpublish or archive. No prerequisites, exclusions, or warnings are given.

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

vitrine_feedbackSubmit FeedbackA

Submit a bug report or feature request. Creates a GitHub issue automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoWhich page/area this relates to
typeYesFeedback type
messageYesDescription of the bug or feature request

TDQS

A3.9/5.0
Behavior3/5

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

Discloses that it creates a GitHub issue automatically, which is key behavioral info. But lacks side-effect details (e.g., authentication, rate limits, failure modes) since no annotations 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?

Single sentence with no wasted words. Highly concise and front-loads purpose.

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?

No output schema, so description should mention return value (e.g., issue URL). Also omits optional 'page' parameter explanation. Adequate but not complete.

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 description adds no extra meaning. Baseline of 3 applies per rules.

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 the verb (submit) and resource (bug report/feature request, GitHub issue). It differentiates from all sibling tools which focus on account, model, config, and look operations.

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?

Implicitly indicates use for bugs or features, but no explicit when-not-to-use or alternatives. However, siblings don't overlap, so context is clear.

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

vitrine_get_configGet ConfigA

Get the full merged scene config for a model (look + layout + overrides).

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYesModel ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, and the description only states it retrieves data. It does not disclose whether authentication is required, rate limits, side effects, or return behavior. For a read operation, more detail is needed.

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

Conciseness4/5

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

The description is a single sentence, concise and front-loaded with the key action and result. No wasted words, but could include more detail without losing conciseness.

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 tool with one parameter and no output schema, the description is mostly adequate. It specifies the scope (merged scene config) and components (look, layout, overrides). Some examples or output hints would improve completeness.

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% for the single parameter (model_id). The description adds no additional semantic meaning beyond the schema's string type, so baseline 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?

Description clearly states the tool gets the full merged scene config for a model, specifying it includes look, layout, and overrides. This clearly distinguishes it from siblings like vitrine_set_config (set config) and vitrine_model_info (model metadata).

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?

No explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description implies it is for retrieving config, but lacks context for decision-making.

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

vitrine_get_embedGet Embed CodeA

Get ready-to-paste HTML embed code for a published model.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYesModel ID (must be published)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It states the output is 'HTML embed code' but omits side effects, authentication requirements, or error conditions (e.g., what happens if the model is not published). This is insufficient for an agent to safely invoke the tool.

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 a single focused sentence with no redundant words. It is front-loaded and conveys the essential purpose efficiently.

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 retrieval tool with one parameter and no output schema, the description sufficiently indicates what the tool returns. It lacks a note about authentication or authorization, but overall it is adequate for an agent to understand when to call it.

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 one parameter described as 'Model ID (must be published)'. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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 ('Get') and the resource ('ready-to-paste HTML embed code for a published model'). It distinguishes from sibling tools like vitrine_model_info or vitrine_publish by specifying the output is embed code, not model info or publishing status.

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 when a published model's embed code is needed, but does not explicitly state when to use or avoid this tool, nor does it compare with alternatives like vitrine_model_info. The required model_id being published is noted in the schema but not highlighted as a precondition.

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

vitrine_list_hdrisList HDRIsA

List available HDRI environment presets with their slugs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description implies a read-only operation. It clearly states the action (list) and what is returned (slugs), but could mention if there are any limitations or ordering.

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?

Single sentence with no wasted words. Action verb 'List' is front-loaded. Efficient and clear.

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 list tool with no parameters and no output schema, the description adequately states the purpose and return content (slugs). Could be enhanced by noting the typical use case for environment presets.

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

Parameters4/5

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

There are no parameters, so baseline is 4. The description adds no parameter information, but none is needed since schema coverage is 100%.

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 lists HDRI environment presets and specifies it returns slugs. It distinguishes from sibling list tools like vitrine_list_looks and vitrine_list_models by naming the resource (HDRIs).

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 on when to use this tool versus alternatives. The description does not mention use cases, prerequisites, or comparisons with sibling tools.

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

vitrine_list_looksList LooksA

List your saved Looks (reusable scene presets).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description must convey behavioral traits, but it only says 'List your saved Looks.' It does not mention whether the list is paginated, if it requires authentication, or any side effects, leaving the agent uninformed about critical behavior beyond the literal listing action.

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 a single, well-structured sentence with no superfluous information. It immediately conveys the purpose and resource, making it efficient and easy to parse.

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 tool has no parameters and no output schema. The description is straightforward for a list operation, but it does not specify the structure of the returned data (e.g., object fields, pagination), which would be helpful for an agent. It is minimally adequate but leaves gaps in expected behavior.

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

Parameters4/5

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

There are zero parameters and schema coverage is 100%, so the description adds no parameter details beyond the schema, which is expected. Baseline for 0 parameters is 4, and the description appropriately complements the schema by clarifying the outcome.

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 'List' and the resource 'saved Looks', with a clarifying parenthetical about what a Look is. It distinguishes itself from sibling tools like vitrine_list_hdris and vitrine_list_models by specifying the exact entity being listed.

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 vs. alternatives (e.g., when to list looks vs. HDRIs or models). The description simply states the function without contextual usage advice.

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

vitrine_list_modelsList ModelsA

List all your Vitrine 3D models with IDs, names, and publish status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so the description bears full disclosure burden. It implies a read operation but omits details like authentication requirements, ownership scope (e.g., 'your' is ambiguous), rate limits, or pagination. Minimal behavioral context.

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?

Single sentence, no wasted words, effectively communicates the core function.

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?

For a simple parameterless list tool, the description is minimally adequate but lacks usage guidance and behavioral transparency, reducing its overall completeness for an agent.

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

Parameters4/5

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

Tool has zero parameters and 100% schema description coverage. Following baseline guidance, a 0-parameter tool earns a 4.

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 'List', the resource 'Vitrine 3D models', and specifies the output fields (IDs, names, publish status). It distinguishes from sibling tools like vitrine_list_hdris and vitrine_list_looks which list different resources.

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?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, limitations, or scenarios. It lacks explicit context for selection.

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

vitrine_loginLog InA

Connect your Vitrine account. Opens a browser to sign in or sign up. If you have anonymous models, they will be transferred to your account automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses non-obvious behavior: 'Opens a browser' (user interaction required) and 'anonymous models will be transferred to your account automatically.' This goes beyond a simple 'login' and adds valuable 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?

Three short sentences, front-loaded with the main action. Every sentence adds value: main action, method, side effect. No redundancy or fluff.

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

Completeness5/5

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

Given no parameters, no output schema, and low complexity, the description is complete. It covers purpose, mechanism (browser), and side effect (model transfer). No additional details are needed.

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

Parameters4/5

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

The tool has zero parameters, so baseline is 4. The description adds meaningful context about what happens during login (browser interaction, model transfer) beyond what the empty 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 tool's purpose: 'Connect your Vitrine account' and 'Opens a browser to sign in or sign up.' This provides a specific verb and resource, and distinguishes it from siblings like vitrine_logout and vitrine_account_info.

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 (when you need to authenticate) but does not explicitly state when to use versus alternatives like vitrine_logout or vitrine_account_info. The mention of 'anonymous models' gives context but no direct guidance on selection criteria.

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

vitrine_logoutLog OutA

Remove saved credentials. You'll start fresh as anonymous on next use.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations exist, but the description clearly discloses the behavioral impact: removing credentials and starting fresh as anonymous. This is sufficient for a simple logout action.

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, no extraneous information, front-loaded with the action (Remove saved credentials). Highly concise.

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

Completeness5/5

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

The tool is simple with no parameters and no output schema. The description fully explains its purpose and effect, leaving no gaps.

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

Parameters4/5

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

The input schema has zero parameters, so the description doesn't need to add parameter details. Baseline of 4 applies as no information is missing.

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 removes saved credentials and sets the user as anonymous, distinguishing it from sibling tools like vitrine_login and vitrine_account_info.

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?

Implied usage is for logging out, but no explicit when-to-use or alternatives are mentioned. Since vitrine_login is a sibling, the agent may infer, but lack of explicit guidance lowers the score.

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

vitrine_model_infoModel InfoA

Get detailed info about a model including config, thumbnail, and model URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYesModel ID

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It only states what the tool does without revealing whether it is read-only, requires authentication, or has side effects. The read-only nature is implied but 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 a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's core purpose and key outputs.

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 (one parameter, no output schema) and lack of annotations, the description provides adequate context for a basic info retrieval. However, it could be improved by mentioning read-only behavior or return format, especially since no annotations are present.

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 a single parameter described as 'Model ID'. The description does not add additional context or constraints beyond the schema, meeting the baseline for high schema coverage.

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: getting detailed info about a model, including config, thumbnail, and model URL. It distinguishes from siblings like vitrine_list_models and vitrine_delete_model by specifying retrieval of details for a single model.

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 when needing detailed model info but does not explicitly mention when to use versus siblings, such as vitrine_list_models for listing or vitrine_get_config for config only. No exclusions or alternatives are provided.

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

vitrine_publishPublish / UnpublishC

Publish or unpublish a model. Published models are embeddable.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYesModel ID (same as showcase ID)
publishedYestrue to publish, false to unpublish

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It mentions 'Published models are embeddable' but lacks details on side effects, permissions required, reversibility beyond the obvious unpublish, or rate limits.

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

Conciseness4/5

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

Two sentences front-load the core purpose. It is concise but arguably too brief given the lack of annotations; however, for a simple toggle tool, it remains efficient.

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?

Missing return value description and side effects. Without annotations or output schema, the description should disclose what the tool returns or whether it is safe. It only states the basic action and a consequence.

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?

Input schema covers 100% of parameters with descriptions. The description adds no additional semantics for parameters themselves; the extra line about embeddability adds context about the outcome but not about the parameters.

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

Purpose4/5

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

The description clearly states the action (publish/unpublish a model) and mentions a key consequence (emebeddability). It differentiates from sibling tools like vitrine_delete_model or vitrine_upload_model by focusing on the publish toggle.

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 on when to use this tool versus alternatives like vitrine_model_info (to check status) or vitrine_delete_model (to remove). No prerequisites or context about when publishing is appropriate.

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

vitrine_set_configSet ConfigA

Apply a config patch to a model. Only include fields you want to change. Common fields: bg_mode, bg_color, hdri_name, hdri_exposure, bloom_enabled, bloom_intensity, auto_rotate, camera_fov, camera_pitch, camera_yaw, tonemapping_mode, shadow_catcher_enabled. Use vitrine_config_schema to see all available fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
configYesSceneConfigPatch — only include fields to change
model_idYesModel ID

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It clearly indicates a patch operation and lists common adjustable fields. While it doesn't detail side effects or authorization needs, the patch semantics are adequately conveyed.

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 plus a list and a reference. Front-loaded with the action 'Apply a config patch to a model.' No redundant words; every sentence adds value.

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 complexity (nested config object, no output schema, no annotations), the description covers purpose, usage, and common fields. It points to the schema for full details. Could mention return behavior, but not essential.

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

Parameters5/5

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

Schema description coverage is 100% (both parameters have descriptions). The description adds significant value by listing common config fields (bg_mode, bloom_enabled, etc.) and referencing vitrine_config_schema, which is not present in the schema itself.

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 'Apply a config patch to a model', using a specific verb and resource. It distinguishes from siblings like vitrine_get_config and vitrine_config_schema.

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

Usage Guidelines5/5

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

Provides explicit usage guidance: 'Only include fields you want to change' indicates a partial update. Also suggests using vitrine_config_schema to see all available fields, directing the agent to the right sibling.

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

vitrine_upload_modelUpload ModelB

Upload a GLB/glTF file to Vitrine. Provide the absolute file path on disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name for the model
file_pathYesAbsolute path to the GLB file

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. Description only states the action, lacking details on side effects, authentication, size limits, or error behavior.

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 concise sentences with no fluff. Front-loaded with purpose.

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?

For a file upload tool, missing details like accepted formats (though implied), file existence check, return value, and success/failure indicators. Lacks completeness given no output schema.

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 descriptions. The description adds the absolute path requirement, which is useful but not extensive. Baseline 3 applies.

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 (upload), the resource (GLB/glTF file to Vitrine), and the requirement (absolute file path). It distinguishes from sibling tools like vitrine_delete_model.

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 explicit guidance on when to use or not use this tool vs alternatives. No prerequisites or conditions mentioned.

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. 17 tool updatesv1.1.0
    • Addedvitrine_account_info
    • Addedvitrine_apply_look
    • Addedvitrine_config_schema
    • Addedvitrine_create_look
    • Addedvitrine_delete_model
    • Addedvitrine_feedback
    • Addedvitrine_get_config
    • Addedvitrine_get_embed
    • Addedvitrine_list_hdris
    • Addedvitrine_list_looks
    • Addedvitrine_list_models
    • Addedvitrine_login
    • Addedvitrine_logout
    • Addedvitrine_model_info
    • Addedvitrine_publish
    • Addedvitrine_set_config
    • Addedvitrine_upload_model
  2. 17 tool updatesv1.0.0
    • Removedvitrine_account_info
    • Removedvitrine_apply_look
    • Removedvitrine_config_schema
    • Removedvitrine_create_look
    • Removedvitrine_delete_model
    • Removedvitrine_feedback
    • Removedvitrine_get_config
    • Removedvitrine_get_embed
    • Removedvitrine_list_hdris
    • Removedvitrine_list_looks
    • Removedvitrine_list_models
    • Removedvitrine_login
    • Removedvitrine_logout
    • Removedvitrine_model_info
    • Removedvitrine_publish
    • Removedvitrine_set_config
    • Removedvitrine_upload_model
  3. 17 tool updatesv0.2.1
    • First observedvitrine_account_info
    • First observedvitrine_apply_look
    • First observedvitrine_config_schema
    • First observedvitrine_create_look
    • First observedvitrine_delete_model
    • First observedvitrine_feedback
    • First observedvitrine_get_config
    • First observedvitrine_get_embed
    • First observedvitrine_list_hdris
    • First observedvitrine_list_looks
    • First observedvitrine_list_models
    • First observedvitrine_login
    • First observedvitrine_logout
    • First observedvitrine_model_info
    • First observedvitrine_publish
    • First observedvitrine_set_config
    • First observedvitrine_upload_model

TDQS

A3.6/5.0

Scored across 17 tools

Disambiguation5/5

Each tool targets a clearly distinct operation: model CRUD, config management, looks, auth, embedding, and feedback. Even closely related tools like set_config and apply_look are differentiated by whether you are patching config directly or using a preset.

Naming Consistency3/5

All tools share the consistent vitrine_ prefix and snake_case, but the verb-noun pattern is not uniform. Some tools are verb-first (list_models, get_config), others are noun phrases (model_info, config_schema, account_info), and a few are bare verbs (publish, login, logout, feedback).

Tool Count4/5

At 17 tools, the set is slightly above the ideal 3–15 range, but each tool serves a distinct purpose and covers the main workflows for a 3D model management server. No tool feels redundant or unnecessary, so the count is reasonable despite being a bit heavy.

Completeness4/5

The surface covers core model CRUD, configuration, publishing, embedding, looks, auth, and account info well. Minor gaps exist, such as no delete or update operation for looks and no explicit model metadata update, but these do not break the primary use cases.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers