Skip to main content
Glama

MCP アンリアル サーバー

リモート Python 実行を通じて Unreal Engine インスタンスと対話するためのサーバー実装。

特徴

  • 🚀 Unreal インスタンス管理

    • マルチキャストによるUnrealノードの自動検出

    • リアルタイムノードステータス監視

    • LSP 互換クライアントによるリソース一覧

  • 💻リモート実行

    • Unreal Engine 環境で Python コードを実行する

    • 有人実行モードと無人実行モードの両方をサポート

    • ファイル実行とステートメント評価モード

  • 📊ログ記録と監視

    • 詳細なログをファイルに記録します ( mcp_unreal.log )

    • 異なる詳細レベルでのコンソールログ

    • ノード接続のヘルスモニタリング

Related MCP server: unreal-mcp

インストール

# Clone repository
git clone https://github.com/your-org/mcp-unreal-server.git
cd mcp-unreal-server

# Install dependencies
pip install -r requirements.txt

構成

ネットワーク設定

RemoteExecutionConfigでマルチキャスト パラメータを構成します。

# Default multicast settings (modify in server.py)
config.multicast_group_endpoint = ("239.0.0.1", 6766)

ログ記録

server.pyのログ記録設定を変更します。

# Adjust log levels
file_handler.setLevel(logging.DEBUG)  # File logging
console_handler.setLevel(logging.INFO)  # Console logging

使用法

サーバーの起動

python -m src.mcp_server_unreal.server

サポートされているツール

  1. Unrealインスタンスに接続する

{
  "host": "239.0.0.1",
  "port": 6766
}
  1. Pythonコードを実行する

{
  "node_id": "<unreal-node-id>",
  "code": "print('Hello Unreal')",
  "unattended": true
}

APIドキュメント

リソース形式

types.Resource(
    uri="unreal://<node_id>",
    name=f"Unreal Instance: {node_id}",
    description="Unreal Engine instance",
    mimeType="application/x-unreal"
)

実行モード

モード

説明

MODE_EXEC_FILE

Pythonファイルを実行する

MODE_EXEC_ステートメント

Pythonステートメントを実行する

MODE_EVAL_STATEMENT

Python式を評価する

トラブルシューティング

よくある問題:

  • ノードが検出されません: MCP プラグインを使用して Unreal インスタンスが実行されていることを確認します

  • 実行タイムアウト: マルチキャストトラフィックのファイアウォール設定を確認してください

  • 接続が切断された場合: ノードのステータスの変化についてはmcp_unreal.log監視します。

ライセンス

Apache 2.0 ライセンス

Available Tools

1 tool
execute-pythonC

在Unreal中执行Python代码

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
unattendedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
resultNo
successYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe important behavioral aspects: whether this executes synchronously or asynchronously, what permissions are required, how errors are handled, whether it's safe for production use, or what the 'unattended' parameter actually means behaviorally. The description is minimal and lacks critical operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise - a single phrase that directly states the core function. There's zero wasted language, and it's perfectly front-loaded with the essential information. For its length, it's maximally efficient, though this conciseness comes at the cost of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is a code execution tool with no annotations, 2 parameters (one with unclear purpose), and an output schema exists, the description is insufficient. While the output schema may describe return values, the description doesn't address safety concerns, execution context, error handling, or parameter meanings. For a potentially powerful/dangerous operation like code execution, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate but doesn't. It mentions no parameters at all, leaving both 'code' and 'unattended' completely unexplained. The description doesn't clarify what format the Python code should be in, what execution environment is used, or what 'unattended' mode entails. This is inadequate for a tool with 2 parameters and 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('执行Python代码' - execute Python code) and the context ('在Unreal中' - in Unreal). It specifies both verb and resource, though it doesn't need to distinguish from siblings since none exist. The purpose is unambiguous but could be more specific about what kind of Python execution this enables.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, limitations, or typical use cases. With no sibling tools, differentiation isn't needed, but basic usage context would help the agent understand appropriate scenarios for this operation.

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.

  1. 1 tool updatev1.0.0
    • First observedexecute-python

TDQS

C2.9/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool has a clear, distinct purpose of executing Python code within Unreal.

Naming Consistency5/5

With only one tool, naming consistency is inherently perfect. The tool name 'execute-python' follows a clear verb_noun pattern, and there are no other tools to create inconsistency.

Tool Count2/5

A single tool is too few for a server named 'MCP Unreal Server', which suggests a broader scope related to Unreal Engine. This minimal toolset feels thin and inadequate for typical Unreal automation or interaction tasks.

Completeness1/5

The tool surface is severely incomplete for an Unreal server. It only provides Python execution, lacking essential operations like asset management, level editing, blueprint interaction, or any other common Unreal Engine workflows, leaving significant gaps.

Related MCP Connectors

Related MCP Servers