CI Treasure Hunt

Contact Improvisation events, teachers, venues and communities worldwide. Read-only.

Should I use this

Quality & Safety

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

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,716Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.34% 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": {
    "directory": {
      "url": "https://citreasurehunt.com/api/mcp"
    }
  }
}

Remote endpoints

https://citreasurehunt.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_events(country, city, from, to, type, ...)

Find Contact Improvisation events worldwide: festivals, workshops, intensives, retreats, long jams, residencies, jams and classes. Upcoming by default; a past 'from' date also searches ended events. Use for questions like 'CI festivals in Germany this summer', 'workshops with <teacher>' or 'when was X last year'. Filter by country, city, dates, type, practice or free text. Returns up to 20 events sorted by start date, each with id and citreasurehunt.com URL, plus the total match count. Call get_event for prices, teachers and the full description.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "description": "Country as ISO code (\"PT\") or English name (\"Portugal\").",
      "type": "string"
    },
    "city": {
      "description": "City name, e.g. Berlin.",
      "type": "string"
    },
    "from": {
      "description": "Window start, YYYY-MM-DD. Default today. Includes events still running on or after this date; a past date also returns ended events.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "to": {
      "description": "Window end: the latest start date, YYYY-MM-DD.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "type": {
      "description": "Event type.",
      "type": "string",
      "enum": [
        "festival",
        "workshop",
        "intensive",
        "retreat",
        "long_jam",
        "training",
        "residency",
        "camp",
        "jam",
        "class"
      ]
    },
    "practice": {
      "description": "Practice tag, e.g. \"contact_improvisation\" (default), \"conscious_dance\", \"axis_syllabus\", or \"any\" for all practices.",
      "type": "string"
    },
    "query": {
      "description": "Free text matched against title, description and place, e.g. a teacher's name or 'silent'.",
      "type": "string"
    },
    "limit": {
      "description": "Maximum results, 1 to 20. Default 10.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_event(id)

Get the full listing of one event: dates and times, venue and address, description, prices, teachers, organizers, level and languages. Use after search_events, or when the user gives a citreasurehunt.com event link. Accepts the event id (e.g. 'W27r') or the URL.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 2,
      "description": "Event id (e.g. 'W27r'), its slug, or its citreasurehunt.com URL."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_teachers(query, country, city, role, limit)

Find Contact Improvisation teachers, organizers and musicians by name, or by where they are based. Use for 'who teaches CI in <city>' or to look up a person mentioned in an event. Returns short profiles with slug and URL; call get_teacher for the full bio and their upcoming events.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Name or words from their bio.",
      "type": "string"
    },
    "country": {
      "description": "Where they are based, ISO code or English name.",
      "type": "string"
    },
    "city": {
      "description": "City they are based in.",
      "type": "string"
    },
    "role": {
      "type": "string",
      "enum": [
        "teacher",
        "organizer",
        "musician"
      ]
    },
    "limit": {
      "description": "Maximum results, 1 to 20. Default 10.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_teacher(slug)

Get one person's public profile: bio, where they are based, practices, years of experience and their upcoming events. Use with a slug from search_teachers or from a get_event teacher link.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "description": "Profile slug from search_teachers, e.g. 'mona-ring'."
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_venues(query, country, city, limit)

Find dance studios and retreat centers that host Contact Improvisation classes, jams and events, by name, country or city. Use for 'where is CI taught in <city>' alongside search_communities. Returns venues with slug and URL; call get_venue for the address and upcoming events.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Venue name or words from its description.",
      "type": "string"
    },
    "country": {
      "description": "ISO code or English name.",
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "limit": {
      "description": "Maximum results, 1 to 20. Default 10.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_venue(slug)

Get one venue's public details: address, description, website and the upcoming events it hosts. Use with a slug from search_venues or from a get_event venue link.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "description": "Venue slug from search_venues."
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_communities(country, city, query, limit)

Find local Contact Improvisation communities, the groups that run regular weekly jams and classes, by country, city or name. The primary tool for 'where can I dance CI in <city>' or 'is there a CI jam in <city>'. Returns communities with slug and URL; call get_community for details.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "description": "ISO code or English name.",
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "query": {
      "description": "Community name or words from its description.",
      "type": "string"
    },
    "limit": {
      "description": "Maximum results, 1 to 20. Default 10.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_community(slug)

Get one local community's public details: what it runs, where, in which languages, the people and venues involved, and events it organizes. Use with a slug from search_communities. Group chat invite links and contacts are only on the community's page, not returned here.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "description": "Community slug from search_communities."
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools