Back to tracker
Plugin tracker
Tools
Explore what tracked Claude Connectors and ChatGPT Plugins can actually do. Search by tool, Plugin, Brand, category, verb, or access requirement.
Latest snapshot2026-09-13USmethodology registry-public-v1
Searchable tools
119,491
Authless tools
7,773
Auth required
107,252
Described tools
64,388
119,491 tools
- get_hotel_detailsget · Details for one hotel: address, city, contact fields.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_housekeepingget · Room cleaning jobs. open_only keeps those not yet completed.
A job with no completion time yet is still open. This always returns a
capped page of the most recent jobs, never the full history.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_in_houseget · Guests currently in the hotel: checked in and not yet checked out.
Based on whether the front desk has actually marked a guest as checked in
and not yet checked out, rather than just comparing today's date against
the planned arrival and departure -- an early departure or a guest staying
past checkout would otherwise give the wrong answer.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_invoicesget · Recent folios/invoices, most recent first.
Each invoice shows the stay period it covers -- the start and end date.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_maintenanceget · Room maintenance jobs. open_only keeps those not yet completed.
Includes the promised completion date where one was set, so a job whose
promised date has passed but still isn't marked done is overdue.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_my_hotelsget · List every hotel the calling user may query.
Returns each hotel's id, name (Arabic and English), and city.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_night_auditget · Night audit runs: what each one processed, and whether it succeeded.
The nightly close is where no-shows are flagged, outstanding checkouts are
processed and the occupancy snapshot get_occupancy reads is written. A failed
or missing run is why yesterday's numbers can look wrong.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_occupancyget · The PMS's own occupancy snapshot. Omit hotel_id for the whole portfolio.
Returns what the PMS recorded for its most recent snapshot date, verbatim:
units_count, occupied, available, cleaning, maintenance, booked, and the
percentage the PMS itself computed. The snapshot date is included, because
these are daily rows and the latest one may be yesterday.
TWO THINGS TO KNOW BEFORE QUOTING THE PERCENTAGE.
It can exceed 100%: serviced-apartment-style properties can turn over more
than once a day, and the occupied count reflects stays rather than
distinct rooms. That is the PMS's own arithmetic, reproduced rather than
corrected, so this agrees with what a manager sees in the web app.
It is NOT derived from a room's service-status flag. That flag means the
room is in service, not that someone is currently in it, and conflating
the two overstates occupancy.
For a figure this server can define exactly rather than inherit, use
get_rooms and count the ones whose state is occupied -- but be aware that is a
different question from what the PMS reports here.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_occupancy_trendget · Daily occupancy snapshots over the last N days, oldest first.
Reads the same underlying data get_occupancy uses for today, so a trend
and a spot reading cannot disagree. Percentages are the PMS's own, not
recomputed here.
One entry per snapshot, exactly as the PMS wrote it. A day the night audit
did not run is simply missing rather than filled in -- see get_night_audit
when a gap appears.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_paymentsget · Money actually taken and paid out at one of the caller's hotels.
Cash movement, which is a different question from get_revenue. Revenue is what
the bookings were worth; this is what moved. They will not agree and should not:
a confirmed booking with no deposit yet contributes to one and not the other.
'deposit' is money in, 'withdraw' is money out. Both are reported, plus the
net, all converted to and reported in SAR.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_performanceget · ADR, RevPAR and room-nights for a month. Omit year/month for this month.
ADR (average daily rate) is room revenue divided by room-nights sold.
RevPAR (revenue per available room) is room revenue divided by rooms
available across the month.
Each stay is counted for every night it covers, not just once, and uses
the same confirmed/non-no-show filter as get_revenue so the two figures
agree with each other.
Rooms available is based on the hotel's current room count, treated as
though it applied for the whole month even if a room was added or removed
partway through -- worth knowing since that can make RevPAR look more
precise than it really is.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_registered_guestsget · Guests formally registered against a stay (Shomoos / Ministry of Interior).
This is a narrow, often-empty record type -- most hotels don't use this
specific filing feature. For "who is staying", use get_bookers instead.
A national ID or passport number is never returned, same as get_bookers.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_reservation_detailget · Everything about one booking: stay, room, booker, invoices, extensions.
Invoices, extensions, and ratings are each returned as their own clean
list rather than mixed together, so a booking with several invoices and a
couple of extensions still comes back easy to read rather than as one
tangled, repeated block.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_reservationsget · Recent reservations for one of the caller's hotels, newest first.
Includes cancelled bookings, with their status, so the caller can see them.
Revenue figures deliberately do not -- see get_revenue.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_revenueget · Confirmed revenue for a month. Omit hotel_id for the whole portfolio.
Reflects actual bookings only -- not subscription billing, and not raw
cash movement (see get_payments for that). Cancelled and no-show bookings
are excluded: that exclusion is the difference between a revenue figure
and a sum of rows.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_revenue_by_sourceget · Revenue split by booking channel for a month. Omit year/month for this month.
Uses the same filters as get_revenue -- confirmed, not no-show, by
check-in date -- so the individual channels always add up to the same
total that tool reports.
Bookings with no channel on file are still included, shown as an unnamed
channel, rather than being silently left out of the total.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_room_status_historyget · Recent room status changes: what changed, from what, to what, and why.
Raw numeric status codes are returned rather than guessed labels, since
only code 1 ("in service") is confirmed against the PMS -- the others
aren't reliably named yet, and a wrong guess is worse than a plain number.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_room_typesget · Room categories and their rack rates.
Rates are per day of week, because the PMS prices Friday differently from
Tuesday, plus a monthly and an hourly rate where the property sells them.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_roomsget · Rooms/units at one of the caller's hotels, with occupancy status.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_service_salesget · Extras sold in a month, totalled by direction. Omit year/month for this month.
Amounts are in SAR. Refunds are counted as negative, so the net total is
a straightforward sum, not sales minus refunds.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_servicesget · The hotel's sellable extras and their list prices.
Prices here are plain SAR -- other financial tools in this server convert
from a smaller currency subunit, but this one doesn't need to.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - get_stay_extensionsget · Stays that were extended: the old departure date and the new one.Fandaqah PMSFandaqah
PluginrequiredTravel & Hospitality - Add existing assets to an albumadd · Adds one or more existing assets to the specified album. Assets must already be in the same library as the album (this tool does not upload new assets). Assets already in the album are silently skipped and returned separately as `duplicate_assets`; missing or different-library IDs are skipped and returned as `not_found_assets`. Idempotent: calling with the same IDs twice leaves the album in the same state.Gumnut PhotosGumnut
PluginrequiredContent & Design - Cluster assets by map locationget · Clusters geotagged assets in a map viewport (bounding box) onto a grid of square cells and returns one entry per non-empty cell — its centroid, asset count, and a representative cover asset. Use this to render a clustered map or to count how many photos fall in each part of a viewport at a chosen zoom granularity.
The result is a single un-paginated list capped at 1000 cells; a viewport that is too dense at the given `cell_size` returns 422 (coarsen `cell_size` or zoom in). To list the individual assets behind a cell, call `list_assets` with a tighter bounding box over the same filters. Album and person filters compose using AND. Rating and media type can further restrict the cluster.Gumnut PhotosGumnut
PluginrequiredContent & Design - Create a facecreate · Adds a user-drawn face box to an asset, for a face the detector missed. To remove a face detection instead, use `delete_face`; to introduce a brand-new identity first, use `create_person`.Gumnut PhotosGumnut
PluginrequiredContent & Design - Create a librarycreate · Creates a new, empty photo library for the authenticated user. A library is the top-level container for assets, albums, people, and faces — most users have exactly one. Only create a new library when the user explicitly asks for a separate container.Gumnut PhotosGumnut
PluginrequiredContent & Design - Create a personcreate · Creates a person record for grouping faces. The record may initially have no name and no faces.
To assign an existing face to an existing person, use `update_face` with the target `person_id`.Gumnut PhotosGumnut
PluginrequiredContent & Design - Create an albumcreate · Creates a new, empty album in a library (with optional name and description) and returns it. The album starts empty — follow up with `add_assets_to_album` to populate it. To rename an existing album, use `update_album` instead of creating a new one.Gumnut PhotosGumnut
PluginrequiredContent & Design - Delete a face detectiondelete · Removes one face detection row; the underlying asset and the person this face was assigned to are both preserved.
**Use `update_face` with `person_id=null` instead** when the user wants to disassociate the face from a person without discarding the detection (so re-clustering can try again). Use `delete_person` to remove a person; use `trash_assets` to remove the photo entirely.Gumnut PhotosGumnut
PluginrequiredContent & Design - Delete a persondelete · Deletes the person record; the faces that were attached to this person are not deleted — they become unassigned and will be re-clustered on the next clustering pass.
Use `update_face` with `person_id=null` to detach a specific face without deleting the whole person. Use `delete_face` to remove a face detection entirely.
If a concurrent change to the person's faces collides with the deletion, it returns 409 and nothing is deleted; retry the request unchanged.Gumnut PhotosGumnut
PluginrequiredContent & Design - Delete an albumdelete · Deletes the album itself. Assets that were in the album remain in the library — only the album and its asset-links are removed. Use `trash_assets` to soft-delete the underlying assets, or `remove_assets_from_album` to detach specific assets from an album you want to keep.Gumnut PhotosGumnut
PluginrequiredContent & Design - Get a face detectionget · Fetches one face's details by ID (bounding box, assigned person, timestamps, thumbnail). Use when you already have a `face_id`.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - Get a libraryget · Fetches one library's metadata by ID. Returns the library regardless of trash state.Gumnut PhotosGumnut
PluginrequiredContent & Design - Get a personget · Fetches one person's metadata by ID (name, asset count, thumbnail, etc.). Use this when you already have a `person_id`. The JSON response is metadata only; to get the photos that contain this person, use `search_assets` with `person_ids` or `list_assets` with `person_ids`.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - Get an albumget · Fetches one album's metadata by ID (name, description, cover, counts). Use when you already have an album ID. The JSON response is metadata only and does not include the album's assets — to get the asset IDs or data, use `list_album_assets` or `list_assets` with `album_id`.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - Get an album-asset link recordget · Fetches one album-asset link record by ID (the junction row between an album and an asset). Rarely needed directly; most callers want `get_asset` or `get_album` instead.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - Get an assetget · Fetches one asset and its associated metadata by ID. Use this when you already have a specific asset ID (e.g., from `list_assets`, `search_assets`, or `list_album_assets`) and need its full details. For bulk fetch of multiple known IDs, prefer `list_assets` with the `ids` parameter to avoid N round trips. `asset_urls` are signed URLs for client rendering only; to visually inspect the image pixels, call `view_asset` instead.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - Get asset countsget · Counts assets bucketed by time period — use this to summarize a library (or a filtered slice) without paging through the full timeline. Returns one row per bucket, newest-first by default or oldest-first when `order=asc`, with optional filtering by album, album membership, people, rating, media type, date range, location, or trash state.
To list the actual assets within a bucket, call `list_assets` with the same filters and a `local_datetime_after` / `local_datetime_before` window matching the bucket. Does not filter by image content; for content-based search use `search_assets`.
**Pagination:** When `has_more` is true, pass the last `time_bucket` from `data` as `starting_after_bucket`. Repeat the same `group_by`, `order`, date bounds, and non-date filters. Count bounds, the cursor, and returned bucket starts are timezone-naive local-calendar values.Gumnut PhotosGumnut
PluginrequiredContent & Design - Get the current userget · Returns the profile of the authenticated user (the caller). Use this at the start of a session to ground subsequent calls (e.g., to confirm the caller's identity before making destructive changes). This tool does not accept a user ID; it always returns the authenticated caller.Gumnut PhotosGumnut
PluginrequiredContent & Design - List album-asset link recordslist · Returns paginated *link* records (lightweight join rows between albums and assets) describing which assets are in which albums — each row contains `album_id` + `asset_id` + link timestamps, not the full asset or album metadata. Use this when you specifically need the junction records (for sync or change tracking).
**For most use cases you want a different tool:** use `list_assets` with `album_id` to get the full asset metadata for a specific album; use `list_albums` with `asset_id` to find which albums contain an asset.
**Pagination** is cursor-based: when `has_more` is true, pass the `id` of the last album-asset in `data` as `starting_after_id` to fetch the next page.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - List albums in a librarylist · Returns a paginated list of albums ordered by creation time (newest first), optionally filtered by asset membership or ID. Use this to enumerate a user's albums or to find which albums contain a specific asset (via `asset_id`).
`list_albums` returns album metadata only — to list the assets inside a particular album, use `list_album_assets` or `list_assets` with `album_id`.
**Pagination** is cursor-based: when `has_more` is true, pass the `id` of the last album in `data` as `starting_after_id` to fetch the next page.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - List assets in a librarylist · Returns a paginated list of assets ordered by local capture time (or trash time for trashed assets), newest first by default, optionally filtered by album, person, rating, media type, date range, geographic area, or asset ID. Use this tool for structured browsing and filtering — when the request can be expressed as exact filters on album membership, people, rating, media type, date range, geographic coordinates, or specific asset IDs.
**Location filtering is by coordinate:** pass a radius (`center` + `radius`) or a bounding box (`bbox`) to restrict results to a geographic area. The two modes are mutually exclusive. To count or cluster geotagged assets across a map viewport (how many photos fall in each area) rather than list them, use `get_geo_clusters`.
Album and person filters compose using AND.
**Use `search_assets` instead** when the request involves natural-language image content ('photos of sunsets', 'pictures with my dog'), a place *name* ('photos from Japan'), or any concept requiring semantic understanding of what's in the image. `list_assets` filters by coordinate but not by image content, place name, or caption text.
**To present a curated set of specific assets to the user** (e.g., a hand-picked subset of `search_assets` results), call this tool with `ids=[...]` rather than building a custom gallery — the asset IDs you already have are enough to re-render them through the interactive widget.
**Pagination** is cursor-based: while `has_more` is true, keep fetching with `starting_after_id`.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - List face detectionslist · Returns a paginated list of individual face detections (with bounding boxes), ordered by creation time (newest first), optionally filtered by asset, person, or ID. Each row is a single face in a single asset — a person with many photos will have many face rows.
**Use `list_people` instead** when the user wants the grouped identities ('list everyone in my library') rather than individual face detections. This tool is useful for curating clustering results, finding unassigned faces, or picking a thumbnail face for a person via `update_person.thumbnail_face_id`.
**Pagination** is cursor-based: when `has_more` is true, pass the `id` of the last face in `data` as `starting_after_id` to fetch the next page.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - List librarieslist · Returns libraries owned by the authenticated user (no pagination — users typically have one or a handful). Call this when another tool's `library_id` parameter is required but you don't yet know which libraries exist. A single-library user can usually omit `library_id` on other tools entirely.
By default trashed libraries are excluded. Pass `state=trashed` to list the trash drawer (ordered by most recently trashed) or `state=all` for both.Gumnut PhotosGumnut
PluginrequiredContent & Design - List people in a librarylist · Returns a paginated list of person records, which may be named or unnamed and may have zero or more faces, ordered according to `sort` (newest first by default), optionally filtered by asset, album, name, or ID.
By default only people with a non-null name are returned; pass `name_filter=all` for every person or `name_filter=unnamed` for people whose name is null.
To list the underlying faces for a specific person, use `list_faces` with `person_id`.
**Pagination** is cursor-based: when `has_more` is true, pass the `id` of the last person in `data` as `starting_after_id` to fetch the next page.
Renders as an interactive widget in MCP App-enabled hosts — prefer it over custom visualizations.Gumnut PhotosGumnut
PluginrequiredContent & Design - Merge peoplemerge · Merges one or more source people into the primary person identified by the URL. All faces from source people are reassigned to the primary person. Source people are permanently deleted (this cannot be undone). The primary person's centroid embedding is recalculated.
In the degenerate case where the primary and all sources are unnamed and have zero faces, the primary is auto-deleted by the post-merge centroid recompute and the response is `204 No Content`.Gumnut PhotosGumnut
PluginrequiredContent & Design - Move a library to trashtrash · Moves the library and all its contents into the trash. The library becomes inaccessible by default and can be fully restored within 90 days by calling `restore_library`. After 90 days the library's assets are gradually purged in the background; until the library row itself is removed, restore still works but recovers only the assets not yet purged.
Idempotent — a second call on an already-trashed library no-ops. To trash individual assets without trashing the whole library, use `trash_assets` instead.Gumnut PhotosGumnut
PluginrequiredContent & Design - Move assets to trashtrash · Soft-deletes the given assets. Trashed assets are excluded from default list/search results and are purged after the configured retention window. **Reversible** via `restore_assets` until purge.
To trash an entire library at once instead of enumerating asset IDs, use `trash_library`.Gumnut PhotosGumnut
PluginrequiredContent & Design - Remove assets from an albumremove · Detaches one or more assets from the given album. The assets themselves remain in the library and in any other albums they belong to. Use `trash_assets` to soft-delete the asset entirely. To empty an album completely, call `list_album_assets` to get the links and then remove them, or delete the album itself with `delete_album`.Gumnut PhotosGumnut
PluginrequiredContent & Design - Restore a library from trashrestore · Restores a previously-trashed library so it reappears in default list/search results. Works as long as the library row still exists — once `get_library` returns 404 the row is gone and restore is no longer possible. If the background drain has already started purging assets, restore succeeds but recovers only the assets the drain hasn't gotten to yet.
Pairs with `trash_library`. To restore individual trashed assets within an untrashed library, use `restore_assets` instead.Gumnut PhotosGumnut
PluginrequiredContent & Design
What is Tool Explorer?
Tool Explorer indexes the callable tool names and descriptions attached to public registry profiles. It is useful for seeing what agents can actually invoke, not just which profile exists.
How do category and verb filters work?
Category filters use the live registry category rollup. Verb filters use the public tool insights rollup, so the page stays backed by the same read models as the tracker charts.
Why do auth requirements matter?
Auth requirements show whether a tool is likely usable without account connection, requires authentication, is private, or is unknown in the current snapshot.