MCP server for Naninovel, enabling AI-assisted visual novel development with screenshot support.
Naninovel MCP Server
Unity C# plugin that exposes Naninovel script authoring and playback controls via the Model Context Protocol (MCP), enabling AI assistants to write, edit, and test visual novel scripts.
Features
- Independent of Play Mode - Server runs in Editor at all times
- NaniScript CRUD - Create, read, update, delete script files
- Direct Playback - Skip title screen and jump to any script/label
- Input Simulation - Advance dialogue, simulate key presses
- Visual Verification - Screenshot capture for scene validation
Quick Start
- Open Unity Editor
- Server auto-starts (or open Window > Nani MCP > Server Status)
- Connect your MCP client to
http://localhost:6274
For Antigravity, add to your mcp_config.json:
{
"mcpServers": {
"nani-mcp": {
"serverUrl": "http://localhost:6274"
}
}
}
Available Tools
Script File Operations (Editor Mode)
| Tool | Description |
|------|-------------|
| list_scripts | Lists all .nani files in Scenarios folder |
| read_script | Reads content of a script file |
| write_script | Creates or overwrites a script file |
| edit_script | Insert, replace, or delete lines in a script |
| delete_script | Deletes a script file (with backup) |
Playback Controls (Play Mode)
| Tool | Description |
|------|-------------|
| quick_play | Play a script directly, bypassing title screen |
| execute_command | Execute a single Nani command |
| play_script | Load and play a script |
| stop_player | Stop current playback |
| goto_label | Jump to a specific label |
| get_playback_status | Get current playback state |
Scene & State (Play Mode)
| Tool | Description |
|------|-------------|
| capture_screenshot | Capture current Game View as PNG |
| get_scene_state | Get visible actors and positions |
| get_variables | List all custom variables |
| set_variable | Set a variable value |
Input Simulation (Play Mode)
| Tool | Description |
|------|-------------|
| continue_dialogue | Advance to next dialogue line |
| simulate_key | Simulate keyboard key press |
| simulate_click | Simulate mouse click |
Unity Editor Controls
| Tool | Description |
|------|-------------|
| enter_play_mode | Start Unity Play Mode (from title screen) |
| exit_play_mode | Stop Unity Play Mode |
| get_unity_status | Get Unity Editor status and Play Mode state |
| list_scenes | List all Unity scenes in Build Settings |
Example: Writing a Script
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "write_script",
"arguments": {
"path": "events/new_scene.nani",
"content": "; New Scene\n@back Classroom\n@char NaniChan\nNaniChan: Bonjour!"
}
}
}
Example: Quick Play
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "quick_play",
"arguments": {
"script": "events/new_scene",
"resetState": true
}
}
}
Configuration
Open Window > Nani MCP > Server Status to configure:
- Port: WebSocket server port (default: 6274)
- Auto-start: Start server automatically when Editor opens
License
MIT License