Skip to content

EmbarkStudios/UnrealClaudeFileHelper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

122 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

embark-claude-index

Fast code search for Unreal Engine projects in Claude Code.

What it does

  • 11 MCP tools for searching types, members, files, assets, and code
  • Indexes AngelScript, C++, Blueprints, and config files
  • Sub-20ms queries across 100K+ types and 600K+ members
  • Full-text code search via Zoekt (optional)
  • Offline asset search across 400K+ content assets

Quick Install

1. Add the marketplace and install

In Claude Code, run:

/plugin marketplace add EmbarkStudios/UnrealClaudeFileHelper
/plugin install embark-claude-index@embark-claude-index

Or use the interactive plugin manager:

/plugin

2. Restart Claude Code

Restart to load the plugin and MCP tools.

3. Run setup

After restart, run the setup skill:

/embark-claude-index:setup

This will guide you through:

  • Installing dependencies
  • Detecting your .uproject file and project structure
  • Configuring engine root and source paths
  • Generating config.json
  • Starting the indexing service and file watcher

Prerequisites

  • Node.js 20.18+ (22+ recommended)
  • WSL2 with Ubuntu (Windows) — the indexing service runs on Linux for SQLite performance
  • Go 1.20+ (optional) — for Zoekt full-text search

Architecture

┌─────────────────┐     POST /internal/ingest     ┌──────────────────┐
│  File Watcher    │ ──────────────────────────── │  Indexing Service │
│  (Windows)       │                               │  (WSL / Linux)   │
│  chokidar watch  │                               │  Express + SQLite │
└─────────────────┘                               │  In-memory index  │
                                                   │  Zoekt (optional) │
                                                   └────────┬─────────┘
                                                            │ HTTP API
                                                   ┌────────┴─────────┐
                                                   │   MCP Bridge     │
                                                   │  (stdio ↔ HTTP)  │
                                                   └──────────────────┘
                                                            │
                                                   Claude Code reads
                                                   tools via MCP
  • File Watcher (src/watcher/watcher-client.js): Watches project directories for file changes, parses source files, and sends them to the service via HTTP.
  • Indexing Service (src/service/index.js): Stores data in SQLite, loads everything into memory for fast queries. Optionally integrates with Zoekt for full-text search.
  • MCP Bridge (src/bridge/mcp-bridge.js): Translates MCP tool calls from Claude Code into HTTP API calls against the service.
  • Dashboard (http://localhost:3847): Web UI showing system health overview, watcher status with start/restart controls, query analytics, and MCP tool usage.

MCP Tools

Tool Description
unreal_find_type Find classes, structs, enums, delegates by name
unreal_find_children Find all classes inheriting from a parent
unreal_find_member Find functions, properties, enum values by name
unreal_explain_type Get comprehensive type info (definition + members + children)
unreal_find_file Find source files by filename
unreal_find_asset Search 400K+ Unreal assets by name
unreal_browse_module List types and files in a module/directory
unreal_list_modules Discover code organization and module tree
unreal_grep Full-text search across indexed source code
unreal_refresh_index Rebuild the index on demand
unreal_batch Execute multiple queries in a single call

Configuration

Configuration lives in config.json (generated by the setup wizard). See config.example.json for the full schema.

Key sections:

{
  "projects": [
    {
      "name": "MyGame",
      "paths": ["C:/Path/To/Project/Script"],
      "language": "angelscript",
      "extensions": [".as"]
    }
  ],
  "service": {
    "port": 3847,
    "host": "127.0.0.1"
  },
  "zoekt": {
    "enabled": true,
    "webPort": 6070
  }
}

Supported project languages: angelscript, cpp, content (assets), config (ini files).

Troubleshooting

Tools say "Unreal Index Service is not running"

  • Start the service: systemctl --user start unreal-index (or ./start-service.sh --bg from the repo)
  • Check status: systemctl --user status unreal-index
  • Check health: curl http://127.0.0.1:3847/health
  • View logs: journalctl --user -u unreal-index -f

No results returned

  • Check that the file watcher is running and has completed initial indexing
  • Verify config.json paths point to your actual project directories
  • Try removing the project filter — it may not match your project names

Node.js version errors

  • The service requires Node.js 20.18+. Check with node --version
  • On WSL, you may need to install a newer Node.js separately

WSL networking issues

  • Ensure .wslconfig has networkingMode=mirrored for localhost access
  • The service on WSL port 3847 should be accessible from Windows via localhost:3847

Setup wizard doesn't detect my project

  • Run node src/setup.js directly and provide paths manually
  • Or copy config.example.json to config.json and edit paths by hand

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5