naninovel-mcp

shar0/naninovel-mcp
2 starsMITCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

A Unity C# plugin that enables AI assistants to write, edit, and test visual novel scripts via the Model Context Protocol, with tools for script CRUD, playback control, input simulation, and visual verification.

README.md

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

  1. Open Unity Editor
  2. Server auto-starts (or open Window > Nani MCP > Server Status)
  3. 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

Related MCP servers

Browse all →