Content
# Game Asset Generator using MCP and Hugging Face Spaces
This project is an innovative tool that simplifies game asset creation by leveraging AI-powered generation. Whether you're a game developer seeking rapid prototypes or an AI enthusiast exploring generative models, this tool enables you to create **2D** and **3D game assets** from text prompts effortlessly. It integrates AI models from **Hugging Face Spaces**—powered by `"gokaygokay/Flux-2D-Game-Assets-LoRA"`, `"gokaygokay/Flux-Game-Assets-LoRA-v2"`, and one of three 3D model generation spaces (`InstantMesh`, `Hunyuan3D-2`, or `Hunyuan3D-2mini-Turbo`, which you must duplicate to your account)—and uses the **Model Context Protocol (MCP)** for seamless interaction with AI assistants like **Claude Desktop**.
<p align="center">
<a href="https://pay.ziina.com/MubarakHAlketbi">
<img src="https://img.shields.io/badge/Support_Me-Donate-9626ff?style=for-the-badge&logo=https%3A%2F%2Fimgur.com%2FvwC39JY" alt="Support Me - Donate">
</a>
<a href="https://github.com/RooVetGit/Roo-Code">
<img src="https://img.shields.io/badge/Built_With-Roo_Code-412894?style=for-the-badge" alt="Built With - Roo Code">
</a>
<br>
<a href="https://glama.ai/mcp/servers/@MubarakHAlketbi/game-asset-mcp">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@MubarakHAlketbi/game-asset-mcp/badge" />
</a>
</p>
---
## Table of Contents
1. [Project Overview](#project-overview)
2. [Features](#features)
3. [How It Works](#how-it-works)
4. [Prerequisites](#prerequisites)
5. [Installation](#installation)
6. [Usage](#usage)
7. [Configuration](#configuration)
8. [File Management](#file-management)
9. [MCP Integration](#mcp-integration)
10. [Troubleshooting](#troubleshooting)
11. [Advanced](#advanced)
12. [Contributing](#contributing)
13. [License](#license)
---
## Project Overview
The **Game Asset Generator** (version **0.3.0**) harnesses AI to streamline the creation of game assets. It supports generating **2D assets** (e.g., pixel art sprites) and **3D assets** (e.g., OBJ and GLB models) from text prompts, integrating with **Hugging Face Spaces** and the **Model Context Protocol (MCP)**. This release introduces support for multiple 3D model generation spaces—`InstantMesh`, `Hunyuan3D-2`, and `Hunyuan3D-2mini-Turbo`—offering flexibility and enhanced performance. Built with **Node.js** and the **MCP TypeScript SDK (v1.7.0)**, it provides a robust, cross-platform solution for asset generation.
---
## Features
- **2D Asset Generation**: Create pixel art, sprites, or other 2D assets from text prompts (e.g., "pixel art sword").
- **3D Asset Generation**: Generate 3D models (OBJ and GLB formats) from text descriptions, with automatic image-to-model conversion.
- **Multiple 3D Model Spaces**: Supports `InstantMesh`, `Hunyuan3D-2`, and `Hunyuan3D-2mini-Turbo` for varied 3D generation workflows.
- **MCP Integration**: Seamlessly interact with the tool via MCP-compatible clients like **Claude Desktop**.
- **File Management**: Automatically saves and organizes assets in a local `assets` directory with resource URIs (e.g., `asset://{type}/{id}`).
- **Robust Input Validation**: Uses **Zod** for secure and reliable input processing.
- **Multi-Client Support**: Handles multiple simultaneous connections via **SSE transport**.
- **Secure Remote Access**: Optional **HTTPS** support for safe remote communication.
- **Extensible Backend**: Modular design for easy integration of new models or features.
- **Cross-Platform**: Compatible with Windows, macOS, and Linux using **Node.js**.
- **Configurable 3D Generation**: Customize parameters like inference steps, guidance scale, and turbo mode via environment variables.
---
## How It Works
The Game Asset Generator transforms text prompts into game-ready assets through an automated pipeline:
1. **User Input**: Submit a text prompt (e.g., "pixel art sword" or "isometric 3D castle").
2. **MCP Server**: Routes the prompt to the appropriate tool (`generate_2d_asset` or `generate_3d_asset`).
3. **AI Model Interaction**:
- **2D Assets**: Utilizes the **Hugging Face Inference API** with `"gokaygokay/Flux-2D-Game-Assets-LoRA"` (50 steps).
- **3D Assets**:
- Generates an initial image using `"gokaygokay/Flux-Game-Assets-LoRA-v2"` (30 steps).
- Converts the image to a 3D model using one of:
- **InstantMesh**: Multi-step process (`/preprocess`, `/generate_mvs`, `/make3d`).
- **Hunyuan3D-2**: Single-step process (`/generation_all`).
- **Hunyuan3D-2mini-Turbo**: Single-step process (`/generation_all`) with configurable turbo modes.
4. **File Output**: Saves assets (PNG for 2D, OBJ/GLB for 3D) in the `assets` directory.
5. **Response**: Returns resource URIs (e.g., `asset://3d_model/filename.glb`) for immediate use.
### Workflow Diagram
```
User Prompt → MCP Server → AI Model(s) → Local File → Resource URI Response
```
Prompts are automatically enhanced with "high detailed, complete object, not cut off, white solid background" for optimal quality.
---
## Prerequisites
- **Node.js**: Version 16+ (includes `npm`).
- **Git**: For cloning the repository.
- **Internet Access**: Required for Hugging Face API connectivity.
- **Hugging Face Account**: Needed for API access; obtain your token from [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens).
- **NPM Packages**:
- `@gradio/client`: Interacts with Hugging Face Spaces.
- `@huggingface/inference`: For direct model inference.
- `@modelcontextprotocol/sdk`: Implements the MCP server.
- `dotenv`: Loads environment variables.
- `express`: Enables SSE transport.
- `zod`: Ensures input validation.
- `sharp`: Handles image processing.
- **Optional**: **Claude Desktop** (or another MCP client) for enhanced interaction.
---
## Installation
1. **Clone the Repository**:
```bash
git clone https://github.com/yourusername/game-asset-mcp.git
cd game-asset-mcp
```
2. **Install Dependencies**:
```bash
npm install
```
3. **Configure Environment**:
- Copy the example `.env` file:
```bash
cp .env.example .env
```
- Edit `.env` with your **Hugging Face API token** and duplicated **MODEL_SPACE**. See [Configuration](#configuration) for details.
4. **Run the Server**:
- **Local (stdio transport)**:
```bash
npm start
```
- **Custom Working Directory**:
```bash
node src/index.js /path/to/directory
```
- **Remote (SSE transport)**:
```bash
node src/index.js --sse
```
- **Remote with HTTPS**:
```bash
node src/index.js --sse --https
```
Requires `ssl/key.pem` and `ssl/cert.pem` (see [ssl/README.md](ssl/README.md)).
> **Note**: Uses ES modules (`"type": "module"` in `package.json`). Ensure Node.js 16+ is installed (`node --version`).
---
## Usage
Interact with the server via an **MCP client** (e.g., Claude Desktop) or programmatically:
- **Generate a 2D Asset**:
- **Command**: `generate_2d_asset prompt:"pixel art sword"`
- **Output**: Saves a PNG file (e.g., `2d_asset_generate_2d_asset_1698765432.png`) and returns its URI.
- **Generate a 3D Asset**:
- **Command**: `generate_3d_asset prompt:"isometric 3D castle"`
- **Output**: Saves OBJ/GLB files and intermediate images, returning their URIs. Provides an operation ID for long-running tasks.
### Prompt Examples
- **Natural Interaction**:
- `generate_2d_sprite prompt:"pixel art sword"`
- `generate_3d_model prompt:"isometric 3D castle"`
### With Claude Desktop
After configuring (see [Configuration](#configuration)), type commands directly in the interface.
---
## Configuration
Customize the server via the `.env` file:
### Required Settings
- **HF_TOKEN**: Hugging Face API token.
```plaintext
HF_TOKEN=your_hf_token
```
- **MODEL_SPACE**: Your duplicated 3D model space (e.g., `your-username/InstantMesh`).
- Duplicate one of:
- [InstantMesh](https://huggingface.co/spaces/tencentARC/InstantMesh)
- [Hunyuan3D-2](https://huggingface.co/spaces/tencent/Hunyuan3D-2)
- [Hunyuan3D-2mini-Turbo](https://huggingface.co/spaces/tencent/Hunyuan3D-2mini-Turbo)
```plaintext
MODEL_SPACE=your-username/InstantMesh
```
### Optional 3D Model Settings
| Variable | Description | Valid Range/Default |
|---------------------------|-----------------------------------------------|---------------------------|
| `MODEL_3D_STEPS` | Inference steps | Varies by space (see below) |
| `MODEL_3D_GUIDANCE_SCALE`| How closely the model follows the prompt | 0.0-100.0 (default: 5.0-5.5) |
| `MODEL_3D_OCTREE_RESOLUTION` | Detail level of the 3D model | Varies by space (see below) |
| `MODEL_3D_SEED` | Randomness control | 0-10000000 (default: varies) |
| `MODEL_3D_REMOVE_BACKGROUND` | Remove image background | `true`/`false` (default: `true`) |
| `MODEL_3D_TURBO_MODE` | Generation mode (Hunyuan3D-2mini-Turbo only) | `Turbo`, `Fast`, `Standard` (default: `Turbo`) |
| `MODEL_SPACE_TYPE` | Override space type detection | `instantmesh`, `hunyuan3d`, `hunyuan3d_mini_turbo` |
#### Space-Specific Defaults
- **InstantMesh**:
- Steps: 30-75 (default: 75)
- Seed: Default 42
- **Hunyuan3D-2**:
- Steps: 20-50 (default: 20)
- Guidance Scale: Default 5.5
- Octree Resolution: `256`, `384`, `512` (default: `256`)
- Seed: Default 1234
- **Hunyuan3D-2mini-Turbo**:
- Steps: 1-100 (default: 5 for `Turbo`, 10 for `Fast`, 20 for `Standard`)
- Guidance Scale: Default 5.0
- Octree Resolution: 16-512 (default: 256)
- Seed: Default 1234
### Transport Settings
- **PORT**: SSE transport port (default: 3000).
```plaintext
PORT=3000
```
### Claude Desktop Setup
Edit the config file:
- **MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"game-asset-generator": {
"command": "node",
"args": ["/full/path/to/game-asset-mcp/src/index.js"]
}
}
}
```
Restart Claude Desktop after editing.
---
## File Management
- **Storage Location**: Assets are saved in `./assets` within the working directory.
- **Naming Convention**: Files use a prefix, tool name, timestamp, and unique ID (e.g., `2d_asset_generate_2d_asset_1698765432_abcd1234.png`).
- **Customization**: Set a custom directory:
```bash
node src/index.js /path/to/custom/directory
```
- **Resource Access**: Use MCP URIs (e.g., `asset://2d_asset/filename.png`) to list or read assets.
---
## MCP Integration
The **Model Context Protocol (MCP)** enables this tool to serve AI clients securely:
- **Tools**: `generate_2d_asset`, `generate_3d_asset`.
- **Resources**: Managed via `asset://` URIs.
- **Prompts**: `generate_2d_sprite`, `generate_3d_model`.
- **Compatibility**: Works with **Claude Desktop** and other MCP clients.
---
## Troubleshooting
- **API Errors**: Check network connectivity or rate limits; review `./logs/server.log`.
- **Authentication Issues**: Verify `HF_TOKEN` and `MODEL_SPACE` in `.env`.
- **ES Modules Error**: Ensure Node.js 16+ (`node --version`).
- **Logs**: Inspect detailed logs:
```bash
tail -f ./logs/server.log
```
---
## Advanced
### API Endpoints and Integration
- **2D Asset Generation**: Uses `"gokaygokay/Flux-2D-Game-Assets-LoRA"` (50 steps).
- **3D Asset Image Generation**: Uses `"gokaygokay/Flux-Game-Assets-LoRA-v2"` (30 steps).
- **3D Model Conversion**:
- **InstantMesh**: Multi-step (`/check_input_image`, `/preprocess`, `/generate_mvs`, `/make3d`).
- **Hunyuan3D-2**: Single-step (`/generation_all`).
- **Hunyuan3D-2mini-Turbo**: Single-step (`/generation_all`) with turbo modes.
### Versioning
- **Current Version**: 0.3.0 (Added Hunyuan3D-2mini-Turbo support).
- **MCP SDK Version**: 1.7.0.
- **Format**: MAJOR.MINOR.PATCH (SemVer).
### Backend Architecture
- **Core File**: `src/index.js`.
- **Dependencies**: See `package.json`.
- **Security**: Zod validation, path traversal prevention, HTTPS support, rate limiting.
- **Performance**: Async processing, retry with backoff, GPU quota handling.
---
## Contributing
We welcome contributions! To participate:
1. **Fork the Repository**: Create your copy on GitHub.
2. **Make Changes**: Add features, fix bugs, or enhance docs.
3. **Submit a Pull Request**: Detail your changes.
4. **Open Issues**: Report bugs or suggest improvements.
Follow standard coding conventions and include tests where applicable.
---
## License
Licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.
Connection Info
You Might Also Like
markitdown
Python tool for converting files and office documents to Markdown.
Fetch
Retrieve and process content from web pages by converting HTML into markdown format.
oh-my-opencode
Background agents · Curated agents like oracle, librarians, frontend...
chatbox
User-friendly Desktop Client App for AI Models/LLMs (GPT, Claude, Gemini, Ollama...)
continue
Continue is an open-source project for seamless server management.
semantic-kernel
Build and deploy intelligent AI agents with Semantic Kernel's orchestration...