unreal-python-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@unreal-python-mcpexecute print('Hello World') in Unreal Editor"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
unreal-python-mcp
MCP (Model Context Protocol) server for Unreal Python API documentation and execution.
Enables AI coding assistants like Claude Code to:
Browse Unreal Python API documentation
Search for classes and functions
Execute Python code in Unreal Editor
Installation
# Clone the repository
git clone https://github.com/self-taught-code-tokushima/unreal-python-mcp.git
cd unreal-python-mcp
# Install with uv
uv syncRelated MCP server: Unreal-MCP
Claude Code Setup
Add to your Claude Code MCP configuration (~/.config/claude/mcp.json or project-level .mcp.json):
{
"mcpServers": {
"unreal-python": {
"command": "uv",
"args": ["--directory", "D:\\UnrealProjects\\unreal-python-mcp", "run", "unreal-python-mcp"]
}
}
}or
{
"mcpServers": {
"unreal-python": {
"command": "uvx",
"args": ["--from", "git+https://github.com/self-taught-code-tokushima/unreal-python-mcp", "unreal-python-mcp"]
}
}
}Requirements
Python 3.13+
Unreal Editor with Python plugin enabled
"Enable Remote Execution" checked in Editor Preferences > Plugins > Python
Custom Modules Support
In addition to the built-in unreal module, you can document custom Python modules available in your Unreal Editor environment (e.g., MaterialGraphEditor).
Setup
Add the env section to your MCP configuration with the UNREAL_PYTHON_CUSTOM_MODULES environment variable:
{
"mcpServers": {
"unreal-python": {
"command": "uvx",
"args": ["--from", "git+https://github.com/self-taught-code-tokushima/unreal-python-mcp", "unreal-python-mcp"],
"env": {
"UNREAL_PYTHON_CUSTOM_MODULES": "YourCustomModule1,YourCustomModule2"
}
}
}
}Refreshing Cache with Custom Modules
After configuring custom modules, refresh the cache to include them:
# Windows PowerShell
$env:UNREAL_PYTHON_CUSTOM_MODULES="MaterialGraphEditor,BlueprintGraphEditor"
uvx unreal-python-mcp-refresh
# Or with uv run
$env:UNREAL_PYTHON_CUSTOM_MODULES="MaterialGraphEditor,BlueprintGraphEditor"
uv run unreal-python-mcp-refresh# Linux/macOS
UNREAL_PYTHON_CUSTOM_MODULES="MaterialGraphEditor,BlueprintGraphEditor" uvx unreal-python-mcp-refreshNotes
Specify multiple modules as comma-separated values
Custom modules will appear in the module list alongside built-in modules
The MCP server will automatically use the configured modules when it starts
Available Tools
Tool | Description |
| Search API by class/function name |
| Get class overview (member name lists, 1-3KB) |
| Get detailed info for a specific member |
| Get detailed info for multiple members (batch) |
| List available Unreal modules |
| Execute Python code in Unreal Editor |
| List available Unreal Editor instances |
| Refresh API documentation cache (also available as CLI: |
Available Resources
Hierarchical Index
Classes are organized by module to minimize context usage.
Resource | Size | Description |
| ~2KB | Start here. API overview with module list |
| ~20-90KB | Classes for a specific module |
| ~50KB | All enums |
| ~200KB | All structs |
| ~10KB | All delegates |
Common modules:
Engine(994 classes): Core classes - Actor, World, GameplayStaticsUnrealEd(204 classes): Editor utilities - EditorAssetLibraryUMG(110 classes): UI/Widget classesNiagara(98 classes): Particle system
Class Documentation
Resource | Description |
| Detailed class documentation |
Usage Example
In Claude Code:
User: Actor クラスの位置を取得するメソッドを教えて
Claude: [Reads unreal-python://index/summary]
→ Engine モジュールに Actor があることを確認
[Reads unreal-python://index/module/Engine]
→ Actor: 145 methods, 48 properties
[Uses get_class_overview("Actor")]
→ メソッド名一覧を取得(1-2KB程度)
[Uses get_member_info("Actor", "get_actor_location")]
→ 詳細ドキュメントを取得
Actor の位置を取得するには get_actor_location() を使います。
返り値は Vector 型です。User: EditorAssetLibrary の使い方を教えて
Claude: [Reads unreal-python://index/summary]
→ UnrealEd モジュールにあることを確認
[Reads unreal-python://index/module/UnrealEd]
[Uses get_class_overview("EditorAssetLibrary")]
→ メソッド名一覧を取得
EditorAssetLibrary はエディタ専用のアセット操作ユーティリティです...User: Unreal で Hello World を出力して
Claude: [Uses exec_unreal_python("print('Hello World')")]
実行結果: Hello WorldFirst-time Setup
Start Unreal Editor with a project
Enable Python Remote Execution in Editor Preferences (Editor Preferences > Plugins > Python > Enable Remote Execution)
Refresh the API documentation cache:
# Using uvx (recommended)
uvx unreal-python-mcp-refresh
# Or with uv run (if you cloned the repository)
uv run unreal-python-mcp-refreshAlternatively, you can use the refresh_api_cache MCP tool from Claude Code after connecting to the MCP server.
Development
# Run MCP dev server (with inspector)
uv run mcp dev src/unreal_python_mcp/server.py
# Run directly
uv run unreal-python-mcpLicense
MIT
Available Tools
8 toolsexec_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
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the action and the required environment but does not mention potential side effects of arbitrary code execution, error behavior, or response content. While the execution action itself is inherently transparent, valuable behavioral context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence purpose, a necessary prerequisite, and a simple Args list. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter execution tool, the description covers the essential purpose, the environment requirement, and the parameter meaning. Since an output schema exists, return values need not be described. It could add a warning about destructive potential, but the description is otherwise sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. The Args section defines 'code' as 'Python code to execute in Unreal Editor,' which gives necessary meaning. However, this largely restates the tool's purpose and adds no additional detail about expected formatting or multi-line input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Execute Python code in the running Unreal Editor,' specifying the verb (execute), resource (Python code), and context (running Unreal Editor). This distinguishes it from sibling read-only introspection tools like list_unreal_instances and get_class_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite: 'Requires Unreal Editor to be running with Python Remote Execution enabled,' along with setup instructions. It does not explicitly mention when to use this tool over alternatives or list exclusions, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| class_name | Yes | ||
| include_doc | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that by default data comes from TOC with no Unreal query, and with include_doc=True it fetches from Unreal. It also notes performance implications (100KB+ for large classes), providing valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence serves a purpose: summary, default behavior, alternative tools, efficiency note, and Args. Well-structured and appropriately sized with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the tool is relatively simple, the description covers purpose, usage, parameters, and behavioral nuances. It is complete for an agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It does so clearly: class_name example values ('Actor', 'EditorAssetLibrary') and include_doc behavior with default value. This adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get class overview with member name lists only (very lightweight).' It specifies the output scope and distinguishes itself from sibling tools like get_member_info/get_members_info by emphasizing lightweight operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use: for lightweight overviews, and when not: 'Use get_member_info or get_members_info to get details for specific members.' Also explains efficiency benefits for large classes, giving clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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")
| Name | Required | Description | Default |
|---|---|---|---|
| class_name | Yes | ||
| member_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses return contents (member type, docstring, signature, value) beyond basic purpose, but does not mention error behavior or edge cases. This is strong for a read-only lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately compact, with a main goal sentence, a clear return summary, and an Args section with examples. Every sentence contributes useful information with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple two-parameter tool with an output schema. The description fully explains what it does and what it returns, so nothing critical is missing for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so the description must compensate. The Args section provides clarifying examples (e.g., "Actor", "get_actor_location") for both parameters, adding meaningful semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed documentation for a specific class member, using a specific verb and resource. It distinguishes itself from the sibling get_members_info by emphasizing 'specific member'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied (for a specific member) but no explicit guidance contrasts it with alternatives like get_members_info or search_unreal_api. It lacks when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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"])
| Name | Required | Description | Default |
|---|---|---|---|
| class_name | Yes | ||
| member_names | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clarifies this is a batch read operation for documentation, but does not disclose behavior for missing members, invalid class names, or any side effects. However, the 'get documentation' phrasing implies read-only, and the tool has an output schema to fill in details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one purpose sentence, one usage sentence, and a clear Args list. It is front-loaded with the primary purpose and uses structure effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage, and parameters, and the tool has an output schema to specify return structure. It lacks details on failure modes, but given the simple 2-param schema and existence of output schema, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description compensates with an Args section giving examples for both parameters (e.g., 'Actor' and a list of member names). This adds meaningful semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it 'Get[s] detailed documentation for multiple members at once (batch operation)', with a clear verb and resource. It explicitly differentiates from sibling get_member_info by noting batch efficiency, making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool: 'More efficient than calling get_member_info multiple times when you need details for several members.' This names the alternative and provides a condition, fully guiding the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It discloses that the tool lists all available modules and includes class counts, implying a read-only operation. It does not mention side effects or permissions, but for a straightforward listing tool, this is sufficient. The 'all available' and 'with class counts' details add behavioral specificity beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences. The first sentence front-loads the core purpose, and the second provides usage guidance. There is no redundancy or unnecessary information, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no params, output schema exists). The description covers the purpose and usage context, including a pointer to the resource used for retrieving class details. This is complete for the tool's complexity and does not need to explain return values thanks to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema confirms this. The baseline for a zero-param tool is 4, and since there are no parameter descriptions needed, the description appropriately omits param details. There is nothing to add beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all available Unreal modules with class counts' which identifies a specific action (list) and resource (Unreal modules) with a distinguishing detail (class counts). This separates it from sibling tools like get_class_overview (which retrieves classes for a specific module) and list_unreal_instances (which lists engine instances).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool ('Use this to discover what modules are available') and provides a clear next step ('then use unreal-python://index/module/{name} resource to get classes for that module'). This gives both a use case and a pointer to an alternative resource, satisfying the 'when-to-use' and 'alternatives' criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly describes the behavior ('List all running instances') and adds scope ('with Remote Execution enabled'). It does not explicitly state read-only, but the operation is inherently a read-only query and the wording is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. The first states the purpose, the second provides usage context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter utility tool, the description is complete. It explains what it does and when to use it. Since an output schema exists, return values need not be described. No further explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description adds no parameter explanation, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all running Unreal Editor instances with Remote Execution enabled, using a specific verb and resource. It distinguishes itself from siblings like search_unreal_api and exec_unreal_python by focusing on instance discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells when to use the tool ('Use this to check if Unreal Editor is available for code execution'), providing clear context. It does not mention when not to use it or name alternatives, but the usage context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It states the action (fetches latest docs, updates cache) and the critical dependency (Unreal Editor running). It does not detail all side effects, but for a cache refresh the primary behavior is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and includes only essential elaborative detail. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 0-parameter tool with an output schema, the description fully explains what the tool does, its prerequisite, and its effect. Sibling context confirms it stands alone as a refresh operation. Complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description need not add parameter details. Baseline for 0 params is 4, and the description correctly implies no inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool refreshes the Unreal Python API documentation cache, with a specific verb ('Refresh') and resource. It differentiates from sibling tools like search/get/exec by being an update/cache maintenance operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides the clear prerequisite that Unreal Editor must be running, which sets the context for use. Although it doesn't explicitly contrast with alternatives, the purpose is unambiguous and the requirement effectively guides when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns matching entries from the API index and supports partial matching and regex for the query. It does not mention potential side effects or limitations, but for a read-oriented search tool these are less critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short, efficient segments: purpose, return behavior, usage guideline, and parameter explanation. It is front-loaded with the action and target, with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter search tool with an output schema, the description covers purpose, usage guidance, and parameter semantics. It does not need to explain return values because an output schema exists. The complexity is low, and the description fully satisfies the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes query only as a string with no explanation. The description's Args section says it is a 'Search query (supports partial matching and regex),' which provides meaningful semantics and compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Search') with a defined target ('Unreal Python API') and scope ('by class or function name'). It also distinguishes from sibling detail-lookup tools by positioning itself as the name-discovery step, saying 'Use this to find the correct class/function name before getting detailed documentation.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use this tool: 'before getting detailed documentation.' This implies it is a precursor to sibling detail tools like get_class_overview or get_member_info. It does not explicitly name alternatives, but the workflow context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v0.1.0- First observed
exec_unreal_python - First observed
get_class_overview - First observed
get_member_info - First observed
get_members_info - First observed
list_modules - First observed
list_unreal_instances - First observed
refresh_api_cache - First observed
search_unreal_api
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Versioned documentation registry and semantic search for AI tools and coding assistants.
Get up-to-date, version-specific documentation and code examples from official sources directly in…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Unreal Editor 5 through the Python remote execution protocol. It allows for managing the editor lifecycle, configuring project settings, and executing Python scripts directly within the Unreal Engine environment.MIT
- AlicenseBqualityAmaintenanceControls Unreal Engine 5 editor from AI coding assistants, enabling 280 commands across 13 categories for materials, blueprints, Niagara VFX, and more.10038Mozilla Public 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI clients like Claude Code, Cursor, or VS Code to drive the Unreal Editor: execute Python, capture screenshots, tail logs, check status, and run VERA commands.15MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Unreal Engine via Remote Control API for actor, asset, level, and editor operations.2216MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/self-taught-code-tokushima/unreal-python-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server