样条mcp
    
MCP服务器 样条设计 代码生成和资产管理。
概述
Spline.design是一个为网络导出交互式场景的3D设计工具。此MCP服务器提供:
- 代码生成:生成React、Next.js和vanilla js集成代码
- 资产管理:下载、缓存和验证
.splinecode文件 - 集成支持:WebSocket(Mahavishnu)和n8n工作流集成
- 助手实用程序:URL构建、事件文档、代码片段
备注:Spline没有传统的REST API。场景在样条线编辑器中创建,并导出为 .splinecode 运行时使用的文件。安装
uv pip install -e .快速开始
生成React组件
spline-mcp generate react https://prod.spline.design/6Wq1Q7YGyM-iab9i/scene.splinecode下载场景
spline-mcp download https://prod.spline.design/6Wq1Q7YGyM-iab9i/scene.splinecodeMCP服务器使用情况
标准模式(默认)
spline-mcp serveHTTP模式
spline-mcp serve --http --port 3048可用工具
代码生成
| 工具 | 说明 |
|---|---|
generate_react_component | 使用TypeScript生成React组件 |
generate_vanilla_js | 生成独立的HTML/JS |
generate_nextjs_component | 生成支持SSR的Next.js组件 |
generate_event_handler | 生成事件处理程序代码 |
generate_variable_binding | 生成运行时变量绑定 |
generate_full_integration | 与所有功能完全集成 |
资产管理
| 工具 | 说明 |
|---|---|
download_scene | 下载并缓存.plackecode文件 |
validate_scene | 验证.psplinecode文件 |
list_cached_scenes | 列出所有缓存的场景 |
clear_cache | 清除缓存的场景 |
get_cache_stats | 获取缓存统计信息 |
助手实用程序
| 工具 | 说明 |
|---|---|
build_export_url | 根据场景ID构建导出URL |
parse_scene_url | 解析URL以提取场景ID |
list_event_types | 列出支持的样条线事件类型 |
get_event_documentation | 获取特定事件的文档 |
generate_snippet | 生成通用代码片段 |
整合
| 工具 | 说明 |
|---|---|
get_websocket_status | 检查Mahavishnu WebSocket连接 |
subscribe_to_channel | 订阅实时更新 |
get_n8n_status | 检查n8n的可用性 |
generate_n8n_workflow | 为样条线生成n8n工作流 |
trigger_n8n_webhook | 触发n8n webhook |
get_integration_status | 所有集成的状态 |
配置
通过环境变量设置 SPLINE_ 前缀:
| 变量 | 默认值 | 描述 |
|---|---|---|
SPLINE_DEFAULT_FRAMEWORK | react | 默认框架(react/villar/nextjs) |
SPLINE_TYPESCRIPT | true | 生成TypeScript代码 |
SPLINE_LAZY_LOAD | true | 使用Suspense的延迟加载 |
SPLINE_CACHE_DIR | ~/.spline-mcp/cache | 缓存目录 |
SPLINE_MAX_CACHE_SIZE_MB | 500 | 最大缓存大小 |
SPLINE_WEBSOCKET_ENABLED | true | 启用WebSocket集成 |
SPLINE_WEBSOCKET_URL | ws://localhost:8690 | Mahavishnu WebSocket URL |
SPLINE_N8N_ENABLED | true | 启用n8n集成 |
SPLINE_N8N_URL | http://localhost:3044 | n8n服务器URL |
SPLINE_HTTP_PORT | 3048 | HTTP服务器端口 |
SPLINE_LOG_LEVEL | INFO | 日志记录级别 |
生成的代码示例
React 组件
import { Suspense, useRef, useCallback } from 'react';
import Spline from '@splinetool/react-spline';
interface HeroSceneProps {
className?: string;
}
export function HeroScene({ className }: HeroSceneProps) {
return (
);
}通过WebSocket集成
// 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]);建筑
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)
│ └── n8n.py # n8n workflow integration
├── 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 application生态系统整合
部分 博大生态系统:
| 组件 | 角色 | 端口 |
|---|---|---|
| 马哈维什努 | 编曲家 | 8680 |
| 阿科沙 | Seer | 8682 |
| 达拉 | 策展人 | 8683 |
| 会话伙伴 | 构建器 | 8678 |
| 裂纹千斤顶 | 检查员 | 8676 |
| 样条mcp | 三维编排器 | 3048 |
许可证
BSD-3条款
