Agent-readable static icon service (Lucide, Heroicons, Tabler, Simple Icons) on Cloudflare Workers. Provides 10,000+ open-source icons searchable by name or natural language, with SVG/PNG rendering and MCP server endpoint.
IconServe defines 3 tools with complete input schemas and descriptions. All tools follow verb_noun naming (search_icons, get_icon, list_sets). Schemas include proper types, descriptions, and constraints (enums for format/set, integer bounds for size/stroke). Descriptions are concise (40-80 chars) and action-oriented. However, output schemas are not documented, LLMs cannot predict response structure for chaining. Error handling is absent from tool definitions. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only operations. Parameter descriptions lack dependency hints (e.g., 'set' parameter doesn't explain how to discover valid sets).
Get a specific icon with optional styling (color, size, stroke, format)
List all available icon sets with counts, licenses, and available styles
Search icons by keyword or natural language query
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining or result extraction.
No tool annotations despite all tools being read-only. Missing readOnlyHint and idempotentHint prevent LLMs from optimizing retry logic and caching strategies.
Parameter 'set' lacks discovery guidance. Description does not explain how to learn valid icon sets (lucide, heroicons, tabler, simple-icons), should reference list_sets or provide enum.
No error handling guidance in tool definitions. LLMs cannot recover from 'icon not found', 'invalid color format', or 'size out of range' errors.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | <=2025-11-25 | v2 |
search_icons 'limit' parameter lacks validation bounds in description. Should state 'default 20, max 100' to prevent LLMs from requesting unreasonable result counts.