13 Commits

Author SHA1 Message Date
77c972977a Fix search_source: pass env vars via mcp.json interpolation, search Plugins/, cap at 40 total lines
- .mcp.json: pass UE_ENGINE_ROOT and UE_DOCS_PATH via ${VAR} interpolation so the
  MCP server subprocess inherits them without hardcoding paths
- search_source: search both Engine/Source/ and Engine/Plugins/ (path_hint applied
  under both); switch from -m 40 (per-file cap) to streaming Popen with a true
  40-line total cap; fix UE_ENGINE_ROOT to point at Engine/ not the repo root
- Update README and CLAUDE.md to reflect the above

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 18:11:46 -05:00
a51102c1eb Cache type index with mtime-based invalidation
_load_type_index() now caches the parsed dict at module level and only
re-reads type-index.txt when its mtime changes. This avoids a file read
and parse on every get_class_overview / get_member call. The cache is
automatically invalidated if the docs are regenerated.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 10:40:19 -05:00
3d075cea20 Skip empty doc files and prune dead type-index entries
- render_header() returns "" when a header has no documented content
  (no /** */ comments on any class, property, function, enum, or delegate)
- generate.py skips writing those files and tracks which were written
- type-index.txt is filtered to only include types from written files,
  preventing dead entries that would cause get_class_overview to fail
- Summary line now reports how many files were skipped

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 10:38:29 -05:00
0bb96dca54 Exclude Intermediate folders and .generated.h files from doc generation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 08:39:54 -05:00
de0be287aa Rename project to mcp-ue
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 08:29:42 -05:00
c40e05f090 Move ue_mcp_server.py back to repo root
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 08:27:32 -05:00
217f1f99dd Move scripts to docgen/, remove possess_flow.png
- docgen/: generate.py, ue_parser.py, ue_markdown.py, ue_mcp_server.py
- .mcp.json: update server path to docgen/ue_mcp_server.py
- Update CLAUDE.md and README paths accordingly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 08:26:47 -05:00
5c1b5bf3b8 Remove ue-api plugin/skill from .claude directory
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 08:24:09 -05:00
5cda0cc6c6 Update README: MCP server, multi-directory input, remove samples section
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 08:22:14 -05:00
d44fabb4e4 Update CLAUDE.md to reflect MCP server and multi-directory input
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 08:20:55 -05:00
241b246e9d Replace ue-api skill with MCP server, support multi-directory input
- Add ue_mcp_server.py: 5 MCP tools (search_types, get_class_overview,
  get_member, get_file, search_source) for item-granularity doc lookups
- Add .mcp.json: registers server with Claude Code via stdio transport
- Remove .claude/skills/ue-api/SKILL.md: superseded by MCP tools
- Update generate.py: accept multiple input dirs/files, last arg is output;
  track per-file base path for correct relative output paths
- Remove samples/: headers deleted (corpus regenerated externally)
- Add possess_flow.png: sequence diagram of UE Possess flow with server/client split

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 08:20:04 -05:00
904277e9e5 Update README and CLAUDE.md
README: replace placeholder with full project overview — usage,
skill setup (UE_DOCS_PATH/UE_ENGINE_ROOT env vars), sample files,
output format reference.

CLAUDE.md: drop "in development" (project is complete), add
.claude/skills/ue-api/ to the current state file list.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 06:57:16 -05:00
93ca33c36a Add UnrealDocGenerator tool and UE API skill
- ue_parser.py: position-based UE C++ header parser
- ue_markdown.py: compact agent-optimised Markdown renderer
- generate.py: two-pass CLI (parse-all → type index → render-all)
- samples/: representative UE headers (GeomUtils, AIController, GameplayTagsManager)
- .claude/skills/ue-api/: Claude Code skill for querying UE docs + source headers
- CLAUDE.md: architecture notes, usage, critical gotchas

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 06:55:05 -05:00