get_component
On this page
toolread-only

get_component

A component with the source files it needs (imported modules, styles, assets, token sources). When the release has the engine's analysis, closure.basis is 'engine-analysis' and closure.complete says whether nothing was left unresolved; otherwise the files are the ones the release indexes record, and the closure is not complete.

Updated 15 October 2026Needs an active membership

Ask for it in plain words#

PromptFetch one component
Using Orvio, find the component in Sotto closest to a pricing table with a yearly toggle, show me its source, then add it to my project with my styles.
Works with Remote MCP·Replace the highlighted parts

Inputs#

NameTypeRequiredWhat it does
identifierstringnoThe component's identifier, for example sotto/component/pricing-table.
componentstringnoInstead of identifier: the component's name (with product).
productstringnoInstead of identifier: the product, used with component.
releasestringnoOptional pin: the version you saw in an earlier result.
include_contentsbooleannoReturn the files' contents. Default true.
include_tokensbooleannoAlso include the files that define the design tokens the component uses. Default true.
depthintegernoHow many levels of imports to follow: 0 to 8, default 8. 0 is the component's own file only.
cursorstringnoFrom the previous result's nextCursor.

Example#

include_contents is false here, so the files are listed without their contents.

The example ran over Orvio's synthetic test catalog (a product called Fixture Studio), so its names and values differ from the products you will see. The shape is exactly what the server returns.

Request

Arguments
{
  "identifier": "fixture-studio/component/hero",
  "include_contents": false
}

Result (shortened)

JSON
{
  "component": {
    "identifier": "fixture-studio/component/hero",
    "name": "hero",
    "kind": "html-fragment",
    "framework": "static-html",
    "sourcePath": "index.html",
    "range": {
      "startLine": 14,
      "endLine": 18
    },
    "export": null,
    "description": null,
    "props": [],
    "variants": [],
    "dependencies": {
      "components": [],
      "packages": [],
      "external": [],
      "tokens": [
        "fixture-studio/token/--space-section",
        "fixture-studio/token/--color-primary",
        "fixture-studio/token/--brand-500"
      ],
      "styles": [
        "css/site.css"
      ]
    },
    "usedBy": {
      "pages": [
        "fixture-studio/page/index"
      ]
    }
  },
  "files": [
    {
      "path": "source/index.html",
      "sourcePath": "index.html",
      "role": "component",
      "content": null,
      "bytes": 775,
      "sha256": "187ba7c33ce9…"
    },
    {
      "path": "source/css/site.css",
      "sourcePath": "css/site.css",
      "role": "style",
      "content": null,
      "bytes": 398,
      "sha256": "f90faae01d0d…"
    }
  ],
  "closure": {
    "basis": "package-indexes",
    "complete": false,
    "notes": [
      "Local imports that the release indexes do not record are not included. Read them…"
    ],
    "unresolved": []
  },
  "licence": {
    "id": "LicenseRef-Orvio-Fixture-Synthetic",
    "path": "licenses/LICENSE.md",
    "thirdPartyNotices": null
  },
  "release": {
    "product": "fixture-studio",
    "version": "1.1.0",
    "releaseId": "f1000000-0000-4000-8000-000000000002",
    "publishedAt": "2026-10-05T00:00:00Z"
  }
}

Left out of the example: nextCursor.

What comes back#

FieldWhat it holds
componentIdentifier, name, kind, framework, source path and range, props, variants, what it depends on, and the pages that use it.
filesThe source files the component needs, each with its role, path, size and SHA-256.
closureHow the list was made, and whether it is complete: basis, complete, notes, unresolved, packages, externals.
warningsHeads-ups that do not stop the call, such as a membership payment problem. Usually empty.

Every result also carries what the request needs to be checked: the release (product, version, published date), the licence and notes, when they apply.

Paging#

When nextCursor is not null, call again with cursor set to it. A cursor belongs to your account, to that call's inputs and to that release, and it expires after 60 minutes. After a new release it answers release_replaced. See Limits and pagination.

Errors#

CodeMeansWhat to do
product_unavailableNo listed product has that identifier.Search the catalog with search_products.
release_withdrawnThe whole product was taken down for now.Search the catalog for something similar with search_products.
release_replacedA newer release was published since the version you named or the cursor you used.Call the tool again without a release to use 0.1.3.
path_not_foundThe release has no such file, page, component or token.Use get_product or list_release_files to see what's included.
ambiguous_identifierThe name matches more than one page, component or token.Use one of: sotto/component/pricing@css-pricing, sotto/component/pricing@js-pricing.
invalid_inputThe arguments do not match the tool's schema, or the cursor is not valid.Fix the input and call the tool again.
HTTP 401, 403 or 429Before the tool runs: the sign-in is not valid, the membership does not allow access, or there were too many requests.See Errors and fixes.

Every tool can also answer service_unavailable and integrity_error: try again in a few minutes.

Was this page clear? Yes · Not reallyEdit suggestions: support@orvio.design