threejs-mcp
README.md
# Threejs-mcp
A Three.js code-generation MCP server.
## Tools
| Category | Tools |
|---|---|
| Scene & Renderer | `scene_setup`, `html_template` |
| Cameras | `perspective_camera`, `orthographic_camera` |
| Geometry | `geometry`, `extrude_geometry`, `lathe_geometry`, `tube_geometry` |
| Materials | `material`, `shader_material` |
| Meshes | `mesh`, `instanced_mesh`, `group` |
| Lighting | `ambient_light`, `directional_light`, `point_light`, `spot_light`, `hemisphere_light`, `rect_area_light` |
| Controls | `orbit_controls`, `fly_controls`, `pointer_lock_controls`, `transform_controls` |
| Loaders | `gltf_loader`, `texture_loader`, `cube_texture_loader`, `hdr_environment`, `fbx_loader` |
| Animation | `animation_loop`, `keyframe_animation`, `tween_animation` |
| Interaction | `raycaster` |
| Helpers | `debug_helpers`, `light_helpers` |
| Post-processing | `postprocessing_setup` |
| Environment | `ground_plane`, `skybox`, `water_surface`, `particles`, `reflective_surface`, `lensflare` |
| UI | `css2d_label` |
| Physics | `rapier_physics` |
| XR | `webxr_setup` |
| Utilities | `math_utils`, `dispose_resources` |
## Prerequisites
- Python 3.13+
- [uv](https://docs.astral.sh/uv/)
## Installation
Clone this repository, then update the path in `run.sh` to point to the cloned directory:
```bash
#!/bin/zsh
source ~/.zshrc
exec uv run --directory /path/to/threejs-mcp threejs-mcp
```
Make the script executable:
```bash
chmod +x run.sh
```
Then follow the instructions for your MCP client below. Replace `/path/to/threejs-mcp/run.sh` with the actual path to the script.
### Claude Code
```bash
claude mcp add threejs -s user -- /path/to/threejs-mcp/run.sh
```
The scope (`-s`) can be `user`, `project`, or `local`.
### Claude Desktop
Open **Settings > Developer > Edit Config** and add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"threejs": {
"command": "/path/to/threejs-mcp/run.sh"
}
}
}
```
### Cursor
Open **Settings > MCP > Add new global MCP server** and add to `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"threejs": {
"command": "/path/to/threejs-mcp/run.sh"
}
}
}
```
Or add to `.cursor/mcp.json` in your project root for project-scoped configuration.
### Windsurf
Open **Settings > MCP > Add Server > Add custom server** and add to your MCP config:
```json
{
"mcpServers": {
"threejs": {
"command": "/path/to/threejs-mcp/run.sh"
}
}
}
```
### VS Code / GitHub Copilot
Add to your user or workspace `settings.json`:
```json
{
"mcp": {
"servers": {
"threejs": {
"command": "/path/to/threejs-mcp/run.sh"
}
}
}
}
```
Or create `.vscode/mcp.json` in your project root:
```json
{
"servers": {
"threejs": {
"command": "/path/to/threejs-mcp/run.sh"
}
}
}
```
### Zed
Add to your Zed settings (`~/.config/zed/settings.json`):
```json
{
"context_servers": {
"threejs": {
"command": {
"path": "/path/to/threejs-mcp/run.sh"
}
}
}
}
```
### Cline
Open **Settings > MCP Servers > Edit MCP Settings** and add to the config:
```json
{
"mcpServers": {
"threejs": {
"command": "/path/to/threejs-mcp/run.sh"
}
}
}
```
### Continue
Add to your `~/.continue/config.yaml`:
```yaml
mcpServers:
- name: threejs
command: /path/to/threejs-mcp/run.sh
```
### Roo Code
Open **Settings > MCP > Edit MCP Settings** and add:
```json
{
"mcpServers": {
"threejs": {
"command": "/path/to/threejs-mcp/run.sh"
}
}
}
```
### Any other MCP client
This is a standard stdio MCP server. Run it with:
```bash
/path/to/threejs-mcp/run.sh
```
## Scraping docs
The `docs/` directory contains condensed markdown scraped from the Three.js documentation. To regenerate:
```bash
uv run python scrape_docs.py
```
This requires the `httpx` and `beautifulsoup4` packages (not included in the main dependencies).
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues