npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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:

  1. .vscode/as-language.live.json — written continuously by the VS Code extension's language server while Unreal Editor is connected. Gitignored.
  2. .vscode/as-language.json — a committed offline snapshot used by as-check and 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 properties
  • angelscript_get_type_info — full type definition with members and docs
  • angelscript_get_type_methods — methods on a type
  • angelscript_get_type_properties — properties on a type
  • angelscript_get_function_signature — exact signature + overloads
  • angelscript_get_type_hierarchy — superclass chain + direct subclasses
  • angelscript_list_types — discover types by category
  • angelscript_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. mode selects exec (multi-statement script, default), statement (single statement), or eval (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:

  • PythonScriptPlugin enabled in the .uproject.
  • [/Script/PythonScriptPlugin.PythonScriptPluginSettings] in DefaultEngine.ini with bRemoteExecution=True, RemoteExecutionMulticastGroupEndpoint=239.0.0.1:6766, and RemoteExecutionMulticastBindAddress=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.py is a copy of the project's Games/UnrealPrototypes/Scripts/ue_python.py. If you change one, mirror the change to the other so they don't drift.