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: ``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






