Skip to main content
Glama
JupiterianSoul

Abiotic Factor Mod Editor MCP server

run_python

Execute Python code inside the Unreal Editor with unreal imported and return its output, supporting inspection and tasks not covered by other mod-editing tools.

Instructions

Run Python inside the editor, with unreal imported, and return its output.

This is an escape hatch and is not limited to the active mod. Use it for inspection and for gaps in the other tools. Do not use it to bypass the write guards, delete assets, or upload to mod.io without the user asking.

Input Schema

NameRequiredDescriptionDefault
codeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose meaningful behavior: execution happens in-editor, `unreal` is available, scope is not restricted to the active mod, and write guards exist as a constraint. It stops short of describing execution environment details an agent would want — timeouts, sandboxing, whether mutations persist, and how output is captured (stdout vs return value).

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

Conciseness4/5

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

Purpose is front-loaded in the first sentence and the guardrails follow in a compact block; nothing is padded. Slight cost is that the safety caveats occupy as much space as the capability statement, but they earn their place for an arbitrary-code tool.

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

Completeness3/5

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

No output schema exists, so the description's 'return its output' is the only signal about return values and it doesn't say what form that takes (string of stdout, structured result, error surface). For a tool that executes arbitrary code with one undocumented parameter and no annotations, a bit more on failure/timeout behavior would round it out.

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

Parameters3/5

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

There is a single required parameter `code` with 0% schema description coverage. The description implicitly tells the agent that `code` is Python executed with `unreal` imported, which is real added meaning, but it says nothing about whether the code is a snippet vs full script, how results are surfaced, or whether print vs expression value matters.

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

Purpose5/5

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

States a specific verb and resource ('Run Python inside the editor'), adds the key execution detail that `unreal` is pre-imported, and says the result is returned. The framing as an 'escape hatch' with scope 'not limited to the active mod' cleanly separates it from the domain-specific siblings like read_asset or upsert_datatable_rows.

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

Usage Guidelines5/5

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

Gives explicit when-to-use ('for inspection and for gaps in the other tools') and explicit when-not-to-use ('do not bypass the write guards, delete assets, or upload to mod.io without the user asking'). This is the rare case where alternatives and exclusions are both named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.