UEFN-TOOLBELT (Unpolished-tagusriver58/UEFN-TOOLBELT) is an MCP server listed on the M8ven Trust Index. It scores 56 out of 100, grade D. It declares 398 tools. No publisher has claimed this listing.
Build UEFN Python tools for asset registry, device cataloging, and workflow automation with 355 utility functions
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
Unpolished-tagusriver58
Source: github_repo_search
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
mcp_startStart the HTTP listener so Claude Code can control UEFN directly
mcp_stopStop the MCP HTTP listener
mcp_restartRestart the MCP HTTP listener (useful after hot-reload)
mcp_statusPrint MCP listener status — port, running state, command count
execute_pythonExecute arbitrary Python inside the UEFN editor on the main thread.
mcp_get_logGet the last N lines from the MCP listener's internal log ring.
run_toolbelt_toolRun any registered UEFN Toolbelt tool by name.
list_toolbelt_toolsList all registered UEFN Toolbelt tools.
describe_toolbelt_toolGet the full parameter schema for a single UEFN Toolbelt tool.
get_all_actorsList all actors in the current UEFN level.
get_selected_actorsGet the actors currently selected in the UEFN viewport.
spawn_actorSpawn an actor in the current level.
delete_actorsDelete actors by path name or label.
set_actor_transformSet an actor's transform (any combination of location, rotation, scale).
set_actor_propertySet a single editor property on an actor.
get_actor_propertiesRead specific editor properties from an actor.
list_assetsList assets in a Content Browser directory.
get_asset_infoGet detailed info (class, package, path) about an asset.
get_selected_assetsGet assets currently selected in the Content Browser.
rename_assetRename or move an asset.
delete_assetDelete an asset permanently.
duplicate_assetDuplicate an asset to a new path.
does_asset_existCheck if an asset exists at the given path.
save_assetSave a modified asset to disk.
import_assetImport an external file (FBX, PNG, WAV, etc.) into the Content Browser.
search_assetsSearch for assets using the Asset Registry.
create_material_instanceCreate a new MaterialInstanceConstant from a parent material.
batch_execExecute multiple bridge commands in a single UEFN editor tick.
undoUndo the last action in the UEFN editor.
redoRedo the last undone action in the UEFN editor.
get_historyGet recent command history with per-command timing (elapsed_ms).
save_current_levelSave the current level to disk.
get_level_infoGet info about the current level: world name and actor count.
get_viewport_cameraGet the current editor viewport camera location and rotation.
set_viewport_cameraMove the editor viewport camera.
verse_book_searchSearch the authoritative Verse language spec for a keyword or concept.
verse_book_chapterFetch a complete chapter from the Verse language spec by topic.
verse_book_updatePull the latest Verse spec from upstream (git pull on verse-book/).
debug_dump_verse_actorDump all internal properties of a selected Verse actor for discovery.
toolbelt_activity_logReturn the most recent tool execution entries.
toolbelt_activity_statsReturn aggregate stats across all recorded tool calls this session.
toolbelt_activity_clearWipe the activity log buffer and the persisted JSON file.
actor_attach_to_parentAttach selected actors to the last selected actor as children.
actor_detachDetach all selected actors from their current parent. Preserves world transforms.
actor_move_to_folderMove all selected actors into a named World Outliner folder (created automatically).
actor_move_to_rootMove all selected actors out of any World Outliner folder to the root level.
actor_rename_folderRename a World Outliner folder by re-pathing every actor inside it.
actor_select_by_folderSelect all actors whose World Outliner folder exactly matches folder_name.
actor_select_same_folderSelect all actors in the same folder as the first currently selected actor.
actor_select_by_classSelect all level actors whose class name contains the given filter string (case-insensitive).
actor_folder_listList all World Outliner folders with actor counts. Root actors are listed under '(root)'.
actor_match_transformMatch transform components from the first selected actor to all others.
actor_hideHide all currently selected actors in the editor viewport.
actor_showMake the currently selected hidden actors visible again.
actor_isolateHide all level actors except those currently selected. Workflow: select what you want to see → actor_isolate → work → actor_show_all.
actor_show_allUn-hide every actor in the level — the global 'get everything back' command.
folder_hideHide all actors whose World Outliner folder path starts with folder_name.
folder_showRestore visibility for all actors in a named World Outliner folder.
actor_lockLock selected actors so they cannot be dragged or transformed in the viewport.
actor_unlockUnlock selected actors — restores full move/rotate/scale in the viewport.
align_to_referenceSnap every selected actor's position on one axis to a reference actor's position.
distribute_with_gapLay out selected actors along an axis with a precise gap between their bounds.
rotate_around_pivotRotate and orbit selected actors around a pivot point.
align_to_surfaceDrop selected actors to the nearest surface below them.
match_spacingRedistribute actor pivots evenly between the outermost two actors along an axis.
align_to_grid_two_pointsSnap actors to a user-defined grid derived from two anchor points.
anim_list_skeletonsanim_list_sequencesanim_list_montagesanim_list_blend_spacesanim_create_montageapi_crawl_selectionDeep introspect selected actors, components, and properties to JSON.
api_crawl_level_classesHeadless map of all unique classes (and exposed properties) in the current level.
api_sync_masterThe Ultimate One-Click Sync: Combines Level Crawling + Verse Schema IQ and updates docs/DEVICE_API_MAP.md.
world_state_exportExport the full live state of every actor in the level — transforms + readable device properties — to a single JSON Claude can reason about.
device_catalog_scanQuery the UEFN Asset Registry for every Blueprint that looks like a Creative device — covering all Fortnite packages, not just the current level.
api_searchFuzzy-search class/function names across the live unreal module
api_inspectPrint full signature + docstring for any unreal.* class or function
api_generate_stubsWrite .pyi stub file for one class (or all classes if name omitted)
api_list_subsystemsPrint every *Subsystem class available in this UEFN build
api_export_fullExport monolithic unreal.pyi stub file for full IDE autocomplete
arena_generateGenerate a symmetrical Red vs Blue arena instantly.
import_image_from_urlDownloads an image directly from a URL into the Editor Content Browser as a Texture2D.
import_image_from_clipboardCaptures the current image sitting on the Windows Clipboard and imports it as a Texture2D.
rename_dry_runPreview naming convention violations without changing anything.
rename_enforce_conventionsRename all assets in a folder to follow Epic's naming convention.
rename_strip_prefixStrip a specific prefix from all assets in a folder.
rename_reportGenerate a full naming convention audit report for a folder.
tag_addAdd a searchable metadata tag to all selected Content Browser assets
tag_removeRemove a metadata tag from all selected Content Browser assets
tag_showPrint every Toolbelt metadata tag on all selected Content Browser assets
tag_searchFind assets by metadata tag — returns matching paths to the Output Log
tag_list_allList every unique Toolbelt tag key used under a folder with asset counts
tag_exportExport full tag → asset index to JSON (Saved/UEFN_Toolbelt/tag_export.json)
audio_list_metasoundsaudio_list_sound_classesaudio_list_sound_cuesaudio_list_sound_mixesaudio_list_synesthesiaaudio_place295 further tools are not listed here. The complete surface is in the source.
UEFN_MCP_PORTCLAUDE_TOOL_NAMECLAUDE_TOOL_INPUTProgramFilesTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
398/398 tools missing one or more hints — mcp_start (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); mcp_stop (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); mcp_restart (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +395 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Destructive tools are labelled
3 tools perform destructive updates without destructiveHint — snapshot_delete deletes at line 506 (os.remove(path)); snapshot_compare_live deletes at line 617 (os.remove(path_live)); stamp_delete deletes at line 404 (os.remove(fp))
Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.
Descriptions match behaviour
2 tools describe read intent but their handlers mutate — device_catalog_scan (line 662: with open(out_path, "w", encoding="utf-8") as f:); text_export_manifest (line 69: with open(out_path, "w", newline="", encoding="utf-8") as f:)
Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.
Tool inputs are validated
395/397 tool handlers declare input schemas (99%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tool test coverage
214/398 tools referenced in tests (54%)
Write tests that reference each tool by name so every tool has at least one test.
Tool description accuracy
device_catalog_scan: description implies read-only but handler writes/deletes/executes; text_export_manifest: description implies read-only but handler writes/deletes/executes
Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/unpolished-tagusriver58/uefn-toolbelt)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check