Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
作者提供的说明(英文原文)
Control CesiumJS 3D globes via MCP: camera, layers, entities, animation, and interaction.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"cesium-runtime": {
"command": "npx",
"args": [
"-y",
"cesium-mcp-runtime"
]
}
}
}在终端中运行这条命令
claude mcp add cesium-runtime -- npx -y cesium-mcp-runtime粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"cesium-runtime": {
"command": "npx",
"args": [
"-y",
"cesium-mcp-runtime"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"cesium-runtime": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"cesium-mcp-runtime"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 gaopengbin 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(2.0.0)于昨天进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Figma Context MCP, Claude Real Video, Figma MCP Server
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
The Figma MCP server brings Figma design context directly into your AI workflow.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Usage statistics are on by default, with a startup notice on stderr. Set CESIUM_TELEMETRY_DISABLED=1, DO_NOT_TRACK=1, or pass --no-telemetry to disable. Collected fields and privacy.
English | 中文
MCP Server that enables AI Agents to control a Cesium globe in real-time via the Model Context Protocol.
Release channel:
latestuses the stable MCP SDK v2 and supports both
MCP
2025-11-25and2026-07-28from the same stdio/HTTP entry.
If you only want to try the "AI + Cesium" feel,
examples/browser-agent is the recommended
starting point — zero backend, runs in three minutes. See
openCesiumMap serves an interactive Cesium Viewer through the standard ui://cesium-mcp/map-v10.html MCP Apps resource. The map occupies the primary area and uses the host's existing native chat through ui/message, with no duplicate composer or history. Layout and host theme/locale changes preserve the Viewer, selection and session. The app follows host semantic style variables and fonts, supports Chinese and English, and publishes camera, layers and selected-object context. Local preview controls simulate live host settings and record message delivery. OpenAI global/thread entrypoint and fullscreen hints are included.
The built HTML, embedded Worker graph and Bridge bundle ship in dist. A compatible host must support WebGL and Blob module workers in an isolated, stable UI origin. The embedded panel exchanges commands through app-only MCP tools and does not access a local WebSocket. CESIUM_APP_DOMAIN optionally declares a dedicated UI origin. External browser Viewers retain the existing WebSocket transport.
For a real local MCP Apps preview, run npm run app:preview -w packages/cesium-mcp-runtime from a built repository and open http://127.0.0.1:19311/. See the full guide. Client-specific ChatGPT installation is a separate verification step.
Enable the tiles toolset with CESIUM_TOOLSETS=view,entity,layer,interaction,tiles or enable_toolset. Use loadVectorTiles for MVT /{z}/{x}/{y} URLs or vector 3D Tiles, click a feature and read getSelectedTileFeature, then update its managed layer using updateLayerStyle with tileStyle.color and tileStyle.lineWidth. Read back getLayerSchema.metadata.tileStyle to verify the applied expressions.
Vector rendering and clamping require CesiumJS 1.147. Clamped line/polygon picking uses an experimental bounded adapter. For external data in an MCP Apps panel, configure exact allowed origins with CESIUM_MAP_DATA_ORIGINS. See the vector tiles guide for source formats, styling and limits.
AI Agent <--MCP stdio--> cesium-mcp-runtime <--WebSocket--> Browser (cesium-mcp-bridge)
AI Agent <--MCP HTTP---> cesium-mcp-runtime <--WebSocket--> Browser (cesium-mcp-bridge)
The runtime acts as a bridge between MCP-compatible AI clients (Claude Desktop, VS Code Copilot, Cursor, etc.) and a browser running CesiumJS. It translates MCP tool calls into WebSocket commands that cesium-mcp-bridge executes.
The npm package ships its browser Bridge bundle locally. The built-in Viewer at http://localhost:9100/ therefore does not depend on an unpkg fallback; CesiumJS itself is still loaded from the official Cesium CDN.
For ordinary MCP users this is a one-package setup: run cesium-mcp-runtime and use the built-in Viewer. Install cesium-mcp-bridge separately only when developing a custom CesiumJS page.
Two transport modes are supported:
| Transport | Use Case | Protocol |
|---|---|---|
| stdio (default) | Local AI clients (Claude Desktop, VS Code, Cursor) | Standard I/O |
| http | Remote/cloud MCP clients (Dify, custom backends) | Streamable HTTP |
# Stable channel (stdio mode, default)
npx -y cesium-mcp-runtime
npm install -g cesium-mcp-runtime cesium-mcp-runtime
Then open http://localhost:9100/ to use the built-in Viewer. No separate Bridge installation is required for this default path.
For remote/cloud MCP clients like Dify:
# Start in HTTP transport mode
npx -y cesium-mcp-runtime --transport http --port 3000
Environment variable alternative:
MCP_TRANSPORT=http MCP_HTTP_PORT=3000 npx -y cesium-mcp-runtime
In HTTP mode, all 62 Cesium command tools are enabled by default (no dynamic toolset discovery needed).
Runtime binds to 127.0.0.1 by default, including its HTTP and WebSocket ports. Local native MCP clients and pages served from localhost continue to work. Pages opened directly as file:// must instead be served by a local HTTP server.
| Variable | Purpose |
|---|---|
CESIUM_HOST | Bind address, default 127.0.0.1. Non-loopback addresses require CESIUM_AUTH_TOKEN. |
CESIUM_AUTH_TOKEN | Shared connection secret. When set, all APIs and WebSocket connections require authentication, including local clients. |
CESIUM_ALLOWED_HOSTS | Comma-separated exact hostnames without ports, in addition to loopback and the bind address. No wildcards. |
CESIUM_ALLOWED_ORIGINS | Comma-separated exact HTTPS page origins. Loopback HTTP/HTTPS origins are allowed by default. No wildcards. |
For remote access, use HTTPS/WSS through a reverse proxy and configure the public hostname and Viewer origin explicitly. For example, set CESIUM_HOST=0.0.0.0, CESIUM_ALLOWED_HOSTS=maps.example.com, CESIUM_ALLOWED_ORIGINS=https://maps.example.com, and a generated CESIUM_AUTH_TOKEN in the server environment. Preserve the public Host header and WebSocket upgrades in the proxy.
MCP HTTP and REST clients send Authorization: Bearer . The built-in Viewer asks for the connection token when authentication is enabled; it keeps the token in the page only. Custom browser bridges authenticate with WebSocket subprotocols:
const encoded = btoa(String.fromCharCode(...new TextEncoder().encode(token)))
.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '') const ws = new WebSocket('wss://maps.example.com/?session=demo', [ 'cesium-mcp', cesium-token.${encoded}, ])
Do not put credentials in query strings. Reverse proxies must not log Authorization or Sec-WebSocket-Protocol headers. The Viewer HTML and Bridge script are public assets; protected APIs and WebSocket upgrades still require the token. Secondary local Runtime instances must use the same token to relay to an existing instance. Browser session IDs select a Viewer; they are not credentials.
{
"mcpServers": { "cesium": { "command": "npx", "args": ["-y", "cesium-mcp-runtime"], "env": { "CESIUM_WS_PORT": "9100", "DEFAULT_SESSION_ID": "default" } } } }
In .vscode/mcp.json:
{
"servers": { "cesium": { "command": "npx", "args": ["-y", "cesium-mcp-runtime"], "env": { "DEFAULT_SESSION_ID": "default" } } } }
In .cursor/mcp.json:
{
"mcpServers": { "cesium": { "command": "npx", "args": ["-y", "cesium-mcp-runtime"] } } }
Tools are organized into 12 toolsets. By default, 4 core toolsets are enabled (30 tools). Additional toolsets can be activated via environment variable or dynamically by the AI agent at runtime. Shared titles, behavior annotations, localized descriptions, defaults, input validation, advertised output schemas, and structured results are generated from the canonical JSON Schemas in cesium-mcp-contracts. Tool calls also retain text content for older clients.
| Toolset | Tools | Default | Description |
|---|---|---|---|
view | 8 | Yes | Camera view controls + viewpoint bookmarks + scene export |
entity | 10 | Yes | Core entity operations + batch, query & property inspection |
layer | 9 | Yes | Layer management (GeoJSON, schema, style, basemap) |
interaction | 3 | Yes | Screenshot, highlight & measurement |
camera | 4 | — | Advanced camera controls (orbit, lookAt) |
entity-ext | 7 | — | Extended entity types (box, cylinder, wall, etc.) |
animation | 8 | — | Animation system (waypoints, clock, tracking, lighting) |
tiles | 7 | — | 3D Tiles, Gaussian Splats, terrain, imagery services, CZML & KML |
trajectory | 1 | — | Trajectory playback |
heatmap | 1 | — | Heatmap visualization |
scene | 3 | — | Scene options, post-processing & Runtime-only Ion credentials |
geolocation | 1 | — | Geocoding — convert address/place name to coordinates (Nominatim/OSM) |
{
"mcpServers": { "cesium": { "command": "npx", "args": ["-y", "cesium-mcp-runtime"], "env": { "CESIUM_TOOLSETS": "all" } } } }
CESIUM_TOOLSETS value | Result |
|---|---|
| *(not set)* | Default 4 toolsets (30 tools + 2 meta-tools) |
view,entity,camera,animation | Only specified toolsets + 2 meta-tools |
all | All 62 command tools, no meta-tools |
When not in all mode, two meta-tools are always available so the AI can discover and activate additional capabilities on demand:
| Tool | Description |
|---|---|
list_toolsets | List all toolset groups with enabled status and tool names |
enable_toolset | Dynamically enable a toolset — new tools become immediately available |
| Tool | Description |
|---|---|
flyTo | Fly to coordinates (lon, lat, height, heading, pitch, roll, duration) |
setView | Set camera position instantly |
getView | Get current camera state |
zoomToExtent | Zoom to bounding box (west, south, east, north) |
| Tool | Description |
|---|---|
addMarker | Add a marker at coordinates |
addLabel | Add text labels to the map |
addModel | Add 3D model (glTF/GLB or Ion asset) |
addPolygon | Add polygon with styling |
addPolyline | Add polyline with styling |
updateEntity | Update entity properties |
removeEntity | Remove entity by ID |
| Tool | Description |
|---|---|
addGeoJsonLayer | Add GeoJSON with styling (choropleth, category, etc.) |
listLayers | List all layers |
removeLayer | Remove layer by ID |
setLayerVisibility | Toggle layer visibility |
updateLayerStyle | Change layer color/opacity/width |
setBasemap | Switch basemap |
| Tool | Description |
|---|---|
lookAtTransform | Orbit-style camera aim at a position (heading/pitch/range) |
startOrbit | Start orbiting the camera around current center |
stopOrbit | Stop orbit animation |
setCameraOptions | Configure camera controller (enable/disable rotation, zoom, tilt) |
| Tool | Description |
|---|---|
addBillboard | Add an image icon at a position |
addBox | Add a 3D box with dimensions and material |
| addCorridor | Add a corrido
只显示了开头部分;其余内容请在仓库中阅读