3D Cartoon Generator & File System MCP Server
Generates high-quality 3D-style cartoon images based on text prompts using Google Gemini AI, featuring instant browser previews and local storage.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@3D Cartoon Generator & File System MCP ServerGenerate a 3D cartoon of a friendly dragon and save it as dragon_art"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Combined Server: 3D Cartoon Generator & File System Tools
A professional-grade server that provides two major capabilities:
High-quality 3D-style cartoon image generation using Google's Gemini AI
Secure file system operations for reading, writing, and managing files

🌟 Features
Image Generation
3D Cartoon Generation: Creates high-quality 3D-style cartoon images
Child-Friendly Design: Focuses on colorful, playful, and engaging visuals
Instant Preview: Automatically opens generated images in your default browser
Local Storage: Saves images and previews in an organized output directory
File System Operations
Secure File Access: Path validation and security checks
Read/Write Files: Read and write text file contents
Directory Operations: List, create, and navigate directories
File Search: Find files matching patterns
System Features
Professional Configuration: Robust error handling and controlled logging
Cross-Platform Support: Intelligent file path handling for Windows, macOS, and Linux
Smart OS Detection: Automatically finds the best save location for each operating system
Security Controls: Restricted directory access through configuration
Related MCP server: MCP Filesystem Server
🛠️ Technical Stack
Core Framework: Model Context Protocol (MCP) SDK
AI Integration: Google Generative AI (Gemini)
Runtime: Node.js v14+
Language: TypeScript
Package Manager: npm
📋 Prerequisites
Node.js (v14 or higher)
Google Gemini API key
TypeScript
⚙️ Installation
Clone the repository:
git clone https://github.com/falahgs/mcp-3d-style-cartoon-gen-server.git
cd mcp-3d-style-cartoon-gen-serverInstall dependencies:
npm installConfigure environment: Create a
.envfile in the root directory:
GEMINI_API_KEY=your_api_key_here
ALLOWED_DIRECTORIES=/path/to/allowed/dir1,/path/to/allowed/dir2Build the project:
npm run build🔧 Configuring Claude Desktop with MCP Server
To integrate this combined server with Claude Desktop:
Locate the Configuration File:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the following configuration:
{
"mcpServers": {
"mcp-3d-cartoon-generator": {
"command": "node",
"args": [
"path/to/your/build/index.js"
],
"env": {
"GEMINI_API_KEY": "your_gemini_api_key_here",
"IS_REMOTE": "true",
"SAVE_TO_DESKTOP": "true",
"DETECT_OS_PATHS": "true",
"ALLOWED_DIRECTORIES": "C:\\Users\\YourUsername\\Desktop,C:\\Users\\YourUsername\\Documents",
"DEBUG": "false"
}
}
}
}Windows PowerShell Helper Script
For Windows users, you can use the included fix_claude_config.ps1 script to automatically configure Claude Desktop:
Edit the script to update the path to your server build and your Gemini API key
Run the script in PowerShell:
powershell -ExecutionPolicy Bypass -File .\fix_claude_config.ps1This will create or update the configuration file with proper encoding and settings.
🚀 Available Tools
1. Image Generation Tool
{
"name": "generate_3d_cartoon",
"description": "Generates a 3D style cartoon image for kids based on the given prompt",
"inputSchema": {
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "The prompt describing the 3D cartoon image to generate"
},
"fileName": {
"type": "string",
"description": "The name of the output file (without extension)"
}
},
"required": ["prompt", "fileName"]
}
}2. File System Tools
Read File
{
"name": "read_file",
"description": "Read the contents of a file",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the file to read"
}
},
"required": ["path"]
}
}Write File
{
"name": "write_file",
"description": "Write content to a file",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the file to write"
},
"content": {
"type": "string",
"description": "Content to write to the file"
}
},
"required": ["path", "content"]
}
}List Directory
{
"name": "list_directory",
"description": "List the contents of a directory",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the directory to list"
}
},
"required": ["path"]
}
}Create Directory
{
"name": "create_directory",
"description": "Create a new directory",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Path to the directory to create"
}
},
"required": ["path"]
}
}Search Files
{
"name": "search_files",
"description": "Search for files matching a pattern",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Base directory to search from"
},
"pattern": {
"type": "string",
"description": "Search pattern (glob format)"
},
"excludePatterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Patterns to exclude from search (glob format)"
}
},
"required": ["path", "pattern"]
}
}📄 Example Usage
Image Generation Examples
// Generate a 3D cartoon
{
"name": "generate_3d_cartoon",
"arguments": {
"prompt": "A friendly robot playing with a cat",
"fileName": "robot_cat_play"
}
}File System Examples
// Read a file
{
"name": "read_file",
"arguments": {
"path": "C:/Users/YourUsername/Documents/example.txt"
}
}
// Write a file
{
"name": "write_file",
"arguments": {
"path": "C:/Users/YourUsername/Documents/new-file.txt",
"content": "This is the content of the file."
}
}
// List directory contents
{
"name": "list_directory",
"arguments": {
"path": "C:/Users/YourUsername/Documents"
}
}
// Create a directory
{
"name": "create_directory",
"arguments": {
"path": "C:/Users/YourUsername/Documents/new-folder"
}
}
// Search for files
{
"name": "search_files",
"arguments": {
"path": "C:/Users/YourUsername/Documents",
"pattern": "*.txt",
"excludePatterns": ["temp*", "*.tmp"]
}
}🔒 Security Features
The server implements several security measures:
Path Validation: All file paths are validated to ensure they are within allowed directories.
Allowed Directories: Only directories explicitly set in the
ALLOWED_DIRECTORIESenvironment variable can be accessed.Symlink Protection: Prevents access to directories outside the allowed scope via symlinks.
Controlled Logging: Debug logs are disabled by default to prevent information leakage.
⚙️ Configuration Options
Environment Variables
Variable | Description | Default |
| Google Gemini API key for image generation | (Required) |
| Comma-separated list of allowed file system paths | User's home dir, current dir |
| Run in remote mode without browser opening | false |
| Force saving to desktop directory | false |
| Enable OS-specific path detection | true |
| Enable verbose debug logging | false |
🛠️ Troubleshooting
Common Issues:
JSON Parsing Errors in Claude:
Ensure
DEBUGis set to "false" to prevent logs from interfering with JSON communicationCheck for proper JSON formatting in the Claude configuration
File Access Denied:
Verify that the paths you're trying to access are included in
ALLOWED_DIRECTORIESCheck file permissions on the target files/directories
Images Not Saving:
Set
SAVE_TO_DESKTOPto "true" to ensure images save to the desktopCheck desktop path detection in the server logs (enable DEBUG temporarily)
📄 License
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Available Tools
6 toolscreate_directoryC
Create a new directory
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the directory to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states 'create a new directory' without detailing side effects, error handling, or required permissions. Missing critical information like whether the operation is idempotent or if it throws errors on existing paths.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (4 words) and lacks structure. While it is concise, it sacrifices informativeness. A single sentence without context is minimally acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool, the description is incomplete. It fails to address whether parent directories are created, behavior on existing paths, or output expectations (e.g., success/failure signals). The parameter schema exists but behavioral details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the parameter with a clear description. The tool description adds no extra meaning beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and resource (directory), which aligns with the tool's name. It is distinct from sibling tools like write_file or list_directory, as creating a directory is a different operation. However, it could be more specific, e.g., mentioning that it creates an empty directory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives, nor are there any prerequisites or exclusions. The description lacks context such as whether parent directories are created or what happens if the directory already exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_3d_cartoonB
Generates a 3D style cartoon image for kids based on the given prompt
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The prompt describing the 3D cartoon image to generate | |
| fileName | Yes | The name of the output file (without extension) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states the action without revealing side effects (e.g., file saving behavior, error handling, image format), leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It is front-loaded with the verb and efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 simple params) and no output schema or annotations, the description is adequate but lacks details on output format, file location, or failure modes, leaving room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter descriptions are already present. The description adds minor context (e.g., 'for kids') but does not enhance parameter meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Generates a 3D style cartoon image for kids based on the given prompt', specifying the verb, resource, and audience. This distinct purpose differentiates it from sibling file-management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives, nor does it mention prerequisites or exclusions like content restrictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoryB
List the contents of a directory
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the directory to list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It fails to mention whether the listing is recursive, includes hidden files, or returns file metadata. The description adds no behavioral details beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence but omits important details. It is appropriately sized for a simple tool, but lacks structure and depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description is incomplete. It does not specify output format, error handling, or behavior regarding nested directories. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage for the single parameter 'path', the baseline is 3. The tool's description adds no additional parameter-specific meaning, so the score remains at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List the contents of a directory' clearly states the action (list) and the resource (directory contents), distinguishing it from siblings like create_directory, read_file, and search_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., read_file for file contents, search_files for pattern matching). The description is too brief to provide usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileB
Read the contents of a file
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the file to read |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden for behavioral disclosure. It only states 'Read the contents' but does not mention error handling (e.g., file not found, permissions), encoding assumptions, or whether the output is raw bytes or text. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, but it could be more informative without becoming verbose. It lacks structure such as a note about supported file types or return format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the basic purpose. However, it omits details like handling of non-existent files, binary vs text, or maximum file size, which are important for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the 'path' parameter is described as 'Path to the file to read'). The tool description does not add any additional meaning beyond what the schema provides, so baseline score 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and resource 'contents of a file', which is specific and distinct from sibling tools like 'write_file' or 'list_directory'. There is no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it does not mention that 'search_files' or 'list_directory' might be used for file discovery before reading, nor does it specify any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesC
Search for files matching a pattern
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Base directory to search from | |
| pattern | Yes | Search pattern (glob format) | |
| excludePatterns | No | Patterns to exclude from search (glob format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only states 'matching a pattern' without specifying recursion, case sensitivity, or result format. Behavior is under-specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. However, it lacks structure (e.g., separate sections for behavior vs parameters). Concise but could be better organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description is too brief. Does not mention output format, recursion, or edge cases. Compels the agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond what the schema already provides for each parameter. No additional context or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and resource 'files', and distinguishes from siblings like list_directory which lists without pattern matching. However, it does not specify recursive behavior or scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_directory (which lists files without pattern) or read_file. The context signals show siblings but description offers no differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_fileC
Write content to a file
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the file to write | |
| content | Yes | Content to write to the file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks details on behavior: whether it overwrites or appends, permission requirements, or side effects. The word 'write' implies mutation but no further elaboration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but it is under-informative, lacking crucial details that would aid an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should cover more context (e.g., overwrite behavior, file path validation). It is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add extra meaning beyond the parameter descriptions in the schema. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Write content to a file' clearly states the action and target, but it is very minimal and does not distinguish from sibling tools like 'read_file' or 'create_directory'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, and no context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
create_directory - First observed
generate_3d_cartoon - First observed
list_directory - First observed
read_file - First observed
search_files - First observed
write_file
TDQS
The tools clearly separate file system operations (create, list, read, search, write) from the image generation task. No two tools have overlapping purposes.
All tools follow a consistent verb_noun pattern (e.g., create_directory, generate_3d_cartoon), making it easy to predict functionality from names.
Six tools is well-scoped for a server combining file system management and a single generative feature. Each tool serves a distinct need without unnecessary bloat.
The file system side lacks basic operations like delete_file or move_file, and the relationship between file storage and cartoon generation is unclear (e.g., no tool to save generated images). Minor gaps reduce effectiveness.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate your app's mascot, then props, poses and animations that stay on-model.
LLM chat, text tools, image generation, editing and batch image jobs
Turn text or an image into an animation-ready 3D model (GLB): generate, rig, animate, retexture.
Generate game-ready 3D models, textures, and audio from natural language, over MCP.
Related MCP Servers
- FlicenseDqualityDmaintenanceEnables AI models to perform file system operations (reading, creating, and listing files) on a local file system through a standardized Model Context Protocol interface.3-
- AlicenseAqualityDmaintenanceProvides secure filesystem access for AI models through the Model Context Protocol with strict path validation, file operations, directory management, and system command execution within predefined directories.1611MIT
- AlicenseBqualityDmaintenanceEnables image generation using Google Gemini models like Gemini 2.0 Flash and Imagen 3.0 with support for custom aspect ratios and negative prompts. It also allows users to list and manage generated images stored in local directories.210MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and LLMs to perform comprehensive file system operations including CRUD, search, archive, hashing, and duplicate detection via the Model Context Protocol.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/falahgs/mcp-3d-style-cartoon-gen-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server