An MCP (Model Context Protocol) server that provides access to Kie.ai's AI APIs including Nano Banana image generation/editing and Veo3 video generation.
- Nano Banana Image Generation: Text-to-image generation using Google's Gemini 2.5 Flash Image Preview
- Nano Banana Image Editing: Natural language image editing with up to 5 input images
- Veo3 Video Generation: Professional-quality video generation with text-to-video and image-to-video capabilities
- 1080p Video Upgrade: Get high-definition versions of Veo3 videos
- Task Management: SQLite-based task tracking with status polling
- Smart Endpoint Routing: Automatic detection of task types for status checking
- Error Handling: Comprehensive error handling and validation
- Node.js 18+
- Kie.ai API key from https://kie.ai/api-key
npm install -g @andrewlwn77/kie-ai-mcp-server# Clone the repository
git clone https://github.com/andrewlwn77/kie-ai-mcp-server.git
cd kie-ai-mcp-server
# Install dependencies
npm install
# Build the project
npm run build# Required
export KIE_AI_API_KEY="your-api-key-here"
# Optional
export KIE_AI_BASE_URL="https://api.kie.ai/api/v1" # Default
export KIE_AI_TIMEOUT="60000" # Default: 60 seconds
export KIE_AI_DB_PATH="./tasks.db" # Default: ./tasks.dbAdd to your Claude Desktop or MCP client configuration:
{
"kie-ai-mcp-server": {
"command": "node",
"args": ["/path/to/kie-ai-mcp-server/dist/index.js"],
"env": {
"KIE_AI_API_KEY": "your-api-key-here"
}
}
}Or if installed globally:
{
"kie-ai-mcp-server": {
"command": "npx",
"args": ["-y", "@andrewlwn77/kie-ai-mcp-server"],
"env": {
"KIE_AI_API_KEY": "your-api-key-here"
}
}
}Generate images using Nano Banana.
Parameters:
prompt(string, required): Text description of the image to generate
Example:
{
"prompt": "A surreal painting of a giant banana floating in space"
}Edit images using natural language prompts.
Parameters:
prompt(string, required): Description of edits to makeimage_urls(array, required): URLs of images to edit (max 5)
Example:
{
"prompt": "Add a rainbow arching over the mountains",
"image_urls": ["https://example.com/image.jpg"]
}Generate videos using Veo3.
Parameters:
prompt(string, required): Video descriptionimageUrls(array, optional): Image for image-to-video (max 1)model(enum, optional): "veo3" or "veo3_fast" (default: "veo3")aspectRatio(enum, optional): "16:9" or "9:16" (default: "16:9")seeds(integer, optional): Random seed 10000-99999watermark(string, optional): Watermark textenableFallback(boolean, optional): Enable fallback mechanism
Example:
{
"prompt": "A dog playing in a park",
"model": "veo3",
"aspectRatio": "16:9",
"seeds": 12345
}Check the status of a generation task.
Parameters:
task_id(string, required): Task ID to check
List recent tasks with their status.
Parameters:
limit(integer, optional): Max tasks to return (default: 20, max: 100)status(string, optional): Filter by status ("pending", "processing", "completed", "failed")
Get 1080P high-definition version of a Veo3 video.
Parameters:
task_id(string, required): Veo3 task ID to get 1080p video forindex(integer, optional): Video index (for multiple video results)
Note: Not available for videos generated with fallback mode.
The server interfaces with these Kie.ai API endpoints:
- Veo3 Video Generation:
POST /api/v1/veo/generate✅ VALIDATED - Veo3 Video Status:
GET /api/v1/veo/record-info✅ VALIDATED - Veo3 1080p Upgrade:
GET /api/v1/veo/get-1080p-video✅ VALIDATED - Nano Banana Generation:
POST /api/v1/playground/createTask✅ VALIDATED - Nano Banana Status:
GET /api/v1/playground/recordInfo✅ VALIDATED
All endpoints have been tested and validated with live API responses.
The server uses SQLite to track tasks:
CREATE TABLE tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
task_id TEXT UNIQUE NOT NULL,
api_type TEXT NOT NULL, -- 'nano-banana', 'nano-banana-edit', 'veo3'
status TEXT DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
result_url TEXT,
error_message TEXT
);# Generate an image
curl -X POST http://localhost:3000/tools/call \
-H "Content-Type: application/json" \
-d '{
"name": "generate_nano_banana",
"arguments": {
"prompt": "A cat wearing a space helmet"
}
}'# Generate a video
curl -X POST http://localhost:3000/tools/call \
-H "Content-Type: application/json" \
-d '{
"name": "generate_veo3_video",
"arguments": {
"prompt": "A peaceful garden with blooming flowers",
"aspectRatio": "16:9",
"model": "veo3_fast"
}
}'The server handles these HTTP error codes from Kie.ai:
- 200: Success
- 400: Content policy violation / English prompts only
- 401: Unauthorized (invalid API key)
- 402: Insufficient credits
- 404: Resource not found
- 422: Validation error / record is null
- 429: Rate limited
- 451: Image access limits
- 455: Service maintenance
- 500: Server error / timeout
- 501: Generation failed
# Run tests
npm test
# Development mode with auto-reload
npm run dev
# Type checking
npx tsc --noEmit
# Build for production
npm run buildBased on Kie.ai documentation:
- Nano Banana: $0.020 per image (4 credits)
- Veo3 Quality: Higher cost tier
- Veo3 Fast: ~20% of Quality model pricing
See https://kie.ai/billing for detailed pricing.
- Database Location: Set
KIE_AI_DB_PATHto a persistent location - API Key Security: Never commit API keys to version control
- Rate Limiting: Implement client-side rate limiting for high-volume usage
- Monitoring: Monitor task status and handle failed generations appropriately
- Storage: Consider automatic cleanup of old task records
"Unauthorized" errors
- Verify
KIE_AI_API_KEYis set correctly - Check API key is valid at https://kie.ai/api-key
"Task not found" errors
- Tasks may expire after 14 days
- Check task ID format matches expected pattern
Generation failures
- Check content policy compliance
- Verify prompt is in English
- Ensure sufficient API credits
For issues related to:
- MCP Server: Open an issue at https://github.com/andrewlwn77/kie-ai-mcp-server/issues
- Kie.ai API: Contact [email protected] or check https://docs.kie.ai/
- API Keys: Visit https://kie.ai/api-key
MIT License - see LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- Initial release
- Nano Banana image generation and editing
- Veo3 video generation
- 1080p video upgrade support
- SQLite task tracking
- Smart endpoint routing
- Comprehensive error handling