Koskamo

Wondel.ai Noclegi MCP

An MCP server hosted by Wondel.ai that provides live search capabilities for accommodation in Poland via noclegi.pl. It allows agents to search for hotels, guest houses, apartments, and cottages by location, dates, and party size, returning total prices, ratings, and booking links. It also supports fetching detailed property information including room types, rate plans, and amenities.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Wondel.ai Noclegi MCP logo, by Wondel.aiVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-02Operated by Wondel.ai
MCP endpoint (Streamable HTTP)
https://mcp.wondel.ai/noclegi/mcp
Vendor documentation

What its tools do

2 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

2 of 2 have a description · 0 of 2 declare behavior hints · 2 of 2 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to wondel.ai ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for hotels and apartments in Polish towns like Zakopane or Mazury
  • Find total prices for stays based on specific check-in and check-out dates
  • Retrieve detailed property information including amenities and cancellation terms
  • Filter accommodation results by rating, board type, and price range

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
Noclegi 1.0.0
MCP protocol negotiated in check
2025-06-18
Tools
2 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

2 advertised

noclegi_search — Search accommodation in Poland (noclegi.pl)
Advertised by the server during the last successful anonymous check.

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.

noclegi_search input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "place"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Results page, 1-based (up to 50 offers per page). Default 1."
    },
    "sort": {
      "enum": [
        "recommended",
        "rating",
        "price_asc",
        "price_desc",
        "discount"
      ],
      "type": "string",
      "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."
    },
    "board": {
      "enum": [
        "room_only",
        "breakfast",
        "half_board",
        "full_board",
        "soft_all_inclusive",
        "all_inclusive"
      ],
      "type": "string",
      "description": "Only offers with this board: room_only, breakfast, half_board, full_board, soft_all_inclusive, all_inclusive."
    },
    "place": {
      "type": "string",
      "minLength": 1,
      "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 (diacritics optional; a few English names such as 'Warsaw' or 'Baltic coast' are mapped). A https://noclegi.pl/<place> link also works."
    },
    "types": {
      "type": "array",
      "items": {
        "enum": [
          "hotel",
          "apartment",
          "guest_house",
          "pension",
          "villa",
          "private_room",
          "wooden_cottage",
          "year_round_cottage",
          "resort",
          "agritourism",
          "inn",
          "hostel",
          "student_house",
          "sanatorium"
        ],
        "type": "string"
      },
      "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_round_cottage (domek całoroczny), resort (ośrodek wypoczynkowy), agritourism, inn (zajazd), hostel, student_house, sanatorium."
    },
    "adults": {
      "type": "integer",
      "maximum": 30,
      "minimum": 1,
      "description": "Adults. Default 2."
    },
    "checkin": {
      "type": "string",
      "description": "Arrival date, YYYY-MM-DD (from today to about a year ahead). Pass together with checkout; omit both for undated results."
    },
    "checkout": {
      "type": "string",
      "description": "Departure date, YYYY-MM-DD, after checkin — at most 30 nights (the site drops longer stays)."
    },
    "no_cache": {
      "type": "boolean",
      "description": "Force a fresh fetch and bypass this server's result cache (5 min). Default false."
    },
    "price_max": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Maximum total price for the whole stay, whole PLN (needs checkin/checkout)."
    },
    "price_min": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Minimum total price for the whole stay, whole PLN (needs checkin/checkout)."
    },
    "min_rating": {
      "anyOf": [
        {
          "type": "number",
          "const": 8
        },
        {
          "type": "number",
          "const": 9
        },
        {
          "type": "number",
          "const": 9.5
        }
      ],
      "description": "Only guest ratings of at least 8, 9 or 9.5 (0–10 scale)."
    },
    "children_ages": {
      "type": "array",
      "items": {
        "type": "integer",
        "maximum": 9007199254740991,
        "minimum": -9007199254740991
      },
      "maxItems": 10,
      "description": "Each child's age in years (0–17), e.g. [4, 9] for two children — prices depend on ages. Default none."
    },
    "free_cancellation": {
      "type": "boolean",
      "description": "Only offers that can be cancelled free of charge."
    }
  }
}
noclegi_search output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "source",
    "fetchedAt",
    "query",
    "search_url",
    "place",
    "page",
    "count",
    "listings"
  ],
  "properties": {
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "page": {
      "type": "number"
    },
    "stay": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "checkin",
            "checkout",
            "nights"
          ],
          "properties": {
            "nights": {
              "type": "number"
            },
            "checkin": {
              "type": "string"
            },
            "checkout": {
              "type": "string"
            }
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "count": {
      "type": "number"
    },
    "place": {
      "type": "object",
      "required": [
        "name",
        "slug"
      ],
      "properties": {
        "area": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "kind": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "query": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "guests": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "adults",
            "children_ages"
          ],
          "properties": {
            "adults": {
              "type": "number"
            },
            "children_ages": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "source": {
      "type": "string"
    },
    "heading": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "listings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "slug",
          "url",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "lat": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "lng": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "board": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "image": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "stars": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "labels": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "rating": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "amenities": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "available": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "price_for": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "rating_count": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "rating_label": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "discount_percent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "free_cancellation": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "price_before_discount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": {}
      }
    },
    "fetchedAt": {
      "type": "string"
    },
    "search_url": {
      "type": "string"
    },
    "total_count": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "total_pages": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": {}
}
noclegi_object — Get one noclegi.pl property
Advertised by the server during the last successful anonymous check.

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.

noclegi_object input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "object"
  ],
  "properties": {
    "adults": {
      "type": "integer",
      "maximum": 30,
      "minimum": 1,
      "description": "Adults. Default 2."
    },
    "object": {
      "type": "string",
      "minLength": 1,
      "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)."
    },
    "checkin": {
      "type": "string",
      "description": "Arrival date, YYYY-MM-DD (from today to about a year ahead). Pass together with checkout; omit both for undated results."
    },
    "checkout": {
      "type": "string",
      "description": "Departure date, YYYY-MM-DD, after checkin — at most 30 nights (the site drops longer stays)."
    },
    "no_cache": {
      "type": "boolean",
      "description": "Force a fresh fetch and bypass this server's result cache (5 min). Default false."
    },
    "children_ages": {
      "type": "array",
      "items": {
        "type": "integer",
        "maximum": 9007199254740991,
        "minimum": -9007199254740991
      },
      "maxItems": 10,
      "description": "Each child's age in years (0–17), e.g. [4, 9] for two children — prices depend on ages. Default none."
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-02: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
296 ms
95th percentile latency
296 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 296 ms · metadata changed · 2 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http noclegi-mcp https://mcp.wondel.ai/noclegi/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add noclegi-mcp --url https://mcp.wondel.ai/noclegi/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable noclegi-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "noclegi-mcp": {
      "url": "https://mcp.wondel.ai/noclegi/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "noclegi-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.wondel.ai/noclegi/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start noclegi-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "noclegi-mcp": {
      "type": "http",
      "url": "https://mcp.wondel.ai/noclegi/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http noclegi-mcp https://mcp.wondel.ai/noclegi/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "noclegi-mcp": {
      "url": "https://mcp.wondel.ai/noclegi/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "noclegi-mcp": {
      "serverUrl": "https://mcp.wondel.ai/noclegi/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Wondel.ai Noclegi MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Wondel.ai Noclegi MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing