Skip to main content
Glama

3D МКП

Тесты плагиновМашинописьЛицензия

Обзор

3D-MCP — это универсальная реализация Model Context Protocol для 3D-программного обеспечения. Она создает унифицированный интерфейс TypeScript для LLM, позволяющий им взаимодействовать с Blender, Maya, Unreal Engine и другими 3D-приложениями через единый согласованный API.

// LLMs use the same interface regardless of underlying 3D software
await tools.animation.createKeyframe({
  objectId: "cube_1",
  property: "rotation.x",
  time: 30,
  value: Math.PI/2
});

Related MCP server: lightfast-mcp

Основная философия и проектные решения

3D-MCP построен на четырех взаимосвязанных архитектурных принципах, которые вместе создают единую систему для создания 3D-контента:

  1. Проектирование Entity-First : четко определенные сущности предметной области формируют основу всех операций, обеспечивая единообразное моделирование данных на разных платформах.

  2. Типобезопасные CRUD-операции : автоматическая генерация операций создания, чтения, обновления, удаления с полной проверкой типов.

  3. Уровень атомарных операций : минимальный набор платформенно-специфичных реализаций, которые обрабатывают основные операции.

  4. Компонуемая архитектура инструментов : сложная функциональность, созданная путем объединения атомарных операций платформенно-независимым способом.

Такая архитектура создает инверсию зависимостей, при которой детали реализации, специфичные для платформы, изолируются до атомарных операций, в то время как большая часть кодовой базы остается независимой от платформы.

┌─────────────────────────────────────────────────────────────────────────┐
│                             LLM / User API                              │
└───────────────────────────────────┬─────────────────────────────────────┘
                                    │ MCP Tool API
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                          Compound Operations                            │
│                                                                         │
│  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────────────────┐  │
│  │ Modeling Tools  │  │ Animation Tools │  │ Rigging Tools           │  │
│  └─────────────────┘  └─────────────────┘  └─────────────────────────┘  │
└───────────────────────────────────┬─────────────────────────────────────┘
                                    │ Implemented by
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                           Atomic Operations                             │
│                                                                         │
│  ┌─────────── Entity CRUD ────────────┐ ┌────────── Non-CRUD ─────────┐ │ 
│  │ create{Entity}s update{Entity}s ...│ │  select, undo, redo, etc.   │ │  
│  └────────────────────────────────────┘ └─────────────────────────────┘ │
└───────────────────────────────────┬─────────────────────────────────────┘
                                    │ Plug-in Server Request
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                       Platform-Specific Adapters                        │
│                                                                         │
│  ┌──── Blender ────┐  ┌────── Maya ─────┐  ┌─── Unreal Engine ────┐     │
│  │ createKeyframes │  │ createKeyframes │  │ createKeyframes      │     │    
│  └─────────────────┘  └─────────────────┘  └──────────────────────┘     │
└─────────────────────────────────────────────────────────────────────────┘

Почему именно эти дизайнерские решения?

Проект Entity-First был выбран по следующим причинам:

  • 3D-приложения используют разные объектные модели, но общие основные концепции (сетки, материалы, анимация)

  • Схемы Zod предоставляют единый источник истины для проверки, типизации и документирования.

  • Строгая типизация выявляет ошибки во время компиляции, а не во время выполнения

  • Богатые метаданные позволяют ИИ лучше понимать объекты домена

Операции CRUD как основа, потому что:

  • Они четко соответствуют тому, что 3D-приложениям необходимо делать с сущностями.

  • Стандартизированные шаблоны снижают когнитивные издержки

  • Автоматическая генерация устраняет повторяющийся код с помощью createCrudOperations

  • Каждая сущность автоматически получает одинаковый согласованный интерфейс.

Разделение атомарного и составного инструмента по следующим причинам:

  • Только атомарные инструменты требуют реализации на конкретной платформе (~20% кодовой базы)

  • Составные инструменты работают на всех платформах без изменений (~80% кодовой базы)

  • Новым платформам необходимо реализовать только атомарные операции, чтобы получить всю функциональность

  • Поддерживаемая архитектура с четким разделением задач

Техническая Архитектура

1. Архитектура CRUD, ориентированная на сущности

Основой системы является богатая система типов доменных сущностей, которая генерирует операции CRUD:

// Define entities with rich metadata using Zod
export const Mesh = NodeBase.extend({
  vertices: z.array(Tensor.VEC3).describe("Array of vertex positions [x, y, z]"),
  normals: z.array(Tensor.VEC3).optional().describe("Array of normal vectors"),
  // ... other properties
});

// CRUD operations generated automatically from entity schemas
const entityCruds = createCrudOperations(ModelEntities);
// => Creates createMeshs, getMeshs, updateMeshs, deleteMeshs, listMeshs

// All operations preserve complete type information
await tool.createRigControls.execute({
  name: "arm_ctrl",          
  shape: "cube",            // TypeScript error if not a valid enum value
  targetJointIds: ["joint1"], // Must be string array
  color: [0.2, 0.4, 1],     // Must match Color schema format
  // IDE autocomplete shows all required/optional fields
});

Схемы сущностей обеспечивают:

  • Проверка схемы : проверка параметров во время выполнения с подробными сообщениями об ошибках

  • Информация о типе : Полные типы TypeScript для помощи IDE

  • Документация : Самодокументируемый API с описаниями

  • Генерация кода : шаблоны для платформенно-специфических реализаций

Схема архитектуры сущности

┌──────────────────────────────────────────────────────────────┐
│                Core Entity Definitions                       │
│                                                              │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐   │
│  │ BaseEntity  │  │ NodeBase    │  │ Other Core Entities │   │
│  └─────────────┘  └─────────────┘  └─────────────────────┘   │
└──────────────────────────────────────────────────────────────┘
                           ▲
                           │ extends
                           │
┌──────────────────────────────────────────────────────────────┐
│                Domain-Specific Entities                      │
│                                                              │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐   │
│  │ Model       │  │ Animation   │  │ Rigging             │   │
│  │ Entities    │  │ Entities    │  │ Entities            │   │
│  └─────────────┘  └─────────────┘  └─────────────────────┘   │
└──────────────────────────────────────────────────────────────┘
                           │
                           │ input to
                           ▼
┌──────────────────────────────────────────────────────────────┐
│                Automatic CRUD Generation                     │
│                                                              │
│  ┌─────────────────────────────────────────────────────────┐ │
│  │ createCrudOperations(Entities)                          │ │
│  └─────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
                           │
                           │ generates
                           ▼
┌──────────────────────────────────────────────────────────────┐
│                     Atomic Operations                        │
│                                                              │
│  ┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐    │
│  │ create{Entity}s │ │ get{Entity}s │ │ update{Entity}s │ .. │
│  └─────────────────┘ └──────────────┘ └─────────────────┘    │
└──────────────────────────────────────────────────────────────┘
                           │
                           │ foundation for
                           ▼
┌──────────────────────────────────────────────────────────────┐
│                    Compound Operations                       │
│                                                              │
│  ┌─────────────────────────────────────────────────────────┐ │
│  │ No need for platform-specific code. Use atomic ops only.│ │
│  └─────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘

2. Архитектура составного инструмента

Система создает четкое разделение между атомарными и составными операциями:

// From compounded.ts - Higher level operations composed from atomic operations
createIKFKSwitch: defineCompoundTool({
  // ...parameter and return definitions...
  execute: async (params) => {
    // Create IK chain using atomic operations
    const ikChainResult = await tool.createIKChains.execute({/*...*/});
    
    // Create control with full type-checking
    const ikControlResult = await tool.createRigControls.execute({
      name: `${switchName}_IK_CTRL`,
      shape: ikControlShape,  // Type-checked against schema
      targetJointIds: [jointIds[jointIds.length - 1]],
      color: ikColor,
      // ...other parameters
    });
    
    // Position the control at the end effector
    await tool.batchTransform.execute({/*...*/});
    
    // Create constraints to connect the system
    await tool.createConstraint.execute({/*...*/});
    
    // Return standardized response with created IDs
    return {
      success: true,
      switchControlId: switchControlResult.id,
      ikControlId: ikControlResult.id,
      fkControlIds,
      poleVectorId: poleVectorId || undefined,
    };
  }
})

Такая архитектура обеспечивает ряд технических преимуществ:

  1. Атомарные операции (~20% системы):

    • Напрямую взаимодействуйте с API платформы

    • Нужны реализации для конкретных платформ

    • Сосредоточьтесь на операциях с отдельными сущностями (создание, чтение, обновление, удаление)

    • Форма минимальной реализации, необходимой для новых платформ

  2. Сложные операции (~80% системы):

    • Построен полностью из атомных операций

    • Никакого платформенно-специфического кода

    • Реализовать концепции доменов более высокого уровня

    • Работает на любой платформе без модификации

Поток композиции инструмента

┌─────────────────────────────────────────────────────────────────────────┐
│                        High-Level Tool Definition                       │
└──────────────────────────────────────┬──────────────────────────────────┘
                                       │
                                       ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                         Compound Tool Pattern                           │
│                                                                         │
│  ┌──────────────────────────────────────────────────────────────────┐   │
│  │ defineCompoundTool({                                             │   │
│  │   description: string,                                           │   │
│  │   parameters: zod.Schema,                                        │   │
│  │   returns: zod.Schema,                                           │   │
│  │   execute: async (params) => {                                   │   │
│  │     // Composed entirely from atomic operations                  │   │
│  │     await tool.atomicOperation1.execute({...});                  │   │
│  │     await tool.atomicOperation2.execute({...});                  │   │
│  │     return { success: true, ...results };                        │   │
│  │   }                                                              │   │
│  │ })                                                               │   │
│  └──────────────────────────────────────────────────────────────────┘   │
└───────────────────────────────────┬─────────────────────────────────────┘
                                    │ Plug-in Server Request
                                    ▼
┌─────────────────────────────────────────────────────────────────────────┐
│                         Platform Adaptation                             │
│                                                                         │
│  ┌──────────────────────────┐  ┌─────────────────────────────────────┐  │
│  │ Blender Implementation   │  │ Maya Implementation                 │  │
│  │ of Atomic Operations     │  │ of Atomic Operations                │  │
│  └──────────────────────────┘  └─────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────────┘

Ключевые файлы для архитектуры составного инструмента:

  • composited.ts: Инструменты моделирования составных частей

  • composited.ts: Инструменты для создания составной анимации

  • composited.ts: Инструменты для комбинированного такелажа

3. Конвейер генерации кода

Система автоматически генерирует реализации для конкретных платформ из определений TypeScript:

┌─────────────────┐     ┌────────────────────┐     ┌─────────────────────────┐
│ Entity Schemas  │     │ Schema             │     │ Platform-Specific Code  │
│ & Tools (TS)    │ ──> │ Extraction (TS)    │ ──> │ (Python/C++/etc.)       │
└─────────────────┘     └────────────────────┘     └─────────────────────────┘
      │                        │                             │
      │                        │                             │
      ▼                        ▼                             ▼
┌─────────────────┐     ┌────────────────────┐     ┌─────────────────────────┐
│ Type            │     │ Parameter          │     │ Implementation          │
│ Definitions     │     │ Validation         │     │ Templates               │
└─────────────────┘     └────────────────────┘     └─────────────────────────┘

Ключевые аспекты системы генерации:

  • Извлечение сущностей : анализирует схемы Zod для понимания структуры сущностей.

  • Сопоставление параметров : преобразует типы TypeScript в собственные типы платформы.

  • Генерация проверки : создает проверку параметров на целевых языках.

  • Шаблоны реализации : предоставляют шаблоны кода, специфичные для платформы.

Система кодогенерации реализована в:

  • plugin-codegen.ts : Основной скрипт генерации кода

  • extract-schemas.ts : извлекает схемы Zod из файлов TypeScript во временные файлы JSON.

4. Организация домена

Система организована по доменам, которые отражают рабочие процессы создания 3D-контента:

  • Ядро : базовые сущности и операции, используемые во всех доменах.

  • Моделирование : создание сетки, редактирование и топологические операции

  • Анимация : ключевые кадры, кривые, клипы и управление анимацией

  • Оснастка : скелетные системы, элементы управления и деформации

  • Рендеринг : материалы, освещение и настройки рендеринга

Каждый домен следует одной и той же организационной схеме:

  • entity.ts : Определения сущностей, специфичные для домена

  • atomic.ts : Атомарные операции для доменных сущностей

  • compounded.ts : высокоуровневые операции, созданные на основе атомарных инструментов

Диаграмма структуры домена

packages/src/tool/
│
├── core/                  # Core shared components
│   ├── entity.ts          # Base entities all domains use
│   ├── utils.ts           # Shared utilities including CRUD generation
│   └── ...
│
├── model/                 # Modeling domain
│   ├── entity.ts          # Mesh, Vertex, Face, etc.
│   ├── atomic.ts          # Atomic modeling operations
│   ├── compounded.ts      # Higher-level modeling tools
│   └── ...
│
├── animation/             # Animation domain
│   ├── entity.ts          # Keyframe, AnimCurve, Clip, etc.
│   ├── atomic.ts          # Atomic animation operations
│   ├── compounded.ts      # Higher-level animation tools
│   └── ...
│
├── rig/                   # Rigging domain
│   ├── entity.ts          # Joint, IKChain, Control, etc.
│   ├── atomic.ts          # Atomic rigging operations
│   ├── compounded.ts      # Higher-level rigging tools
│   └── ...
│
└── rendering/             # Rendering domain
    ├── entity.ts          # Camera, Light, RenderSettings, etc.
    ├── atomic.ts          # Atomic rendering operations
    ├── compounded.ts      # Higher-level rendering tools
    └── ...

5. Архитектура CRUD, ориентированная на сущности

Система реализует сложный подход, ориентированный на сущности, где:

  1. Сущности как модели доменов : каждый домен (моделирование, анимация, оснастка) определяет свои основные сущности, которые представляют его фундаментальные концепции. Они реализованы как схемы Zod с богатой информацией о типах.

  2. CRUD как основа : каждая сущность автоматически получает полный набор операций CRUD (создание, чтение, обновление, удаление) через утилиту createCrudOperations :

// Each domain starts with CRUD operations for all its entities
const entityCruds = createCrudOperations(ModelEntities);

const modelAtomicTools = {
  ...entityCruds,  // Foundation of all atomic tools
  // Domain-specific operations build on this foundation
}
  1. Повторное использование и наследование сущностей : основные сущности, определенные в core/entity.ts расширяются сущностями, специфичными для домена, что способствует повторному использованию кода и единообразному проектированию во всех доменах.

  2. Архитектура, вдохновленная DDD : система следует принципам проектирования на основе предметной области, организуя код вокруг сущностей и агрегатов предметной области, а не технических проблем.

Такая архитектура обеспечивает несколько ключевых преимуществ:

  • Согласованность : все сущности имеют одинаковые шаблоны для основных операций.

  • Сокращенный шаблон : операции CRUD генерируются автоматически

  • Четкая организация : инструменты организованы вокруг доменных сущностей.

  • Разделение задач : каждый домен управляет своими собственными сущностями, используя при этом общие шаблоны.

Сочетание расширенных моделей сущностей с автоматическими операциями CRUD создает надежную основу, которая упрощает разработку, сохраняя при этом гибкость для операций, специфичных для предметной области.

Начиная

# Install dependencies
bun install

# Run the server
bun run index.ts

# Extract schemas and generate plugins
bun run packages/scripts/plugin-codegen.ts

Рабочий процесс разработки

  1. Определение сущностей : создание или расширение схем сущностей в src/tool/<domain>/entity.ts

  2. Генерация CRUD : использование createCrudOperations для генерации атомарных операций.

  3. Создание составных инструментов : создание высокоуровневых операций из атомарных инструментов.

  4. Генерация плагинов : запуск генератора кода для создания реализаций для конкретных платформ.

Внося вклад

Архитектурные решения 3D-MCP делают его уникально расширяемым:

  1. Добавить новые сущности : определить новые сущности и автоматически получить операции CRUD

  2. Добавить новые составные инструменты : объединить существующие атомарные операции для создания новых функций.

  3. Добавить новые платформы : реализовать интерфейсы атомарных инструментов в новом плагине.

Более подробную информацию о том, как внести свой вклад, можно найти в нашем руководстве по внесению вклада.


3D-MCP: единый API для управления всем 3D-программным обеспечением

Available Tools

125 tools
assignMaterialsC

Assign materials to meshes or specific faces

Inputs: items (required).

batchGetPropertyC

Get property values from multiple objects

Inputs: items (required), recursive.

batchSetParentC

Set parent for multiple objects

Inputs: items (required), maintainWorldTransform.

batchSetPropertyC

Set properties on multiple objects

Inputs: items (required).

batchTransformC

Apply transformations to multiple objects

Inputs: items (required).

bevelC

Bevel edges or vertices

Inputs: items (required).

bridgeC

Create bridges between face loops

Inputs: items (required).

clearSelectionC

Clear current selection

Inputs: domain.

combineMeshesC

Combine multiple meshes into a single mesh

Inputs: meshIds (required), name, preserveSubMeshes, worldSpace.

createBlendShapesC

Create multiple BlendShapes

Inputs: items (required).

createChannelsC

Create multiple Channels

Inputs: items (required).

createClipsC

Create multiple Clips

Inputs: items (required).

createConstraintsC

Create multiple Constraints

Inputs: items (required).

createCurvesC

Create multiple Curves

Inputs: items (required).

createDriversC

Create multiple Drivers

Inputs: items (required).

createEdgesC

Create multiple Edges

Inputs: items (required).

createFacesC

Create multiple Faces

Inputs: items (required).

createGroupsC

Create multiple Groups

Inputs: items (required).

createIKChainsC

Create multiple IKChains

Inputs: items (required).

createJointsD

Create multiple Joints

Inputs: items (required).

createKeyframesC

Create multiple Keyframes

Inputs: items (required).

createLayersC

Create multiple Layers

Inputs: items (required).

createMaterialsC

Create multiple Materials

Inputs: items (required).

createMeshsC

Create multiple Meshs

Inputs: items (required).

createSubdivisionSurfacesC

Create multiple SubdivisionSurfaces

Inputs: items (required).

createUVMapsC

Create multiple UVMaps

Inputs: items (required).

createVertexsC

Create multiple Vertexs

Inputs: items (required).

deleteBlendShapesC

Delete multiple BlendShapes

Inputs: ids (required).

deleteChannelsC

Delete multiple Channels

Inputs: ids (required).

deleteClipsC

Delete multiple Clips

Inputs: ids (required).

deleteConstraintsC

Delete multiple Constraints

Inputs: ids (required).

deleteCurvesC

Delete multiple Curves

Inputs: ids (required).

deleteDriversC

Delete multiple Drivers

Inputs: ids (required).

deleteEdgesC

Delete multiple Edges

Inputs: ids (required).

deleteFacesC

Delete multiple Faces

Inputs: ids (required).

deleteGroupsC

Delete multiple Groups

Inputs: ids (required).

deleteIKChainsC

Delete multiple IKChains

Inputs: ids (required).

deleteJointsC

Delete multiple Joints

Inputs: ids (required).

deleteKeyframesC

Delete multiple Keyframes

Inputs: ids (required).

deleteLayersC

Delete multiple Layers

Inputs: ids (required).

deleteMaterialsC

Delete multiple Materials

Inputs: ids (required).

deleteMeshsC

Delete multiple Meshs

Inputs: ids (required).

deleteSubdivisionSurfacesC

Delete multiple SubdivisionSurfaces

Inputs: ids (required).

deleteUVMapsC

Delete multiple UVMaps

Inputs: ids (required).

deleteVertexsC

Delete multiple Vertexs

Inputs: ids (required).

duplicateC

Duplicate an entity

Inputs: id (required), duplicateChildren, duplicateDependencies, newName.

editCurveControlPointsC

Edit control points of curves

Inputs: items (required).

exportGeometryC

Export geometry collections to external formats

Inputs: items (required).

extrudeFacesD

Extrude faces

Inputs: items (required).

getBlendShapesB

Get multiple BlendShapes by IDs

Inputs: ids (required).

getChannelsB

Get multiple Channels by IDs

Inputs: ids (required).

getChildrenC

Get all children of an object

Inputs: id (required), recursive, typeFilter.

getClipsC

Get multiple Clips by IDs

Inputs: ids (required).

getConstraintsC

Get multiple Constraints by IDs

Inputs: ids (required).

getCurvesC

Get multiple Curves by IDs

Inputs: ids (required).

getDriversB

Get multiple Drivers by IDs

Inputs: ids (required).

getEdgesC

Get multiple Edges by IDs

Inputs: ids (required).

getFacesC

Get multiple Faces by IDs

Inputs: ids (required).

getGroupsC

Get multiple Groups by IDs

Inputs: ids (required).

getIKChainsC

Get multiple IKChains by IDs

Inputs: ids (required).

getJointsC

Get multiple Joints by IDs

Inputs: ids (required).

getKeyframesC

Get multiple Keyframes by IDs

Inputs: ids (required).

getLayersB

Get multiple Layers by IDs

Inputs: ids (required).

getMaterialsC

Get multiple Materials by IDs

Inputs: ids (required).

getMeshsC

Get multiple Meshs by IDs

Inputs: ids (required).

getMetadataC

Get metadata from an entity

Inputs: id (required), key.

getPropertyC

Get a property value from an object

Inputs: id (required), propertyPath (required).

getQuadViewC

Get top, front, right, and perspective views of the scene.

Inputs: auto_adjust_camera, name_visibility_predicate, shading_mode.

getSelectionC

Get currently selected objects

Inputs: domain.

getSubdivisionSurfacesC

Get multiple SubdivisionSurfaces by IDs

Inputs: ids (required).

getUVMapsC

Get multiple UVMaps by IDs

Inputs: ids (required).

getVertexsC

Get multiple Vertexs by IDs

Inputs: ids (required).

importGeometryC

Import geometry data sources

Inputs: items (required).

listBlendShapesC

List all BlendShapes

Inputs: filters, limit, offset, parentId.

listChannelsC

List all Channels

Inputs: filters, limit, offset, parentId.

listClipsC

List all Clips

Inputs: filters, limit, offset, parentId.

listConstraintsC

List all Constraints

Inputs: filters, limit, offset, parentId.

listCurvesC

List all Curves

Inputs: filters, limit, offset, parentId.

listDriversC

List all Drivers

Inputs: filters, limit, offset, parentId.

listEdgesC

List all Edges

Inputs: filters, limit, offset, parentId.

listFacesC

List all Faces

Inputs: filters, limit, offset, parentId.

listGroupsC

List all Groups

Inputs: filters, limit, offset, parentId.

listIKChainsC

List all IKChains

Inputs: filters, limit, offset, parentId.

listJointsC

List all Joints

Inputs: filters, limit, offset, parentId.

listKeyframesC

List all Keyframes

Inputs: filters, limit, offset, parentId.

listLayersC

List all Layers

Inputs: filters, limit, offset, parentId.

listMaterialsC

List all Materials

Inputs: filters, limit, offset, parentId.

listMeshsC

List all Meshs

Inputs: filters, limit, offset, parentId.

listSubdivisionSurfacesC

List all SubdivisionSurfaces

Inputs: filters, limit, offset, parentId.

listUVMapsD

List all UVMaps

Inputs: filters, limit, offset, parentId.

listVertexsC

List all Vertexs

Inputs: filters, limit, offset, parentId.

performGroupOperationsD

Perform operations on object groups

Inputs: items (required), operation (required).

quadrangulateC

Convert triangles to quads

Inputs: items (required).

queryC

Query entities based on criteria

Inputs: limit, offset, properties, type.

redoC

Redo the previously undone operation

Inputs: no named parameters.

renameC

Rename an entity

Inputs: id (required), name (required).

selectC

Select one or more objects

Inputs: ids (required), domain, mode.

setEdgeCreasesC

Set crease weights for edges

Inputs: items (required).

setMetadataC

Set metadata on an entity

Inputs: id (required), metadata (required), merge.

setSubdivisionLevelsC

Set subdivision levels for surfaces

Inputs: items (required).

splitMeshesC

Split meshes into separate objects

Inputs: items (required).

testD

Test tool

Inputs: no named parameters.

transformUVsC

Transform UV coordinates for vertices

Inputs: items (required).

transformVerticesC

Transform multiple vertices

Inputs: items (required).

triangulateC

Convert n-gons to triangles

Inputs: items (required).

undoC

Undo the last operation

Inputs: no named parameters.

unwrapUVsB

Generate UV coordinates using automatic unwrapping

Inputs: items (required).

updateBlendShapesC

Update multiple BlendShapes in a single operation

Inputs: items (required).

updateChannelsC

Update multiple Channels in a single operation

Inputs: items (required).

updateClipsC

Update multiple Clips in a single operation

Inputs: items (required).

updateConstraintsC

Update multiple Constraints in a single operation

Inputs: items (required).

updateCurvesC

Update multiple Curves in a single operation

Inputs: items (required).

updateDriversC

Update multiple Drivers in a single operation

Inputs: items (required).

updateEdgesC

Update multiple Edges in a single operation

Inputs: items (required).

updateFacesC

Update multiple Faces in a single operation

Inputs: items (required).

updateGroupsC

Update multiple Groups in a single operation

Inputs: items (required).

updateIKChainsC

Update multiple IKChains in a single operation

Inputs: items (required).

updateJointsC

Update multiple Joints in a single operation

Inputs: items (required).

updateKeyframesC

Update multiple Keyframes in a single operation

Inputs: items (required).

updateLayersC

Update multiple Layers in a single operation

Inputs: items (required).

updateMaterialsC

Update multiple Materials in a single operation

Inputs: items (required).

updateMeshsC

Update multiple Meshs in a single operation

Inputs: items (required).

updateSubdivisionSurfacesC

Update multiple SubdivisionSurfaces in a single operation

Inputs: items (required).

updateUVMapsC

Update multiple UVMaps in a single operation

Inputs: items (required).

updateVertexsC

Update multiple Vertexs in a single operation

Inputs: items (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.6/5.0

    Scored across 125 tools

    Disambiguation3/5

    The tools are generally well-differentiated by resource type (e.g., BlendShapes, Materials) and action (create, delete, update), but there is some overlap in batch operations like batchSetProperty and individual update tools, which could cause confusion. However, descriptions help clarify the scope, preventing severe misselection.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun pattern (e.g., createBlendShapes, deleteMaterials, updateVertexs), with clear conventions for CRUD operations. Minor inconsistencies include 'getQuadView' (not pluralized) and 'performGroupOperations' (less specific), but overall naming is predictable and readable.

    Tool Count2/5

    With 125 tools, the count is excessive for a typical MCP server, making it overwhelming and difficult to navigate. While it covers a broad 3D modeling domain, many tools could be consolidated or omitted without losing functionality, indicating poor scoping.

    Completeness5/5

    The tool set provides comprehensive coverage for 3D modeling, including full CRUD operations for various resources (e.g., meshes, materials, UV maps), transformation tools, import/export, and utility functions like undo/redo. No obvious gaps exist for the domain, ensuring agents can handle complex workflows.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      A bridge enabling seamless communication between Unity and Large Language Models via the Model Context Protocol, allowing developers to automate workflows, manipulate assets, and control the Unity Editor programmatically.
      15,927
      MIT
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Connects creative applications like Blender and Adobe Creative Suite to AI models through the Model Context Protocol, enabling AI-driven creation, manipulation, and automation within these tools.
      10
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables interactive control of Blender for 3D scene manipulation, geometry creation, material application, and viewport rendering via natural language prompts through the Model Context Protocol.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI to control Blender 3D through the Model Context Protocol, allowing Python execution, scene state queries, and automation of 3D workflows.
      5
      GPL 3.0