Skip to main content
Glama
josemdasilvag-blip

venue-ops-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
venue_ops_list_venuesA

List every venue in the dataset and the period the data covers.

Call this first when you do not know which venue ids exist. It is cheap and it tells you the date range every other tool will accept.

Args: params (ListVenuesInput): Validated parameters containing: - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: Venue list and covered period.

JSON schema:
{
    "currency": str,               # e.g. "EUR"
    "period": {"start": str, "end": str},
    "venues": [
        {"venue_id": str, "name": str, "city": str, "seats": int}
    ]
}

Examples: - Use when: "Which sites do we have data for?" - Don't use when: You already have a venue id and want figures (use venue_ops_get_day).

venue_ops_get_dayA

Return the full trading figures for one venue on one day.

Gives sales split by channel, covers, average ticket, the control block (discounts, comps, voids) and labour cost, with every rate expressed against gross so the percentages are comparable across venues.

Args: params (DayInput): Validated parameters containing: - venue_id (str): Venue identifier, e.g. 'MAD-01' - day (str): Trading day, YYYY-MM-DD - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: The day's figures.

JSON keys include: net_sales, dine_in_sales, delivery_sales, covers,
transactions, average_ticket, spend_per_cover, discounts, comps, voids,
control_total, gross_sales, discount_rate, comp_rate, void_rate,
labour_cost, labour_hours, labour_pct (float rates are fractions of 1).

Error response: "Error: <message>" naming the valid venues or dates.

Examples: - Use when: "How did Gran Via do on 14 August?" - Don't use when: You want to know whether that day was normal (use venue_ops_compare_weekday).

venue_ops_compare_weekdayA

Compare a day against the same weekday in previous weeks.

This is the only fair comparison in hospitality. Measuring a Monday against the Sunday before it makes every Monday look like a collapse and every Friday like a triumph; comparing like weekday with like weekday is what tells you whether something actually changed.

Args: params (CompareWeekdayInput): Validated parameters containing: - venue_id (str): Venue identifier - day (str): The day being judged, YYYY-MM-DD - weeks (int): How many previous same-weekdays to average, 1-12 (default 4) - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: The day, the same-weekday average, and the variance between them.

JSON schema:
{
    "venue_id": str,
    "day": {...},                    # same shape as venue_ops_get_day
    "comparison_days": [str],        # dates averaged
    "averages": {"net_sales": float, "covers": float,
                 "average_ticket": float, "labour_pct": float,
                 "discount_rate": float, "void_rate": float},
    "variance": {...}                # same keys, as fractions of 1
}

Examples: - Use when: "Was last Saturday actually bad, or does it just feel bad?" - Don't use when: You want a whole month's totals (use venue_ops_period_summary).

venue_ops_period_summaryA

Total up a date range, for one venue or for the whole group.

Args: params (PeriodInput): Validated parameters containing: - start (str): First day, YYYY-MM-DD - end (str): Last day inclusive, YYYY-MM-DD - venue_id (Optional[str]): One venue, or omit for all venues plus a total - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: Totals and derived rates for the range.

JSON schema:
{
    "period": {"start": str, "end": str},
    "venues": {venue_id: {...aggregated figures...}},
    "group_total": {...}     # present only when venue_id was omitted
}

Examples: - Use when: "What did the group do in July?" - Use when: "Give me Chamberi's numbers for the last two weeks." - Don't use when: You want a single day (use venue_ops_get_day).

venue_ops_find_anomaliesA

Flag discounts, comps, voids or labour moving against their own baseline.

Compares the last 7 days against the 28 before them and reports two shapes. A drift is a sustained rise across the whole recent window, which is what a till problem or an unfixed rota looks like. A spike is one day far outside the baseline, usually a promotion nobody logged. Findings below 40 EUR are dropped: they are real but not worth a phone call.

Args: params (AnomalyInput): Validated parameters containing: - venue_id (Optional[str]): One venue, or omit to scan all - end (Optional[str]): Last day of the window, defaults to the dataset end - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: Findings sorted by money at stake, largest first.

JSON schema:
{
    "window_end": str,
    "findings": [
        {
            "type": "drift" | "spike",
            "metric": str,           # discount_rate | comp_rate | void_rate | labour_pct
            "label": str,            # human wording, e.g. "voided tickets"
            "venue_id": str,
            "baseline_rate": float,  # fraction of 1
            "euros_at_stake": float,
            # drift only: window, baseline_window, recent_rate, relative_increase
            # spike only: date, weekday, day_rate, z_score
        }
    ]
}

Examples: - Use when: "Is anything leaking this week?" - Use when: "Check Barcelona for problems ending 5 July." - Don't use when: You want the day's trading figures (use venue_ops_get_day).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/josemdasilvag-blip/venue-ops-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server