unreal-python-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UNREAL_PYTHON_CUSTOM_MODULES | No | Comma-separated list of custom Python module names available in Unreal Editor environment. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_unreal_apiA | Search Unreal Python API by class or function name. Returns matching entries from the API index. Use this to find the correct class/function name before getting detailed documentation. Args: query: Search query (supports partial matching and regex) |
| get_class_overviewA | Get class overview with member name lists only (very lightweight). By default, returns only member NAMES without docstrings (fetched from TOC, no Unreal query). Set include_doc=True to also fetch class docstring and base classes from Unreal. Use get_member_info or get_members_info to get details for specific members. This is much more efficient than fetching full documentation - especially for large classes like Actor which would be 100KB+ with full details. Args: class_name: The exact class name (e.g., "Actor", "EditorAssetLibrary") include_doc: If True, also fetch class docstring and bases (default: False) |
| get_member_infoA | Get detailed documentation for a specific member of a class. Returns the member type (method/property/constant), docstring, signature (for methods), and value (for constants). Args: class_name: The class name (e.g., "Actor") member_name: The member name (e.g., "get_actor_location") |
| get_members_infoA | Get detailed documentation for multiple members at once (batch operation). More efficient than calling get_member_info multiple times when you need details for several members. Args: class_name: The class name (e.g., "Actor") member_names: List of member names (e.g., ["get_actor_location", "set_actor_location"]) |
| exec_unreal_pythonA | Execute Python code in the running Unreal Editor. Requires Unreal Editor to be running with Python Remote Execution enabled. Check Editor Preferences > Plugins > Python > Enable Remote Execution. Args: code: Python code to execute in Unreal Editor |
| list_unreal_instancesA | List all running Unreal Editor instances with Remote Execution enabled. Use this to check if Unreal Editor is available for code execution. |
| list_modulesA | List all available Unreal modules with class counts. Use this to discover what modules are available, then use unreal-python://index/module/{name} resource to get classes for that module. |
| refresh_api_cacheA | Refresh the Unreal Python API documentation cache. This fetches the latest API documentation from a running Unreal Editor and updates the local cache. Requires Unreal Editor to be running. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_index_summary | Lightweight summary of the Unreal Python API (~2KB). START HERE: Read this resource first to understand the API structure. It shows available modules and categories, then load specific indexes as needed. |
| get_enums_index | Get the index of all Unreal Python enums. |
| get_structs_index | Get the index of all Unreal Python structs (Vector, Transform, etc.). |
| get_delegates_index | Get the index of all Unreal Python delegates. |
| get_llms_index | [DEPRECATED] Complete Unreal Python API index. WARNING: This resource is ~700KB and may consume too much context. Use unreal-python://index/summary instead, then load specific modules. |
TDQS
Scored across 8 tools
Each tool serves a clearly distinct purpose: checking editor availability, searching the API, getting class overviews, fetching member details (single vs batch), executing Python, listing modules, and refreshing the cache. Even the two member-lookup tools are obviously differentiated by batch vs single operation.
All tool names follow a consistent snake_case verb_noun pattern (e.g., list_unreal_instances, search_unreal_api, exec_unreal_python). The verbs are specific and predictable, making it easy to guess what each tool does.
With 8 tools, the server is well-scoped for its purpose. It provides just enough surface area to cover discovery, documentation lookup, and code execution without unnecessary bloat or redundancy.
The tool set covers the full workflow for Unreal Python API exploration and execution: check if an editor is available, search for API symbols, inspect modules/classes/members, get detailed documentation, execute code, and refresh the API cache. There are no obvious missing operations that would leave an agent stuck.