X

game asset mcp

Information

# 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**.

Support Me - Donate Built With - Roo Code

--- ## 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.

Prompts

Reviews

Tags

Write Your Review

Detailed Ratings

ALL
Correctness
Helpfulness
Interesting
Upload Pictures and Videos

Name
Size
Type
Download
Last Modified
mcp_config_mubarakhalketbi_game-asset-mcp.json
117.0 B
json

Upload Files

  • Community

Add Discussion

Upload Pictures and Videos