Koskamo

Gratka MCP

Provides access to Polish property listings on Gratka.pl and Morizon.pl, which share a single database. Agents can search for flats, houses, plots, and commercial premises for sale or rent, filtering by location, price, area, and type. It also retrieves detailed offer information including photos and descriptions, leveraging the platform's native GraphQL API for low-latency responses.

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.

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

What its tools do

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

4 of 4 have a description · 0 of 4 declare behavior hints · 4 of 4 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 flats for sale in Kraków under 1 million PLN
  • Find houses for rent in Warsaw with at least 3 rooms
  • Retrieve full details and photos for a specific property listing
  • Compare prices per square meter for plots in Mazowieckie

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

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

Tools

4 advertised

gratka_search — Search Polish real-estate listings (Gratka.pl)
Advertised by the server during the last successful anonymous check.

Search property listings on Gratka.pl, a major Polish real-estate portal: flats, houses, plots, commercial premises, offices, garages and rooms, for sale or for rent, filtered by location (any Polish city, district, town, village, county or voivodeship), price, area, rooms, private sellers only and primary/secondary market, sorted like the site. Returns one results page (up to 35 listings) with each listing's price, price per m², area, rooms, floor, location, seller and link; pass a listing `id` to gratka_offer for the full details. Gratka.pl shows the same listings as Morizon.pl (one platform, different ids and links): search one portal, not both, and use gratka_offer only with Gratka.pl ids. Fetched live from Gratka.pl's own API (typically under 1 s). Result shape: { source, fetchedAt, query, search_url, heading, resolved_location, total_count, page, total_pages, count, listings: [...], note? } — the list key is `listings`; `total_count` counts matches across all pages (use `page` for more); `resolved_location` is the place `location` was matched to. Each listing: { source, id, url, title, category, kind, development, price, price_per_m2, currency, area_m2, rooms, floor, location, street, district, city, region, seller_type, seller_name, date_posted, refreshed_at, image, photo_count, description }. Prices are numbers in PLN (for rent, `price` is the monthly rent) and area is in m²; fields are null when the listing omits them. `kind` is 'new_development' for a developer's unit in a new project (named in `development`), else 'listing'; `seller_type` is agency | private | developer. An empty match answers count: 0 with a `note` saying why and what to change — that is a successful result, not an error.

gratka_search input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "type",
    "transaction"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Results page, 1-based (35 listings per page). Default 1."
    },
    "sort": {
      "enum": [
        "newest",
        "price_asc",
        "price_desc",
        "price_per_m2_asc",
        "price_per_m2_desc",
        "area_asc",
        "area_desc"
      ],
      "type": "string",
      "description": "Order: 'newest' (recently added), 'price_asc' / 'price_desc', 'price_per_m2_asc' / 'price_per_m2_desc', 'area_asc' / 'area_desc'. Default: the site's own order (recently refreshed)."
    },
    "type": {
      "enum": [
        "flat",
        "house",
        "plot",
        "commercial",
        "office",
        "garage",
        "room"
      ],
      "type": "string",
      "description": "Property type: 'flat' = mieszkanie, 'house' = dom, 'plot' = działka/grunt (land), 'commercial' = lokal użytkowy (any commercial premises), 'office' = biuro, 'garage' = garaż, 'room' = pokój (a room to rent — rent only)."
    },
    "market": {
      "enum": [
        "primary",
        "secondary"
      ],
      "type": "string",
      "description": "'primary' = new build from a developer (rynek pierwotny), 'secondary' = resale (rynek wtórny)."
    },
    "area_max": {
      "type": "number",
      "minimum": 0,
      "description": "Maximum area in m² (the plot's area for type 'plot')."
    },
    "area_min": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum area in m² (the plot's area for type 'plot')."
    },
    "location": {
      "type": "string",
      "minLength": 1,
      "description": "Where, as a Polish place name, matched by the site's own location search: a city ('Kraków'), a district ('Warszawa Mokotów', 'Gdańsk Wrzeszcz'), a town or village, a county ('krakowski') or a whole voivodeship ('mazowieckie'). Diacritics are optional; English names other than Warsaw/Cracow are not recognised. Omit to search all of Poland."
    },
    "no_cache": {
      "type": "boolean",
      "description": "Force a fresh fetch and bypass this server's result cache (5 min). Default false."
    },
    "price_max": {
      "type": "number",
      "minimum": 0,
      "description": "Maximum total price in PLN (monthly rent when transaction is 'rent')."
    },
    "price_min": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum total price in PLN (monthly rent when transaction is 'rent')."
    },
    "rooms_max": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1,
      "description": "Maximum number of rooms — not for types 'plot' and 'garage' (use min = max for exactly N)."
    },
    "rooms_min": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1,
      "description": "Minimum number of rooms — not for types 'plot' and 'garage'."
    },
    "transaction": {
      "enum": [
        "sale",
        "rent"
      ],
      "type": "string",
      "description": "'sale' = na sprzedaż (buying), 'rent' = na wynajem (renting; prices are monthly)."
    },
    "private_only": {
      "type": "boolean",
      "description": "Only listings posted by private owners — no agencies or developers. Default false."
    }
  }
}
gratka_search output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "source",
    "fetchedAt",
    "query",
    "search_url",
    "page",
    "count",
    "listings"
  ],
  "properties": {
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "page": {
      "type": "number"
    },
    "count": {
      "type": "number"
    },
    "query": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "source": {
      "type": "string"
    },
    "heading": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "listings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "source",
          "id",
          "url",
          "title"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "floor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "image": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "rooms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "type": "string"
          },
          "region": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "type": "string"
          },
          "street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "area_m2": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "district": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "date_posted": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "development": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "photo_count": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "seller_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "seller_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "price_per_m2": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "refreshed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": {}
      }
    },
    "fetchedAt": {
      "type": "string"
    },
    "search_url": {
      "type": "string"
    },
    "total_count": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "total_pages": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "resolved_location": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "id",
            "name"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "kind": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "name": {
              "type": "string"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": {}
}
gratka_offer — Get one Gratka.pl listing
Advertised by the server during the last successful anonymous check.

Full details of one Gratka.pl listing: price and price per m² (PLN), area, rooms, floor, year built, property type, transaction and market, the address with district and coordinates, seller type and name (agency or developer; private owners are not named), the listing's detail tables as shown on the page (Polish labels and values: condition, rent and charges, building type, heating, ownership, available from…), amenities, the full description and photo URLs. No phone numbers. Get the id from gratka_search. Fetched live from Gratka.pl's own API (typically under 1 s). Result: { source, fetchedAt, listing: { source, id, url, title, active, property_type, transaction, market, kind, development, price, price_per_m2, currency, area_m2, rooms, floor, year_built, address, geo, seller_type, seller_name, agent_name, date_posted, updated, details, amenities, description, photos }, note? } — `note` is set when the listing is no longer active.

gratka_offer input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The listing's id (e.g. '48184615') or its full https://gratka.pl link, as returned by gratka_search."
    },
    "no_cache": {
      "type": "boolean",
      "description": "Force a fresh fetch and bypass this server's result cache (5 min). Default false."
    }
  }
}
morizon_search — Search Polish real-estate listings (Morizon.pl)
Advertised by the server during the last successful anonymous check.

Search property listings on Morizon.pl, a major Polish real-estate portal: flats, houses, plots, commercial premises, offices, garages and rooms, for sale or for rent, filtered by location (any Polish city, district, town, village, county or voivodeship), price, area, rooms, private sellers only and primary/secondary market, sorted like the site. Returns one results page (up to 35 listings) with each listing's price, price per m², area, rooms, floor, location, seller and link; pass a listing `id` to morizon_offer for the full details. Morizon.pl shows the same listings as Gratka.pl (one platform, different ids and links): search one portal, not both, and use morizon_offer only with Morizon.pl ids. Fetched live from Morizon.pl's own API (typically under 1 s). Result shape: { source, fetchedAt, query, search_url, heading, resolved_location, total_count, page, total_pages, count, listings: [...], note? } — the list key is `listings`; `total_count` counts matches across all pages (use `page` for more); `resolved_location` is the place `location` was matched to. Each listing: { source, id, url, title, category, kind, development, price, price_per_m2, currency, area_m2, rooms, floor, location, street, district, city, region, seller_type, seller_name, date_posted, refreshed_at, image, photo_count, description }. Prices are numbers in PLN (for rent, `price` is the monthly rent) and area is in m²; fields are null when the listing omits them. `kind` is 'new_development' for a developer's unit in a new project (named in `development`), else 'listing'; `seller_type` is agency | private | developer. An empty match answers count: 0 with a `note` saying why and what to change — that is a successful result, not an error.

