Spline MCP Server
An interface that enables Claude to interact with Spline 3D design tool, allowing operations like exporting scenes, importing models, and creating animations through natural language commands.
README Documentation
Spline.design MCP Server (Archived)
This project is archived. Spline.design does not provide a public REST API, making most of this server's functionality non-operational. See below for details.
Why archived
This MCP server was built to programmatically control Spline.design 3D scenes through Claude. However, Spline does not offer a public REST API for scene manipulation. The ~130 tools that call api.spline.design target endpoints that don't exist and will fail with network errors.
Spline's actual developer tools are:
- Code API — A client-side JavaScript runtime (
@splinetool/runtime) that only works in a browser with a canvas element. It can manipulate objects in exported scenes but cannot create scenes or objects. - Real-time API — A feature inside the Spline editor for making outbound API calls from Spline to external services. Not an inbound API.
Neither of these enables the kind of server-side programmatic control this MCP server attempts.
What does work
10 code generation tools generate @splinetool/runtime code for Vanilla JS, React, and Next.js. However, Claude can already write this code without an MCP server, making these tools redundant.
Installation
Using npx (for Claude Desktop)
Add this to your Claude Desktop MCP config:
{
"mcpServers": {
"spline": {
"command": "npx",
"args": ["-y", "spline-mcp-server"]
}
}
}
Local development
git clone https://github.com/aydinfer/spline-mcp-server.git
cd spline-mcp-server
npm install
npm start
What you can do with it
Ask Claude to generate Spline runtime code for your projects:
- "Generate a React component that loads my Spline scene and adds click handlers to objects"
- "Write animation code that rotates an object on hover"
- "Create an interactive scene with variable-based state management"
- "Generate Next.js code with Spline integration"
Claude will use the code generation tools to produce working @splinetool/runtime code you can use directly in your web projects.
Spline Runtime API Reference
The @splinetool/runtime provides these methods (which the code generation tools target):
| Method | Description |
|---|---|
findObjectByName(name) | Find an object by name |
findObjectById(uuid) | Find an object by ID |
getAllObjects() | List all scene objects |
emitEvent(event, nameOrUuid) | Trigger an event on an object |
addEventListener(event, cb) | Listen for scene events |
setVariable(name, value) | Set a scene variable |
getVariable(name) | Get a scene variable |
setZoom(value) | Control zoom level |
play() / stop() | Control rendering |
Objects expose position, rotation, scale, visible, and intensity properties.
Project Structure
spline-mcp-server/
├── src/
│ ├── tools/ # MCP tool implementations
│ │ └── design/ # Advanced design tools (pending API)
│ ├── utils/ # API client and runtime manager
│ ├── prompts/ # Prompt templates
│ ├── resources/ # MCP resources
│ └── index.js # Main server entry point
├── bin/cli.js # CLI entry point
├── docs/ # Documentation
└── package.json
License
This project is licensed under the MIT License — see the LICENSE file for details.