Skip to main content

MCP Tool Reference

Every tool exposed by the Cesium ion MCP server, with parameters, behavior annotations, and required OAuth scopes. Use this page when writing agent prompts or debugging tool calls; for guided workflows, start with the tutorials instead.

Conventions

  • Read-only tools never modify your account.
  • Destructive tools are annotated so MCP clients prompt for confirmation before running them.
  • Internal tools exist to support the in-chat upload importer and should never be called directly from a conversation.
  • BIM element, tileset revision, and change detection tools only work on assets created via import_imodel.
  • The server requests these OAuth scopes at sign-in: assets:list, assets:read, assets:write, labels:read, labels:write.
MCP Tool reference diagram: assets, labels, BIM elements, BIM version control, upload, legend

Asset tools

list_assets — read-only

List assets in the authenticated account, one page at a time, with basic metadata (ID, name, type, status, bytes, dateAdded).

ParameterTypeRequiredDescription
limitinteger 1–1000noMax results per page (default 100)
pageinteger ≥ 1noPage number, 1-indexed
sortByDATE_ADDED | NAME | BYTESnoSort field (default DATE_ADDED)
sortOrderASC | DESCnoSort direction (default DESC)

search_assets — read-only

Search assets by name/description substring, with optional filters.

ParameterTypeRequiredDescription
searchstringyesSubstring matched against name and description
type3DTILES | GLTF | IMAGERY | TERRAIN | KML | CZML | GEOJSONnoFilter by asset type
statusAWAITING_FILES | NOT_STARTED | IN_PROGRESS | COMPLETE | ERROR | DATA_ERRORnoFilter by tiling status
limitinteger 1–1000noMax results (default 100)

get_asset — read-only

Full metadata for one asset: name, description, type, status, tiling progress, bytes, and dates.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID

get_tileset — read-only

Fetches the root tileset.json of a 3D Tiles asset, including its bounding volume. Fails for non-3DTILES assets.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID (must be a 3DTILES asset)

modify_asset — write

Update an asset's display name and/or Markdown description. Other properties can't be changed after creation.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID
namestringnoNew display name
descriptionstringnoNew Markdown description

delete_asset — destructive

Permanently delete an asset. Clients prompt for confirmation. Deleted assets cannot be recovered, and applications streaming the asset stop working.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID

wait_for_asset — read-only

Poll an asset until tiling reaches a terminal status (COMPLETE, ERROR, DATA_ERROR) or the timeout elapses. Returns the final metadata and whether it timed out.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID
timeoutSecondsinteger 1–86400noMax wait (default 1800 = 30 min)
pollIntervalSecondsinteger 1–300noPoll interval (default 10)

import_imodel — write

Triggers and imports a fresh mesh export of an iModel from Bentley Infrastructure Cloud as a new ion asset. No pre-existing export is required; ion creates one as part of the import. This requires the signed-in ion account to have a linked Bentley account (a one-time step in ion's account settings, separate from the ion sign-in above), to be an owner of the iTwin containing the iModel, and to belong to the same organization as that iTwin. There is currently no MCP tool to look up an iModel or iTwin ID, so the caller needs the iModel's GUID already. Follow up with wait_for_asset. Only assets created this way can be used with the BIM element, tileset revision, and change detection tools below. See Importing iModels from Bentley iTwin.

ParameterTypeRequiredDescription
iModelIdstringyesID (GUID) of the iModel to import
namestringyesDisplay name for the new asset

Label tools

See Managing Assets with AI for a walkthrough of these.

list_labels — read-only

List labels in the authenticated account, one page at a time, with basic metadata (ID, name, color, assets, stories).

ParameterTypeRequiredDescription
limitinteger 1–1000noMax results per page (default 100)
pageinteger ≥ 1noPage number, 1-indexed
searchstringnoFilter applied to the label name

create_label — write

Create a new label. Assign it to assets afterward with add_asset_labels.

ParameterTypeRequiredDescription
namestringyesLabel name
colorstringyesLabel color as a CSS hex string

modify_label — write

Update an existing label's name and/or color.

ParameterTypeRequiredDescription
labelIdpositive integeryesThe label ID
namestringnoNew label name
colorstringnoNew label color as a CSS hex string

delete_label — destructive

Permanently delete a label. Clients prompt for confirmation.

ParameterTypeRequiredDescription
labelIdpositive integeryesThe label ID

add_asset_labels — write

Add one or more existing labels to an asset.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID
labelIdsarray of positive integersyesLabel IDs to add

remove_asset_labels — destructive

Remove one or more labels from an asset. Clients prompt for confirmation.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID
labelIdsarray of positive integersyesLabel IDs to remove

BIM element tools

These work only on assets created via import_imodel, where each element is a piece of BIM geometry with its own properties. See Importing iModels from Bentley iTwin for a full walkthrough.

list_asset_elements — read-only

Paginated list of an asset's elements, with basic metadata (ID, location, properties). Supports a SQL-style where clause.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID
limitinteger 1–1000noMax results per page (default 100)
pageinteger ≥ 1noPage number, 1-indexed
wherestringnoSQL-style filter, e.g. UserLabel LIKE '%pipe%' OR Height >= 10

get_asset_element — read-only

Metadata and location for a single element within an asset.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID
elementIdstringyesThe element's unique identifier within the asset

search_elements — read-only

Search an asset's elements using Lucene query syntax against indexed element properties.

ParameterTypeRequiredDescription
assetIdpositive integeryesThe asset ID
searchstringyesLucene-syntax search term
continuationTokenstringnoToken from a previous response, for the next page

Tileset revisions and change detection tools

Like the BIM element tools above, these only work on assets created via import_imodel. Each import exports the iModel at a specific version as a 3D Tiles asset, called a tileset revision. Compare two revisions of the same iModel to see which elements changed between those versions.

list_tileset_revisions — read-only

List the 3D Tiles assets exported from the same iModel as the given asset, one page at a time, with each one's asset ID, name, and creation timestamp. The given asset can be any asset created by importing that iModel.

ParameterTypeRequiredDescription
assetIdpositive integeryesAny asset created by importing the iModel
limitinteger 1–1000noMax results per page (default 100)
pageinteger ≥ 1noPage number, 1-indexed

compare_assets — write

Compare two tileset revisions of the same iModel. Starts a change detection job if a report isn't already available, then polls until it's ready or the timeout elapses. The response includes up to 1,000 changed elements directly, plus a link to download the full report. Each comparison is saved in your account as a change detection report asset. The earlier version must be fromAssetId and the later version toAssetId.

ParameterTypeRequiredDescription
fromAssetIdpositive integeryesAsset exported at the earlier version
toAssetIdpositive integeryesAsset exported at the later version
timeoutSecondsinteger 1–86400noMax wait (default 1800 = 30 min)
pollIntervalSecondsinteger 1–300noPoll interval (default 10)

delete_compare_assets_job — destructive

Delete an existing comparison between two assets. Clients prompt for confirmation.

ParameterTypeRequiredDescription
fromAssetIdpositive integeryesAsset exported at the earlier version
toAssetIdpositive integeryesAsset exported at the later version

Upload tools

launch_ion_asset_importer — write

Creates a new asset and opens the drag-and-drop importer inside the chat (requires an MCP Apps–capable client). File selection happens entirely in the panel. The MCP server never receives file paths or contents. Follow up with wait_for_asset once the panel reports the upload is complete. See Uploading Data with the Asset Importer.

ParameterTypeRequiredDescription
namestringyesDisplay name for the new asset
type3DTILES | IMAGERY | TERRAINyesOutput asset type (selects the tiling pipeline)
sourceTypestringyesSource format, e.g. CITYGML, RASTER_IMAGERY, RASTER_TERRAIN, 3D_CAPTURE, 3D_MODEL, POINT_CLOUD
descriptionstringnoMarkdown description

presign_uploads — internal

Called automatically by the importer panel after all files have uploaded, to start the tiling pipeline. Hidden from the AI model in clients that support it; only the importer panel should call it.

finalize_upload — internal

Called automatically by the importer panel after all files have uploaded, to start the tiling pipeline. Hidden from the AI model in clients that support it; only the importer panel should call it.

Content and code examples at cesium.com/learn are available under the Apache 2.0 license. You can use the code examples in your commercial or non-commercial applications.