udansa

Find dance classes, dance events nearby and dance guide articles.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
92%
Naming quality
100%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin read_page_text

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,182Tokens (tool definitions)
~2.2 KBTypical response size
Moderate attention impact (1.70% 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": {
    "udansa": {
      "url": "https://udansa.com/mcp"
    }
  }
}

Remote endpoints

https://udansa.com/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒search_dance_courses(query, city, style, level, weekday, ...)

Search public dance courses on udansa - the same results as the course search page. Filter by free text, city, dance style (any language), level, weekday, provider and price. Each result has id, title, style, level, city, venue, weekday, start/end, whether it runs continuously ('ongoing'), price ('free' when it costs nothing), free places and the course page URL. Also returns the most common filter values with counts (filter_options) and a link to the same search on udansa. Use get_course_details for one course; booking happens on the course page.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Free text, partial words allowed, e.g. 'Salsa beginners'.",
      "type": "string",
      "maxLength": 100
    },
    "city": {
      "description": "City as listed on udansa, usually the local name ('MΓΌnchen', 'Wien'). English names like 'Munich' are tried as well. Values: filter_options.city or get_search_filter_options.",
      "type": "string",
      "maxLength": 80
    },
    "style": {
      "description": "Dance style name in any language, e.g. 'Bachata', 'Wedding dance', 'Hochzeitstanz'. Values: filter_options.style or get_search_filter_options.",
      "type": "string",
      "maxLength": 80
    },
    "level": {
      "description": "Exact level value from filter_options.level of a search result.",
      "type": "string",
      "maxLength": 40
    },
    "weekday": {
      "description": "Only offers on this weekday.",
      "type": "string",
      "enum": [
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday",
        "saturday",
        "sunday"
      ]
    },
    "provider": {
      "description": "Exact dance school or organizer name from filter_options.provider of a search result; use query for partial names.",
      "type": "string",
      "maxLength": 120
    },
    "price_min": {
      "type": "number",
      "minimum": 0
    },
    "price_max": {
      "type": "number",
      "minimum": 0
    },
    "sort": {
      "type": "string",
      "enum": [
        "relevance",
        "price_asc",
        "price_desc",
        "date_asc"
      ]
    },
    "page": {
      "default": 1,
      "description": "Result page, starting at 1.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "limit": {
      "default": 10,
      "description": "Results per page (1-24, default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 24
    },
    "language": {
      "default": "de",
      "description": "Two-letter language code for texts, style names and page links (de, en, fr, es, it, ...). Default de.",
      "type": "string",
      "minLength": 2,
      "maxLength": 5
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒search_dance_events(query, city, style, level, weekday, ...)

Search upcoming dance events on udansa (parties, workshops, festivals, congresses, balls) - the same results as the event search page. Filter by free text, city, dance style (any language), category, weekday, organizer and price. Recurring events appear once with their next date. Each result has id, title, style, type, city, venue, start/end, price_from (null when the organizer has not published a price; 'free' only when it really costs nothing), how tickets are sold ('udansa', 'external', 'at_the_door'), a short summary and the event page URL. Use get_event_details for tickets and programme.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Free text, partial words allowed, e.g. 'Salsa beginners'.",
      "type": "string",
      "maxLength": 100
    },
    "city": {
      "description": "City as listed on udansa, usually the local name ('MΓΌnchen', 'Wien'). English names like 'Munich' are tried as well. Values: filter_options.city or get_search_filter_options.",
      "type": "string",
      "maxLength": 80
    },
    "style": {
      "description": "Dance style name in any language, e.g. 'Bachata', 'Wedding dance', 'Hochzeitstanz'. Values: filter_options.style or get_search_filter_options.",
      "type": "string",
      "maxLength": 80
    },
    "level": {
      "description": "Exact level value from filter_options.level of a search result.",
      "type": "string",
      "maxLength": 40
    },
    "weekday": {
      "description": "Only offers on this weekday.",
      "type": "string",
      "enum": [
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday",
        "saturday",
        "sunday"
      ]
    },
    "provider": {
      "description": "Exact dance school or organizer name from filter_options.provider of a search result; use query for partial names.",
      "type": "string",
      "maxLength": 120
    },
    "price_min": {
      "type": "number",
      "minimum": 0
    },
    "price_max": {
      "type": "number",
      "minimum": 0
    },
    "sort": {
      "type": "string",
      "enum": [
        "relevance",
        "price_asc",
        "price_desc",
        "date_asc"
      ]
    },
    "page": {
      "default": 1,
      "description": "Result page, starting at 1.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "category": {
      "description": "Exact event category from filter_options.category of a search result, e.g. 'party', 'workshop', 'festival'.",
      "type": "string",
      "maxLength": 60
    },
    "limit": {
      "default": 10,
      "description": "Results per page (1-24, default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 24
    },
    "language": {
      "default": "de",
      "description": "Two-letter language code for texts, style names and page links (de, en, fr, es, it, ...). Default de.",
      "type": "string",
      "minLength": 2,
      "maxLength": 5
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒get_search_filter_options(kind, language)

List every city and dance style that currently has courses (kind 'courses') or events (kind 'events') on udansa, with style names in the requested language. Use the values as city / style filters in search_dance_courses and search_dance_events.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "default": "courses",
      "type": "string",
      "enum": [
        "courses",
        "events"
      ]
    },
    "language": {
      "default": "de",
      "description": "Two-letter language code for the style names.",
      "type": "string",
      "minLength": 2,
      "maxLength": 5
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒get_course_details(id, language)

Full public details of one dance course on udansa: description, styles, level, provider, instructor, venue with address, schedule (start, end or 'ongoing', weekday, upcoming sessions, time zone), price and price options, free places, age limits, waitlist, trial lesson and whether it can be booked online on udansa (booking.reason says why not). Link: url.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Course id, as returned by search_dance_courses."
    },
    "language": {
      "default": "de",
      "description": "Two-letter language code for the page link and style names.",
      "type": "string",
      "minLength": 2,
      "maxLength": 5
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒get_event_details(id, language)

Full public details of one dance event on udansa: title and description in the requested language, category, styles, start and end with time zone, venue, organizer (null for events curated by udansa), artists, programme, ticket categories with price and remaining tickets, add-ons, free places, series (next date), waitlist and whether tickets can be bought on udansa (booking.reason says why not; booking.external_url for external sale). Link: url.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "Event id, as returned by search_dance_events."
    },
    "language": {
      "default": "de",
      "description": "Two-letter language code for translated texts and the page link.",
      "type": "string",
      "minLength": 2,
      "maxLength": 5
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒search_guide_articles(query, section, language, limit)

Search udansa's editorial content: about 1,400 dance guide articles (learning to dance, finding a dance partner, wedding dance, dance styles, etiquette, health), city guides and dance style pages, in 40 languages. Returns titles, short summaries and page URLs; read one with read_page_text.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 120,
      "description": "What the user wants to know, e.g. 'wedding dance first steps'."
    },
    "section": {
      "description": "Limit to guide articles, city pages or dance style pages.",
      "type": "string",
      "enum": [
        "guide",
        "city",
        "dance_style"
      ]
    },
    "language": {
      "default": "de",
      "description": "Two-letter language code.",
      "type": "string",
      "minLength": 2,
      "maxLength": 2
    },
    "limit": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟒read_page_text(url)

Read the text of a udansa content page (guide article, city or dance style page, terms, privacy or cancellation policy, about us) as plain sections plus its FAQ. Pass a URL or path from search_guide_articles, e.g. https://udansa.com/en/dance-guide/... For courses and events use get_course_details / get_event_details.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "udansa URL or path, e.g. /de/tanz-ratgeber/..."
    }
  },
  "required": [
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools