Skip to main content
Glama

The Johns Islander — Kiawah, Seabrook and Johns Island

What's on: today, tomorrow, the weekend, live music

happenings
Read-onlyIdempotent

What's happening on the islands and across Charleston, as one list cut on the islands' clock: the Towns' and the library's calendars, the music venues' own feeds (the Charleston Pour House, the Royal American), the year's big dates, the special events, what venues posted and a person approved, and a weekly sweep of the venues with no feed. Every item carries its organizer's page; the door price is as the venue lists it. Use when = today, tomorrow, weekend, week (next 7 days) or all (next 3 weeks); tag = Music for live music.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagNo
whenNo
islandNoislands = Kiawah, Seabrook, Johns Island, Wadmalaw; charleston = the rest of Charleston

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoThe events page
ruleNoListed, never ranked
as_ofNoThe islands' clock when this was cut
countNoHow many
itemsNoEach: title, when, time, through, place, area, tag, cost, url, source
windowNotoday | tomorrow | weekend | week | all
sourcesNoWhich calendars answered
featuredNoThe next big dates

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / tag / enum
      Previous value: -[
      -  "Festival",
      -  "Music",
      -  "Outdoors",
      -  "Family & library",
      -  "Food & drink",
      -  "Markets",
      -  "Sports",
      -  "Town"
      -]New value: +[
      +  "Festival",
      +  "Music",
      +  "Theater & shows",
      +  "Outdoors",
      +  "Family & library",
      +  "Food & drink",
      +  "Markets",
      +  "Sports",
      +  "Town"
      +]
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish the read-only, idempotent, non-destructive profile, so the bar is lower; the description still adds provenance detail beyond them — aggregated sources, human approval of posted items, and the caveat that door prices are as the venue lists them. It stops short of describing staleness or refresh cadence, which matters for a time-sensitive events feed.

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

Conciseness3/5

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

The purpose sentence is a single sprawling clause chain listing every data source, which is dense and hard to scan, and naming specific venues (Charleston Pour House, Royal American) is largely overhead. The operational filter guidance at the end is well-placed, but the block would read better split into scope, sources, and filters.

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 an output schema present, return values need no explanation, and the description adequately covers scope, filters, provenance and a price caveat. It is nearly complete; the only material omission is how fresh the aggregated feed is.

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

Parameters4/5

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

Schema description coverage is only 33% (only 'island' is documented), so the description must compensate — and it does for 'when' by defining 'week' as next 7 days and 'all' as next 3 weeks, and for 'tag' by noting Music = live music. It leaves the meaning of the other eight tag values and the island/all distinction largely to the schema.

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 names the concrete resource ('What's happening on the islands and across Charleston') and enumerates its scope precisely: town/library calendars, venue feeds, big dates, special events, approved posts, and a weekly venue sweep. No sibling tool (fees, flood_zone, places, island_market) overlaps, so an agent can identify this as the events-calendar tool immediately.

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

Usage Guidelines4/5

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

It explicitly tells the agent how to invoke the filters ('Use when = today, tomorrow, weekend, week (next 7 days) or all (next 3 weeks); tag = Music for live music'). That is clear context for usage, but there is no when-not guidance or named alternative, and the tag filter is only illustrated for one of nine enum values.

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