{"name":"io.github.beremaran/godot-agent-loop","slug":"beremaran-godot-agent-loop","title":"Godot Agent Loop","description":"MCP automation loop with 167 tested tools for Godot 4","url":"https://mcp.market/server/beremaran-godot-agent-loop","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":37,"stars":6,"forks":2,"downloads_week":122,"last_push_at":"2026-09-15T06:24:44.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/beremaran/godot-agent-loop","website":"https://github.com/beremaran/godot-agent-loop","version":"1.0.1","remotes":[],"packages":[{"registryType":"npm","identifier":"@beremaran/godot-agent-loop","version":"1.0.1","transport":{"type":"stdio"}}],"tools":[{"name":"add_node","description":"Add a node to an existing scene","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_project_integrity","description":"Analyze dependencies and integrity or preview a safe resource rename","write_action":false,"price_micros":0,"input_schema":null},{"name":"attach_script","description":"Attach a GDScript to a scene node (headless)","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_csharp_script","description":"Create a C# script file in a Godot .NET project","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_directory","description":"Create a directory inside a Godot project","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_project","description":"Create a new Godot project from scratch","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_resource","description":"Create a .tres resource file (headless)","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_scene","description":"Create a new Godot scene file","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_file","description":"Delete a file from a Godot project","write_action":true,"price_micros":0,"input_schema":null},{"name":"editor_control","description":"Inspect and edit open scenes through an authenticated editor bridge","write_action":false,"price_micros":0,"input_schema":null},{"name":"export_mesh_library","description":"Export a scene as a MeshLibrary resource","write_action":false,"price_micros":0,"input_schema":null},{"name":"export_project","description":"Export a Godot project using a preset","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_add_collision","description":"Add a collision shape to a physics body node","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_audio_bus","description":"Set volume, mute, or solo on an audio bus","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_audio_play","description":"Play, stop, or pause an AudioStreamPlayer node","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_bone_pose","description":"Get or set bone poses on a Skeleton3D node","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_call_method","description":"Call a method on any node in the running game with optional arguments","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_change_scene","description":"Switch to a different scene file in the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_click","description":"Click at a position in the running Godot game window","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_connect_signal","description":"Connect a signal from one node to a method on another node in the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_create_animation","description":"Create an animation with tracks and keyframes","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_create_joint","description":"Create a physics joint between two bodies","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_create_timer","description":"Create a Timer node with configuration","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_debug_draw","description":"Draw debug lines, spheres, or boxes in 3D","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_disconnect_signal","description":"Disconnect a signal connection in the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_emit_signal","description":"Emit a signal on a node in the running game, optionally with arguments","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_environment","description":"Get or set environment and post-processing settings","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_eval","description":"Execute GDScript in the running game. Use \"return\" for values.","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_find_nodes_by_class","description":"Find all nodes of a specific class type in the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_gamepad","description":"Send gamepad button or axis input event","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_get_audio","description":"Get audio bus layout and playing streams","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_get_camera","description":"Get active camera position, rotation, and size","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_get_errors","description":"Get new push_error/push_warning messages since last call","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_get_logs","description":"Get new print output from the running game since last call","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_get_node_info","description":"Get node info: class, properties, signals, methods, children","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_get_nodes_in_group","description":"Get all nodes belonging to a specific group in the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_get_property","description":"Get a property value from any node in the running game by its path","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_get_scene_tree","description":"Get scene tree structure of the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_get_ui","description":"Get visible UI elements from the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_http_request","description":"HTTP GET/POST/PUT/DELETE with headers and body","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_instantiate_scene","description":"Load a PackedScene and add it as a child of a node in the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_key_hold","description":"Hold a key down without auto-releasing","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_key_press","description":"Send a key press or input action to the running game","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_key_release","description":"Release a previously held key","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_manage_group","description":"Add or remove a node from a group, or list groups","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_mouse_drag","description":"Drag mouse between two points over N frames","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_mouse_move","description":"Move the mouse in the running Godot game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_multiplayer","description":"ENet multiplayer create server/client/disconnect","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_navigate_path","description":"Query a navigation path between two points","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_pause","description":"Pause or unpause the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_performance","description":"Sample live performance metrics or run a bounded profiler session","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_physics_body","description":"Configure physics body properties (mass, velocity, etc.)","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_play_animation","description":"Control an AnimationPlayer node: play, stop, pause, or list animations","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_raycast","description":"Cast a ray and return collision results","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_remove_node","description":"Remove and free a node from the running game's scene tree","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_reparent_node","description":"Move a node to a new parent in the running game's scene tree","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_screenshot","description":"Screenshot the running game (returns base64 PNG)","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_scroll","description":"Send mouse scroll wheel event at position","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_serialize_state","description":"Save or load node tree state as JSON","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_set_camera","description":"Move or rotate the active camera","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_set_particles","description":"Configure GPUParticles2D/3D node properties","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_set_property","description":"Set a property on a node in the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_set_shader_param","description":"Set a shader parameter on a node's material","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_spawn_node","description":"Create a new node of any type at runtime","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_tilemap","description":"Get or set cells in a TileMapLayer node","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_tween_property","description":"Tween a node property in the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_ui_theme","description":"Apply theme overrides to a Control node","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_viewport","description":"Create or configure a SubViewport node","write_action":true,"price_micros":0,"input_schema":null},{"name":"game_visual_regression","description":"Capture or compare rendered PNGs with tolerances, masks, and diff artifacts","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_wait","description":"Wait N frames in the running game","write_action":false,"price_micros":0,"input_schema":null},{"name":"game_websocket","description":"WebSocket client connect/disconnect/send messages","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_debug_output","description":"Get the current debug output and errors","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_godot_version","description":"Get the installed Godot version","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project_info","description":"Retrieve metadata about a Godot project","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_uid","description":"Get the UID for a specific file in a Godot project (for Godot 4.4+)","write_action":false,"price_micros":0,"input_schema":null},{"name":"godot_tools","description":"Search, inspect, or call tools outside the default core surface","write_action":false,"price_micros":0,"input_schema":null},{"name":"launch_editor","description":"Launch Godot editor for a specific project","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_project_files","description":"List project files, optionally filtered by extension","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"List Godot projects in a directory","write_action":false,"price_micros":0,"input_schema":null},{"name":"load_sprite","description":"Load a sprite into a Sprite2D node","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_addon","description":"Install and manage hash-pinned local EditorPlugins with reload validation","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_autoloads","description":"Add, remove, or list autoloads in a Godot project","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_export_presets","description":"Create or modify export preset configuration","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_import_pipeline","description":"Inspect, change, reimport, and trace imported Godot source assets","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_input_map","description":"Add, remove, or list input actions and bindings","write_action":false,"price_micros":0,"input_schema":null},{"name":"modify_project_settings","description":"Modify a project.godot setting","write_action":false,"price_micros":0,"input_schema":null},{"name":"modify_scene_node","description":"Modify node properties in a scene file (headless)","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_file","description":"Read a text file from a Godot project","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_project_settings","description":"Read project.godot as structured JSON","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_scene","description":"Read scene file as JSON node tree (headless)","write_action":false,"price_micros":0,"input_schema":null},{"name":"remove_scene_node","description":"Remove a node from a scene file (headless)","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_project","description":"Run the Godot project and capture output","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_project_tests","description":"Discover or run native, GUT, and GdUnit4 project tests with structured results","write_action":true,"price_micros":0,"input_schema":null},{"name":"save_scene","description":"Save changes to a scene file","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_project","description":"Stop the currently running Godot project","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_project_uids","description":"Update UID references by resaving resources (4.4+)","write_action":true,"price_micros":0,"input_schema":null},{"name":"verify_dotnet_project","description":"Inspect, restore, build, and run a project with the matching Godot.NET.Sdk","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_export_readiness","description":"Validate presets/templates, export, inspect artifacts, and smoke-run builds","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_project","description":"Run bounded assertions and capture evidence with deterministic teardown","write_action":true,"price_micros":0,"input_schema":null},{"name":"write_file","description":"Create or overwrite a text file in a Godot project","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-25T21:45:16.421Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T21:45:16.351Z","components":{"code":{"score":25,"max":25,"notes":["40 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 11 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@beremaran/godot-agent-loop","version":"1.0.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-07-15T08:07:24.032Z","repositoryUrl":"git+https://github.com/beremaran/godot-agent-loop.git","weeklyDownloads":122}],"repo":{"found":true,"owner":"beremaran","repo":"godot-agent-loop","archived":false,"pushedAt":"2026-09-15T06:24:44Z","stars":6,"forks":2,"openIssues":30,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/9135102?v=4","ownerCreatedAt":"2014-10-10T13:19:27Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/9135102?v=4&s=128","source":"github"},"presence":{"stars":6,"forks":2,"downloadsWeek":122,"license":"MIT","lastPushAt":"2026-09-15T06:24:44.000Z","score":37}}}},"grade_history":[],"reviews":[]}