fix: point mcp.json at the real MCP endpoint + replace stale tool docs

- mcp.json: bare https://mcp.spaghetti.gg ->
  https://mcp.spaghetti.gg/api/mcp/agentic-engine/mcp (the host root does
  not serve MCP; Caddy proxies the whole host without a path rewrite)
- SKILL.md/README: replace tools that no longer exist (analyze_crash,
  audit_assets, search_kb) with the shipped set (analyze_logs,
  tidy_assets, make_tool, topup, the five research tools); document
  credit costs and the approval flow
- drop stale claims: GoTrue, spaghetti.gg/dashboard, tm_/prj_ id
  prefixes, '.spaghetti auto-created on first tool call' (unimplemented)
- plugin.json: 0.1.0 -> 0.1.1
This commit is contained in:
2026-09-06 05:31:59 +03:00
parent a7d72e6eaa
commit 6795b0e553
4 changed files with 77 additions and 70 deletions
+14 -14
View File
@@ -1,15 +1,15 @@
# Unreal Workbench — Agent Plugin
Agent Plugins 1.0.0 distribution package for [Spaghetti Unreal AI Workbench](https://spaghetti.gg) — AI-powered tools for Unreal Engine 5.8 developers.
Agent Plugins 1.0.0 distribution package for [Spaghetti Unreal AI Workbench](https://spaghetti.gg) — AI-powered tools for Unreal Engine developers.
## What this gives you
Connects your AI coding assistant (Claude Code, Cursor, Codex, etc.) to the Spaghetti MCP server, providing:
Connects your AI coding assistant (Claude Code, Cursor, Codex, etc.) to the Unreal AI Workbench MCP server, providing:
- **Crash Investigator** — paste a UE5 crash log, get a root-cause diagnosis + fix
- **Asset Janitor** — audit naming conventions, find unused assets, check LODs
- **Smart Librarian** — semantic search over UE5 engine docs + your team's knowledge base
- **Tool-Maker** — generate safe Python scripts for UE5 editor automation
- **Log Analyzer** (`analyze_logs`) — analyze a UE log file, get structured findings, crash triage, and recommended fixes
- **Asset Janitor** (`tidy_assets`) — audit naming conventions, find unused assets, check LODs
- **Research tools** (free) — search curated UE engine documentation, known engine patterns, and your project's ingested logs
- **Tool-Maker** (`make_tool`) — generate safe Python scripts for UE editor automation, billed only on approval
## Install
@@ -26,20 +26,20 @@ npx plugins discover Tinirau/unreal-workbench
## Authentication
On first connect, your client opens a browser to sign in at [spaghetti.gg](https://spaghetti.gg) via OAuth (GoTrue). No API key or headers to configure — the OAuth flow is handled entirely by your client.
Sign in once at [spaghetti.gg](https://spaghetti.gg) — your account is created on first sign-in, with welcome credits. On first connect, your client opens a browser to sign in via OAuth. No API keys to configure — the OAuth flow is handled entirely by your client.
## Project context
## Project context (optional)
Your UE5 project needs a `.spaghetti` file at its root:
Your UE5 project can have a `.spaghetti` file at its root:
```json
{
"team_id": "tm_your_team",
"project_id": "prj_your_project"
"team_id": "your-team-uuid",
"project_id": "your-project-uuid"
}
```
Get these from your [spaghetti.gg dashboard](https://spaghetti.gg/dashboard). The file is safe to commit to Git/Perforce (no secrets). If it's missing, the first tool call guides you through creating it.
Team and project ids are UUIDs; a setup CLI that fetches them and writes this file automatically is coming. Until then, all tools also work on your personal account without this file. The file is safe to commit to Git/Perforce (no secrets).
## Structure
@@ -57,8 +57,8 @@ unreal-workbench/
## Requirements
- An AI client that supports [Agent Plugins 1.0.0](https://agent-plugins.org) (Claude Code, Cursor, OpenAI Codex, etc.)
- A Spaghetti account ([sign up](https://spaghetti.gg/signup))
- UE 5.8+ (for built-in MCP tool integration; the Spaghetti tools work with 5.6+ for non-MCP features)
- A Spaghetti account — [sign in](https://spaghetti.gg) (created on first sign-in)
- UE 5.8+ for the editor connector plugin; the cloud tools work with any engine version's logs and inventories
## License
+1 -1
View File
@@ -3,7 +3,7 @@
"mcpServers": {
"spaghetti": {
"type": "streamable-http",
"url": "https://mcp.spaghetti.gg"
"url": "https://mcp.spaghetti.gg/api/mcp/agentic-engine/mcp"
}
}
}
+2 -2
View File
@@ -1,8 +1,8 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "unreal-workbench",
"version": "0.1.0",
"description": "Unreal Engine 5 agent tools — crash analysis, asset auditing, knowledge base, code generation. Powered by Spaghetti Unreal AI Workbench.",
"version": "0.1.1",
"description": "Unreal Engine 5 agent tools — log analysis, asset auditing, engine docs research, script generation. Powered by Spaghetti Unreal AI Workbench.",
"author": {
"name": "Tinirau Ltd",
"url": "https://spaghetti.gg"
+60 -53
View File
@@ -1,11 +1,11 @@
---
name: ue5-unreal
description: >
Unreal Engine 5 development assistant — crash analysis, asset auditing,
knowledge-base search, and Python script generation via Spaghetti Unreal AI
Unreal Engine 5 development assistant — log analysis, asset auditing,
engine-docs research, and Python script generation via Spaghetti Unreal AI
Workbench. Call these tools when the user is working in a UE5 project and
needs expert help with crashes, asset cleanup, engine docs, or editor
automation.
needs expert help with log errors or crashes, asset cleanup, engine docs,
or editor automation.
---
# UE5 Unreal AI Workbench Tools
@@ -17,73 +17,80 @@ connect — a browser window opens for sign-in at spaghetti.gg).
## Prerequisites
Your UE5 project must have a `.spaghetti` file at its root containing
`team_id` and `project_id`. If no `.spaghetti` exists, the first tool call
returns an Agentic Directive instructing you to create one. Follow it.
The user must have signed in at [spaghetti.gg](https://spaghetti.gg) at least
once (accounts and welcome credits are created on first sign-in).
## Available tools (Phase 1 — MVP)
A `.spaghetti` file at the UE5 project root (`team_id`, `project_id`) is
optional — without it, calls bill the user's personal wallet and everything
works except the two project-scoped research tools (`search_logs_temporal`,
`investigate_incident`). If you see a "no user account exists" error, point
the user at the portal sign-in; if you see "not a member of team", the
`.spaghetti`/headers point at the wrong team.
### Crash Investigator (`spaghetti/analyze_crash`)
## Available tools
**When to call:** The user reports a UE5 crash, paste an output log, or
mentions a crash dump / minidump.
### Log Analyzer (`spaghetti/analyze_logs`)
**What it does:** Parses the UE5 Output Log and crash dumps, identifies
root-cause nodes or C++ pointers, and returns a precise fix with context from
the proprietary UE5 bug knowledge base.
**When to call:** The user reports errors or a crash in their UE5 project and
has a log file (for example `Saved/Logs/<Project>.log`, or a crash log).
**Input:** Crash log text (paste the Output Log contents or the relevant
section).
**What it does:** Full-log analysis — structured findings with severity and
evidence, crash triage naming the suspect Blueprint, and statistics. Uploads
are session-based; large logs never flow through chat.
**Safety:** Read-only analysis. Returns a diagnosis + suggested fix; does
not modify project files.
**Input:** A local log path (`logPath`) to start a session, or pasted log
text (`logText`) as the fallback path.
### Asset Janitor (`spaghetti/audit_assets`)
**Cost:** 5 credits per session, billed only when analysis runs — empty logs
or logs with no Error/Fatal entries are free. Retries never bill twice.
**When to call:** The user asks about asset cleanup, naming conventions, unused
assets, missing LODs, or compliance reports.
**Safety:** Read-only analysis. Does not modify project files.
**What it does:** Finds textures without LODs, detects naming-convention
violations (`T_`, `BP_`, etc.), identifies unused/0-reference assets, and
generates compliance reports.
### Asset Janitor (`spaghetti/tidy_assets`)
**Input:** Optionally specify which checks to run (naming, LODs, unused).
**When to call:** The user asks about asset cleanup, naming conventions,
unused assets, missing LODs, or compliance reports.
**What it does:** Audits a project asset inventory — unused assets with
reclaimable sizes, redirectors, naming-convention violations, LOD problems —
and returns a prioritized report plus a downloadable CSV.
**Input:** An inventory JSONL path. With the UE connector plugin installed,
call its `export_asset_inventory` tool in the editor first (it writes
`Saved/spaghetti_inventory.jsonl`); without it, a short Python-console script
produces the same file.
**Cost:** 3 credits per session, billed only when a report is produced.
**Safety:** Audit is read-only. If the user wants to apply fixes, use
Tool-Maker to generate a dry-run Python script first.
Tool-Maker to generate a dry-run script first.
### Smart Librarian (`spaghetti/search_kb`)
### Research tools (free)
**When to call:** The user asks about UE5 engine architecture, best practices,
or how specific systems work. Also for snippet search (verified node setups,
Blueprint patterns).
**What it does:** Semantic search over two knowledge bases:
- **Team KB:** your project's private RAG index (studio docs, past bug
resolutions, conventions).
- **UE5 Engine Graph:** GraphRAG over the public UE 5.8 source for multi-hop
reasoning about engine architecture.
**Input:** Natural-language query about UE5 or your project's knowledge base.
- `search_docs_code` — hybrid search over curated UE engine documentation.
- `search_patterns` — recommended engine approaches vs anti-patterns for a described intent.
- `search_logs_temporal` — time/severity/subsystem-filtered search over logs previously ingested by `analyze_logs`. Requires project context.
- `query_temporal_relations` — entity-relation traversal over ingested logs (up to 3 hops, optionally as of a point in time).
- `investigate_incident` — bounded investigation combining logs, relations, docs, and patterns. Requires project context.
### Tool-Maker (`spaghetti/make_tool`)
**When to call:** The user wants to automate a UE5 editor task (batch-rename
assets, apply materials, configure project settings, etc.).
assets, apply settings, generate reports, etc.).
**What it does:** Generates a safe, production-quality Python script using
`unreal.EditorAssetLibrary` API. The script runs via the UE 5.8 Python remote
execution bridge.
**What it does:** Generates an editor-automation Python script from a
natural-language description of the task.
**Safety — three-layer model:**
1. **API allowlist:** only approved `unreal.EditorAssetLibrary` functions.
2. **Dry run:** scripts default to simulation mode (log what would happen,
don't execute destructive ops).
3. **Human approval:** before any destructive script runs, the user sees an
Approve/Reject dialog.
1. **API allowlist:** only approved editor APIs.
2. **Dry run:** delivered scripts are simulation transforms — destructive
operations commented out, reversible operations wrapped in
`unreal.ScopedTransaction` for undo support.
3. **Human approval:** the user Approves/Declines via the client's approval
flow. Billed 10 credits only on approval; blocked, declined, and
cancelled runs are free.
**Always show the generated script to the user before executing.** If the
script modifies assets, wrap in `unreal.ScopedTransaction` for undo support.
**Always show the generated script to the user before executing.**
## Safety defaults
@@ -92,9 +99,9 @@ script modifies assets, wrap in `unreal.ScopedTransaction` for undo support.
- **Use ScopedTransaction** for reversible operations (enables Ctrl+Z).
- **Read the Output Log** for errors after any automated editor operation.
## Context
## Billing
The `.spaghetti` file at the project root identifies which team and project
this UE5 project belongs to. All tool calls are billed to the team's Spaghetti
wallet. If you see a `402 Payment Required`, direct the user to
Tool calls bill the user's personal wallet, or the team wallet when team
context is set. If you see `402 Payment Required` / "Insufficient credits",
call the free `topup` tool to create a checkout link, or direct the user to
`spaghetti.gg/billing` to top up.