Skip to content

feat(m3): Epic MCP scaffold + live probe -> retirement matrix (52 toolsets / 830 tools) - #14

Merged
JosephOIbrahim merged 2 commits into
masterfrom
epic-mcp-probe
Jul 2, 2026
Merged

feat(m3): Epic MCP scaffold + live probe -> retirement matrix (52 toolsets / 830 tools)#14
JosephOIbrahim merged 2 commits into
masterfrom
epic-mcp-probe

Conversation

@JosephOIbrahim

Copy link
Copy Markdown
Owner

What

The M3 milestone: Epic's official Unreal MCP (UE 5.8) live-probed and turned into the retirement contract-of-record.

  • docs/EPIC_MCP_MATRIX.md — dispositions for all 58 of our tools against Epic's real surface: 36 RETIRE (behind the M4 legacy flag), 17 KEEP, 5 KEEP-PARTIAL. Every claim cites exact probe tool names; every absence claim (no console exec, no undo, no lighting orchestration, no cloner, no continuous capture, no arbitrary Python) verified by whole-capture search.
  • docs/epic_mcp/ — raw captures: full AllToolsets surface (52 toolsets / 830 tools with schemas), blank-project default (AgentSkillToolset only), and the execute_tool_script sandbox record (module allowlist has no unreal — our ue_execute_python stays unique).
  • scripts/probe_epic_mcp.py — rerun per engine version; the diff is the API-drift report.
  • .mcp.json — two-server config (our stdio bridge + unreal-epic http :8000).
  • .uprojectModelContextProtocol + AllToolsets as Optional: true (no-op on 5.7, self-enables on 5.8).

Key findings

Epic's MCP plugin ships zero tools — the surface lives in Toolsets/* plugins. Default mode is Tool Search (3 meta-tools; concrete tools via call_tool dispatch; bEnableToolSearch=false flips them first-class). Tool calls run serially on the game thread. EULA §6(e) governs LLM data flow.

Verification

Adversarial audit: all 26 spot-checked citations exist verbatim in the capture; all 4 negative claims independently reproduced; headline arithmetic recounted row-by-row.

🤖 Generated with Claude Code

Joseph Ibrahim and others added 2 commits July 2, 2026 10:52
- docs/EPIC_MCP_MATRIX.md: the retirement contract-of-record. Live-probed
  Epic official Unreal MCP (UE 5.8.0, AllToolsets): 52 toolsets / 830
  tools, full schemas captured. Verdicts for all 58 of our tools:
  36 RETIRE (behind legacy flag), 17 KEEP, 5 KEEP-PARTIAL — every claim
  cites exact probe tool names; absences verified by whole-probe search.
  Key facts: Tool Search Mode is default (tools/list = 3 meta-tools),
  execute_tool_script is a sandboxed batcher (no unreal import — our
  ue_execute_python stays unique), no console exec / undo / lighting /
  cloner / continuous-perception anywhere in the surface.
- docs/epic_mcp/: raw probe captures (AllToolsets + blank-default) and
  the Programmatic exec-sandbox environment record.
- scripts/probe_epic_mcp.py: repeatable prober (rerun per engine version;
  the diff is the drift report).
- .mcp.json: two-server config — our stdio bridge + Epic http :8000.
- .uproject: ModelContextProtocol + AllToolsets as Optional:true
  (no-ops on 5.7, self-enables when the project opens in 5.8).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- ue_query_scene row: find_actors returns refs only; location-bearing
  results cost O(N) transform follow-ups (reopen condition added)
- snap-to-ground negative claim scoped: spawn-time snap_to_ground args
  exist; no standalone tool for existing actors, no normal output
- legend: add PrimitiveTools prefix

Verify wave confirmed: all 26 spot-checked Epic citations exist verbatim,
all 4 negative claims independently reproduced, headline arithmetic exact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@JosephOIbrahim, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 59 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1d5f32d7-b2c8-48f5-bdaf-1af01b39f383

📥 Commits

Reviewing files that changed from the base of the PR and between 35268c3 and a18ecab.

📒 Files selected for processing (7)
  • .mcp.json
  • UnrealEngine_Bridge.uproject
  • docs/EPIC_MCP_MATRIX.md
  • docs/epic_mcp/probe_raw_5.8.0_alltoolsets.json
  • docs/epic_mcp/probe_raw_5.8.0_default.json
  • docs/epic_mcp/programmatic_exec_environment.json
  • scripts/probe_epic_mcp.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch epic-mcp-probe

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@JosephOIbrahim
JosephOIbrahim merged commit e96902e into master Jul 2, 2026
3 checks passed
@JosephOIbrahim
JosephOIbrahim deleted the epic-mcp-probe branch July 2, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant