Icon Composer MCP
Server Quality Checklist
- Disambiguation4/5
Most tools are clearly distinct, but export_preview and render_liquid_glass have overlapping purposes (both render previews) that could confuse selection—one is a general preview with fallback, the other requires specific software for pixel-perfect output. set_fill and set_appearances both touch background styling but target different aspects (fill vs mode overrides).
Naming Consistency4/5Consistent snake_case throughout with verb-first structure (create_icon, set_fill, export_marketing). Minor deviations: toggle_fx uses abbreviation while set_glass_effects spells it out, and add_layer_to_icon uses a longer prepositional structure compared to peers.
Tool Count5/5Twelve tools is well-scoped for the domain of Apple Icon Composer bundle manipulation. Each tool earns its place covering the full lifecycle (create, read, modify layers/appearance, export) without bloat or redundancy.
Completeness4/5Comprehensive coverage for .icon bundle editing: CRUD operations on layers, appearance management (dark/tinted modes), Liquid Glass effects configuration, and multiple export formats. Minor gaps include no explicit delete_icon for bundle removal or duplicate/validate operations, though agents can work around these via filesystem operations.
Average 3.7/5 across 10 of 12 tools scored.
See the tool scores section below for per-tool breakdowns.
This repository includes a README.md file.
This repository includes a LICENSE file.
Latest release: v1.0.0
Tools from this server were used 8 times in the last 30 days.
This repository includes a glama.json configuration file.
- This server provides 12 tools. View schema
No known security issues or vulnerabilities reported.
This server has been verified by its author.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosure. While it mentions mutation ('Add'), it lacks critical behavioral details: it does not state whether this is idempotent, what happens if the bundle_path doesn't exist, whether existing layers are overwritten, or what the return value indicates. For an 11-parameter file modification tool, this is insufficient safety and behavioral context.
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?
Two short sentences with no wasted words. The primary action is front-loaded in the first sentence, while the second clarifies group behavior. However, given the tool's complexity (11 parameters, mutation semantics), the extreme brevity arguably shifts from conciseness to under-specification in the completeness dimension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters that mutates file bundles and lacks annotations/output schema, the description is too minimal. It omits prerequisites (bundle must exist), error handling, idempotency guarantees, and any indication of return value structure. The richness of the input schema highlights the poverty of the descriptive context.
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?
Schema description coverage is 100%, so parameters are fully documented in the schema itself. The description adds minimal semantic context beyond the schema, though the second sentence ('Creates a new group or adds to existing one') provides some high-level context for the create_group and group_index parameters. With high schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb (Add) and resource (layer to .icon bundle) clearly. The second sentence clarifies group handling behavior, which hints at the create_group/group_index relationship. However, it does not explicitly differentiate from siblings like create_icon (which creates the bundle) or remove_layer, though the distinction is somewhat inferable from the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives (e.g., create_icon for new bundles), nor does it state prerequisites such as the bundle needing to exist beforehand. No error conditions or failure modes are described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. While 'Set' and 'overrides' imply mutation, there's no disclosure of side effects, idempotency, whether unspecified parameters reset to defaults, or persistence behavior.
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?
Single efficient sentence, front-loaded with action verb. Every clause serves to scope the operation (appearance modes, target types). No redundancy with schema property descriptions.
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?
Adequate for a setter with high schema coverage, but lacks behavioral depth expected for a mutation tool without annotations. Does not address output behavior or state modification guarantees.
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?
With 100% schema coverage, description adds semantic context by mapping 'appearance' enum to 'dark mode or tinted mode' and 'target' enum to 'icon background fill or layer group', clarifying the domain concepts behind the raw values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Set' and specific resource 'appearance overrides' for 'icon background fill or layer group'. Distinguishes from sibling tools like set_fill by specifying 'dark mode or tinted mode' context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus set_fill or set_glass_effects. No mention of prerequisites (e.g., icon existing) or when group_index is required despite schema conditional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but provides minimal behavioral context. It mentions only 'solid colors and gradients' despite the enum supporting 'automatic' and 'none' values. No disclosure of mutation semantics, idempotency, side effects, or error conditions.
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?
Two sentences with zero waste. First sentence establishes core purpose, second clarifies capabilities. Front-loaded and appropriately sized for the complexity level.
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?
With 100% schema coverage and no output schema, the description adequately covers the operation concept but has notable gaps. It fails to mention two valid enum values (automatic, none) and provides no behavioral context for a mutation operation (destructiveness, reversibility).
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 coverage is 100%, establishing baseline 3. The description adds valuable context that this targets the 'background' fill specifically, distinguishing it from potential layer fills (relevant given 'set_layer_position' sibling). This semantic clarification beyond the schema's 'Path to .icon bundle' warrants a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets the 'background fill of an .icon bundle' with specific verb and resource. However, it doesn't explicitly differentiate from sibling tools like 'set_appearances' or 'set_glass_effects' which might also affect visual properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives, prerequisites (e.g., bundle must exist), or when to choose between fill types. The agent gets no signal about whether this overwrites existing fills or how it interacts with layer-based fills.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. 'Configure' implies mutation but lacks disclosure on reversibility, partial update behavior (only bundle_path is required), error handling for invalid group_index, or whether changes are persistent/in-memory.
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?
Single, dense sentence (13 words) with zero waste. Front-loaded with action verb, parenthetical specifics earn their place by enumerating effect types, and scope qualifiers ('layer group', 'existing') precisely constrain applicability.
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?
Adequate for an 11-parameter configuration tool with good schema coverage. Captures domain-specific context (Liquid Glass, .icon bundle). Missing: partial update pattern (optional params), validation behavior, or distinction from rendering operations. Minimum viable given schema richness.
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?
Schema has 100% description coverage, establishing baseline 3. Description adds conceptual grouping by listing effect categories (specular, blur, shadow, translucency) but doesn't add syntax, validation constraints, or parameter interdependencies beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Configure') + specific resource ('Liquid Glass effects') + scope ('layer group in existing .icon bundle'). Distinguishes from create_icon by requiring 'existing' bundle and implies group-level vs layer-level operations compared to set_fill. However, it doesn't clarify relationship with sibling render_liquid_glass.
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?
Provides implied guidance by specifying 'existing .icon bundle' (suggesting use after create_icon) and 'layer group' (suggesting group vs layer scope). Lacks explicit when-to-use/when-not guidance or named alternatives for glass rendering vs configuration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure but fails to clarify critical behavioral traits: whether changes are persistent, if they overwrite existing values, what happens on invalid indices, or any side effects on other layers.
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?
Two sentences with zero waste. The first sentence front-loads the core capability with specific technical details (.icon bundle, layer/group), while the second provides immediate usage context.
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?
Adequate for read-only tools but insufficient for this mutation operation. With 100% schema coverage, parameter documentation is complete, but the description omits mutation implications (persistence, reversibility) and conditional parameter requirements (layer_index dependency) that would aid safe invocation.
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 has 100% coverage establishing baseline 3. The description adds conceptual value by grouping scale/offset parameters into the holistic concepts of 'zoom' and 'reposition', making the relationship between offset_x/offset_y and scale clearer than the isolated schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (set scale and offset) and target resource (layer or group within .icon bundle). It effectively distinguishes from siblings like set_fill or set_appearances by specifying geometric transformations (zoom/reposition), though it doesn't explicitly name alternatives.
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?
Provides implied usage context ('Use to zoom the glyph in/out or reposition it') but lacks explicit when-to-use guidance, prerequisites (e.g., bundle must exist), or when-not-to-use conditions compared to sibling tools.
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 provided, so description carries full burden. It correctly identifies the output format (.icon bundle) and target platform (Xcode 26). However, it fails to disclose critical file-system behaviors: whether it overwrites existing bundles, creates intermediate directories, or handles naming conflicts. Missing idempotency or safety information for a filesystem-writing tool.
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?
Two sentences with zero waste. First sentence establishes inputs and action; second sentence clarifies output destination and format. Perfectly front-loaded with no filler content.
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 rich parameter set (13 parameters controlling visual effects like specular, blur, translucency), the description is minimal. It doesn't explain what the resulting icon looks like, what Liquid Glass effects are, or how the various rendering parameters interact. However, with complete schema coverage and no output schema to document, it meets baseline adequacy.
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?
Schema description coverage is 100%, so the schema adequately documents all 13 parameters. The description mentions 'foreground image' and 'background color', which maps to required parameters, but adds no semantic value beyond the schema's existing descriptions (e.g., doesn't explain Liquid Glass, specular highlights, or how glyph_scale affects the composition).
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?
Specific verb 'Create' with clear resource 'Apple Icon Composer .icon bundle' and input specification 'from a foreground image and background color'. The mention of 'Xcode 26' and the specific output format distinguishes this from sibling tools like read_icon (inspection) or add_layer_to_icon (modification).
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?
No explicit when-to-use or when-not-to-use guidance is provided. However, the specificity of inputs (foreground_path, bg_color) versus siblings implies this is the entry point for new icon creation versus manipulation of existing icons. Lacks explicit guidance on prerequisites like file permissions or when to use export_preview instead.
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 provided, so description carries full burden. Mentions file deletion via 'cleans up orphaned asset files' but omits critical behavioral details: permanent deletion risks, index shifting after removal, or error conditions for invalid indices.
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?
Two sentences with zero waste. Primary action front-loaded in first sentence; optional secondary behavior in second. Every word earns its place.
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?
Adequate for parameter understanding given complete schema coverage, but insufficient behavioral disclosure for a destructive file operation lacking annotations or output schema. Missing guidance on transaction safety or undoability.
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 coverage is 100%, establishing baseline 3. Description adds domain context confirming this operates on '.icon bundle' files and contextualizes cleanup_assets as handling 'orphaned' files, slightly enriching the raw schema definitions.
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?
Description uses specific verb 'Remove' with clear resources ('layer or entire group from an .icon bundle'). Effectively distinguishes from siblings like add_layer_to_icon or set_fill by specifying deletion scope.
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?
Implies usage through 'Optionally cleans up orphaned asset files' but lacks explicit when-to-use guidance, prerequisites (e.g., bundle must exist), or differentiation from read_icon for inspection.
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 provided, the description carries the full burden. It compensates effectively by disclosing return values ('manifest JSON and list of assets') since no output schema exists. However, it omits safety declarations (read-only nature) and error conditions (e.g., what happens if bundle_path doesn't exist).
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 consists of two efficient sentences with zero waste. It is front-loaded with the action ('Read and inspect') and immediately clarifies the return value. Every word serves a distinct purpose (action, resource, return type).
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?
Given the tool's simplicity (single parameter, read operation) and lack of output schema, the description adequately compensates by describing the return structure. It is complete enough for invocation, though mentioning error handling (e.g., invalid path behavior) would achieve full completeness.
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?
Schema coverage is 100% for the single 'bundle_path' parameter, establishing a baseline of 3. The description reinforces that this path should point to an 'existing' bundle, adding minor semantic context about the file state requirement, but does not add format details or examples beyond the schema.
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 specific verbs ('Read and inspect') and identifies the exact resource ('existing .icon bundle'). It clearly distinguishes this tool from mutation siblings like 'create_icon', 'add_layer_to_icon', and 'set_*' tools by emphasizing the 'read' and 'existing' aspects.
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?
While the description implies usage through the word 'existing' (suggesting use for inspection rather than creation), it does not explicitly state when to use this versus 'create_icon' or when to prefer the various 'set_*' and modification tools. No explicit alternatives or exclusions are provided.
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 provided, so description carries full burden. It discloses scope (all groups, all four effect types) but omits mutation safety details like whether this overwrites existing individual effect states or if the operation is reversible.
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?
Single dense sentence with zero waste. Front-loaded with action verb, parenthetical enumeration is efficient, and 'at once' placement clearly signals bulk operation. Every word earns its place.
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?
Appropriate for complexity: explains domain-specific terms (Liquid Glass), scope (every group), and resource (.icon bundle). Lacks only error condition or prerequisite disclosure, which is reasonable given no output schema and simple param structure.
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 has 100% coverage (baseline 3). Description adds value by enumerating the specific effects (specular, shadow, blur, translucency) that the 'enabled' boolean controls, providing semantic context beyond the schema's generic 'FX' reference.
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?
Excellent specificity: verbs 'Enable or disable', resource '.icon bundle', and scope 'all Liquid Glass effects... on every group at once'. The phrase 'at once' effectively distinguishes this from the granular sibling set_glass_effects.
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?
Provides implied guidance through 'at once' suggesting bulk operations, but lacks explicit when-to-use/when-not-to-use guidance or named alternatives (e.g., does not reference set_glass_effects for individual control).
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 provided, so description carries full burden. Discloses key behavioral traits: output format constraints (no alpha, opaque), default dimensions (1024x1024), and flat rendering (no Liquid Glass). Missing only file overwrite behavior and error conditions.
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?
Two tightly constructed sentences with zero redundancy. Front-loaded with purpose, second sentence delivers technical specifications. Every word earns its place.
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?
No output schema exists, but description compensates by detailing output characteristics (format, opacity, dimensions). Given the 3 parameters are fully schema-documented and the domain complexity is moderate, the description provides sufficient context for correct invocation.
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?
Schema coverage is 100%, establishing baseline 3. Description reinforces the size default ('1024x1024 (default)') and implies output_path produces a PNG, but doesn't add syntax details beyond schema descriptions.
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?
Excellent specificity: 'Export a flat marketing PNG for App Store Connect' provides exact verb, resource, and destination platform. Explicitly distinguishes from siblings by stating 'No Liquid Glass effects' (contrasting with render_liquid_glass) and 'flat' (contrasting with export_preview).
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?
Provides clear context (App Store Connect upload requirements) and constraints (no alpha channel, opaque PNG). Implicitly signals when not to use it ('No Liquid Glass effects'), though it doesn't explicitly name render_liquid_glass as the alternative for that use case.
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 provided, description carries full burden and discloses rendering pipeline (ictool default, flat composite fallback) and external dependency (Icon Composer). Could improve by noting output format (PNG) or side effects like file overwrite behavior.
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?
Two efficient sentences with zero waste. First sentence establishes core purpose and rendering engine; second lists key features. Information is front-loaded and every clause earns its place.
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?
Appropriately complete for a 10-parameter preview tool. Schema handles parameter specifics; description focuses on rendering architecture and key capabilities. Lacks mention of PNG output (documented in schema) but sufficient given complexity and rich schema.
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 has 100% description coverage (baseline 3). Description adds semantic value by explaining 'Liquid Glass' vs 'flat' rendering modes (contextualizing the 'flat' parameter) and highlighting canvas/zoom features, guiding effective parameter combination.
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?
Description uses specific verb 'Render' with resource '.icon bundle' and qualifies with 'preview' to distinguish from sibling 'export_marketing'. Mentions specific technology 'Apple's ictool/Liquid Glass' to differentiate from 'render_liquid_glass' and other tools.
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?
Provides implicit guidance by describing fallback behavior (flat composite when Icon Composer unavailable) and mentions 'flat' override capability. However, lacks explicit when-to-use guidance versus siblings like 'export_marketing' or 'read_icon'.
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 description carries full burden. It discloses external dependency (Icon Composer.app), underlying tool (ictool), and rendering fidelity (matches iOS 26). Could explicitly state that it writes to filesystem, though 'Render' and output_path schema hint at this.
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?
Three sentences, zero waste: first defines function, second establishes fidelity guarantee, third states critical prerequisite. Front-loaded with essential information.
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?
For a 15-parameter rendering tool with no output schema, description covers prerequisites, external dependencies, and rendering behavior adequately. The schema documents output format (PNG), so the absence of output schema is mitigated.
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 has 100% coverage with excellent detail (e.g., light_angle controls 'specular highlights'). Description adds semantic cohesion by framing all parameters as serving 'Liquid Glass' rendering, helping the agent understand why parameters like tint_color and glass effects exist together.
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?
Excellent specificity: verb 'Render', resource 'Liquid Glass preview', technology 'Apple's ictool', and fidelity claim 'exact same rendering as iOS 26'. Clearly distinguishes from sibling export_preview by focusing on Liquid Glass effects and ictool integration.
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?
States prerequisite 'Requires Icon Composer.app installed' but lacks explicit guidance on when to use this vs sibling tools (e.g., export_preview) or when-not-to-use. Usage must be inferred from the Liquid Glass specificity.
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:
How to claim the server?
If you are the author of the server, you simply need to authenticate using GitHub.
However, if the MCP server belongs to an organization, you need to first add glama.json to the root of your repository.
{
"$schema": "https://glama.ai/mcp/schemas/server.json",
"maintainers": [
"your-github-username"
]
}Then, authenticate using GitHub.
Browse examples.
How to make a release?
A "release" on Glama is not the same as a GitHub release. To create a Glama release:
- Claim the server if you haven't already.
- Go to the Dockerfile admin page, configure the build spec, and click Deploy.
- Once the build test succeeds, click Make Release, enter a version, and publish.
This process allows Glama to run security checks on your server and enables users to deploy it.
How to add a LICENSE?
Please follow the instructions in the GitHub documentation.
Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear on the server after some time, you can manually trigger a new scan using the MCP server admin interface.
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.
Latest Blog Posts
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/ethbak/icon-composer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server