{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T01:18:11.829Z","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations.md","server":{"slug":"io-usefulapi-thinkreservations","name":"ThinkReservations MCP by usefulapi","registryName":"io.usefulapi/thinkreservations","description":"Read rooms, rates, inventory, reservations and price quotes in ThinkReservations.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"thinkreservations","type":"remote","identifier":"https://thinkreservations.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations","version":"1.5.3","transport":null,"scoredAt":"2026-11-05T15:02:25.616Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":18},{"date":"2026-10-31","total":65}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"thinkreservations","type":"remote","identifier":"https://thinkreservations.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations.md"}],"facts":[{"label":"Endpoint","value":"https://thinkreservations.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.5.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"thinkreservations_get_hotel","title":null,"description":"Get the basic details of the property (hotel) the API key is bound to. Needs scope read:hotel.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":35},{"name":"thinkreservations_list_rooms","title":null,"description":"List the rooms of the property: name, description, room type and whether the room is active. Needs scope read:room.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":37},{"name":"thinkreservations_list_room_types","title":null,"description":"List the room types (name and id). Use the ids to filter inventory and daily rates. Needs scope read:room.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":37},{"name":"thinkreservations_list_rate_types","title":null,"description":"List the rate types the property offers, with their policies. Needs scope read:rate.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":30},{"name":"thinkreservations_get_rate_type","title":null,"description":"Get one rate type and its policies by id. Needs scope read:rate.","inputs":[{"name":"rate_type_id","type":"string","required":true,"description":"Rate type id from thinkreservations_list_rate_types."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"thinkreservations_get_daily_rates","title":null,"description":"Get the day-by-day price, minimum-stay rules and closed-to-arrival restrictions of one rate type for a date range. Needs scope read:rate.","inputs":[{"name":"end_date","type":"string","required":true,"description":"Last date, yyyy-mm-dd."},{"name":"rate_type_id","type":"string","required":true,"description":"Rate type id."},{"name":"room_type_id","type":"string","required":false,"description":"Only this room type."},{"name":"start_date","type":"string","required":true,"description":"First date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"thinkreservations_list_promotions","title":null,"description":"List the promotions configured for the property. Needs scope read:rate.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":26},{"name":"thinkreservations_list_reservations","title":null,"description":"List reservations (paged). Filter by stay dates, creation time or last-modified time (give at least one filter). Guest contact details appear only if the key has scope read:customer; otherwise customer is null. Needs scope read:reservation.","inputs":[{"name":"created_at_end_date_time","type":"string","required":false,"description":null},{"name":"created_at_start_date_time","type":"string","required":false,"description":null},{"name":"page","type":"integer","required":false,"description":"Page number, starts at 0."},{"name":"size","type":"integer","required":false,"description":"Reservations per page (default 10)."},{"name":"sort","type":"string","required":false,"description":"Sort expression, as the API reference describes."},{"name":"stay_on_end_date","type":"string","required":false,"description":"Reservations with a stay on or before this date."},{"name":"stay_on_start_date","type":"string","required":false,"description":"Reservations with a stay on or after this date."},{"name":"updated_at_end_date_time","type":"string","required":false,"description":null},{"name":"updated_at_start_date_time","type":"string","required":false,"description":"Last modified from this time. Use for incremental sync."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":197},{"name":"thinkreservations_get_inventory","title":null,"description":"Get the daily inventory (units left) per room type for a date range. Needs scope read:availability.","inputs":[{"name":"end_date","type":"string","required":true,"description":"Last date, yyyy-mm-dd."},{"name":"room_type_id","type":"string","required":false,"description":"Only this room type."},{"name":"start_date","type":"string","required":true,"description":"First date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":74},{"name":"thinkreservations_list_blackouts","title":null,"description":"List the blackouts in a date range: room-specific blocked dates (room id and date pairs), not whole-property closures. Needs scope read:availability.","inputs":[{"name":"end_date","type":"string","required":true,"description":"Last date, yyyy-mm-dd."},{"name":"start_date","type":"string","required":true,"description":"First date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":71},{"name":"thinkreservations_get_availability","title":null,"description":"Search what the property can sell for a stay: per bookable unit, the rate types with price for the whole stay, fees, taxes, deposit and total. Read-only quote, books nothing. Needs scope read:availability.","inputs":[{"name":"child_ages","type":"array","required":false,"description":"One age per child."},{"name":"coupon_code","type":"string","required":false,"description":"A promotion code the hotel has published."},{"name":"end_date","type":"string","required":true,"description":"Check-out date, yyyy-mm-dd."},{"name":"number_of_adults","type":"integer","required":false,"description":"Adults (default 2)."},{"name":"number_of_children","type":"integer","required":false,"description":"Children (default 0)."},{"name":"number_of_pets","type":"integer","required":false,"description":null},{"name":"start_date","type":"string","required":true,"description":"Check-in date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":155}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T15:02:25.000Z","track":"remote","endpoint":"https://thinkreservations.usefulapi.io/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"thinkreservations.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-31","recent":[{"id":"chg_01a19609-dcef-7716-a159-3275f16db234","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations#chg-chg_01a19609-dcef-7716-a159-3275f16db234"},{"id":"chg_01a19609-dcf0-7440-bf62-a2021a08e277","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations#chg-chg_01a19609-dcf0-7440-bf62-a2021a08e277"},{"id":"chg_01a19609-dcf0-79e0-84fe-9cd5b7821910","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations#chg-chg_01a19609-dcf0-79e0-84fe-9cd5b7821910"},{"id":"chg_01a19609-dcf0-7ec7-8f81-04a0c7affc5c","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations#chg-chg_01a19609-dcf0-7ec7-8f81-04a0c7affc5c"},{"id":"chg_01a19609-dcf1-758a-b6b6-c6bdbcffc6e5","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations#chg-chg_01a19609-dcf1-758a-b6b6-c6bdbcffc6e5"},{"id":"chg_01a19609-dcf1-7ada-a07d-90b72870f5be","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations#chg-chg_01a19609-dcf1-7ada-a07d-90b72870f5be"},{"id":"chg_01a19609-dcf2-7292-ac37-3d0b5e7d8151","kind":"score.total_changed","summary":"Trust score (65 → 18)","materiality":"functional","direction":"regression","scoreDelta":-47,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations#chg-chg_01a19609-dcf2-7292-ac37-3d0b5e7d8151"},{"id":"chg_01a193fe-36bd-7380-8202-a7a5b84feb09","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations#chg-chg_01a193fe-36bd-7380-8202-a7a5b84feb09"},{"id":"chg_01a19279-e912-7637-9cdc-e21029a614b7","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations#chg-chg_01a19279-e912-7637-9cdc-e21029a614b7"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations","markdown":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-thinkreservations/thinkreservations.xml","external":[{"label":"Remote endpoint","href":"https://thinkreservations.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/thinkreservations/"}]}}