SofiaStage Events
Read-only tools for current SofiaStage events, venues, cities, performers, and editorial.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"events": {
"url": "https://api.sofiastage.com/mcp"
}
}
}Remote endpoints
https://api.sofiastage.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢search_events(query, scope, city, date_from, date_to, ...)
Search current cultural events by Sofia/all-city scope, city, date, local time, venue, title, performer, or editorial collection. Returns stable event IDs and cursor pagination.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "Performance-title search text. Bulgarian and Latin transliteration are supported.",
"type": "string",
"minLength": 1,
"maxLength": 160
},
"scope": {
"default": "sofia",
"description": "Default Sofia-only scope, or all cities.",
"type": "string",
"enum": [
"sofia",
"all"
]
},
"city": {
"description": "City name. Providing a city takes precedence over the Sofia default.",
"type": "string",
"minLength": 1,
"maxLength": 160
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"relative_date": {
"type": "string",
"enum": [
"today",
"tomorrow",
"this_weekend",
"next_7_days"
]
},
"time_from": {
"description": "Local Europe/Sofia lower boundary for the first requested date.",
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"time_to": {
"description": "Local Europe/Sofia upper boundary for the last requested date.",
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"venue": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"performer": {
"description": "Performer or creative-team name.",
"type": "string",
"minLength": 1,
"maxLength": 160
},
"editorial": {
"description": "Editorial collection or extra name.",
"type": "string",
"minLength": 1,
"maxLength": 160
},
"include": {
"default": [],
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"stars",
"extras"
]
}
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 25
},
"page_token": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"has_more": {
"type": "boolean"
},
"page_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"applied_filters": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"timezone": {
"type": "string",
"const": "Europe/Sofia"
}
},
"required": [
"events",
"has_more",
"page_token",
"applied_filters",
"timezone"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_event(event_id, include)
Get one event by canonical show_stable_id or legacy source ID, optionally including related performers and editorial entries.
Input Schema
{
"type": "object",
"properties": {
"event_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Canonical show_stable_id (preferred) or legacy source ID."
},
"include": {
"default": [
"stars",
"extras"
],
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"stars",
"extras"
]
}
}
},
"required": [
"event_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"event": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"event"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_catalog(kind, query, scope, city, limit)
Search cities, venues, production titles, performers, or editorial collections. Performer and editorial results are compact; use their detail tools next.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"city",
"venue",
"title",
"performer",
"editorial"
]
},
"query": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"scope": {
"default": "sofia",
"type": "string",
"enum": [
"sofia",
"all"
]
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"city",
"venue",
"title",
"performer",
"editorial"
]
},
"items": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"truncated": {
"type": "boolean"
}
},
"required": [
"kind",
"items",
"truncated"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_performer(name_or_slug)
Get a SofiaStage performer or creative-team profile, biography metadata, public links, and precomputed upcoming events by exact name or route slug.
Input Schema
{
"type": "object",
"properties": {
"name_or_slug": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Exact public name/title or route slug."
}
},
"required": [
"name_or_slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"performer": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"performer"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_editorial(name_or_slug)
Get a SofiaStage editorial collection, article metadata, and precomputed upcoming events by exact title or route slug.
Input Schema
{
"type": "object",
"properties": {
"name_or_slug": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Exact public name/title or route slug."
}
},
"required": [
"name_or_slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Output Schema
{
"type": "object",
"properties": {
"editorial": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"editorial"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence