fix: mcp.json endpoint + README stale-claim cleanup (SKILL.md untouched) #1

Merged
basilensis merged 2 commits from fix/mcp-endpoint-and-stale-docs into main 2026-09-06 02:47:09 +00:00
4 changed files with 77 additions and 70 deletions
Showing only changes of commit 6795b0e553 - Show all commits
+14 -14
View File
@@ -1,15 +1,15 @@
# Unreal Workbench — Agent Plugin # 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 ## 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 - **Log Analyzer** (`analyze_logs`) — analyze a UE log file, get structured findings, crash triage, and recommended fixes
- **Asset Janitor** — audit naming conventions, find unused assets, check LODs - **Asset Janitor** (`tidy_assets`) — audit naming conventions, find unused assets, check LODs
- **Smart Librarian** — semantic search over UE5 engine docs + your team's knowledge base - **Research tools** (free) — search curated UE engine documentation, known engine patterns, and your project's ingested logs
- **Tool-Maker** — generate safe Python scripts for UE5 editor automation - **Tool-Maker** (`make_tool`) — generate safe Python scripts for UE editor automation, billed only on approval
## Install ## Install
@@ -26,20 +26,20 @@ npx plugins discover Tinirau/unreal-workbench
## Authentication ## 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 ```json
{ {
"team_id": "tm_your_team", "team_id": "your-team-uuid",
"project_id": "prj_your_project" "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 ## Structure
@@ -57,8 +57,8 @@ unreal-workbench/
## Requirements ## Requirements
- An AI client that supports [Agent Plugins 1.0.0](https://agent-plugins.org) (Claude Code, Cursor, OpenAI Codex, etc.) - 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)) - A Spaghetti account — [sign in](https://spaghetti.gg) (created on first sign-in)
- UE 5.8+ (for built-in MCP tool integration; the Spaghetti tools work with 5.6+ for non-MCP features) - UE 5.8+ for the editor connector plugin; the cloud tools work with any engine version's logs and inventories
## License ## License
+1 -1
View File
@@ -3,7 +3,7 @@
"mcpServers": { "mcpServers": {
"spaghetti": { "spaghetti": {
"type": "streamable-http", "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", "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "unreal-workbench", "name": "unreal-workbench",
"version": "0.1.0", "version": "0.1.1",
"description": "Unreal Engine 5 agent tools — crash analysis, asset auditing, knowledge base, code generation. Powered by Spaghetti Unreal AI Workbench.", "description": "Unreal Engine 5 agent tools — log analysis, asset auditing, engine docs research, script generation. Powered by Spaghetti Unreal AI Workbench.",
"author": { "author": {
"name": "Tinirau Ltd", "name": "Tinirau Ltd",
"url": "https://spaghetti.gg" "url": "https://spaghetti.gg"
+60 -53
View File
@@ -1,11 +1,11 @@
--- ---
name: ue5-unreal name: ue5-unreal
description: > description: >
Unreal Engine 5 development assistant — crash analysis, asset auditing, Unreal Engine 5 development assistant — log analysis, asset auditing,
knowledge-base search, and Python script generation via Spaghetti Unreal AI 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 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 needs expert help with log errors or crashes, asset cleanup, engine docs,
automation. or editor automation.
--- ---
# UE5 Unreal AI Workbench Tools # UE5 Unreal AI Workbench Tools
@@ -17,73 +17,80 @@ connect — a browser window opens for sign-in at spaghetti.gg).
## Prerequisites ## Prerequisites
Your UE5 project must have a `.spaghetti` file at its root containing The user must have signed in at [spaghetti.gg](https://spaghetti.gg) at least
`team_id` and `project_id`. If no `.spaghetti` exists, the first tool call once (accounts and welcome credits are created on first sign-in).
returns an Agentic Directive instructing you to create one. Follow it.
## 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 ### Log Analyzer (`spaghetti/analyze_logs`)
mentions a crash dump / minidump.
**What it does:** Parses the UE5 Output Log and crash dumps, identifies **When to call:** The user reports errors or a crash in their UE5 project and
root-cause nodes or C++ pointers, and returns a precise fix with context from has a log file (for example `Saved/Logs/<Project>.log`, or a crash log).
the proprietary UE5 bug knowledge base.
**Input:** Crash log text (paste the Output Log contents or the relevant **What it does:** Full-log analysis — structured findings with severity and
section). 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 **Input:** A local log path (`logPath`) to start a session, or pasted log
not modify project files. 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 **Safety:** Read-only analysis. Does not modify project files.
assets, missing LODs, or compliance reports.
**What it does:** Finds textures without LODs, detects naming-convention ### Asset Janitor (`spaghetti/tidy_assets`)
violations (`T_`, `BP_`, etc.), identifies unused/0-reference assets, and
generates compliance reports.
**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 **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, - `search_docs_code` — hybrid search over curated UE engine documentation.
or how specific systems work. Also for snippet search (verified node setups, - `search_patterns` — recommended engine approaches vs anti-patterns for a described intent.
Blueprint patterns). - `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).
**What it does:** Semantic search over two knowledge bases: - `investigate_incident` — bounded investigation combining logs, relations, docs, and patterns. Requires project context.
- **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.
### Tool-Maker (`spaghetti/make_tool`) ### Tool-Maker (`spaghetti/make_tool`)
**When to call:** The user wants to automate a UE5 editor task (batch-rename **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 **What it does:** Generates an editor-automation Python script from a
`unreal.EditorAssetLibrary` API. The script runs via the UE 5.8 Python remote natural-language description of the task.
execution bridge.
**Safety — three-layer model:** **Safety — three-layer model:**
1. **API allowlist:** only approved `unreal.EditorAssetLibrary` functions. 1. **API allowlist:** only approved editor APIs.
2. **Dry run:** scripts default to simulation mode (log what would happen, 2. **Dry run:** delivered scripts are simulation transforms — destructive
don't execute destructive ops). operations commented out, reversible operations wrapped in
3. **Human approval:** before any destructive script runs, the user sees an `unreal.ScopedTransaction` for undo support.
Approve/Reject dialog. 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 **Always show the generated script to the user before executing.**
script modifies assets, wrap in `unreal.ScopedTransaction` for undo support.
## Safety defaults ## Safety defaults
@@ -92,9 +99,9 @@ script modifies assets, wrap in `unreal.ScopedTransaction` for undo support.
- **Use ScopedTransaction** for reversible operations (enables Ctrl+Z). - **Use ScopedTransaction** for reversible operations (enables Ctrl+Z).
- **Read the Output Log** for errors after any automated editor operation. - **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 Tool calls bill the user's personal wallet, or the team wallet when team
this UE5 project belongs to. All tool calls are billed to the team's Spaghetti context is set. If you see `402 Payment Required` / "Insufficient credits",
wallet. If you see a `402 Payment Required`, direct the user to call the free `topup` tool to create a checkout link, or direct the user to
`spaghetti.gg/billing` to top up. `spaghetti.gg/billing` to top up.