{"$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-06T11:31:29.851Z","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook.md","server":{"slug":"io-usefulapi-wubook","name":"WuBook MCP by usefulapi","registryName":"io.usefulapi/wubook","description":"Read WuBook ZaK rooms, availability and reservations; manage inventory and guest check-in.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"wubook","type":"remote","identifier":"https://wubook.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook","version":"1.10.3","transport":null,"scoredAt":"2026-11-06T10:21:45.847Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":-45,"history":[{"date":"2026-11-06","total":18},{"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":66},{"date":"2026-10-30","total":63},{"date":"2026-10-29","total":63},{"date":"2026-10-28","total":62}]},"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":"wubook","type":"remote","identifier":"https://wubook.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook.md"}],"facts":[{"label":"Endpoint","value":"https://wubook.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.10.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"wubook_list_rooms","title":"List rooms","description":"List the physical rooms of the property (id, room type id, name, tags). POST /kp/property/fetch_rooms.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":37},{"name":"wubook_list_room_types","title":"List room types","description":"List the room types (id, name, short name, default price, default occupancy). POST /kp/property/fetch_room_types.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":39},{"name":"wubook_list_rates","title":"List rates","description":"List the rates of the property (id, name, board, currency, standard flag). Use a rate id for prices and restrictions. POST /kp/property/fetch_rates.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":46},{"name":"wubook_list_products","title":"List products","description":"List the products (a room type sold on a board basis: id, room type id, name, default price, occupancy). Product ids are the keys of prices and availability. POST /kp/property/fetch_products.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":55},{"name":"wubook_list_meal_boards","title":"List meal boards","description":"List the meal rules and meal prices per board type (fb, hb, bb, ai) for adults, teens, children and babies. POST /kp/property/fetch_meals_board.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":52},{"name":"wubook_list_extras","title":"List extras","description":"List the extras the property sells (id, name, price, VAT percentage, cost, tags). POST /kp/property/fetch_extras.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":41},{"name":"wubook_get_inventory_symbols","title":"Get inventory symbols","description":"The meaning of the short keys in prices and restrictions (p price, a availability, m MinStay, M MaxStay, c closure, ...). POST /kp/inventory/fetch_symbols.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":51},{"name":"wubook_get_room_availability","title":"Get room availability","description":"Availability for a stay: for each room type id, the number of rooms available and the ids of the available physical rooms. The availability count can be lower than the number of listed physical rooms when a reservation has no physical room assigned yet; use the availability count when assessing bookable capacity. POST /kp/inventory/fetch_rooms_availability.","inputs":[{"name":"arrival","type":"string","required":true,"description":"Arrival date, yyyy-mm-dd."},{"name":"departure","type":"string","required":true,"description":"Departure date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"wubook_get_rate_values","title":"Get rate values","description":"Daily prices, availability and restrictions of one rate, starting at a date: for each product id a list with one object per day (p price, a availability, m/M min/max stay, c closed, ...; see wubook_get_inventory_symbols). POST /kp/inventory/fetch_rate_values.","inputs":[{"name":"days","type":"integer","required":true,"description":"Number of days from `from`, 1-366."},{"name":"from","type":"string","required":true,"description":"First day, yyyy-mm-dd."},{"name":"rate_id","type":"integer","required":true,"description":"Rate id (wubook_list_rates)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":121},{"name":"wubook_update_inventory","title":"Update prices, availability and restrictions","description":"WRITE: overwrite daily prices, availability and stay restrictions of one rate. `products` maps a product id to a list of day objects; the first object is the day `from`, the next the following day, and so on. Only the fields you send per day change. Changes can be pushed to connected channels (OTAs) and affect live bookings, so confirm the values with the user first. POST /kp/inventory/write.","inputs":[{"name":"from","type":"string","required":true,"description":"First day the lists start at, yyyy-mm-dd."},{"name":"products","type":"object","required":true,"description":"Product id → one object per day, e.g. {\"12\": [{\"p\": 90, \"a\": 3}, {\"p\": 95}]}. Keys: p price, a availability, m/M min/max stay, ma/Ma by arrival, ni no check-in, no no check-out, c closed, nt no OTA,…"},{"name":"rate_id","type":"integer","required":true,"description":"Rate id (wubook_list_rates)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":221},{"name":"wubook_get_reservation","title":"Get reservation","description":"One reservation by id or by reservation code (XY-0001): status, booker customer id, origin channel, board, dates, price split (rooms, extras, meals), payment, taxes and rooms with occupancy and customer ids. POST /kp/reservations/fetch_one_reservation.","inputs":[{"name":"reservation_code","type":"string","required":false,"description":"Reservation (human) code such as XY-0001."},{"name":"reservation_id","type":"integer","required":false,"description":"Reservation id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":101},{"name":"wubook_list_reservations","title":"List reservations","description":"List reservations, optionally filtered by creation, arrival or departure date ranges (inclusive). Newest first is not guaranteed; page with offset. Returns the page plus next_offset (null when the last page was reached). POST /kp/reservations/fetch_reservations.","inputs":[{"name":"arrival_from","type":"string","required":false,"description":"Arriving on or after. Needs arrival_to."},{"name":"arrival_to","type":"string","required":false,"description":"Arriving on or before."},{"name":"created_from","type":"string","required":false,"description":"Created on or after (yyyy-mm-dd). Needs created_to."},{"name":"created_to","type":"string","required":false,"description":"Created on or before."},{"name":"departure_from","type":"string","required":false,"description":"Departing on or after. Needs departure_to."},{"name":"departure_to","type":"string","required":false,"description":"Departing on or before."},{"name":"limit","type":null,"required":false,"description":"Page size: 8, 16, 32 or 64 (default 32)."},{"name":"offset","type":"integer","required":false,"description":"Reservations to skip (default 0). Pass the previous reply's next_offset."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":204},{"name":"wubook_list_todays_reservations","title":"List today's reservations","description":"Reservations of the property for today (arrivals, departures and stays in house). POST /kp/reservations/fetch_today_reservations.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45},{"name":"wubook_create_reservation","title":"Create reservation","description":"WRITE: create a reservation in ZaK for one guest. Give rooms (room type and optionally the physical room id, with price and currency) and/or products (product id with price and currency). Set assign_rooms to let ZaK pick the physical rooms. This books inventory and is NOT idempotent: calling it twice creates two reservations, so check wubook_get_room_availability first and do not retry on an error without looking the reservation up. POST /kp/reservations/new.","inputs":[{"name":"arrival","type":"string","required":true,"description":"Arrival date, yyyy-mm-dd."},{"name":"assign_rooms","type":"boolean","required":false,"description":"Let ZaK choose physical rooms for entries without a room id."},{"name":"departure","type":"string","required":true,"description":"Departure date, yyyy-mm-dd (after arrival)."},{"name":"guest","type":"object","required":true,"description":"The booker."},{"name":"products","type":"array","required":false,"description":null},{"name":"rooms","type":"array","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":185},{"name":"wubook_check_in","title":"Check in","description":"WRITE: check in the guests of a reservation in ZaK. Applies to every guest of the reservation unless room_customer_ids is given. POST /kp/reservations/do_checkin.","inputs":[{"name":"reservation_code","type":"string","required":false,"description":"Reservation (human) code such as XY-0001."},{"name":"reservation_id","type":"integer","required":false,"description":"Reservation id."},{"name":"room_customer_ids","type":"array","required":false,"description":"Only these reservation-room guest ids (default: all guests)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"wubook_check_out","title":"Check out","description":"WRITE: check out the guests of a reservation in ZaK. Applies to every guest of the reservation unless room_customer_ids is given. POST /kp/reservations/do_checkout.","inputs":[{"name":"reservation_code","type":"string","required":false,"description":"Reservation (human) code such as XY-0001."},{"name":"reservation_id","type":"integer","required":false,"description":"Reservation id."},{"name":"room_customer_ids","type":"array","required":false,"description":"Only these reservation-room guest ids (default: all guests)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":96},{"name":"wubook_undo_check_in","title":"Undo check-in","description":"WRITE: revert the check-in of a reservation in ZaK. POST /kp/reservations/undo_checkin.","inputs":[{"name":"reservation_code","type":"string","required":false,"description":"Reservation (human) code such as XY-0001."},{"name":"reservation_id","type":"integer","required":false,"description":"Reservation id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":66},{"name":"wubook_undo_check_out","title":"Undo check-out","description":"WRITE: revert the check-out of a reservation in ZaK. POST /kp/reservations/undo_checkout.","inputs":[{"name":"reservation_code","type":"string","required":false,"description":"Reservation (human) code such as XY-0001."},{"name":"reservation_id","type":"integer","required":false,"description":"Reservation id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":65},{"name":"wubook_get_customer","title":"Get customer (guest)","description":"One guest record by customer id (from a reservation's booker or room customers): name, country, address, contact, birth data, billing info. Personal data. Identity documents (type, number, expiry) are left out unless include_documents is true. POST /kp/customers/fetch_one.","inputs":[{"name":"customer_id","type":"integer","required":true,"description":"Customer id."},{"name":"include_documents","type":"boolean","required":false,"description":"Also return the guest's identity documents (default false)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":100}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T10:21:45.000Z","track":"remote","endpoint":"https://wubook.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":"wubook.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-28","recent":[{"id":"chg_01a1b060-f20b-7e8f-ace1-0c95f6605e73","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a1b060-f20b-7e8f-ace1-0c95f6605e73"},{"id":"chg_01a196a2-2e55-7386-b43e-3a59e61e8490","kind":"check.unverifiable","summary":"Stability (0.10 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a196a2-2e55-7386-b43e-3a59e61e8490"},{"id":"chg_01a196a2-2e56-70d1-8c4b-47a276c0e732","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-wubook/wubook#chg-chg_01a196a2-2e56-70d1-8c4b-47a276c0e732"},{"id":"chg_01a196a2-2e56-757d-b5f4-5b303a6ea1c8","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a196a2-2e56-757d-b5f4-5b303a6ea1c8"},{"id":"chg_01a196a2-2e56-7a66-b2ed-020edd517dbb","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-wubook/wubook#chg-chg_01a196a2-2e56-7a66-b2ed-020edd517dbb"},{"id":"chg_01a196a2-2e56-7e9b-8f85-30bd819843c9","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a196a2-2e56-7e9b-8f85-30bd819843c9"},{"id":"chg_01a196a2-2e57-737e-96ea-339df6d21bb1","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-wubook/wubook#chg-chg_01a196a2-2e57-737e-96ea-339df6d21bb1"},{"id":"chg_01a196a2-2e57-7813-b279-d80983c28069","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-wubook/wubook#chg-chg_01a196a2-2e57-7813-b279-d80983c28069"},{"id":"chg_01a196a2-2e57-7cbc-a8d7-bc689c39fa57","kind":"score.total_changed","summary":"Trust score (66 → 18)","materiality":"functional","direction":"regression","scoreDelta":-48,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a196a2-2e57-7cbc-a8d7-bc689c39fa57"},{"id":"chg_01a193fb-cca5-729c-8d90-fa7b96056970","kind":"check.verdict","summary":"Authorization (partial → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a193fb-cca5-729c-8d90-fa7b96056970"},{"id":"chg_01a193fb-cca6-7f19-8500-44256741ea0a","kind":"check.verdict","summary":"MCP protocol (fail → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a193fb-cca6-7f19-8500-44256741ea0a"},{"id":"chg_01a193fb-cca7-7eec-803e-fc3d4e9e1a92","kind":"prompt.added","summary":"New prompt “change_prices_or_close_dates_for_sale”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a193fb-cca7-7eec-803e-fc3d4e9e1a92"},{"id":"chg_01a193fb-ccaa-7255-8c23-1f4b683b4f75","kind":"prompt.added","summary":"New prompt “check_availability_before_taking_a_booking”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a193fb-ccaa-7255-8c23-1f4b683b4f75"},{"id":"chg_01a193fb-ccab-72fc-bc15-b4891def75cd","kind":"prompt.added","summary":"New prompt “check_guests_in_or_out”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a193fb-ccab-72fc-bc15-b4891def75cd"},{"id":"chg_01a193fb-ccab-7972-af70-20e1b56326ce","kind":"prompt.added","summary":"New prompt “review_arrivals_and_reservation_details”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a193fb-ccab-7972-af70-20e1b56326ce"},{"id":"chg_01a193fb-ccab-7f3f-a5a4-291355385f4d","kind":"server.version_changed","summary":"Server version (1.6.0 → 1.8.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a193fb-ccab-7f3f-a5a4-291355385f4d"},{"id":"chg_01a193fb-ccac-74c6-8eec-b2532a1f2839","kind":"protocol.version_changed","summary":"MCP protocol version (2025-06-18 → 2025-11-25)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a193fb-ccac-74c6-8eec-b2532a1f2839"},{"id":"chg_01a193fb-ccad-7151-9efc-b1cffea2da9b","kind":"score.total_changed","summary":"Trust score (64 → 66)","materiality":"functional","direction":"improvement","scoreDelta":2,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a193fb-ccad-7151-9efc-b1cffea2da9b"},{"id":"chg_01a19355-8916-7c80-89bb-01830b3f1923","kind":"server.version_changed","summary":"Server version (1.5.0 → 1.6.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a19355-8916-7c80-89bb-01830b3f1923"},{"id":"chg_01a191d6-c8bd-77d2-8e6a-b16e53e3200c","kind":"server.version_changed","summary":"Server version (1.4.2 → 1.5.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook#chg-chg_01a191d6-c8bd-77d2-8e6a-b16e53e3200c"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook","markdown":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-wubook/wubook.xml","external":[{"label":"Remote endpoint","href":"https://wubook.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/wubook/"}]}}