Patina Unity MCP
Server Quality Checklist
Latest release: v1.1.15
- Disambiguation5/5
Each tool addresses a clearly distinct concern: command discovery, health status, session listing, and command execution. There is no overlap in purpose, and the descriptions reinforce their unique roles.
Naming Consistency4/5All tools share a consistent 'patina_' prefix with simple, readable names. 'call' is slightly verb-like compared to the noun-style others, but the overall pattern remains obvious and predictable.
Tool Count5/5Four tools is well-scoped for a bridge server that provides capability discovery, health checks, session monitoring, and command execution. Each tool earns its place without unnecessary bloat.
Completeness5/5The toolset covers the complete workflow for this domain: discover available commands, check server health, list Unity sessions, and execute commands. No significant gaps are apparent for the stated purpose.
Average 4.1/5 across 4 of 4 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 1 of 1 community issues answered or closed in the last 6 months
- 63 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the targeting precedence (default working-directory workspace, overridden by workspace or sessionId, with the constraint about both resolving to same session if provided together). However, it gives no information about side effects, permissions, rate limits, or error behavior of executing commands. With no annotations provided, the description carries the full burden but does not address these important behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes only essential targeting details. No redundant or fluff content. Each sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's generic nature (executes arbitrary commands) and the absence of an output schema, the description is somewhat under-specified regarding return values and command-specific behavior. It relies on the schema to mention patina_capabilities for command names, but does not explain how outputs are returned or what errors might look like. The targeting info is complete, but broader operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds context to workspace and sessionId parameters by explaining their targeting roles, but the schema already provides detailed descriptions for all four parameters (100% coverage). The reference to patina_sessions in the description is helpful but marginal. Baseline 3 is appropriate since the schema carries the main semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes an internal Patina Unity command, which distinguishes it from sibling tools like patina_capabilities (listing commands) and patina_sessions (listing sessions). It also specifies targeting scope (default workspace, alternative workspace, or sessionId). The verb 'Execute' and resource 'Patina Unity command' make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the default workspace versus specifying a different project via workspace or targeting a specific editor via sessionId. It references patina_sessions as the source for session IDs, which orients the agent to the sibling tool. However, it does not explicitly mention patina_capabilities for command discovery, though that is stated in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of behavioral disclosure. It states that the tool avoids loading every schema (implying lightweight read operation), but omits other behavioral traits such as auth requirements, rate limits, pagination, or response format. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary purpose, and every word serves a clear function. There is no redundancy or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description leaves some gaps: the expected return format (list of commands? with which fields?) is not mentioned, nor is there any indication of pagination or ordering. The description is functional for basic use but could be more complete to fully inform the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds value beyond the schema by explaining when to use include_schema (only for intended calls) and its default behavior (false to keep context small). The other parameters are simply listed without additional context, but the general advice on usage is helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a command catalog browser with filtering capabilities, and distinguishes it from sibling tools (patina_call, patina_health) by focusing on discovery without loading schemas. The verb 'Browse' combined with the resource 'command catalog' makes the purpose specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool (browsing the catalog) and when to set include_schema=true (only for commands to be called). It implicitly distinguishes from patina_call, but could be more explicit about when to skip this tool and directly use patina_call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose useful behavioral traits: 'unitySessionCount counting both connected and reloading sessions' clarifies a counting nuance, and the include_unity_state semantics explains what that parameter actually verifies. It does not mention permissions or side effects, but this is a read-only health check and the provided detail is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the action verb 'Return'. It lists multiple return elements without excessive padding. It is a bit long, but every clause contributes specific information, maintaining good conciseness despite the technical list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description must explain return values, which it does by listing categories and exact field names. It also gives a practical usage scenario for a key parameter. It omits detailed description of include_bridge_diagnostics, but the schema covers it, and the overall picture is sufficiently complete for a health-monitoring tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents both parameters (100% coverage), so the baseline is 3. The description adds meaningful extra semantics for include_unity_state by explaining it proves the Unity session 'is actually responding, not just registered.' It does not add detail for include_bridge_diagnostics, but the schema covers its behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Return' and enumerates specific resource outputs (server version, MCP surface status, bridge port, command count, broker summary), making the tool's purpose clear. It is distinct from sibling tools like patina_capabilities or patina_sessions by focusing on health/status metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a conditional usage hint for include_unity_state=true ('to prove the routed Unity session is actually responding'), which gives some context. However, it does not explicitly state when to use this tool versus alternatives or mention any exclusions or non-use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses output fields and a valuable behavioral nuance (reloading state can explain failed calls). It does not explicitly state read-only or auth requirements, but for a list operation the key behaviors are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, directly front-loaded with the purpose, and includes only high-value details like the state values and the reloading caveat. No filler or unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool, the description fully covers what the tool does, what fields are returned, and a useful operational tip. No output schema exists, but the description compensates by enumerating the response contents. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema is empty with 100% code coverage. The baseline for no parameters is 4, and the description adds meaningful context about the data returned, which is more than sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the exact resource ('active Unity sessions registered with the shared Patina broker') and the key fields returned. This clearly distinguishes it from sibling tools like patina_health (health check) and patina_call (invoking actions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context on when to consult this tool, especially the guidance to check state="reloading" before assuming Unity disconnected. While it does not explicitly name alternative tools, the context is sufficient for an agent to decide when this listing is relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/taygunsavas/patina-unity-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server