POS.DO MCP Server

Discover 356K+ restaurants in 20 countries: search, reviews, cultural context, time-based offers.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
95%
Naming quality
94%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_cultural_context_around_restaurant' name length outside 3-30 rangein get_cultural_context_around_restaurant

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,116Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (0.87% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp-server": {
      "url": "https://pos.do/mcp"
    }
  }
}

Remote endpoints

https://pos.do/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_restaurants(city, query, cuisine, price_max, features, ...)

Search restaurants in a specific city. Filter by cuisine type, price range, and features like outdoor seating, WiFi, delivery. Returns up to 20 results with name, rating, cuisine, price range, address, coordinates, photo, amenities, and current Flow offers.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City name. Examples: 'Madrid', 'New York', 'Milano', 'Barcelona'."
    },
    "query": {
      "type": "string",
      "description": "Free-text search: cuisine, occasion, features (e.g. 'romantic italian terrace')."
    },
    "cuisine": {
      "type": "string",
      "description": "Cuisine filter. Examples: 'italian', 'mexican', 'sushi', 'spanish', 'indian'."
    },
    "price_max": {
      "type": "integer",
      "minimum": 1,
      "maximum": 4,
      "description": "Max price level 1=budget, 4=fine dining."
    },
    "features": {
      "type": "string",
      "description": "Comma-separated feature filters: terrace, wifi, parking, delivery, accessible."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 10
    }
  },
  "required": [
    "city"
  ]
}
🟢get_restaurant_details(slug)

Get the full profile of a restaurant by URL slug. Returns name, address, coordinates, rating, reviews count, phone, opening hours, photos, services, cuisine type, price level, current Flow offers, and cultural context.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Restaurant URL slug. Example: 'anima-e-cuore-osteria-bilbao'."
    }
  },
  "required": [
    "slug"
  ]
}
🟢get_restaurant_reviews(slug, rating, sort, limit, offset)

Get paginated reviews for a restaurant. Filter by star rating, sort by date or rating. Returns review text, author, rating, date, photos, language, owner response, and rating distribution.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Restaurant URL slug."
    },
    "rating": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "description": "Filter by exact star rating."
    },
    "sort": {
      "type": "string",
      "enum": [
        "recent",
        "rating_high",
        "rating_low"
      ],
      "default": "recent"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 30,
      "default": 10
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "required": [
    "slug"
  ]
}
🟢get_flow_offers(slug, date)

POS.DO Flow time-based offers for a restaurant. Off-peak hours have bigger discounts. Returns time slots with discount percentages and remaining covers. Tagline: 'Tu hora, tu precio'.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Restaurant URL slug."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date YYYY-MM-DD (default: today)."
    }
  },
  "required": [
    "slug"
  ]
}
🟡book_flow_reservation(slug, yield_offer_id, guest_name, guest_email, guest_phone, ...)

Make a reservation at a Flow-discounted time slot. Phone must be E.164 (e.g. +34911234567). To make retries safe, send the same Idempotency-Key HTTP header on retries (any UUID); replays within 24h return the original reservation. Rate limited to 5 reservations per email per day and 10 attempts per IP per minute.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Restaurant URL slug."
    },
    "yield_offer_id": {
      "type": "integer",
      "description": "Offer ID returned by get_flow_offers."
    },
    "guest_name": {
      "type": "string"
    },
    "guest_email": {
      "type": "string",
      "format": "email"
    },
    "guest_phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{7,14}$",
      "description": "E.164 format, e.g. +34911234567."
    },
    "party_size": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 2
    },
    "notes": {
      "type": "string"
    }
  },
  "required": [
    "slug",
    "yield_offer_id",
    "guest_name",
    "guest_email",
    "guest_phone"
  ]
}
🟢find_restaurants_near_landmark(landmark, city, radius, limit)

Find restaurants near a famous landmark (monument, museum, park). Returns landmark info from Wikidata + nearby restaurants sorted by walking distance. Examples: 'Sagrada Familia', 'Colosseum', 'Central Park', 'Tour Eiffel'.

Input Schema

{
  "type": "object",
  "properties": {
    "landmark": {
      "type": "string",
      "description": "Landmark name."
    },
    "city": {
      "type": "string",
      "description": "City hint for landmark disambiguation."
    },
    "radius": {
      "type": "integer",
      "minimum": 200,
      "maximum": 5000,
      "default": 1000,
      "description": "Search radius in meters."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 15,
      "default": 10
    }
  },
  "required": [
    "landmark"
  ]
}
🟢get_cultural_context_around_restaurant(slug)

Get cultural context around a restaurant: nearby monuments, museums, parks, historical sites with distance and heritage status. Powered by Wikidata.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Restaurant URL slug."
    }
  },
  "required": [
    "slug"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools
verifiedversion not recorded7 tools