FastMCP server for Amazon Photos — search, browse, upload, download, and manage your photo library
The server has solid naming conventions (all tools start with action verbs: check_, search_, get_, list_, trash_, restore_) and consistent descriptions. However, there are significant gaps in output schema documentation, parameter descriptions lack detail, and error handling is minimal. Most tools have good descriptions (150-200 chars) but no guidance on what fields to expect in responses. Parameters like 'query' in search_photos lack format/constraint details. Error responses return raw exceptions rather than actionable recovery guidance.
Test the connection to Amazon Photos and return account storage usage. Use this first to verify cookies are valid and the API is accessible.
Get Amazon's auto-generated aggregations (people, things, locations, dates, etc.).
Display the folder tree structure of your Amazon Photos library.
Get recent photos from your Amazon Photos library.
Get current Amazon Photos storage usage statistics.
Get recent videos from your Amazon Photos library.
Output schemas are not documented. Tools like search_photos, get_photos, get_videos return list[dict] but the schema of each dict is never specified. LLMs cannot reliably extract fields from responses when the structure is undocumented.
Parameter 'query' in search_photos lacks format constraints. The description mentions filters but does not explain valid syntax, max length, or which operators are supported. This invites hallucinated queries.
Destructive operations (trash_items, restore_items) lack confirmation or dry-run support. An agent could irreversibly delete photos without any safeguard or undo mechanism.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 17 | - | v1 |
List all folders in your Amazon Photos library.
List items currently in the Amazon Photos trash.
Restore items from trash in Amazon Photos.
Search photos/videos by date.
Search photos by what's in them (Amazon's auto-detected labels).
Search your Amazon Photos library with a query string. Supports filters like: - type:(PHOTOS) or type:(VIDEOS) - things:(beach AND sunset) - timeYear:(2024) timeMonth:(6) - location:(USA#OH#Columbus) - extension:(jpg) - name:(vacation*)
Move items to the trash in Amazon Photos.
Error responses are unactionable. Tools return raw exception tracebacks (see check_connection returning 'traceback': traceback.format_exc()) rather than classified errors with recovery guidance. An LLM cannot self-correct from a stack trace.
Pagination missing for large result sets. Tools like search_photos accept max_results up to 200, but there is no next_cursor, offset, or page token mechanism. If results exceed 200, agents cannot retrieve the full dataset.
Parameter descriptions lack type specificity. 'media_type' in search_by_date says '"PHOTOS" or "VIDEOS"' but does not state this as an enum constraint. LLMs may guess at case variations or alternate spellings.
No response chaining. If search_photos returns a list of photos, it does not include the node_id or unique identifier needed to call trash_items or other downstream operations. This forces extra discovery calls.
No idempotence guarantees. Tools like search_photos may return different results on repeated calls if the underlying library state changes. No documentation of whether operations are safe to retry.