Skip to content

Commit d20e554

Browse files
Merge pull request #22 from gaopengbin/feat/imagery-server
feat: add imagery-server with imagery_add, imagery_remove, imagery_list tools
2 parents ba1ba1b + 1ab32ed commit d20e554

31 files changed

Lines changed: 3168 additions & 26 deletions

mcp/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ CesiumJs servers live in [`cesium-js/`](./cesium-js/README.md). See the [cesium-
1313
| 🎥 [cesium-camera-server](./cesium-js/servers/camera-server/README.md) | `cesium-js/servers/camera-server/` | Camera control: fly-to, orbit, look-at, position queries |
1414
| 🌍 [cesium-entity-server](./cesium-js/servers/entity-server/README.md) | `cesium-js/servers/entity-server/` | Entity management: points, billboards, labels, models, polygons, polylines, and more |
1515
| 🎬 [cesium-animation-server](./cesium-js/servers/animation-server/README.md) | `cesium-js/servers/animation-server/` | Path-based animations, clock control, camera tracking, globe lighting |
16+
| 🗺️ [cesium-imagery-server](./cesium-js/servers/imagery-server/README.md) | `cesium-js/servers/imagery-server/` | Imagery layer management: add, remove, and list imagery providers |
1617

1718
### 🌐 Geolocation MCP Server
1819

@@ -43,6 +44,7 @@ See the individual READMEs for full details:
4344
- **[cesium-camera-server README](./cesium-js/servers/camera-server/README.md)** — camera tools reference and configuration
4445
- **[cesium-entity-server README](./cesium-js/servers/entity-server/README.md)** — entity tools reference and configuration
4546
- **[cesium-animation-server README](./cesium-js/servers/animation-server/README.md)** — animation tools reference and configuration
47+
- **[cesium-imagery-server README](./cesium-js/servers/imagery-server/README.md)** — imagery tools reference and configuration
4648
- **[cesium-geolocation-server README](./geolocation-server/README.md)** — geolocation, POI search, and routing tools
4749
- **[mcp-apps README](./mcp-apps/README.md)** — MCP Apps with interactive UIs
4850
- **[cesium-context7 README](./external/cesium-context7/README.md)** — Context7 setup and agent skill usage
@@ -60,7 +62,8 @@ mcp/
6062
│ │ ├── shared/ # Shared utilities (MCP base, communications)
6163
│ │ ├── camera-server/ # Camera control MCP server
6264
│ │ ├── entity-server/ # Entity management MCP server
63-
│ │ └── animation-server/ # Animation and path control MCP server
65+
│ │ ├── animation-server/ # Animation and path control MCP server
66+
│ │ └── imagery-server/ # Imagery layer management MCP server
6467
│ ├── test-applications/
6568
│ │ ├── packages/client-core/ # Shared client library
6669
│ │ └── web-app/ # Browser application (localhost:8080)

mcp/cesium-js/README.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ pnpm monorepo containing MCP servers and test applications for controlling [Cesi
1010
| [`@cesium-mcp/camera-server`](./servers/camera-server/README.md) | Camera control: fly-to, orbit, look-at, position queries | 3002 |
1111
| [`@cesium-mcp/entity-server`](./servers/entity-server/README.md) | Entity management: points, billboards, labels, models, polygons, polylines, and more | 3003 |
1212
| [`@cesium-mcp/animation-server`](./servers/animation-server/README.md) | Path-based animations, clock control, camera tracking, globe lighting | 3004 |
13+
| [`@cesium-mcp/imagery-server`](./servers/imagery-server/README.md) | Imagery layer management: add, remove, and list imagery providers | 3005 |
1314
| [`@cesium-mcp/client-core`](./test-applications/packages/client-core/README.md) | Shared browser client library (managers, communications) ||
1415
| [`@cesium-mcp/cesium-js`](./test-applications/README.md) | Browser web application (CesiumJS viewer) | 8080 |
1516

@@ -65,6 +66,16 @@ Animate 3D models along paths and control the scene clock.
6566
| `clock_control` | Configure global clock time, speed, and playback state |
6667
| `globe_set_lighting` | Enable realistic day/night globe lighting |
6768

69+
### 🗺️ [cesium-imagery-server](./servers/imagery-server/README.md)
70+
71+
Manage imagery layers on the CesiumJS globe.
72+
73+
| Tool | Description |
74+
| ---------------- | --------------------------------------------------------- |
75+
| `imagery_add` | Add imagery layer from various provider types |
76+
| `imagery_remove` | Remove imagery layer by index, name, or remove all |
77+
| `imagery_list` | List all imagery layers with visibility and provider info |
78+
6879
## 🏗️ Structure
6980

7081
```
@@ -73,7 +84,8 @@ cesium-js/
7384
│ ├── shared/ # @cesium-mcp/shared
7485
│ ├── camera-server/ # @cesium-mcp/camera-server
7586
│ ├── entity-server/ # @cesium-mcp/entity-server
76-
│ └── animation-server/ # @cesium-mcp/animation-server
87+
│ ├── animation-server/ # @cesium-mcp/animation-server
88+
│ └── imagery-server/ # @cesium-mcp/imagery-server
7789
├── test-applications/
7890
│ ├── packages/
7991
│ │ └── client-core/ # @cesium-mcp/client-core
@@ -107,6 +119,7 @@ pnpm run build:shared # @cesium-mcp/shared only
107119
pnpm run build:camera # @cesium-mcp/camera-server only
108120
pnpm run build:entity # @cesium-mcp/entity-server only
109121
pnpm run build:animation # @cesium-mcp/animation-server only
122+
pnpm run build:imagery # @cesium-mcp/imagery-server only
110123
pnpm run build:cesium-js # @cesium-mcp/cesium-js (web app) only
111124
pnpm run clean # Remove all build artifacts
112125
```
@@ -119,6 +132,7 @@ pnpm run clean # Remove all build artifacts
119132
pnpm run dev:camera # Camera server on port 3002
120133
pnpm run dev:entity # Entity server on port 3003
121134
pnpm run dev:animation # Animation server on port 3004
135+
pnpm run dev:imagery # Imagery server on port 3005
122136
```
123137

124138
### Web Application
@@ -168,6 +182,17 @@ Add the servers to your MCP client (e.g., Claude Desktop, Cline):
168182
"ANIMATION_SERVER_PORT": "3004",
169183
"STRICT_PORT": "false"
170184
}
185+
},
186+
"cesium-imagery": {
187+
"command": "node",
188+
"args": [
189+
"{YOUR_WORKSPACE}/mcp/cesium-js/servers/imagery-server/build/index.js"
190+
],
191+
"env": {
192+
"COMMUNICATION_PROTOCOL": "websocket",
193+
"IMAGERY_SERVER_PORT": "3005",
194+
"STRICT_PORT": "false"
195+
}
171196
}
172197
}
173198
}
@@ -186,7 +211,7 @@ Add the servers to your MCP client (e.g., Claude Desktop, Cline):
186211
AI Assistant (Claude, Cline, etc.)
187212
│ stdio (MCP)
188213
189-
MCP Server (camera / entity / animation)
214+
MCP Server (camera / entity / animation / imagery)
190215
│ WebSocket or SSE
191216
192217
CesiumJS Web App (localhost:8080)

mcp/cesium-js/package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,17 @@
55
"type": "module",
66
"private": true,
77
"scripts": {
8-
"build": "pnpm run build:shared && pnpm run build:camera && pnpm run build:entity && pnpm run build:animation && pnpm run build:cesium-js",
8+
"build": "pnpm run build:shared && pnpm run build:camera && pnpm run build:entity && pnpm run build:animation && pnpm run build:imagery && pnpm run build:cesium-js",
99
"build:shared": "pnpm --filter @cesium-mcp/shared build",
1010
"build:camera": "pnpm --filter @cesium-mcp/camera-server build",
1111
"build:entity": "pnpm --filter @cesium-mcp/entity-server build",
1212
"build:animation": "pnpm --filter @cesium-mcp/animation-server build",
13+
"build:imagery": "pnpm --filter @cesium-mcp/imagery-server build",
1314
"build:cesium-js": "pnpm --filter @cesium-mcp/cesium-js build",
1415
"dev:camera": "pnpm --filter @cesium-mcp/camera-server dev",
1516
"dev:entity": "pnpm --filter @cesium-mcp/entity-server dev",
1617
"dev:animation": "pnpm --filter @cesium-mcp/animation-server dev",
18+
"dev:imagery": "pnpm --filter @cesium-mcp/imagery-server dev",
1719
"start:web": "pnpm --filter @cesium-mcp/cesium-js start:web",
1820
"clean": "pnpm -r run clean",
1921
"lint": "eslint .",
@@ -25,7 +27,8 @@
2527
"test:coverage": "vitest run --coverage",
2628
"test:camera": "pnpm --filter @cesium-mcp/camera-server test",
2729
"test:entity": "pnpm --filter @cesium-mcp/entity-server test",
28-
"test:animation": "pnpm --filter @cesium-mcp/animation-server test"
30+
"test:animation": "pnpm --filter @cesium-mcp/animation-server test",
31+
"test:imagery": "pnpm --filter @cesium-mcp/imagery-server test"
2932
},
3033
"keywords": [
3134
"mcp",

mcp/cesium-js/pnpm-lock.yaml

Lines changed: 54 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
IMAGERY_SERVER_PORT=3005
2+
MAX_RETRIES=10
3+
COMMUNICATION_PROTOCOL=websocket
4+
STRICT_PORT=false
5+
MCP_TRANSPORT=stdio

0 commit comments

Comments
 (0)