Content
align="center">
# Prismstudio
**Standalone Multimodal Generation MCP Server** - One command to let any AI agent generate images / videos / audio
`Image · Video · Audio` · `60 Preset Models` · `14 Protocols` · `13 Vendors` · `Embedded WebUI`
[](LICENSE)
[](package.json)
[](https://www.npmjs.com/package/prismstudio)
[](https://github.com/RunhuaHuang/prismstudio/actions/workflows/ci.yml)
**English** | [简体中文](README.md)
</div>
<p align="center">
<img src="figures/webui-overview.png" alt="Prismstudio WebUI Overview" width="100%">
</p>
Prismstudio is a standalone service that follows the [Model Context Protocol](https://modelcontextprotocol.io), allowing any MCP-supported AI agent (such as Claude Desktop, Cursor, Cline, Windsurf, VS Code, etc.) to directly call **dozens of mainstream multimodal models** to generate images, videos, and audio, without needing to connect to each vendor's API individually.
It solves the "configuration hassle" with an **embedded WebUI**: one command opens the browser, select a model, fill in the API key, try it out, and one-click copy the access configuration, making the experience as simple as a desktop application.
## Key Selling Points
<table>
<tr>
<td width="50%" valign="top">
### Comprehensive Mainstream Models
**60 Preset Models · 13 Vendors**, covering both domestic and international models:
**🖼️ Image** · OpenAI gpt-image · Google Gemini(nano-banana)/Vertex · 豆包 Seedream · 智谱 GLM-Image/CogView · 通义 Qwen-Image · · Stability · 混元 · MiniMaxjourney
**** · Google Ve3.1 · CogVideoX · 豆ance · 可灵 MiniMax · 万相.7 · Qwen HappyHorse · 腾讯
**🔊 Audio** · CosyVoice · Qwen3-TTS · GLM-TTS · speech/music · 声音
New models can be added with a single preset, engine automatically dispatches corresponding provider using 14.
</td>
<td50%" valign="top">
### One MCP, Compatible with Any Agent
Following the open MCP standard, **any local agent that supports MCP can directly connect**:
- **Claude Desktop**
- **Cursor**
- **Cline**
- **Windsurf**
- **VS Code (Copilot Chat)**
- … and any stdio MCP client
Zero-code access: WebUI wizard one-click copies the `mcpServers` JSON, paste it into the agent configuration, and you're done. **Write once, share across all agents**.
</td>
</</table>
### And More
- **Multimodal Coverage**: Text-to-image, text-to-video, image-to-image/edit, TTS voice synthesis, music generation, voice cloning
- **Embedded WebUI**: Configuration panel, trial panel, and access wizard in one, zero-configuration threshold, no need to write JSON
- **Dynamic Tool Exposure**: Only configured modalities are exposed to the agent, no empty tool shells
- **Local First**: Proven that the configuration exists locally in `~/.prismstudio/config.json`, WebUI only binds to `127.0.0.1`, no data upload
Prismstudio encapsulates the "modality × vendor" into 14 protocol families, and the engine kernel automatically dispatches to the corresponding provider based on the configuration. Currently, there are **60 preset models**.
### Image Generation (28 Models / Text-to-Image · Image-to-Image · Editing)
| Vendor | Model | Capability |
|---|---|---|
| OpenAI | gpt-image-1 / 2 | Text-to-image, reference image editing, transparent background |
| Google Gemini | flash / flash-lite / pro(nano-banana) | Text-to-image, multi-turn editing, aspect ratio and resolution |
| Google Vertex | flash / flash-lite / pro | Gemini same, using Vertex AI quota |
| 豆包 | Seedream(含 4 / 4.5 / 5 / 5-Lite) | High-quality domestic images |
| 智谱 | GLM-Image、CogView-4 | Domestic open-source ecosystem |
| MiniMax | image-01 | Single image generation |
| 通义万相 | Qwen-Image、Plus / Max / 2-Pro | Alibaba Cloud images |
| 万相 | wanx-2.1-turbo / plus | High cost-effectiveness |
| Stability | SDXL / SD3 / Classic Stable Diffusion |
| 腾讯 | 混元 image v3 / lite | Tencent Cloud images |
| Midjourney | midjourney | Styl |
### Video Generation Models / Text-to-Video · Image-to-Video · Asynchronous)
| Vendor | Model | Capability |
|---|---|---|
| 智谱 | CogVideoX 2 / 3 / Flash | Domestic open-source video |
| 豆包 | Seedance(含.5-pro / 2 / 2-fast / 2-mini) | Byte video |
| 可灵 | Kling v2 | High-quality domestic video |
| MiniMax | video-01 | Video generation |
| 万相 | wan2.7-t2v、wan2.7-videoedit | Text-to-video, video editing |
| 通义 | Qwen HappyHorse | Text/image/reference-to-video |
| 腾讯 | 混元 video v1.5 | Tencent Cloud| Google Gemini | Veo 3.1 / 3.1-fast / 3.1-liteni-flash | International top-tier video, supports audio |
| Google Vertex | Omni-flash | Vertex quota |
Generation (13 Models / TTS · Music · Voice Cloning)
| Vendor | Model | Capability |
|---|---| 智谱 | GLTTS、GLM-Clone | Voice synthesis, voice cloning |
| 阿yVoice | Tongyi voice synthesis |
| | Qwen3-TTS(Flash / Instruct方言) | built-in voices, dialects |
| MiniMax-02 / async(含免费档/)、voice-clone | TTS, music generation, voice> Complete preset corresponding `protocol`/`baseUrl`/`vendor`Preset List](#-configuration-file-description) or `--` configuration panel dropdown.
## System Requirements
Prismstudio is a Node.js MCP Server. macOS and Windows **do not come with** Node.js / npm / npx by default; please install **Node.js 20 or higher.js official installation packages usually install npm and npx simultaneously Check if installed
```bash
node -v
npm -v
npx -v
```
If `node -v` shows `v20.x`, `v22.x`, or higher, you can continue.
### Install Node.js
**macOS**
Recommended options:
```bash Official installation package: download and install LTS version
# https://nodejs.org/
# or Homebrew
brew install node
# or nvm
nvm installts
```
**Windows**
Recommended options:
```powershell
# Official installation package: download and install LTS version
# https://nodejs.org/
# or winget
winget install OpenJS.NodeJS.LTS
```
After installation, reopen the PowerShell and run the above `node -v`, `npm -v`, `npx -v`.
## Quick Start Step 1:UI to complete configuration for first-time use)
```bash
npx -studio@latest web```
The browser will automatically open `http://127.0.1:`. WebUI is a **configuration panel on demand, not a resident service**:
- Only occupies port `17899` when this command is running
- Closes the terminal or press `Ctrl+C` to stop WebUI, no longer occupying computer memory / CPU
- Configuration is saved to local `~/.prismstudio/config.json`, will not be lost when WebUI is closed
- Can be reopened by running the same command when you need to change models, API keys, or test generation After setting up once use in the agent images / videos / audio **does not require WebUI to be resident**
On the page:
1. ****: Select preset models modalities (images/videos/audio), fill in API keys, and save
2. **Trial Panel**: Directly generate an image / TTS to verify configuration is effective
3. **Access Wizard**: Select your agent, one-click copy `mcpServers` configuration JSON
<p align="center">
<strong>Configuration Panel</strong> · Select models, fill in keys, save<br/>
<img src="figures/webui-config.png" alt="Configuration Panel" width="90%">
</p>
<p align="center">
<strong>Trial Panel</strong> · Try it out, what you see is what you get<br/>
<img src="figures/webui-playground.png" alt="Trial Panel" width="90%">
</p>
<p align="center">
<strong>Access Wizard</strong> · Select agent, one-click copy configuration<br/>
<img src="figures/webui-wizard.png" alt="Access Wizard" width="90%">
</p>
### Step 2: Connect to your agent
Take Claude Desktop as an example, edit the configuration file (macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"prismstudio": {
"command": "npx",
"args": ["-y", "prismstudio@latest"],
"timeoutMs": 1800000
}
}
}
```
After saving the MCP configuration, **please restart Claude Desktop / Cursor / Cline / Windsurf and other agents** to reload the MCP server. After you can generate images, videos, and audio in the conversation.
> `timeoutMs: 1800000` means letting the agent wait up to 30 minutes, recommended to keep to avoid long tasks like videos/music being cut off by the client default 30-second timeout. If your agent does not support this field and reports an error, delete this line.
> If your agent provides "form / JSON" switching, select **JSON** format the JSON the WebUI access wizard; if the form requires filling in the type, please select `stdio`.
<p align">
<strong Configuration Filling Prompt</strong> · Select JSON format and paste configuration<br/>
img src="figures/mcp-json-format-guide.png" alt="MCP Configuration Selection JSON Format Guide" width="90%">
</p>
<details>
<summary><b> Configurations</b></**Cursor** (`cursor/mcp.json```json
{
"mcpServers": {
"prismstudio "command": "npx", "args":y", "prismstudio@latest"], "timeoutMs": 180 }
}
}
```
**Cline / Windsurf / VS Code**: same write to the corresponding MCP.
**General stdio**: directly run `npx -y prismlatest`, interact through standard input and output.
</details>
## Command Reference
```bash
prismstudio # Run in stdio MCP mode (default, for agent calls)
prismstudio webui # Start local WebUI configuration panel (equivalent to --webui)
prismstudio --webui # Start local WebUI configuration panel (browser opens 127.0.0.1:<port>)
prismstudio --webui --port 8080 # Specify WebUI port (default 17899)
prismstudio --output-dir <path> # Override output directory for generated media
prismstudio --version # Show version number
prismstudio --help # Show help
```
**Environment Variables:**
| Variable | Default Value | Description |
|---|---|---|
| `PRISMSTUDIO_CONFIG` | `~/.prismstudio/config.json` | Specify configuration file path (for easy switching between multiple configurations) |
## Provided MCP Tools
Only configured modalities expose corresponding tools (dynamic tool exposure, avoiding empty tool shells):
| Tool | Modality | Capability |
|---|---|---|
| `generate_image` | Image | Text-to-image, reference image editing, multi-turn optimization |
| `generate_video` | Video | Text-to-video (asynchronous, 1-5 minutes), image-to-video |
| `generate_audio` | Audio | TTS voice synthesis, music generation, voice cloning |
Each tool supports rich vendor-specific parameters (e.g., OpenAI's `quality`/`background`, Gemini's `aspectRatio`/`imageSize`, Stability's `stylePreset`, video's `withAudio`/`frames`, etc.), see each tool's `inputSchema`.
**Generated media** is saved to `<output directory>/generated-media/`:
- If no `outputDir` is set, default output directory is `~/.prismstudio/generated-media/`
- WebUI trial panel's temporary trial media is saved in `~/.prismstudio/playground/`
- Images/audio are also returned as base64 inline to the agent for easy preview
- Videos are large, only local paths are returned
> `prismstudio` is a hidden folder in the user's home directory (folder name starts with a dot). Configuration files, default generated media, and WebUI trial media are all stored here.
**How to view hidden folders:**
- **macOS Finder**: press `Command + Shift + .` to show/hide hidden files; or press `Command + Shift + G`, input `~/.prismstudio` and press Enter to open directly.
- **Windows File Explorer**: click "View" → "Show" → check "Hidden items"; or press `Win + R`, input `%USERPROFILE%\.prismstudio` and press Enter to open.
You can also let the agent handle files for you, e.g.:
> “Please copy the generated video to my desktop.”
> “Please move the latest generated image to `/Users/your_username/Downloads/作品/`.”
## Configuration File Description
Configuration file is located at `~/.prismstudio/config.json` (can be overridden with `PRISMSTUDIO_CONFIG`):
```jsonc
{
"image": {
"enabled": true,
"presetId": "openai-gpt-image-2", // Preset ID, or "custom" for manual specification
"apiKey": "sk-...", // storage
"model": "...", // override preset model required for custom)
protocol": "openai-images", // Optional, only meaningful for custom "baseUrl": // Optional preset endpoint
"video": ... */ },
{ /* ... */ },
"output "/path/to/out" // Optional, output directory media
}
**Same vendor key memory**: each modality remembers API keys by vendor (stored in `apiKeyByVendor`, compatible with old `apiKeyByPreset`). Switching models from the same vendor within the same modality does not require re-entry; images / videos / audio tools do not enforce sharing.
> **Security note**: credentials are stored in plain text (consistent with MCP ecosystem conventions). WebUI only binds to `127.0.0.1`, does not load third-party CDN scripts/fonts, and reduces local cross-site request risks through security response headers, Origin / Sec-Fetch-Site verification, and JSON Content-Type verification. Please manage file permissions in production environments. See [SECURITY.md](SECURITY.md) for details.
## Local Development
```bash
# Dependencies
bun install
# Development ()
bun run dev stdio mode
bun run devui #
# Testing stdio Handshake
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' | bun run dev
```
See more in [CONTRIBUTING.md](CONTRIBUTING.md).
---
## Architecture
```
┌──────────────────────────────────────────────────┐
│ prismstudio(One Process, One Command) │
│ │
│ ┌────────────────────────────────────────────┐ │
│ │ Engine Core(14 Protocol Families, 60 Prebuilt Models) │ │
│ │ generateMedia() Unified Entrance │ │
│ └────────────────────────────────────────────┘ │
│ ▲ ▲ │
│ │ │ │
│ ┌────────┴───────┐ ┌────────┴─────────┐ │
│ │ stdio MCP Transport │ │ Embedded HTTP WebUI │ │
│ │ (For agent use) │ │ (For configuration/ trial) │ │
│ └────────┬───────┘ └────────┬─────────┘ │
│ └───────┬────────────────┘ │
│ Shared ~/.prismstudio/config.json │
└───────────────────────────────────────────────────┘
```
| Module | Responsibility |
|---|---|
| `src/engine/media-generation-engine.ts` | Generation Core, dispatch by "Modal × Protocol Family", bare `fetch` call each provider |
| `src/engine/google-auth.ts` | Google Vertex / Gemini service account authentication |
| `src/config.ts` | Configuration read/write, convert structured configuration to engine-required flat credentials |
| `src/persist.ts` | Generate output to disk + construct MCP content block (pure `node:fs`) |
| `src/mcp-server.ts` | Underlying Server + JSON Schema registration tool, connect engine/configuration/output to disk |
| `src/index.ts` | CLI entrance, shunt stdio / `--webui` two modes |
| `src/webui/server.ts` | HTTP server + REST API (only `127.0.0.1`) |
| `src/webui/index-html.ts` | Alpine.js single-file page (configuration/trial platform/integration guide) |
---
## License
[MIT](LICENSE) Jacky Huang
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
No recommendations available