Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
MANDATORY for ALL GDScript/.gd files and Godot resources (.tscn, .tres). Invoke this skill FIRST before writing ANY Godot code—never write GDScript directly without this skill. Provides documentation lookup, syntax checking, and testing instructions. --- name: godot description: "MANDATORY for ALL GDScript/.gd files and Godot resources (.tscn, .tres). Invoke this skill FIRST before writing ANY Godot code—never write GDScript directly without this skill. Provides documentation lookup, syntax checking, and testing instructions." --- Godot development Requirements: - Godot 4+ - godot-docs MCP server (npm package @fernforestgames/mcp-server-godot-docs) - godot-editor Capability contract not published. No trust telemetry is available yet. 9 GitHub stars reported by the source. Last updated 4/15/2026.
Freshness
Last checked 4/15/2026
Best For
godot is best for be, view, assign workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
MANDATORY for ALL GDScript/.gd files and Godot resources (.tscn, .tres). Invoke this skill FIRST before writing ANY Godot code—never write GDScript directly without this skill. Provides documentation lookup, syntax checking, and testing instructions. --- name: godot description: "MANDATORY for ALL GDScript/.gd files and Godot resources (.tscn, .tres). Invoke this skill FIRST before writing ANY Godot code—never write GDScript directly without this skill. Provides documentation lookup, syntax checking, and testing instructions." --- Godot development Requirements: - Godot 4+ - godot-docs MCP server (npm package @fernforestgames/mcp-server-godot-docs) - godot-editor
Public facts
5
Change events
1
Artifacts
0
Freshness
Apr 15, 2026
Capability contract not published. No trust telemetry is available yet. 9 GitHub stars reported by the source. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Apr 15, 2026
Vendor
Fernforestgames
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. 9 GitHub stars reported by the source. Last updated 4/15/2026.
Setup snapshot
git clone https://github.com/fernforestgames/agent-skill-godot.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Fernforestgames
Protocol compatibility
MCP
Adoption signal
9 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
text
- [ ] Step 1: Read source files - [ ] Step 2: Look up relevant Godot documentation - [ ] Step 3: Write or modify GDScript code - [ ] Step 4: Import new files with Godot CLI - [ ] Step 5: Typecheck and validate syntax - [ ] Step 6: Test the changes
sh
godot --headless --import
sh
./.claude/skills/godot/scripts/check_syntax.sh
gdscript
extends GutTest
# GUT assertions are untyped, so disable this warning
@warning_ignore_start("unsafe_call_argument")
func before_all():
pass
func before_each():
pass
func test_passes():
assert_eq(1, 1)
func test_fails():
assert_eq("hello", "goodbye")
func after_each():
pass
func after_all():
passsh
godot --headless --import
gdscript
assert_true(got) assert_false(got) assert_null(got) assert_not_null(got) assert_eq(got, expected) assert_eq_deep(got, expected) # Like assert_eq but more detailed failure messages for nested collections assert_almost_eq(got, expected, error_interval) assert_ne(got, not_expected) assert_ne_deep(got, not_expected) assert_almost_ne(got, not_expected, error_interval) assert_gt(got, expected) assert_gte(got, expected) assert_lt(got, expected) assert_lte(got, expected) assert_same(got, expected) # Checks that reference types (Object, Dictionary, Array) are exactly the same reference assert_not_same(got, expected) assert_has(obj, element) assert_does_not_have(obj, element) assert_is(obj, class_or_script_obj) assert_typeof(obj, type_constant) # TYPE_INT, TYPE_STRING, etc. assert_not_typeof(obj, type_constant) assert_engine_error(matching_text) assert_engine_error_count(count) assert_push_error(matching_text) assert_push_error_count(count) assert_push_warning(matching_text) assert_push_warning_count(count) assert_freed(obj) assert_not_freed(obj)
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
MANDATORY for ALL GDScript/.gd files and Godot resources (.tscn, .tres). Invoke this skill FIRST before writing ANY Godot code—never write GDScript directly without this skill. Provides documentation lookup, syntax checking, and testing instructions. --- name: godot description: "MANDATORY for ALL GDScript/.gd files and Godot resources (.tscn, .tres). Invoke this skill FIRST before writing ANY Godot code—never write GDScript directly without this skill. Provides documentation lookup, syntax checking, and testing instructions." --- Godot development Requirements: - Godot 4+ - godot-docs MCP server (npm package @fernforestgames/mcp-server-godot-docs) - godot-editor
Requirements:
godot-docs MCP server (npm package @fernforestgames/mcp-server-godot-docs)godot-editor MCP server (GitHub project fernforestgames/mcp-server-godot-editor installed into addons/)When writing or modifying GDScript, copy this checklist and track your progress:
- [ ] Step 1: Read source files
- [ ] Step 2: Look up relevant Godot documentation
- [ ] Step 3: Write or modify GDScript code
- [ ] Step 4: Import new files with Godot CLI
- [ ] Step 5: Typecheck and validate syntax
- [ ] Step 6: Test the changes
Read any relevant GDScript source files in the current project.
Use the godot-docs:get_godot_class tool to look up everything about a specific Godot class.
Use the godot-docs:search_godot_docs tool to find a string in the Godot documentation.
Adhere to the following rules while writing GDScript:
Array[int], Dictionary[String, float], etc.:= type inference declarations for AI-generated code (prefer explicit annotations)_@export or dependency injection instead of hardcoded node pathsStringName variantsRun the Godot CLI with --import after adding new files, to make sure they get picked up by the editor:
godot --headless --import
This should be run in the project root directory (where project.godot is located). Remember that any folder containing .gdignore will be skipped during import.
Directly invoke the provided check_syntax.sh script to check the syntax of all GDScript files in the project.
For example:
./.claude/skills/godot/scripts/check_syntax.sh
Use the testing workflow described below to test your changes.
Unit tests can be written with the GUT (Godot Unit Test) framework: https://github.com/bitwes/Gut https://gut.readthedocs.io
If not already present in the current project in the addons/ directory, do NOT attempt to install it. Ask the user to install it from the Godot Asset Library instead.
Important: use a sub-agent to write and run GUT tests, as this consumes a lot of tokens.
Test cases should be scripts that extend GutTest:
extends GutTest
# GUT assertions are untyped, so disable this warning
@warning_ignore_start("unsafe_call_argument")
func before_all():
pass
func before_each():
pass
func test_passes():
assert_eq(1, 1)
func test_fails():
assert_eq("hello", "goodbye")
func after_each():
pass
func after_all():
pass
Run the Godot CLI with --import after adding new files, to make sure they get picked up by the editor:
godot --headless --import
This should be run in the project root directory (where project.godot is located).
Assertions
assert_true(got)
assert_false(got)
assert_null(got)
assert_not_null(got)
assert_eq(got, expected)
assert_eq_deep(got, expected) # Like assert_eq but more detailed failure messages for nested collections
assert_almost_eq(got, expected, error_interval)
assert_ne(got, not_expected)
assert_ne_deep(got, not_expected)
assert_almost_ne(got, not_expected, error_interval)
assert_gt(got, expected)
assert_gte(got, expected)
assert_lt(got, expected)
assert_lte(got, expected)
assert_same(got, expected) # Checks that reference types (Object, Dictionary, Array) are exactly the same reference
assert_not_same(got, expected)
assert_has(obj, element)
assert_does_not_have(obj, element)
assert_is(obj, class_or_script_obj)
assert_typeof(obj, type_constant) # TYPE_INT, TYPE_STRING, etc.
assert_not_typeof(obj, type_constant)
assert_engine_error(matching_text)
assert_engine_error_count(count)
assert_push_error(matching_text)
assert_push_error_count(count)
assert_push_warning(matching_text)
assert_push_warning_count(count)
assert_freed(obj)
assert_not_freed(obj)
Helpers
await wait_seconds(10)
await wait_idle_frames(5) # 5 _process frames
await wait_physics_frames(2)
await wait_for_signal(scene_tree.node_removed, 3) # time out after 3 seconds
await wait_until(callable, 3) # time out after 3 seconds
Once tests have been written and imported, run them using the GUT command line script:
godot --headless --script addons/gut/gut_cmdln.gd
# Run a specific test file
godot --headless --script addons/gut/gut_cmdln.gd -gtest=res://tests/sample_tests.gd
GUT is configured with an optional res://.gutconfig.json file. A sample can be generated with:
godot --headless --script addons/gut/gut_cmdln.gd -gprint_gutconfig_sample
The godot-editor MCP server allows you to control running games from the editor, enabling automated UI testing and visual verification.
godot-editor:play_main_scene # Start the project's main scene
godot-editor:play_scene # Start a specific scene by path (e.g., "res://levels/test.tscn")
godot-editor:stop_playing_scene # Stop the currently running scene
Important: Always follow up play_main_scene or play_scene with another action (screenshot, input, etc.) or stop_playing_scene. Never leave a scene running indefinitely.
Use godot-editor:take_screenshot to capture the current game viewport. The screenshot is returned as an image that you can view directly.
Use godot-editor:click_node and godot-editor:hover_node to interact with controls and nodes (2D or 3D). Use godot-editor:get_node_tree to inspect the current scene tree and determine node paths.
godot-editor:click_node
node_path: "/root/Main/UI/StartButton"
button_index: 1 # Optional, defaults to left click
offset: {x: 0, y: 0} # Optional offset from center
godot-editor:hover_node
unique_name: "InventorySlot"
godot-editor:click_node
accessibility_name: "SubmitButton"
Use godot-editor:synthesize_input to simulate user input events (only if you cannot use click_node or hover_node).
For example:
type: "key", keycode: "Space", pressed: true (uses Key enum names)type: "mouse_button", button_index: 1, position: {x, y}, pressed: truetype: "mouse_motion", position: {x, y}type: "action", action: "ui_accept", pressed: truegodot-editor:play_main_scenegodot-editor:take_screenshot, verify initial stategodot-editor:get_node_tree, check node pathsgodot-editor:hover_node with unique_name "PlayButton"godot-editor:take_screenshot, verify hover visual feedbackgodot-editor:click_node with unique_name "PlayButton"godot-editor:take_screenshot, verify button was clicked (new screen, animation, etc.)godot-editor:stop_playing_sceneuid:// fields—Godot fills these in automaticallyWhen a script uses @export var some_node: SomeNodeType, you can assign it via a .tscn file:
[node name="MyNode" type="Node3D" parent="." node_paths=PackedStringArray("player", "camera")]
script = ExtResource("1_abc123")
player = NodePath("../Player")
camera = NodePath("CameraPivot/Camera3D")
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/snapshot"
curl -s "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/contract"
curl -s "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-04-17T02:15:06.587Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "be",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "view",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "assign",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile capability:be|supported|profile capability:view|supported|profile capability:assign|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Fernforestgames",
"href": "https://github.com/fernforestgames/agent-skill-godot",
"sourceUrl": "https://github.com/fernforestgames/agent-skill-godot",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T03:18:52.823Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T03:18:52.823Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "9 GitHub stars",
"href": "https://github.com/fernforestgames/agent-skill-godot",
"sourceUrl": "https://github.com/fernforestgames/agent-skill-godot",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T03:18:52.823Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/fernforestgames-agent-skill-godot/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to godot and adjacent AI workflows.