Local Events Tracker
by agentstructure · remote · no sign-in to list tools · v1.0.0 · published by GitHub user agentstructure
Search local events, follow artists and interests, get weekend recommendations and change alerts
11 tools: 2 can delete or cancel things, 7 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things7Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
5 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http local-events https://localeventstracker.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "search_local_events" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "search_local_events" says "search": a word for reading.
The description contains "any other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...details for one event by event_id (from any other tool): venue, performers, price range if pub..."
The server marks "get_event_details" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_event_details" says "get": a word for reading.
The server marks "list_local_event_alerts" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "list_local_event_alerts" says "list": a word for reading.
The server marks "get_weekend_recommendations" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_weekend_recommendations" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
11 tools
Deletes or cancels 2Claude Code: deny
manage_event_profileView or change the user's event preferences and privacy: budget, preferred days and times, time zone, interests (artist, team, genre, category, venue, keyword), saved locations (ci…No findings
Why it is in this group
- The description's first verb is "view": a word for reading.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it View or change the user's event preferences and privacy: budget, preferred days and times, time zone, interests (artist, team, genre, category, venue, keyword), saved locations (city precision; trips with valid_from/valid_until never replace home), clear personalization, or delete the account and all its data (both need confirm: true and an explicit request from the user).
Annotations the server declares
- title: Manage event profile
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
manage_event_watchlistList, pause, resume, update or delete the user's watchlists by name.No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it List, pause, resume, update or delete the user's watchlists by name. Also shows plan limits.
Annotations the server declares
- title: Manage watchlists
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
Changes things 7Claude Code: ask
get_event_detailsFull details for one event by event_id (from any other tool): venue, performers, price range if published, ticket link, source records, when AgentStructure first saw it, and its hi…2 findings
Why it is in this group
- The name "get_event_details" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The description contains "any other tool", wording about other tools or servers.
What this check looks forMatched text
description: "...details for one event by event_id (from any other tool): venue, performers, price range if pub..."
- Warn
The server marks "get_event_details" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_event_details" says "get": a word for reading.
Description, as the server wrote it Full details for one event by event_id (from any other tool): venue, performers, price range if published, ticket link, source records, when AgentStructure first saw it, and its history of detected changes. Refreshes from Ticketmaster when stored data is older than 6 hours.
Annotations the server declares
- title: Get event details
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
get_weekend_recommendationsRank events for the coming weekend (Friday to Sunday local dates) near a saved or given location, using the user's saved interests, followed artists, budget, preferred days and tim…1 finding
Why it is in this group
- The name "get_weekend_recommendations" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "get_weekend_recommendations" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_weekend_recommendations" says "get": a word for reading.
Description, as the server wrote it Rank events for the coming weekend (Friday to Sunday local dates) near a saved or given location, using the user's saved interests, followed artists, budget, preferred days and times, and past feedback. Each result says why it was recommended, using only what actually matched. Pass busy intervals from the user's calendar (if the user allowed calendar access in the assistant) to skip conflicts; free/busy is enough, never send event details.
Annotations the server declares
- title: Weekend recommendations
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
list_local_event_alertsReturn new alerts for this user: newly observed events matching a watchlist or a followed artist, and changes (cancelled, postponed, rescheduled, date, time, venue or price changes…1 finding
Why it is in this group
- The name "list_local_event_alerts" says "list": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "list_local_event_alerts" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "list_local_event_alerts" says "list": a word for reading.
Description, as the server wrote it Return new alerts for this user: newly observed events matching a watchlist or a followed artist, and changes (cancelled, postponed, rescheduled, date, time, venue or price changes, sale start) to matching or saved events. Returned alerts are marked as read. Set refresh true to run a small check right now (limited per hour). An empty list means nothing new, not nothing happening.
Annotations the server declares
- title: List new event alerts
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
manage_alert_deliveryChoose where alerts go besides this chat: add_email sends a confirmation link to the address (alerts start only after the user confirms), add_phone returns a private subscribe link…No findings
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Choose where alerts go besides this chat: add_email sends a confirmation link to the address (alerts start only after the user confirms), add_phone returns a private subscribe link for the free ntfy phone app, add_sms (paid plans, U.S. numbers) texts a 6-digit code to phone; pass consent: true only after the user agreed to receive automated alert texts (msg & data rates may apply, reply STOP to cancel), then verify_sms with the code. remove_email, remove_phone and remove_sms stop them, get shows the current setup. One digest is sent after each daily check; at most one text a day. Only add an address or number the user gave for this purpose.
Annotations the server declares
- title: Email, phone and text alerts
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
save_event_feedbackRecord the user's reaction to an event: interested, not_interested (never recommend again), going, saved (alerts on changes), more_like_this or less_like_this (adjusts genre weight…No findings
Why it is in this group
- The name "save_event_feedback" says "save": a word for a change.
Description, as the server wrote it Record the user's reaction to an event: interested, not_interested (never recommend again), going, saved (alerts on changes), more_like_this or less_like_this (adjusts genre weighting). Only call when the user says so; never infer it.
Annotations the server declares
- title: Save event feedback
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
search_local_eventsFind upcoming events (concerts, comedy, theatre, sports, family shows, festivals) near a US ZIP code, a city or coordinates, filtered by dates, categories (Music, Sports, Arts & Th…1 finding
Why it is in this group
- The name "search_local_events" says "search": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "search_local_events" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "search_local_events" says "search": a word for reading.
Description, as the server wrote it Find upcoming events (concerts, comedy, theatre, sports, family shows, festivals) near a US ZIP code, a city or coordinates, filtered by dates, categories (Music, Sports, Arts & Theatre, Film, Miscellaneous, or genres such as Jazz or Comedy), keywords, artist, venue and maximum price. Returns events with local date, time zone, venue, published price range (null means not published, never free), ticket link, provenance, freshness and coverage limits. Sources: Ticketmaster, plus SeatGeek when enabled on this server; each event names its source (SeatGeek events say "Event data from SeatGeek"; credit it). SeatGeek resale_market prices are listed resale prices, not face value. The same event on both sources is shown once, with the other link under other_listings. Coverage varies by country; say so when results are thin. Never invent events beyond the results.
Annotations the server declares
- title: Search local events
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
track_event_interestsSave a persistent watchlist: a place (US ZIP code, city or coordinates, plus radius_km) and/or followed artists or teams, with optional categories, keywords, venues, maximum price …No findings
Why it is in this group
- The description's first verb is "save": a word for a change.
Description, as the server wrote it Save a persistent watchlist: a place (US ZIP code, city or coordinates, plus radius_km) and/or followed artists or teams, with optional categories, keywords, venues, maximum price and how many days ahead. AgentStructure then checks on a schedule and records newly observed matching events and changes as alerts. Saving again with the same name replaces it. Returns current matches as a preview.
Annotations the server declares
- title: Track event interests
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 2Claude Code: allow
get_event_changesDetected changes with previous and current values, for one event_id or for all events the user saved, is going to or marked interested.No findings
Why it is in this group
- The name "get_event_changes" says "get": a word for reading.
Description, as the server wrote it Detected changes with previous and current values, for one event_id or for all events the user saved, is going to or marked interested. EVENT_MISSING_FROM_SOURCE is low confidence and does not mean cancelled.
Annotations the server declares
- title: Get event changes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_followed_artistsList the performers and teams this user follows.No findings
Why it is in this group
- The name "get_followed_artists" says "get": a word for reading.
Description, as the server wrote it List the performers and teams this user follows.
Annotations the server declares
- title: Get followed artists
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http local-events https://localeventstracker.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__local-events__get_event_changes",
"mcp__local-events__get_followed_artists"
],
"ask": [
"mcp__local-events__search_local_events",
"mcp__local-events__get_event_details",
"mcp__local-events__track_event_interests",
"mcp__local-events__list_local_event_alerts",
"mcp__local-events__get_weekend_recommendations",
"mcp__local-events__save_event_feedback",
"mcp__local-events__manage_alert_delivery"
],
"deny": [
"mcp__local-events__manage_event_watchlist",
"mcp__local-events__manage_event_profile"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as local-events. Review it before you use it.
