Unity MCP Efficient
Unity MCP Efficient
Eine unabhängige, token-effiziente MCP-Fassade und ein Codex-Skill für MCP for Unity.
Sie hält den vollständigen Unity-Funktionsumfang hinter einer kleinen, an das Modell gerichteten API. Das Modell sieht sechs stabile Tools, durchsucht bei Bedarf den Upstream-Katalog, erhält kompakte, auf Unity zugeschnittene Antworten und kann Routinearbeit aneinanderreihen, ohne jedes Zwischenergebnis in die Konversation zu holen.
[!IMPORTANT] Dieses Projekt ersetzt weder das Unity-Paket noch dessen Python-Server. MCP for Unity bleibt das Backend. Registrieren Sie beim KI-Client die Fassade, nicht den Upstream-Server. Werden beide Tool-Oberflächen offengelegt, gehen die meisten Kontexteinsparungen verloren.
Gemessene Kontextreduktion
Am 24. August 2026 erzielten die Skripte in benchmarks/ diese Ergebnisse gegen MCP for Unity v10.1.0 (c14de1e6).
Messung | Upstream-Oberfläche | Effiziente Fassade | Reduktion |
Für das Modell sichtbare Tools | 48 | 6 | 87,50 % |
Serialisierte Tool-Schemas | 93.119 Zeichen | 3.657 Zeichen | 96,07 % |
Ungefähre Schema-Tokens¹ | 23.280 | 915 | 96,07 % |
Synthetische Wort Einfaches mit 250 Objekten² | 628.110 Zeichen | 875 Zeichen | 99,86 % |
Ungefähre Hierarchie-Tokens¹ | 157.028 | 219 | 99,86 % |
Argumentumfang der Aktionen | 5.566 Felder | 1.798 Felder | 67,70 % |
Der dynamische Katalog indexed 377 Unity-Operationen. Eine kleine deterministische Suchsuite in Englisch und Russisch lieferte in allen 15 Fällen erwartet Operation auf Rang 1 und in allen 15 Fällen innerhalb der Top 3. Der Release-Kandidat 35 35 Facade-Tests. Ein Live-Smoke-Test nahm keine Projektänderungen vor und verifizierte die Sechs-Tool-Oberfläche, editor.refresh an Rang 1, den Editorzustand sowie einen zweistufigen Szenenprüfungs-Batch gegen einen geöffneten Unity-Editor.
¹ Die Token‑Zählungen stützen auf einer transparenten Schätzung von vier Zeichen pro Token. Sie beschreiben den Kontextfußabdruck, nicht die API-Abrechnung. Die tatsächliche Tokenisierung variiert je nach Modell aber Nutzlast.
² Der Hierarchie‑Benchmark simuliert eine verrauschte Antwort mit 250 Objekten, 300‑Informationsüber in jedem Objekt und den gleichen Daten in Text‑ sowie strukturierten Nutzlasten. Dieser Stressfall garantiert nicht dieselbe Reduktion für jede Szene. Methode und Rohwerte findet sich, die Sie in BENCHMARKS.md.
Related MCP server: SimpleMcpServer
Was die sechs Tools tun
Tool | Zweck |
| Findet die besten Unity-Operations zu einer kurzen englischen oder russischen Aufgabenphrase. Vollständige Schemas sind optional. |
| Führt genau eint Operation aus und liefert eine begrenzte Vorschau sowie einen wiederherstellbaren Ergebnis-Handle. |
| Führt bis zu 50 begrenzte call-, select-, assert-, poll-, foreach- und emit-Schritte in einem Modellen-los-Gang aus. |
| Liest den Zustand von Projekt, Auto, Szene, Konsole oder ausgewählten Objekten mit revisionounterdrückung. |
| Blättert, filtert, durchsucht oder wählt bereits erzeugte Daten aus, ohne die Unity-Arbeit zu wiederholen. |
| Liefert ein begrenztes Bild der Szene- oder Spielansicht, ohne es doppelt in strukturiertem JSON abzulegen. |
Das Modell erreicht weiterhin die 377 indizierten Operationen hinter der Brücke. Diese belegen nicht mehr den gesamten Prompt auf einmal.
An der Grenze gelöste Probleme
Häufige Fehlerquelle | Was die Fassade ändert |
Der Client sendet Dutzende großer Tool-Schemas, bevor die nützliche Arbeit beginnt | Eine Auswahl aus sechs Tools mit Bedarf Erkennung von Operationen |
Manager-Tools legen für jede Aktion eine große Argument-Union offen | Aktionsspezifische Schemas; 67,70 % weniger Argumentfelder im gemessenen Katalog |
Szene, Konsole-Test und Asset-Antworten überfluten die Konversation | Unity-spezifische Nachbearbeitung, strenge Ausgabenbudgets, Pagination und ergebnis-Handles |
Ein FastMCP- oder Pydantic | Rekursive JSON-Normalisierung vor der Vorschaus Konstruktion |
Unity schließt eine Mutation ab, trennt sich aber während des Domain-Reloads. | Roh-Ergebnis-Persistenz, explizite Wiederholungs-Metadaten und automatische Mutations-Replays |
Testlauf startet, aber seine große Hülle versteckt oder verliert die | Eine kompakte resultierende Quittung für Polling |
Die Upstream-Antwort misst | Äußeres |
Wiederholen einer Mutation nach Timeout kann Arbeit verdoppeln | Stabile |
Multi-Objekt-Arbeit verbraucht einen Modell-Zyklus pro Operation | Begrenzte sequenzielle Workflows und parallel vorsichtige parallele Batches für Lesezugriffe |
| Verzögerte, revisionsbewusste Prüfungen mit klarer Stopp-Regel |
Architektur
Codex or another MCP client
|
| sees 6 tools
v
Unity MCP Efficient (stdio by default)
|-- capability search over the live upstream catalog
|-- compact Unity-specific post-processing
|-- bounded workflow runtime
|-- local SQLite result and request receipts
|
| HTTP, default http://127.0.0.1:8080/mcp
v
MCP for Unity server
|
v
Unity Editor packageEin Allein ein Skill kann aufgerufene Tool-Schemas, die ein MCP-Client bereits geladen hat, nicht verbergen. Das Repository enthält daher beide Teile:
die Fassade setzt die kleinere API und kompakte Antworten durch,
der Skill lehrt Codex, effizient zu suchen, zu satchen, wiederherzustellen und zu verifizieren.
Install
1. MCP for Unity im HTTP-Modus starten
Installieren Sie CoplayDev/MCP for Unity gemäß den Anleitungen des Upstream-Projekts. Öffnen Sie in Unity Window → MCP for Unity, wählen Sie den lokalen HTTP-Transport und starten Sie den Server.
Der Endpunkt des Upstream-Standards lautet:
http://127.0.0.1:8080/mcpWenn Ihr Projekt einen anderen Port passiert, geben Sie diesen über das unten stehenden UNITY_MCP_BACKEND_URL bekannt.
2. Die Scheibe im Codex codexieren
Installieren Sie bei Bedarf uv, und führen dann aus:
codex mcp add unity-efficient \
--env UNITY_MCP_BACKEND_URL=http://127.0.0.1:8080/mcp \
-- uvx --from git+https://github.com/Vangardo/unity-mcp-efficient.git unity-mcp-efficientUnter PowerShell verwenden Sie denselben Befehl in einer Zeile:
codex mcp add unity-efficient --env UNITY_MCP_BACKEND_URL=http://127.0.0.1:8080/mcp -- uvx --from git+https://github.com/Vangardo/unity-mcp-efficient.git unity-mcp-efficientEntfernen oder deaktiviert einen direkten Eintrag aus MCP for Unity im selben Codex-Client. Der Upstream-HTTP-Server bleibt im Betrieb, die 48‑Tool-Fläche sollte aber nicht beim Modell registriert werden.
3. Den Codex-Skill installieren
Der einfachste Weg ist, es direkt den Codex zu fragen:
$skill-installer Install the skill from https://github.com/Vangardo/unity-mcp-efficient/tree/main/skills/unity-mcp-efficientFür eine manuelle Installation auf Benutzerebene klonen Sie das Repository und kopieren Sie skills/unity-approx-efficient nach:
$HOME/.agents/skills/unity-mcp-efficientCodex erkennt Skill-Änderungen automatisch. Starten Sie ihn neu, falls der Skill nicht erscheint.
Andere MCP-Clients
Verwenden Sie diese stdio-Konfigurationsstruktur:
{
"mcpServers": {
"unity-efficient": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Vangardo/unity-mcp-efficient.git",
"unity-mcp-efficient"
],
"env": {
"UNITY_MCP_BACKEND_URL": "http://127.0.0.1:8080/mcp"
}
}
}
}Installieren Sie den zusammengefassten Skill, wenn der Client das Agent-Skills-Format unterstützt. Die Fassade funktioniert auch ohne, aber der Skill verbessert die Auswahl und das Wiederherstellungsverhalten.
Empfohlener Agentenzyklus
Zustand einmalig mit niedriger Korndetails überprüfen.
Suche mit einer konkreten Tasksphrase.
Schemas anfordern, wenn die Argumente unklar sind.
Abhängige Aufgaben nach sequenziell bündeln. Unabhängige Lesen parallelisieren, aber niemals Unity-Mutationen.
Kompakte Daten behalten und gespeicherte Ergebnisse nach Pfad oder Seite erweitern.
Semantisches Ergebnis prüfen, nicht jedes rohe Zwischenobjekt.
Diesen Zyklus finden Sie bereits in skills/unity-approx-efff/SKILL.md.
Konfiguration
Variable | Standard | Bedeutung |
|
| Ende Endpunkt des hinteren HTTP-Servers von MCP for Unity |
|
| Timeout in Sekunden pro Operation |
| OS-Benutzer-Cache-Verzeichnis | Aussortieren des SQLite-Ergebnisspeichers; |
|
| Transportart der Fassade: |
Verwenden Sie weiterhin den Standard-stdio-Transport, außer Sie haben einen triftigen Grund, die Fassade über ein Netzwerk zu exponieren. Bevor Sie HTTP oder SSE verwenden, lesen Sie SECURITY.md.
Entwicklung und Verifikation
git clone https://github.com/Vangardo/unity-mcp-efficient.git
cd unity-mcp-efficient
uv sync --extra dev
uv run pytest -qWenn der Upstream-HTTP-Server läuft:
uv run python benchmarks/evaluate_facade.py
uv run python benchmarks/measure_surface.py
uv run python benchmarks/live_smoke.pyevaluate_facade.py und measure_surface.py um den Live-Upstream-Katalog. live_smoke.py führt keine Mutationen aus, erfordert aber einen offenen und verbundenen Unity-Editor.
Bekannte Grenzen
Die kompakte-Ausgabe ist beabsichtigt verlustreich. Das unbearbeitete Original-Ergebnis bleibt daher nur über eine begrenzte Zeit über
get_resulterhalten.Die „Fassade» macht kein beliebige Unity-Mutation benign. Berührung und Review liegen weiterhin beim MCP-Client und beim Benutzer.
Paralleler Modus ist vorsichtig. Unity kann Editor-Arbeiten intern unter Umständen serialisieren.
Optional entdeckbare Funktionen wie Roslyn-Schutz müssen noch in einem bestimmten Unity-Projekt vorhanden sein.
Aufnahmen der Szene- und Spielansicht können IMGUI- oder Editor-Overlays auslassen.
Kompatibilitätstests verwenden MCP for Unity
v10.1.0. Der Katalog ist dynamisch; messen Sie künftige Upstream-Releases durch, bevor Sie diese als unterstützt ausgeben.
Design-Herkunft
Die Idee der progressiven Offenlegung stammt aus Vangardo/mcp_hub, einem breiteren MCP-Gateway, das einen großen Integrationskatalog über eine kleine Such- und Aufruf-Oberfläche routiert. Unity MCP Efficient wendet diese Kontextregel auf Unity an und fügt Unity‑spezifische Verdichtung, Revisionsprüfungen, Mutation-Lebenswiederherstellung, Bildschirmdarstellung und begrenzte lokale Workflows hinzu.
Diese Anwendung Muster für Slack, Teamwork, Telegram, Kalender, Gedächtnis, Automatisierung oder systemfreie Dienste zu nutzen, siehe MCP Hub.
Das Backend für Unity-Kompatibilität ist CoplayDev/MCP for Unity und wird unter MIT-Lizenz verbreitet. Dieses Repository ist ein unabhängiges Projekt und enthält dessen Quellcode nicht. Siehe auch NOTICE.md und THIRD_PARTY_NOTICES.md.
Lizenz und Marken
Der Original-Code in diesem Repository steht unter der MIT License zur Verfügung.
Unity ist eine Marke oder eingetragene Marke von Unity Technologies bzw. deren Tochtergesellschaften0 oder verbundenen Unternehmen in den USA und anderen Ländern. Dieses Projekt ist weder mit Unity Technologies noch mit CoplayDev verzeichnet noch von ihnen unterstützt. Alle weiteren für die eigenen Namen und Marken sind Eigentum der jeweiligen Inhaber.
Available Tools
6 toolsbatch_operationsBDestructive
Run calls or local select/assert/poll/foreach/emit workflow steps.
| Name | Required | Description | Default |
|---|---|---|---|
| execution | No | sequential | |
| max_chars | No | ||
| operations | Yes | ||
| request_id | No | ||
| output_mode | No | compact | |
| response_mode | No | summary | |
| stop_on_error | No | ||
| unity_instance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (destructiveHint=true, readOnlyHint=false, idempotentHint=false), which the description does not contradict. The description adds only the 'local' qualifier for workflow steps and the step-type list; it does not disclose error behavior, execution-mode effects, or what summary/steps/emits responses contain, so added value beyond annotations is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Twelve words in a single sentence, verb-front-loaded, with no filler or redundant content. Every word earns its place by naming either the action or the specific step types.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool — eight parameters, a required nested operations array with no item schema (additionalProperties only), three enum parameters, a destructive annotation, and no output schema. The description does not explain how to structure an operation item, what the response looks like, or how the response_mode/output_mode options differ, leaving an agent without enough information to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, and it does clarify the key required parameter: operations can be either calls or local select/assert/poll/foreach/emit steps. But the other seven parameters (execution, max_chars, output_mode, response_mode, stop_on_error, request_id, unity_instance) receive no semantic explanation anywhere, so the compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Run') and a concrete resource ('calls or local select/assert/poll/foreach/emit workflow steps'), so an agent can tell that this tool executes operations rather than inspecting state. However, it does not explicitly contrast with the sibling call_operation, leaving the batch-vs-single distinction to be inferred from the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose batch_operations over call_operation, get_result, or the other siblings. There are no use cases, prerequisites, or exclusions stated; an agent must infer from the name alone that this is for running multiple operations at once.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
call_operationBDestructive
Execute once; request_id safely deduplicates retries of mutations.
| Name | Required | Description | Default |
|---|---|---|---|
| arguments | No | ||
| max_chars | No | ||
| operation | Yes | ||
| request_id | No | ||
| output_mode | No | compact | |
| unity_instance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and idempotentHint=false; the description adds useful behavioral context by stating execution is once-only and that request_id deduplicates retries. It does not disclose failure modes, side effects beyond mutation, or result-handling behavior, but it goes beyond what the annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no filler, and it front-loads the key execution behavior. It is admirably concise for a tool with six parameters, though arguably too terse to fully educate an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive hint, six parameters, no output schema, and zero schema coverage, one line is not enough context. The request_id guidance is valuable, but the agent is left without sufficient details on how to specify the operation, shape arguments, choose output_mode, or interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for six parameters, but it only explains request_id. Critical parameters such as operation, arguments, output_mode, max_chars, and unity_instance are left wholly undocumented, making correct invocation harder than it should be.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a single-execution operation invoker ('Execute once') and references mutations, which helps distinguish it from sibling tools like batch_operations. However, it never explains what an 'operation' actually is or what domain it operates on, so some clarity is left to inference from the tool name and parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for single mutations and mentions safe deduplication of retries, but it gives no explicit when-to-use guidance or when-not-to-use alternatives. It does not tell the agent to prefer read-oriented siblings for inspection or batch_operations for multi-step work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resultBRead-onlyIdempotent
Page, select, or search a prior result without repeating Unity work.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| limit | No | ||
| offset | No | ||
| pattern | No | ||
| max_chars | No | ||
| result_id | Yes | ||
| output_mode | No | standard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context by indicating that the tool works over prior results and avoids re-running Unity work, but it does not reveal details about output modes, pagination behavior, or any hidden side effects. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, and the key behavioral point about not repeating Unity work is front-loaded. It earns its place, though the brevity contributes to the lack of parameter clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven parameters, no parameter descriptions, no output schema, and an already-terse tool description, an agent has insufficient context to call the tool confidently. The description does not explain how paging, search, output modes, or character limits behave, leaving important invocation details to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the seven parameters, but it does not. 'Page, select, or search' loosely maps to limit/offset, result_id, and pattern/path, yet parameters such as max_chars, output_mode, and path remain unexplained. The description provides only weak semantic hints and does not carry the parameter-documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource ('a prior result') and a set of verbs ('Page, select, or search'), which makes the tool's purpose reasonably clear. It also adds the motivational context of avoiding repeated Unity work, but it does not explicitly differentiate itself from sibling tools like search_capabilities or call_operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without repeating Unity work' implies this tool should be used when a previous result already exists and should be retrieved rather than recomputed. However, there is no explicit guidance on when to prefer get_result over siblings such as call_operation or search_capabilities, and no exclusions or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewportBRead-onlyIdempotent
Return one bounded inline viewport image for visual verification.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | scene_view | |
| target | No | ||
| max_resolution | No | ||
| unity_instance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive, so the description need not repeat that. It adds a small behavioral detail—the result is a single inline bounded image—but leaves the semantics of 'bounded' and the meaning of source/target selection unexplained. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded with the action and resource, with no filler. It is concise and readable, though it could afford a second sentence to explain key parameters or use cases without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, no output schema, and no parameter descriptions, this description is incomplete. An agent cannot infer what 'target' means, how max_resolution behaves, or how to select scene_view versus game_view, and there is no guidance on how to interpret the returned image.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description names none of the four parameters (source, target, max_resolution, unity_instance). The enum for source and default values in the schema provide some hints, but the description adds no parameter-level meaning and fails to compensate for the zero coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') with a clear resource ('one bounded inline viewport image') and states the purpose ('for visual verification'). It is distinguishable from generic sibling names like get_result or inspect_unity, though it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for visual verification' implies this tool is for obtaining an image to verify a scene or game view, but the description does not state when to use it instead of alternatives like inspect_unity or get_result, nor are exclusions given. Usage context is inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_unityCRead-onlyIdempotent
Inspect Unity semantically; unchanged revisions return no repeated payload.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | state | |
| detail | No | standard | |
| targets | No | ||
| max_chars | No | ||
| since_revision | No | ||
| unity_instance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds the concrete behavior that unchanged revisions produce no repeated payload, which clarifies what idempotency means here. It also lets the agent infer that since_revision is tied to change detection. No statement contradicts the read-only/idempotent annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and the behavioral note does earn its place, but 'semantically' is cryptic and the text is under-specified for a tool with six parameters. It is concise in word count, yet not 'appropriately sized' for the complexity the schema reveals.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With low schema coverage, no output schema, and six parameters, the description leaves important context missing: what a successful inspection returns, which scopes are involved, what targets selects, and how unity_instance affects execution. The single revision-related sentence is useful but far from complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description bears the burden, but it only loosely clarifies since_revision via 'unchanged revisions'. The other five parameters—scope, detail, targets, max_chars, unity_instance—are left entirely to name/enum inference, and targets in particular is ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb and resource ('Inspect Unity') but 'semantically' is undefined, and nothing in the text distinguishes it from siblings like get_viewport or search_capabilities. The second clause describes revision behavior rather than clarifying what inspection covers. It is not a complete tautology, but the core phrasing largely restates the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use inspect_unity instead of sibling tools such as get_viewport, call_operation, or search_capabilities. There are no exclusions, prerequisites, or context triggers. An agent must infer usage from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_capabilitiesCRead-onlyIdempotent
Find operation names and only the argument hints needed next.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| refresh | No | ||
| category | No | ||
| include_schema | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only, idempotent, and non-destructive; the description adds a scoping claim: results contain operation names and only the argument hints needed next. This is useful but vague, and it does not disclose output shape, refresh behavior, or query semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is one short sentence and front-loads the main action, but it is under-specified rather than economically complete; important behavioral and parameter information is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five optional parameters, no output schema, and no parameter descriptions, the description must carry more weight. It gives the broad purpose but omits the query semantics, return shape, and how the result connects to call_operation, so the tool is not sufficiently contextualized.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across five parameters (limit, query, refresh, category, include_schema), yet the description names none of them and only references 'argument hints' as output. This is a serious gap: an agent cannot know what query string, limit, or include_schema controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Find operation names') and the scope of results ('argument hints needed next'), which distinguishes it from sibling tools that call/get/batch operations. However, it does not explicitly differentiate from 'inspect_unity' or clarify what 'capabilities' means in context, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'needed next' implies this is a discovery step before invoking an operation, giving some context. But it offers no explicit guidance on when to choose this over call_operation, get_result, inspect_unity, or batch_operations, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.2.0- First observed
batch_operations - First observed
call_operation - First observed
get_result - First observed
get_viewport - First observed
inspect_unity - First observed
search_capabilities
TDQS
Scored across 6 tools
Each tool targets a distinct phase of interaction: discovery, execution, result retrieval, batching, semantic inspection, and visual verification. There is no meaningful overlap that would cause an agent to misselect between them.
All tool names follow a consistent verb_noun snake_case pattern: search_, call_, get_, batch_, inspect_, get_. This makes the set predictable and easy to navigate.
Six tools is a well-scoped count for an efficiency-focused server. Each tool earns its place and the set avoids both bloat and thinness.
The surface covers the main lifecycle well: discover capabilities, execute operations, retrieve results, batch workflows, inspect Unity state, and verify visually. Minor gaps exist, such as no explicit cancellation or full listing tool, but search_capabilities and batch_operations cover most practical needs.
Maintenance
Related MCP Connectors
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
The OpenRouter for tools. One MCP connection gives any AI agent 254 hosted tools, pay per call.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to control the Unity Editor through MCP, allowing scene building, runtime scripting, visual QA, and more.5Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents (like Claude Code, Cursor) to directly operate Unity scenes via MCP protocol, with tools for scene hierarchy, object creation/deletion, and transform modification.12 npm1ISC
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to control the Unity Editor via MCP, allowing scene manipulation, asset management, compilation, and testing through natural language.MIT
- AlicenseAqualityAmaintenanceMCP server for controlling the Unity Editor from AI clients. 140+ tools for scenes, GameObjects, components, assets, Shader Graph, PlayTest DSL, screenshots with visual diff, batch operations with Undo rollback, and in-editor chat. Token-efficient plain-text protocol.3631MIT