Skip to main content
Glama

SceneF — California, Florida and Hawaii Movie Showtimes

Right now

scenef_now
Read-only

The cheap is-anything-on call: how many screenings tonight, the next 5 curtains across this board with venue/time/film, and dataset freshness per source. Every emitted showtime carries confidence, source tier, reporting sources and verified_at. In whats_playing, "concise" gives the total showtime_count and one next screening in showtimes; showtimes_complete identifies a partial array. "detailed" includes the full array.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
regionNoWhich regional board to read, e.g. "sf", "oahu", "sacramento". Omitted means the default board — it is never inferred from where you are. Call scenef_now for the full list; an unknown region is an error, not a fallback.
response_formatNoOutput size. "concise" (default) is tight text plus a structured summary. In whats_playing, each film has the total showtime_count, next_showtime, and a showtimes array containing only that next screening; showtimes_complete says whether the array is exhaustive. "detailed" includes all selected showtime rows with ids, ticket urls, and accuracy metadata. Use scenef_search_showtimes for all times for one film or theatre.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
boardsYes
regionYes
sourcesYes
night_ofYes
timezoneYes
data_as_ofYes
is_tonightYes
attributionYes
region_nameYes
accuracy_urlYes
next_curtainsYes
still_to_comeYes
screenings_tonightYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • changedInput schema / properties / response_format / description
      Previous value: -"Output size. \"concise\" (default) is tight text plus a structured summary — on list-shaped tools each film carries showtime_count and next_showtime, but NOT the full showtimes array. \"detailed\" adds the per-showtime rows with ids, ticket urls, and accuracy metadata. Concise measures ~10KB where detailed measures ~69KB, so ask for detailed when you need the rows and scenef_search_showtimes when you need them for one film or theatre."New value: +"Output size. \"concise\" (default) is tight text plus a structured summary. In whats_playing, each film has the total showtime_count, next_showtime, and a showtimes array containing only that next screening; showtimes_complete says whether the array is exhaustive. \"detailed\" includes all selected showtime rows with ids, ticket urls, and accuracy metadata. Use scenef_search_showtimes for all times for one film or theatre."
    • addedOutput schema / properties / next_curtains / items / properties / calendar_url
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_curtains / items / properties / confidence
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "venue-published",
      +        "corroborated",
      +        "single-source",
      +        "disputed"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / next_curtains / items / properties / freshness
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "age_hours": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "retained": {
      +      "type": "boolean"
      +    },
      +    "source_status": {
      +      "enum": [
      +        "ok",
      +        "held",
      +        "failed",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "stale_after_hours": {
      +      "type": "number"
      +    },
      +    "status": {
      +      "enum": [
      +        "current",
      +        "stale",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "age_hours",
      +    "stale_after_hours",
      +    "retained",
      +    "source_status"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / next_curtains / items / properties / note
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_curtains / items / properties / source_tier
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_curtains / items / properties / sources
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / next_curtains / items / properties / verified_at
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / next_curtains / items / required
      Previous value: -[
      -  "screening_id",
      -  "venue",
      -  "starts_at",
      -  "night_of",
      -  "local_time",
      -  "tags",
      -  "ticket_url",
      -  "film"
      -]New value: +[
      +  "screening_id",
      +  "venue",
      +  "starts_at",
      +  "night_of",
      +  "local_time",
      +  "tags",
      +  "ticket_url",
      +  "calendar_url",
      +  "confidence",
      +  "source_tier",
      +  "sources",
      +  "verified_at",
      +  "film"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / response_format / description
      Previous value: -"Output size: \"concise\" (default) for tight text lines, \"detailed\" to add ids, per-showtime ticket urls, and extra metadata."New value: +"Output size. \"concise\" (default) is tight text plus a structured summary — on list-shaped tools each film carries showtime_count and next_showtime, but NOT the full showtimes array. \"detailed\" adds the per-showtime rows with ids, ticket urls, and accuracy metadata. Concise measures ~10KB where detailed measures ~69KB, so ask for detailed when you need the rows and scenef_search_showtimes when you need them for one film or theatre."
  3. Changed6 schema fields changed
    • addedInput schema / properties / region
      Added value: +{
      +  "description": "Which regional board to read, e.g. \"sf\", \"oahu\", \"sacramento\". Omitted means the default board — it is never inferred from where you are. Call scenef_now for the full list; an unknown region is an error, not a fallback.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / boards
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "name": {
      +        "type": "string"
      +      },
      +      "region": {
      +        "type": "string"
      +      },
      +      "timezone": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "region",
      +      "name",
      +      "timezone"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / region
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / region_name
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / timezone
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "data_as_of",
      -  "attribution",
      -  "accuracy_url",
      -  "night_of",
      -  "is_tonight",
      -  "screenings_tonight",
      -  "still_to_come",
      -  "next_curtains",
      -  "sources"
      -]New value: +[
      +  "data_as_of",
      +  "attribution",
      +  "accuracy_url",
      +  "region",
      +  "region_name",
      +  "timezone",
      +  "night_of",
      +  "is_tonight",
      +  "screenings_tonight",
      +  "still_to_come",
      +  "next_curtains",
      +  "boards",
      +  "sources"
      +]
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "accuracy_url": {
      +      "type": "string"
      +    },
      +    "attribution": {
      +      "type": "string"
      +    },
      +    "data_as_of": {
      +      "type": "string"
      +    },
      +    "is_tonight": {
      +      "type": "boolean"
      +    },
      +    "next_curtains": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "film": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "directors": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "genres": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "key": {
      +                    "type": "string"
      +                  },
      +                  "runtime_min": {
      +                    "anyOf": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "slug": {
      +                    "type": "string"
      +                  },
      +                  "title": {
      +                    "type": "string"
      +                  },
      +                  "url": {
      +                    "type": "string"
      +                  },
      +                  "year": {
      +                    "anyOf": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "key",
      +                  "slug",
      +                  "title",
      +                  "year",
      +                  "runtime_min",
      +                  "genres",
      +                  "directors",
      +                  "url"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "local_time": {
      +            "type": "string"
      +          },
      +          "night_of": {
      +            "type": "string"
      +          },
      +          "screening_id": {
      +            "type": "string"
      +          },
      +          "starts_at": {
      +            "type": "string"
      +          },
      +          "tags": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "ticket_url": {
      +            "type": "string"
      +          },
      +          "venue": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "name": {
      +                "type": "string"
      +              },
      +              "neighborhood": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "short": {
      +                "type": "string"
      +              },
      +              "venue_id": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "venue_id",
      +              "name",
      +              "short",
      +              "neighborhood"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "screening_id",
      +          "venue",
      +          "starts_at",
      +          "night_of",
      +          "local_time",
      +          "tags",
      +          "ticket_url",
      +          "film"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "night_of": {
      +      "type": "string"
      +    },
      +    "screenings_tonight": {
      +      "type": "number"
      +    },
      +    "sources": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "healthy": {
      +          "type": "number"
      +        },
      +        "total": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "healthy",
      +        "total"
      +      ],
      +      "type": "object"
      +    },
      +    "still_to_come": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "data_as_of",
      +    "attribution",
      +    "accuracy_url",
      +    "night_of",
      +    "is_tonight",
      +    "screenings_tonight",
      +    "still_to_come",
      +    "next_curtains",
      +    "sources"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only annotations, the description discloses meaningful behavior: outputs are capped at tonight's count plus the next 5 showtimes, every emitted showtime carries confidence, source tier, reporting sources and verified_at, and dataset freshness is reported per source. It also explains the concise/detailed output split and that showtimes_complete flags a partial array. Nothing contradicts readOnlyHint, openWorldHint, or destructiveHint; the weird 'In whats_playing' formatting keeps this from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence front-loads the core purpose in a dense, efficient clause and the second sentence adds output-metadata detail in one line. The third sentence is information-dense but reads awkwardly with 'In whats_playing,' which slightly hurts scannability. No wasted sentences, but the structure could be cleaner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema, 100% parameter coverage, and read-only annotations in place, the description covers the essential call semantics: scope, freshness, per-showtime metadata, and output-size behavior. The main gap is the unclear relationship to the scenef_whats_playing sibling, especially given the 'In whats_playing' phrasing, which an agent may misread as pointing to that sibling tool rather than describing the board output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters, including the default-board behavior, 'never inferred from where you are,' and error-on-unknown-region semantics for region, plus the concise/detailed output details for response_format. The description's reference to concise/detailed largely restates what the schema's response_format text already covers, adding only the wrapper framing of 'cheap.' A baseline 3 is appropriate since the description does not materially extend the parameter docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific and distinctive positioning — 'The cheap is-anything-on call' — then enumerates concrete outputs: how many screenings tonight, the next 5 curtains with venue/time/film, and dataset freshness per source. This clearly identifies the tool as a lightweight, board-scoped status check and separates it from richer siblings like scenef_search_showtimes or scenef_whats_playing. The only minor ambiguity is the 'In whats_playing' phrase, but the core purpose is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Use is only implied through the phrase 'cheap is-anything-on call,' which signals a quick check but never explicitly states when not to use the tool or names an alternative within the description. The explicit alternative guidance ('Use scenef_search_showtimes for all times for one film or theatre') lives in the schema's response_format text, not in the description itself. The awkward 'In whats_playing' wording further blurs the boundary with the scenef_whats_playing sibling rather than clarifying when each is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources