added license
This commit is contained in:
parent
bc20bc279c
commit
d9a938d8cc
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
EMIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Siddharth Ahuja
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
57
README.md
57
README.md
@ -27,16 +27,22 @@ The system consists of two main components:
|
|||||||
|
|
||||||
### Quick Start
|
### Quick Start
|
||||||
|
|
||||||
Run blender-mcp without installing it permanently (pipx will automatically download and run the package):
|
Run blender-mcp without installing it permanently (pipx or uvx will automatically download and run the package):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pipx run blender-mcp
|
pipx run blender-mcp
|
||||||
```
|
```
|
||||||
|
|
||||||
If you don't have pipx installed, you can install it with:
|
If you don't have p installed, you can run it with uv:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python -m pip install pipx
|
uvx run blender-mcp
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
If you don't have either, download uv:
|
||||||
|
```bash
|
||||||
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### Claude for Desktop Integration
|
### Claude for Desktop Integration
|
||||||
@ -47,10 +53,10 @@ Update your `claude_desktop_config.json` (located in `~/Library/Application\ Sup
|
|||||||
{
|
{
|
||||||
"mcpServers": {
|
"mcpServers": {
|
||||||
"blender": {
|
"blender": {
|
||||||
"command": "pipx",
|
"command": "uvx",
|
||||||
"args": [
|
"args": [
|
||||||
"run",
|
"blender-mcp",
|
||||||
"blender-mcp"
|
"--stdio"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -61,21 +67,12 @@ This configuration allows Claude for Desktop to automatically start the Blender
|
|||||||
|
|
||||||
### Installing the Blender Addon
|
### Installing the Blender Addon
|
||||||
|
|
||||||
|
1. Download the `addon.py` file from this repo
|
||||||
1. Open Blender
|
1. Open Blender
|
||||||
2. Go to Edit > Preferences > Add-ons
|
2. Go to Edit > Preferences > Add-ons
|
||||||
3. Click "Install..." and select the `blender_mcp_addon.py` file
|
3. Click "Install..." and select the `addon.py` file
|
||||||
4. Enable the addon by checking the box next to "Interface: Blender MCP"
|
4. Enable the addon by checking the box next to "Interface: Blender MCP"
|
||||||
|
|
||||||
### Setting up the MCP Server
|
|
||||||
|
|
||||||
1. Install the required Python packages:
|
|
||||||
```
|
|
||||||
pip install mcp
|
|
||||||
```
|
|
||||||
2. Run the MCP server:
|
|
||||||
```
|
|
||||||
python blender_mcp_server.py
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@ -91,32 +88,28 @@ This configuration allows Claude for Desktop to automatically start the Blender
|
|||||||
|
|
||||||
Once connected, Claude can interact with Blender using the following capabilities:
|
Once connected, Claude can interact with Blender using the following capabilities:
|
||||||
|
|
||||||
#### Resources
|
|
||||||
|
|
||||||
- `blender://ping` - Check connectivity
|
|
||||||
- `blender://simple` - Get basic Blender information
|
|
||||||
- `blender://scene` - Get detailed scene information
|
|
||||||
- `blender://object/{object_name}` - Get information about a specific object
|
|
||||||
|
|
||||||
#### Tools
|
#### Tools
|
||||||
|
|
||||||
|
- `get_scene_info` - Gets scene information
|
||||||
|
- `get_object_info` - Gets detailed information for a specific object in the scene
|
||||||
- `create_primitive` - Create basic primitive objects with optional color
|
- `create_primitive` - Create basic primitive objects with optional color
|
||||||
- `set_object_property` - Set a single property of an object
|
- `set_object_property` - Set a single property of an object
|
||||||
- `create_object` - Create a new object with detailed parameters
|
- `create_object` - Create a new object with detailed parameters
|
||||||
- `modify_object` - Modify an existing object's properties
|
- `modify_object` - Modify an existing object's properties
|
||||||
- `delete_object` - Remove an object from the scene
|
- `delete_object` - Remove an object from the scene
|
||||||
- `set_material` - Apply or create materials for objects
|
- `set_material` - Apply or create materials for objects
|
||||||
- `execute_blender_code` - Run arbitrary Python code in Blender
|
- `execute_blender_code` - Run any Python code in Blender
|
||||||
|
|
||||||
### Example Commands
|
### Example Commands
|
||||||
|
|
||||||
Here are some examples of what you can ask Claude to do:
|
Here are some examples of what you can ask Claude to do:
|
||||||
|
|
||||||
- "Create a blue cube at position [0, 1, 0]"
|
- "Create a low poly scene in a dungeon, with a dragon guarding a pot of gold"
|
||||||
- "Make the cube red"
|
- "Make the car red and metallic"
|
||||||
- "Create a sphere and place it above the cube"
|
- "Create a sphere and place it above the cube"
|
||||||
- "Get information about the current scene"
|
- "Get information about the current scene, and make a threejs sketch from it"
|
||||||
- "Delete the cube"
|
- "Make the lighting like a studio"
|
||||||
|
- "Point the camera at the scene, and make it isometric"
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
@ -135,7 +128,7 @@ The system uses a simple JSON-based protocol over TCP sockets:
|
|||||||
|
|
||||||
### Security Considerations
|
### Security Considerations
|
||||||
|
|
||||||
The `execute_blender_code` tool allows running arbitrary Python code in Blender, which can be powerful but potentially dangerous. Use with caution in production environments.
|
The `execute_blender_code` tool allows running arbitrary Python code in Blender, which can be powerful but potentially dangerous. Use with caution in production environments. ALWAYS save your work before using it.
|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
|
|
||||||
@ -146,7 +139,3 @@ The `execute_blender_code` tool allows running arbitrary Python code in Blender,
|
|||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
Contributions are welcome! Please feel free to submit a Pull Request.
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
[Your license information here]
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "blender-mcp"
|
name = "blender-mcp"
|
||||||
version = "0.1.1"
|
version = "1.0.0"
|
||||||
description = "Blender integration through the Model Context Protocol"
|
description = "Blender integration through the Model Context Protocol"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
|
|||||||
2
uv.lock
generated
2
uv.lock
generated
@ -28,7 +28,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "blender-mcp"
|
name = "blender-mcp"
|
||||||
version = "0.1.1"
|
version = "1.0.0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "mcp", extra = ["cli"] },
|
{ name = "mcp", extra = ["cli"] },
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user