spline-mcp
Enables interaction with n8n for workflow automation, including status checks, workflow generation, and webhook triggers.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@spline-mcpgenerate React component for scene https://prod.spline.design/abc123/scene.splinecode"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
spline-mcp
MCP server for Spline.design code generation and asset management.
Overview
Spline.design is a 3D design tool that exports interactive scenes for the web. This MCP server provides:
Code Generation: Generate React, Next.js, and vanilla JS integration code
Asset Management: Download, cache, and validate
.splinecodefilesIntegration Support: WebSocket (Mahavishnu) integration
Helper Utilities: URL building, event documentation, code snippets
Note: Spline does not have a traditional REST API. Scenes are created in the Spline editor and exported as
.splinecodefiles for runtime use.
Related MCP server: Pixal3D-MCP
Spline V2 Compatibility
Spline V2 (released August 20, 2026) ships its own MCP server inside the rebuilt Spline desktop app that lets AI agents drive the editor directly — creating and modifying objects, materials, lights, cameras, booleans, particles, cloners, lathes, sky, variables, events, and states. See the Spline V2 launch announcement for details.
This server fills a different, complementary niche:
Workflow stage | Tool |
Authoring — building / editing the scene in the editor | Spline V2 MCP (bundled with the Spline desktop app) |
Embedding — putting the exported scene into your React / Next.js / vanilla app | This server ( |
Runtime control — manipulating variables / events from your app at runtime | Both cooperate: V2 MCP builds the scene; this server emits the JS that drives |
Concretely, this server does not edit scenes — it operates strictly on already-exported .splinecode URLs. If you need an agent to author a new scene from scratch, install the Spline desktop app and use its built-in MCP server. Use this server when you have a published .splinecode URL and want to scaffold the React / Next.js / vanilla integration, cache the scene asset, wire up runtime event handlers, or pipe events into Mahavishnu.
Installation
uv pip install -e .Quick Start
Generate a React Component
spline-mcp generate react https://prod.spline.design/6Wq1Q7YGyM-iab9i/scene.splinecodeDownload a Scene
spline-mcp download https://prod.spline.design/6Wq1Q7YGyM-iab9i/scene.splinecodeMCP Server Usage
Stdio Mode (default)
spline-mcp serveHTTP Mode
spline-mcp serve --http --port 3052Available Tools
Code Generation
Tool | Description |
| Generate React component with TypeScript |
| Generate standalone HTML/JS |
| Generate Next.js component with SSR support |
| Generate event handler code |
| Generate runtime variable bindings |
| Complete integration with all features |
Asset Management
Tool | Description |
| Download and cache a .splinecode file |
| Validate a .splinecode file |
| List all cached scenes |
| Clear cached scenes |
| Get cache statistics |
Helper Utilities
Tool | Description |
| Build export URL from scene ID |
| Parse URL to extract scene ID |
| List supported Spline event types |
| Get docs for specific event |
| Generate common code snippets |
Integration
Tool | Description |
| Check Mahavishnu WebSocket connection |
| Subscribe to real-time updates |
| Status of all integrations |
| Status of all integrations |
Documentation
Tool | Description |
| Get documentation for the @splinetool/runtime API by topic |
| Get installation guide for the Spline runtime |
| Get troubleshooting guide for common Spline issues |
Configuration
Set via environment variables with SPLINE_ prefix:
Variable | Default | Description |
|
| Default framework (react/vanilla/nextjs) |
|
| Generate TypeScript code |
|
| Use lazy loading with Suspense |
|
| Generate SSR placeholder for Next.js |
|
| Indentation spaces for generated code (2-8) |
|
| Use semicolons in generated JavaScript |
|
| Cache directory |
|
| Maximum cache size |
|
| Automatically validate downloaded scenes |
|
| Enable WebSocket integration |
|
| Mahavishnu WebSocket URL |
|
| Automatically reconnect on disconnect |
|
| Enable HTTP transport |
|
| HTTP server host |
|
| HTTP server port |
|
| Logging level |
|
| Use JSON logging format |
Generated Code Examples
React Component
import { Suspense, useRef, useCallback } from 'react';
import Spline from '@splinetool/react-spline';
interface HeroSceneProps {
className?: string;
}
export function HeroScene({ className }: HeroSceneProps) {
return (
<Suspense fallback={<div>Loading 3D scene...</div>}>
<Spline
scene="https://prod.spline.design/xxx/scene.splinecode"
className={className}
/>
</Suspense>
);
}With WebSocket Integration
// Auto-generated WebSocket integration with soft failover
const { subscribe, isConnected } = useWebSocket('ws://localhost:8690');
useEffect(() => {
if (!isConnected) return;
const unsubscribe = subscribe('spline:variables', (data) => {
splineRef.current?.setVariables(data);
});
return unsubscribe;
}, [isConnected]);Architecture
spline_mcp/
├── generators/ # Code generation (React, Vanilla, Next.js)
│ ├── base.py # Base classes and types
│ ├── react.py # React generator with FastBlocks patterns
│ ├── vanilla.py # Vanilla JS/HTML generator
│ └── nextjs.py # Next.js SSR generator
├── assets/ # Asset management
│ ├── manager.py # Download, cache, validate
│ └── validator.py # Scene file validation
├── integrations/ # External integrations
│ └── websocket.py # Mahavishnu WebSocket (soft failover)
├── tools/ # MCP tool definitions
│ ├── generation.py # Code generation tools
│ ├── assets.py # Asset management tools
│ ├── helpers.py # Utility tools
│ └── integration.py # Integration tools
├── config.py # Oneiric-based configuration
└── server.py # FastMCP applicationEcosystem Integration
Part of the Bodai Ecosystem:
Component | Role | Port |
Mahavishnu | Orchestrator | 8680 |
Akosha | Seer | 8682 |
Dhara | Curator | 8683 |
Session-Buddy | Builder | 8678 |
Crackerjack | Inspector | 8676 |
spline-mcp | 3D Orchestrator | 3052 |
Installation via Bodai Marketplace
This repo ships a Bodai Claude Code plugin manifest (.claude-plugin/plugin.json) plus a colocated .mcp.json and three slash commands in commands/. To install via the Bodai marketplace, first register the marketplace with Claude Code, then install the plugin by name. Once installed, the slash commands /spline-generate, /spline-assets, and /spline-websocket become available alongside the mcp__spline__* tools. Make sure the spline-mcp HTTP server is running on its configured port before invoking the slash commands.
License
BSD-3-Clause
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that provides asset auto generator
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
The official MCP Server for the Mux API
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
AlicenseAqualityCmaintenanceMCP server for Vitrine, the 3D product viewer platform. Enables AI agents to upload GLB models, configure scenes, publish embeds, and manage Looks.17332 npm1MIT- FlicenseNot gradedqualityBmaintenanceStandalone MCP server for generating high-fidelity 3D assets from a single image using Pixal3D inference.2-
- AlicenseAqualityDmaintenanceMCP server for integrating with Rodin Gen-2 API to generate 3D models from text descriptions or images.6MIT
- AlicenseNot gradedqualityAmaintenanceOpen-source, engine-agnostic MCP server shared by Unity-MCP, Godot-MCP, and Unreal-MCP.13Apache 2.0