{"$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-05T17:25:41.398Z","url":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp","markdownUrl":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp.md","server":{"slug":"ai-wondel-noclegi","name":"Noclegi MCP","registryName":"ai.wondel/noclegi","description":"Stays in Poland on noclegi.pl: hotels, guest houses, apartments, cottages, total prices for dates.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"noclegi-mcp","type":"remote","identifier":"https://mcp.wondel.ai/noclegi/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp","version":"1.0.0","transport":null,"scoredAt":"2026-11-05T07:39:16.965Z"},"score":{"total":56,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":56},{"date":"2026-11-04","total":56},{"date":"2026-11-03","total":55},{"date":"2026-11-02","total":55}]},"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 fully verified: no authorisation is required to call this server, and 2 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.","HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.","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.none_undeclared","args":{"undeclared_tools":"2"}},{"code":"https.inconclusive","args":{"reason":"plaintext_status","status":"405"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":46,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 1700 tokens (~850/item across 2 items; 2 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"850","items":"2","tools":"2","tokens":"1700","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":10,"verdict":"partial","reasons":["Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"3"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (50% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"50"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 2 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 3 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"2"}},{"code":"toolsafety.manipulation_clean","args":{"units":"3","judged":"3"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["Authorisation not fully verified: no authorisation is required to call this server, and 2 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.","HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement."],"malware":[],"components":[{"slug":"noclegi-mcp","type":"remote","identifier":"https://mcp.wondel.ai/noclegi/mcp","withdrawn":false,"score":56,"current":true,"url":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp","markdownUrl":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp.md"}],"facts":[{"label":"Endpoint","value":"https://mcp.wondel.ai/noclegi/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"noclegi_search","title":"Search accommodation in Poland (noclegi.pl)","description":"Search places to stay in a Polish town or region on noclegi.pl — hotels, guest houses, pensions, apartments, cottages, private rooms, agritourism — with the price for the whole stay, board, guest rating, location and link. Filter by property type, board, minimum rating, free cancellation and total price; sort by price, rating or discount. One results page is up to 50 offers; pass a listing's `slug` to noclegi_object for rooms, rate plans, amenities and the description. Fetched live from noclegi.pl (typically ~1 s via direct fetch; up to ~20 s when it falls back to an unblocker). WITH checkin + checkout, each `price` is the total for the whole stay for the given guests in PLN, incl. taxes and fees (e.g. price_for '2 osoby, 2 noce'); sold-out offers stay listed with price null and available false. WITHOUT dates, `price` is only the site's indicative price for 1 night (price_for '2 osoby, 1 noc'), many offers have none, and the result carries a `note` saying so — pass dates to quote a stay. Result shape: { source, fetchedAt, query, search_url, place: { name, slug, kind, area }, heading, stay: { checkin, checkout, nights } | null, guests: { adults, children_ages }, total_count, page, total_pages, count, listings: [...], note? } — the list key is `listings`; `total_count` counts offers across all pages (use `page` for more). Each listing: { id, slug, url, name, type, stars, city, price, price_before_discount, discount_percent, currency, price_for, board, available, free_cancellation, rating, rating_count, rating_label, lat, lng, image, amenities, labels }. `board` is room_only | breakfast | half_board | full_board | …; `rating` is 0–10; `free_cancellation` is the site's deadline text (Polish) or null; `url` opens the property with the same stay. When a place has few offers the site widens to a radius (the note says so; check `city`). An empty match answers count: 0 with a `note` saying why and what to change — that is a successful result, not an error.","inputs":[{"name":"adults","type":"integer","required":false,"description":"Adults. Default 2."},{"name":"board","type":"string","required":false,"description":"Only offers with this board: room_only, breakfast, half_board, full_board, soft_all_inclusive, all_inclusive."},{"name":"checkin","type":"string","required":false,"description":"Arrival date, YYYY-MM-DD (from today to about a year ahead). Pass together with checkout; omit both for undated results."},{"name":"checkout","type":"string","required":false,"description":"Departure date, YYYY-MM-DD, after checkin — at most 30 nights (the site drops longer stays)."},{"name":"children_ages","type":"array","required":false,"description":"Each child's age in years (0–17), e.g. [4, 9] for two children — prices depend on ages. Default none."},{"name":"free_cancellation","type":"boolean","required":false,"description":"Only offers that can be cancelled free of charge."},{"name":"min_rating","type":null,"required":false,"description":"Only guest ratings of at least 8, 9 or 9.5 (0–10 scale)."},{"name":"no_cache","type":"boolean","required":false,"description":"Force a fresh fetch and bypass this server's result cache (5 min). Default false."},{"name":"page","type":"integer","required":false,"description":"Results page, 1-based (up to 50 offers per page). Default 1."},{"name":"place","type":"string","required":true,"description":"Town or region in Poland, Polish name preferred: 'Zakopane', 'Szklarska Poręba', 'Białka Tatrzańska', 'Mazury', 'Tatry', 'Polskie morze', 'Bieszczady'. Resolved through noclegi.pl's own place search…"},{"name":"price_max","type":"integer","required":false,"description":"Maximum total price for the whole stay, whole PLN (needs checkin/checkout)."},{"name":"price_min","type":"integer","required":false,"description":"Minimum total price for the whole stay, whole PLN (needs checkin/checkout)."},{"name":"sort","type":"string","required":false,"description":"Order: recommended (default — the site's own ranking, which may depend on commission), rating, price_asc / price_desc (by price per person per night), discount."},{"name":"types","type":"array","required":false,"description":"Only these property types (any of them): hotel, apartment, guest_house (dom gościnny), pension (pensjonat), villa (willa), private_room (kwatera prywatna), wooden_cottage (domek drewniany), year_roun…"}],"outputs":[{"name":"count","type":"number","required":true,"description":null},{"name":"fetchedAt","type":"string","required":true,"description":null},{"name":"guests","type":null,"required":false,"description":null},{"name":"heading","type":null,"required":false,"description":null},{"name":"listings","type":"array","required":true,"description":null},{"name":"note","type":null,"required":false,"description":null},{"name":"page","type":"number","required":true,"description":null},{"name":"place","type":"object","required":true,"description":null},{"name":"query","type":"object","required":true,"description":null},{"name":"search_url","type":"string","required":true,"description":null},{"name":"source","type":"string","required":true,"description":null},{"name":"stay","type":null,"required":false,"description":null},{"name":"total_count","type":null,"required":false,"description":null},{"name":"total_pages","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":1051},{"name":"noclegi_object","title":"Get one noclegi.pl property","description":"Full details of one place to stay on noclegi.pl: description, address and coordinates, guest rating and recent reviews, check-in/check-out times, amenities, photos, and every room type with its size, beds, amenities and — for given dates and guests — its rate plans (price for the stay, board, cancellation terms, prepayment). With checkin/checkout it also returns the total price of the cheapest room combination for the guests and the booking link; without dates, `price_from` is the site's best 1-night price in the next ~90 days and the night it applies to. When the dates cannot be booked (sold out, minimum stay) `price` is null and the note carries the site's reason. noclegi.pl does not publish the property's own phone or email — bookings go through the site. Fetched live from noclegi.pl (typically ~1 s via direct fetch; up to ~20 s when it falls back to an unblocker). Result: { source, fetchedAt, query, page_url, object: { id, slug, url, name, type, stars, description, address, geo, rating, rating_count, checkin_time, checkout_time, breadcrumbs, amenities, photos, reviews, stay, price, price_before_discount, discount_percent, currency, price_for, prepayment, selected_rooms, price_from, availability_note, booking_url, rooms: [{ id, name, available_rooms, max_guests, area_m2, beds, amenities, rates: [{ price, price_before_discount, discount_percent, board, price_for, cancellation, prepayment, bookable }] }] }, note? }. Prices in PLN incl. taxes and fees.","inputs":[{"name":"adults","type":"integer","required":false,"description":"Adults. Default 2."},{"name":"checkin","type":"string","required":false,"description":"Arrival date, YYYY-MM-DD (from today to about a year ahead). Pass together with checkout; omit both for undated results."},{"name":"checkout","type":"string","required":false,"description":"Departure date, YYYY-MM-DD, after checkin — at most 30 nights (the site drops longer stays)."},{"name":"children_ages","type":"array","required":false,"description":"Each child's age in years (0–17), e.g. [4, 9] for two children — prices depend on ages. Default none."},{"name":"no_cache","type":"boolean","required":false,"description":"Force a fresh fetch and bypass this server's result cache (5 min). Default false."},{"name":"object","type":"string","required":true,"description":"The property: its `slug` from noclegi_search (e.g. 'apartamenty-apartart-zakopane'), its https://noclegi.pl/<slug> link, or its name (looked up through the site's search)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":547}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T07:39:16.000Z","track":"remote","endpoint":"https://mcp.wondel.ai/noclegi/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=wondel.ai","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-10-23T11:47:25Z","notAfter":"2027-01-21T12:47:21Z","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":"mcp.wondel.ai.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"ai.","outcome":"verified","label":"Verified"},{"zone":"wondel.ai.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":405},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-11-02","recent":[{"id":"chg_01a1a57b-e100-7dde-aa13-b0c14e4f8a95","kind":"score.total_changed","summary":"Trust score (55 → 56)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp#chg-chg_01a1a57b-e100-7dde-aa13-b0c14e4f8a95"},{"id":"chg_01a1a059-c42a-7ce3-9ebb-829ebdb78c0d","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp#chg-chg_01a1a059-c42a-7ce3-9ebb-829ebdb78c0d"},{"id":"chg_01a19c8f-bc10-7add-8f1a-a894e3f3389a","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp#chg-chg_01a19c8f-bc10-7add-8f1a-a894e3f3389a"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp","markdown":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp.md","changelogJson":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/ai-wondel-noclegi/noclegi-mcp.xml","external":[{"label":"Remote endpoint","href":"https://mcp.wondel.ai/noclegi/mcp"},{"label":"Website","href":"https://mcps.wondel.ai/servers/noclegi/"}]}}