morizon_search input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "type",
    "transaction"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Results page, 1-based (35 listings per page). Default 1."
    },
    "sort": {
      "enum": [
        "newest",
        "price_asc",
        "price_desc",
        "price_per_m2_asc",
        "price_per_m2_desc",
        "area_asc",
        "area_desc"
      ],
      "type": "string",
      "description": "Order: 'newest' (recently added), 'price_asc' / 'price_desc', 'price_per_m2_asc' / 'price_per_m2_desc', 'area_asc' / 'area_desc'. Default: the site's own order (recently refreshed)."
    },
    "type": {
      "enum": [
        "flat",
        "house",
        "plot",
        "commercial",
        "office",
        "garage",
        "room"
      ],
      "type": "string",
      "description": "Property type: 'flat' = mieszkanie, 'house' = dom, 'plot' = działka/grunt (land), 'commercial' = lokal użytkowy (any commercial premises), 'office' = biuro, 'garage' = garaż, 'room' = pokój (a room to rent — rent only)."
    },
    "market": {
      "enum": [
        "primary",
        "secondary"
      ],
      "type": "string",
      "description": "'primary' = new build from a developer (rynek pierwotny), 'secondary' = resale (rynek wtórny)."
    },
    "area_max": {
      "type": "number",
      "minimum": 0,
      "description": "Maximum area in m² (the plot's area for type 'plot')."
    },
    "area_min": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum area in m² (the plot's area for type 'plot')."
    },
    "location": {
      "type": "string",
      "minLength": 1,
      "description": "Where, as a Polish place name, matched by the site's own location search: a city ('Kraków'), a district ('Warszawa Mokotów', 'Gdańsk Wrzeszcz'), a town or village, a county ('krakowski') or a whole voivodeship ('mazowieckie'). Diacritics are optional; English names other than Warsaw/Cracow are not recognised. Omit to search all of Poland."
    },
    "no_cache": {
      "type": "boolean",
      "description": "Force a fresh fetch and bypass this server's result cache (5 min). Default false."
    },
    "price_max": {
      "type": "number",
      "minimum": 0,
      "description": "Maximum total price in PLN (monthly rent when transaction is 'rent')."
    },
    "price_min": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum total price in PLN (monthly rent when transaction is 'rent')."
    },
    "rooms_max": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1,
      "description": "Maximum number of rooms — not for types 'plot' and 'garage' (use min = max for exactly N)."
    },
    "rooms_min": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1,
      "description": "Minimum number of rooms — not for types 'plot' and 'garage'."
    },
    "transaction": {
      "enum": [
        "sale",
        "rent"
      ],
      "type": "string",
      "description": "'sale' = na sprzedaż (buying), 'rent' = na wynajem (renting; prices are monthly)."
    },
    "private_only": {
      "type": "boolean",
      "description": "Only listings posted by private owners — no agencies or developers. Default false."
    }
  }
}
morizon_search output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "source",
    "fetchedAt",
    "query",
    "search_url",
    "page",
    "count",
    "listings"
  ],
  "properties": {
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "page": {
      "type": "number"
    },
    "count": {
      "type": "number"
    },
    "query": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "source": {
      "type": "string"
    },
    "heading": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "listings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "source",
          "id",
          "url",
          "title"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "floor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "image": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "price": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "rooms": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "type": "string"
          },
          "region": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "type": "string"
          },
          "street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "area_m2": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "district": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "date_posted": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "development": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "photo_count": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "seller_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "seller_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "price_per_m2": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "refreshed_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": {}
      }
    },
    "fetchedAt": {
      "type": "string"
    },
    "search_url": {
      "type": "string"
    },
    "total_count": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "total_pages": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "resolved_location": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "id",
            "name"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "kind": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "name": {
              "type": "string"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "additionalProperties": {}
}
morizon_offer — Get one Morizon.pl listing
Advertised by the server during the last successful anonymous check.

Full details of one Morizon.pl listing: price and price per m² (PLN), area, rooms, floor, year built, property type, transaction and market, the address with district and coordinates, seller type and name (agency or developer; private owners are not named), the listing's detail tables as shown on the page (Polish labels and values: condition, rent and charges, building type, heating, ownership, available from…), amenities, the full description and photo URLs. No phone numbers. Get the id from morizon_search. Fetched live from Morizon.pl's own API (typically under 1 s). Result: { source, fetchedAt, listing: { source, id, url, title, active, property_type, transaction, market, kind, development, price, price_per_m2, currency, area_m2, rooms, floor, year_built, address, geo, seller_type, seller_name, agent_name, date_posted, updated, details, amenities, description, photos }, note? } — `note` is set when the listing is no longer active.

morizon_offer input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The listing's id (e.g. 'mzn2047996834') or its full https://www.morizon.pl link, as returned by morizon_search."
    },
    "no_cache": {
      "type": "boolean",
      "description": "Force a fresh fetch and bypass this server's result cache (5 min). Default false."
    }
  }
}

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
408 ms
95th percentile latency
408 ms

Maintenance history

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

  • · probe · passed · 408 ms · metadata changed · 4 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 gratka-mcp https://mcp.wondel.ai/gratka/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 gratka-mcp --url https://mcp.wondel.ai/gratka/mcp

Cursor

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

Cline

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

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start gratka-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "gratka-mcp": {
      "type": "http",
      "url": "https://mcp.wondel.ai/gratka/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 gratka-mcp https://mcp.wondel.ai/gratka/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": {
    "gratka-mcp": {
      "url": "https://mcp.wondel.ai/gratka/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": {
    "gratka-mcp": {
      "serverUrl": "https://mcp.wondel.ai/gratka/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Gratka 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 Gratka 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