Skip to content

feat(tiles-server): add tileset MCP server#27

Merged
MKartaviciute merged 7 commits into
mainfrom
maka/tiles-mcp-server
Apr 2, 2026
Merged

feat(tiles-server): add tileset MCP server#27
MKartaviciute merged 7 commits into
mainfrom
maka/tiles-mcp-server

Conversation

@MKartaviciute
Copy link
Copy Markdown
Contributor

@MKartaviciute MKartaviciute commented Mar 27, 2026

Summary

Add a new MCP server for managing 3D Tilesets on the CesiumJS globe.

tiles_mcp_server.mp4

Closes #28

New Tools

Tool Description
tileset_load Load a 3D Tileset from a URL with optional style and clipping
tileset_remove Remove a loaded tileset from the scene
tileset_style Apply or update 3D Tiles styling (color conditions, show conditions)
tileset_list List all currently loaded tilesets

Source Types

  • url — Direct URL to a 3D Tiles tileset (tileset.json endpoint)
  • ion — Cesium Ion 3D Tiles assets (e.g., Cesium OSM Buildings with asset ID 96188)

Tileset Options

  • style — 3D Tiles style object with color and show conditions
  • clippingPlanes — Define clipping plane configuration to crop the tileset
  • maximumScreenSpaceError — Control level-of-detail quality (default: 16)

Changes

Server (servers/tiles-server/)

  • Zod v4 schemas: core data types, tool inputs, response structures
  • Four tool handlers with parameter validation and error handling
  • Utility helpers for tileset ID tracking and error formatting
  • Port 3008, following existing server conventions

Client (test-applications/packages/client-core/)

  • CesiumTilesManager implementing ManagerInterface
    • loadTileset: Creates Cesium3DTileset from URL or Ion asset, registers it with the scene
    • removeTileset: Removes a tileset by ID from the scene primitives collection
    • styleTileset: Applies a Cesium3DTileStyle to a loaded tileset
    • listTilesets: Returns metadata for all currently loaded tilesets
  • Type definitions extending MCPCommandResult

Integration

  • Registered in monorepo build/dev/test scripts
  • Added to web app configuration (esbuild defines, app.ts server list)
  • Updated parent README with tiles server documentation

Testing

  • Unit tests across schema, load, remove, style, and list handlers
  • Client-side unit tests with full Cesium module mocking
  • All existing monorepo tests continue to pass

Author checklist

  • I have submitted a Contributor License Agreement
  • I have performed a self-review of my code

@MKartaviciute MKartaviciute changed the title feat(tiles-server): add tileset MCP server with add, remove, and list… feat(tiles-server): add tileset MCP server Mar 27, 2026
@MKartaviciute MKartaviciute linked an issue Mar 27, 2026 that may be closed by this pull request
@MKartaviciute MKartaviciute marked this pull request as ready for review April 1, 2026 09:32
@MKartaviciute MKartaviciute requested a review from jdehorty April 1, 2026 10:20
@MKartaviciute MKartaviciute force-pushed the maka/tiles-mcp-server branch from fcf0cfc to 49e8742 Compare April 1, 2026 10:25
@MKartaviciute MKartaviciute merged commit 8dba2cb into main Apr 2, 2026
3 checks passed
@MKartaviciute MKartaviciute deleted the maka/tiles-mcp-server branch April 2, 2026 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add 3D Tiles Management mcp server

2 participants