@incanta/angelscript-mcp
v1.1.0
Published
MCP server exposing Unreal AngelScript symbols and diagnostics from a project's .vscode/ cache.
Downloads
274
Readme
@incanta/angelscript-mcp
A standalone MCP server that exposes Unreal AngelScript symbols and diagnostics to AI coding agents (Claude Code, Claude Desktop, etc.). It reads its data from a per-project language cache produced by the Unreal AngelScript VS Code extension.
How it works
The server reads from one of two files in your project's .vscode/ directory, in priority order:
.vscode/as-language.live.json— written continuously by the VS Code extension's language server while Unreal Editor is connected. Gitignored..vscode/as-language.json— a committed offline snapshot used byas-checkand as a fallback when no editor is connected.
Both files share the same JSON schema, so the server treats them identically.
Claude Code setup
In your project's .mcp.json (or under mcpServers in ~/.claude.json):
{
"mcpServers": {
"angelscript": {
"command": "npx",
"args": ["-y", "@incanta/angelscript-mcp"]
}
}
}The server defaults to reading <cwd>/.vscode/as-language.live.json and <cwd>/.vscode/as-language.json, so it works without extra arguments when Claude Code is launched from the project root.
To point it at a different workspace:
{
"mcpServers": {
"angelscript": {
"command": "npx",
"args": ["-y", "@incanta/angelscript-mcp", "--workspace", "/abs/path/to/project"]
}
}
}You can also pass one or more explicit cache files with --cache <path> (repeatable). Explicit paths take precedence over --workspace.
Available tools
Read-only tools backed by the cached symbol database:
angelscript_search_symbols— substring search over types, methods, and propertiesangelscript_get_type_info— full type definition with members and docsangelscript_get_type_methods— methods on a typeangelscript_get_type_properties— properties on a typeangelscript_get_function_signature— exact signature + overloadsangelscript_get_type_hierarchy— superclass chain + direct subclassesangelscript_list_types— discover types by categoryangelscript_get_diagnostics— current AngelScript compiler errors/warnings
Live-editor tool (talks to the running Unreal editor):
unreal_execute_python— execute Python in the running Unreal editor over Python Remote Execution and return its output. Use for editor automation: creating/validating assets, querying the editor, running editor utilities.modeselectsexec(multi-statement script, default),statement(single statement), oreval(single expression whose value is returned).
Live-editor Python execution
unreal_execute_python spawns a small Python client (python/ue_remote_client.py, shipped with
the package) that uses Unreal's remote_execution.py to discover the editor via UDP multicast and
send code over a TCP command channel. It requires:
PythonScriptPluginenabled in the.uproject.[/Script/PythonScriptPlugin.PythonScriptPluginSettings]inDefaultEngine.iniwithbRemoteExecution=True,RemoteExecutionMulticastGroupEndpoint=239.0.0.1:6766, andRemoteExecutionMulticastBindAddress=127.0.0.1.- The editor running. On a multi-NIC machine the client and editor multicast bind must both be
127.0.0.1, or discovery silently fails.
Configure it via environment variables (set them in the env block of your .mcp.json, since the
MCP server is launched by the agent rather than the VS Code extension). All have fallbacks:
| Variable | Purpose | Default |
| --- | --- | --- |
| UE_REMOTE_EXEC_DIR | Directory containing Unreal's remote_execution.py (the engine's .../Plugins/Experimental/PythonScriptPlugin/Content/Python). | Falls back to a path baked into ue_remote_client.py. |
| UE_PYTHON | Python interpreter to invoke. The UE-bundled Engine/Binaries/ThirdParty/Python3/Win64/python.exe also works. | python |
| UE_REMOTE_BIND | Multicast bind address; must match the editor's RemoteExecutionMulticastBindAddress. | 127.0.0.1 |
{
"mcpServers": {
"angelscript": {
"command": "npx",
"args": ["-y", "@incanta/angelscript-mcp", "--workspace", "/abs/path/to/project"],
"env": {
"UE_REMOTE_EXEC_DIR": "E:/path/to/Engine/Plugins/Experimental/PythonScriptPlugin/Content/Python"
}
}
}
}Keeping the client in sync:
python/ue_remote_client.pyis a copy of the project'sGames/UnrealPrototypes/Scripts/ue_python.py. If you change one, mirror the change to the other so they don't drift.
