{"_id":"@ansonzeng/sora-video-mcp-server","_rev":"8-f14df6f37c45f84cdf20b0441dd66de7","name":"@ansonzeng/sora-video-mcp-server","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.5":{"name":"@ansonzeng/sora-video-mcp-server","version":"1.0.5","keywords":["mcp","model-context-protocol","sora","ai","video-generation","text-to-video","image-to-video","video-ai","promptx","typescript"],"author":{"name":"Anson","email":"anson@example.com"},"license":"MIT","_id":"@ansonzeng/sora-video-mcp-server@1.0.5","maintainers":[{"name":"zengxisheng","email":"zengxisheng@gmail.com"}],"homepage":"https://github.com/yourusername/sora-video-mcp-server#readme","bugs":{"url":"https://github.com/yourusername/sora-video-mcp-server/issues"},"bin":{"sora-video-mcp":"dist/bin/mcp-stdio-server.js","sora-video-mcp-http":"dist/bin/mcp-http-server.js","sora-video-mcp-server":"dist/bin/mcp-stdio-server.js"},"dist":{"shasum":"a7aa3f3ddb8354d6cd13e9349564edc63b90f4ec","tarball":"https://registry.npmjs.org/@ansonzeng/sora-video-mcp-server/-/sora-video-mcp-server-1.0.5.tgz","fileCount":9,"integrity":"sha512-tk1Qb10u3/a2gS6iUx83uGMZW7W/JYswh2ZbF8+wbiv8fXTLqULZn9+XKfNFWkP7pfbA6zCqMkFc3z1tAGaSIQ==","signatures":[{"sig":"MEYCIQCWowEV1gnHfgbNH2At/UfGDSUTG1L8yAOJ4zNPNBcisQIhAOj82EJe/2Jux1Ywm15DMi2WlvsnV7DkEDMNDC1nSpM2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156252},"main":"./dist/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"947f669a0e643132d1b096985112b69c4f8741b2","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rimraf dist","start":"npm run build && node ./dist/bin/mcp-stdio-server.js","prepack":"npm run build","typecheck":"tsc --noEmit","start:http":"npm run build && node ./dist/bin/mcp-http-server.js","prepublishOnly":"npm run clean && npm run build && npm run typecheck"},"_npmUser":{"name":"zengxisheng","email":"zengxisheng@gmail.com"},"repository":{"url":"git+https://github.com/yourusername/sora-video-mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"A professional MCP Server for generating videos with Sora AI. Supports text-to-video and image-to-video generation with customizable parameters including model selection, orientation, and duration.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"dotenv":"^16.4.5","express":"^4.19.2","commander":"^12.1.0","@modelcontextprotocol/sdk":"^1.11.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.1.0","rimraf":"^5.0.7","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.2","@types/express":"^4.17.21"},"_npmOperationalInternal":{"tmp":"tmp/sora-video-mcp-server_1.0.5_1760718996913_0.9290747027394353","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@ansonzeng/sora-video-mcp-server","version":"1.0.6","description":"A professional MCP Server for generating videos with Sora AI. Supports text-to-video and image-to-video generation with customizable parameters including model selection, orientation, and duration.","type":"module","main":"./dist/index.js","bin":{"sora-video-mcp-server":"dist/bin/mcp-stdio-server.js","sora-video-mcp":"dist/bin/mcp-stdio-server.js","sora-video-mcp-http":"dist/bin/mcp-http-server.js"},"scripts":{"build":"tsup","dev":"tsup --watch","start":"npm run build && node ./dist/bin/mcp-stdio-server.js","start:http":"npm run build && node ./dist/bin/mcp-http-server.js","clean":"rimraf dist","test":"vitest","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build && npm run typecheck","prepack":"npm run build"},"keywords":["mcp","model-context-protocol","sora","ai","video-generation","text-to-video","image-to-video","video-ai","promptx","typescript"],"author":{"name":"Anson","email":"anson@example.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/yourusername/sora-video-mcp-server.git"},"homepage":"https://github.com/yourusername/sora-video-mcp-server#readme","bugs":{"url":"https://github.com/yourusername/sora-video-mcp-server/issues"},"engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.11.4","commander":"^12.1.0","dotenv":"^16.4.5","express":"^4.19.2"},"devDependencies":{"@types/express":"^4.17.21","@types/node":"^20.14.2","rimraf":"^5.0.7","tsup":"^8.1.0","typescript":"^5.4.5","vitest":"^1.6.0"},"_id":"@ansonzeng/sora-video-mcp-server@1.0.6","gitHead":"6347e709dc8b256323d42d8ba75baeabeb24f441","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-AZgNzAttgwUdet87kOg5Iq+OAHhV6uU3M5XCDgfmSTJwDZH4lcJsedYTm0MCUNJQG5Vmjx7osVk5uOsmS7qUHA==","shasum":"e1caeae629feb6dcac702102cd2ad51dbadb2273","tarball":"https://registry.npmjs.org/@ansonzeng/sora-video-mcp-server/-/sora-video-mcp-server-1.0.6.tgz","fileCount":9,"unpackedSize":161634,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF3B20TsqCJxB3fieb0brqAEkY/IquyBC+oLf65QqFC4AiACRxQj3Ei7SM4R51BWoWvwtc45BPR8bkBp4s9+89elxQ=="}]},"_npmUser":{"name":"zengxisheng","email":"zengxisheng@gmail.com"},"directories":{},"maintainers":[{"name":"zengxisheng","email":"zengxisheng@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sora-video-mcp-server_1.0.6_1760721308053_0.7986796317043876"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-17T16:36:36.729Z","modified":"2025-10-17T17:15:08.467Z","1.0.0":"2025-10-16T17:57:10.703Z","1.0.1":"2025-10-16T18:05:58.645Z","1.0.2":"2025-10-17T08:24:58.893Z","1.0.3":"2025-10-17T08:39:05.409Z","1.0.5":"2025-10-17T16:36:37.118Z","1.0.6":"2025-10-17T17:15:08.254Z"},"bugs":{"url":"https://github.com/yourusername/sora-video-mcp-server/issues"},"author":{"name":"Anson","email":"anson@example.com"},"license":"MIT","homepage":"https://github.com/yourusername/sora-video-mcp-server#readme","keywords":["mcp","model-context-protocol","sora","ai","video-generation","text-to-video","image-to-video","video-ai","promptx","typescript"],"repository":{"type":"git","url":"git+https://github.com/yourusername/sora-video-mcp-server.git"},"description":"A professional MCP Server for generating videos with Sora AI. Supports text-to-video and image-to-video generation with customizable parameters including model selection, orientation, and duration.","maintainers":[{"name":"zengxisheng","email":"zengxisheng@gmail.com"}],"readme":"# Nano Banana MCP Server 🍌🤖\n\nA professional MCP (Model Context Protocol) Server for generating and editing images with Google Gemini AI. Built with PromptX architecture for robust image generation, editing, and composition workflows.\n\n## Features\n\n🎨 **Image Generation from Text**: Create stunning images from detailed text descriptions\n✏️ **Image Editing with Text**: Modify existing images using natural language instructions\n🎯 **Image Composition**: Combine multiple images into new compositions\n⚡ **High Performance**: Built with TypeScript and optimized for speed\n🔒 **Secure**: Sandboxed execution environment with proper error handling\n\n## Quick Start\n\n### 方式 1: Stdio 传输 (推荐)\n\n这是最简单也是推荐的使用方式,适合与 Claude Code CLI 等 MCP 客户端集成使用。\n\n#### 安装和运行\n\n```bash\n# 通过 npx 直接运行 (无需安装)\nnpx -y @ansonzeng/nano-banana-mcp-server\n\n# 或者使用简短命令名\nnpx -y @ansonzeng/nano-banana-mcp-server nano-banana-mcp\n```\n\n#### Claude Code CLI 配置\n\n在 Claude Code CLI 中添加 MCP 服务器:\n\n```bash\nclaude mcp add --scope user nano-banana '{\n  \"command\": \"npx\",\n  \"args\": [\"-y\", \"@ansonzeng/nano-banana-mcp-server\"],\n  \"env\": {\n    \"GEMINI_BASE_URL\": \"https://your-api-provider.com\",\n    \"GEMINI_API_KEY\": \"your_api_key_here\",\n    \"IMAGE_OUTPUT_DIR\": \"/path/to/your/output/folder\"\n  }\n}'\n```\n\n或者直接编辑配置文件 (`~/.claude/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"nano-banana\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ansonzeng/nano-banana-mcp-server\"],\n      \"env\": {\n        \"GEMINI_BASE_URL\": \"https://your-api-provider.com\",\n        \"GEMINI_API_KEY\": \"your_api_key_here\",\n        \"IMAGE_OUTPUT_DIR\": \"/path/to/your/output/folder\"\n      }\n    }\n  }\n}\n```\n\n### 方式 2: HTTP 传输 (可选)\n\n如果你需要将服务器部署为独立的 HTTP 服务,可以使用 HTTP 传输模式。\n\n#### 安装并运行\n\n```bash\n# 方式 1: 通过 npx 运行 HTTP 模式\nnpx -y @ansonzeng/nano-banana-mcp-server nano-banana-mcp-http\n\n# 方式 2: 全局安装后运行\nnpm install -g @ansonzeng/nano-banana-mcp-server\nnano-banana-mcp-http\n```\n\n或使用环境变量:\n\n```bash\nPORT=3000 HOST=localhost nano-banana-mcp-http\n```\n\n#### Claude Code CLI 配置 (HTTP 模式)\n\n```bash\nclaude mcp add --scope user --transport http nano-banana http://localhost:8080/mcp\n```\n\n### 环境变量说明\n\n- `GEMINI_API_KEY`: 你的 API 供应商提供的 API 密钥 (必填)\n- `GEMINI_BASE_URL`: 你的 API 供应商的基础 URL (必填)\n- `GEMINI_MODEL_NAME`: 模型名称 (可选,默认: gemini-2.5-flash-image-preview)\n- `IMAGE_OUTPUT_DIR`: 图片输出目录 (可选,默认: ./outputs)\n- `PORT`: HTTP 服务器端口 (仅 HTTP 模式,默认: 8080)\n- `HOST`: HTTP 服务器监听地址 (仅 HTTP 模式,默认: 0.0.0.0)\n\n## Available Tools\n\n### 1. `createImageFromText`\nGenerate images from text descriptions.\n\n**Parameters:**\n- `prompt` (string): Detailed description of the image you want to generate\n\n**Example:**\n```json\n{\n  \"prompt\": \"A cat wearing an astronaut helmet, cartoon style\"\n}\n```\n\n### 2. `editImageWithText`\nEdit existing images with text instructions.\n\n**Parameters:**\n- `prompt` (string): What modifications you want to make\n- `inputImage` (string): Image file path or Base64 data\n\n**Example:**\n```json\n{\n  \"prompt\": \"Add a party hat to this cat\",\n  \"inputImage\": \"/path/to/image.jpg\"\n}\n```\n\n### 3. `compositeImagesWithText`\nCombine multiple images into new compositions.\n\n**Parameters:**\n- `prompt` (string): How you want to combine the images\n- `inputImages` (array): Array of Base64 image data\n\n## Development\n\n### 本地开发\n\n```bash\n# 克隆仓库\ngit clone https://github.com/yourusername/nano-banana-mcp-server.git\ncd nano-banana-mcp-server\n\n# 安装依赖\nnpm install\n\n# 构建项目\nnpm run build\n\n# 运行 Stdio 模式 (默认)\nnpm start\n\n# 或运行 HTTP 模式\nnpm run start:http\n```\n\n### 测试本地构建\n\n```bash\n# 链接到全局\nnpm link\n\n# 在其他项目中使用\nnano-banana-mcp-server  # Stdio 模式 (默认)\nnano-banana-mcp         # Stdio 模式 (简短名)\nnano-banana-mcp-http    # HTTP 模式\n```\n\n## File Output\n\nGenerated and edited images are saved to an `outputs/` directory in your current working directory with timestamps to prevent overwrites.\n\n## Technical Details\n\n- **Built with**: TypeScript, Node.js 18+\n- **Architecture**: PromptX-based modular design\n- **Protocol**: Model Context Protocol (MCP)\n- **AI Provider**: Google Gemini AI\n- **Output Format**: PNG images with Base64 encoding\n\n## Error Handling\n\nThe server includes comprehensive error handling for:\n- Invalid API keys or network issues\n- File reading/writing permissions\n- Image format validation\n- API response parsing\n\n## Requirements\n\n- Node.js 18.0.0 or higher\n- Valid Google Gemini API key\n- Network access to API provider\n\n## Contributing\n\nThis project follows the PromptX architecture principles. See [CLAUDE.md](./CLAUDE.md) for development guidelines.\n\n## License\n\nMIT License - see [LICENSE](./LICENSE) for details.\n\n---\n\nMade with ❤️ using Claude Code and PromptX architecture.","readmeFilename":"README.md"}