Server has 9 well-named, read-only tools with consistent pagination patterns. All tools have descriptions (avg 120 chars) and input schemas with types. However, output schemas are not documented in the source code, parameter descriptions lack actionable constraints (e.g., no format hints for 'slug'), and error handling is absent. No tool annotations (readOnlyHint, etc.) despite all being read-only. Naming follows verb_noun convention well (list_, search_, find_, get_). Schemas use Zod validation internally but JSON Schema output not visible. Missing: output field documentation, error recovery guidance, and per-parameter format constraints.
Find public FineApp creatives by optional role, location, and category using local filtering on public listing data. Pagination is 0-indexed. The first page is page=0.
Find public FineApp client requests by optional category, location, and status using local filtering on request data. Pagination is 0-indexed. The first page is page=0.
Get available FineApp creative specialties and locations from the public filters endpoint.
Get a public FineApp creative profile and session types by portfolio slug.
Get a public FineApp creative profile by portfolio slug.
Get public session types and packages for a FineApp creative by creative ID.
Output schemas not documented. Tools return complex objects (CreativeCardsResponse, RequestsResponse) but LLMs cannot see field structure, types, or which fields enable chaining. Clients must infer from API responses.
No error handling guidance. Tools lack recovery hints (e.g., 'If slug not found, try search_creatives first'). Errors will be raw API responses with no actionable next steps for LLMs.
Parameter 'slug' lacks format constraints. Description says 'Portfolio slug identifier' but does not specify format (alphanumeric, hyphens allowed?, case-sensitive?). LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
List public FineApp creatives. Pagination is 0-indexed. The first page is page=0. You can optionally filter by category.
List public FineApp client requests. Pagination is 0-indexed. The first page is page=0. You can optionally filter by request status.
Search public FineApp creatives using backend search. Pagination is 0-indexed. The first page is page=0. Use short search terms like 'videographer' or 'Stellenbosch'. You can optionally filter by category.
No tool annotations. All 9 tools are read-only but lack readOnlyHint annotation. Clients cannot distinguish safe tools from destructive ones without parsing descriptions.
Pagination filtering logic is client-side (find_creatives, find_requests use local filtering after fetch). This wastes bandwidth and limits result accuracy. Backend filtering via query params would be more efficient.