MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Other

UPFRONT

All-in ticket prices across ticket sites, seat views and venue guides for US events.

Checks passed
12 / 22

2 failed · 8 not measured

Median response
873 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
11

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 873 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name upfront.

  • Pass
    Lists tools

    tools/list returned 11 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 873 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 873 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    0 of 59 parameters have a description (0%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-28T01:16:20.125469Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using UPFRONT

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http upfront https://api.upfront.tickets/mcp

Capabilities

Tools 11

artist_tours

An artist's upcoming dates on UPFRONT in one answer: every date, venue and city, the lowest all-in price per show, and UPFRONT's tour guide when there is one. Matches requests like "when is Olivia Rodrigo playing near Philadelphia?", "Noah Kahan tour dates" or "cheapest Iron Maiden show this spring", including shows across several cities. artist: the artist's name ("Olivia Rodrigo"). near: a place name ("Philadelphia", "Austin, TX"): only dates within radius km (default 150) of it. lat/lng: coordinates of a location the user has shared. Without either, the whole tour. start_date/end_date: YYYY-MM-DD, both included; without them, every date. limit: how many dates to list (default 30, at most 60), soonest first. totalDates counts every date that matched. Each date has the event's eventId, name, venue, city, state, local start time, fromAllInPrice and url. fromAllInPrice is the lowest per-ticket price on UPFRONT with every fee included, as the event page showed it at UPFRONT's last check; it is not a quote for a number of tickets, and null means no tickets listed right now (not sold out). url is the event's page on UPFRONT. tourGuide, when present, is UPFRONT's guide to the tour (dates, venues, presales, how to buy). artistPage lists every date. otherMatches are other performers the name could mean. found false means no artist by that name has dates in UPFRONT's catalog.

Discovered
best_seats

UPFRONT's own listings for one event ranked by where the seats are, not only by price: "best view for 2 under $250", "closest seats to the court for $400 total", "seats in the shade", "not too high up". event_id is UPFRONT's event id (eventId in event results). prefer: "closest" (nearest the field, court or stage; the default), "lowest" (lowest eye height), "covered" (rows a deck or roof overhead reaches well past, straight up and 30 degrees out toward the field and to either side, first; for shade or rain, though wind can still blow rain in) or "value" (the best mix of closeness and price). quantity: the number of tickets needed together. max_price: per ticket, fees included. max_total_price: the whole group's budget, with quantity. limit: how many picks (default 5, at most 10). Each pick has the section, row, all-in price (and total for the quantity), the row's distance and height, whether it's covered, the section's view picture (UPFRONT's 3D view, not a photo), its section page, why it was picked, and url, the link to buy exactly that listing. placed says how many of the matching listings could be put on the seating chart; only those are ranked. hasFacts false means UPFRONT has no seat facts for this venue, so the picks are simply the cheapest and the ranking is by price only. {"error": "search_failed"} means the listings lookup failed, not that nothing is on sale.

Discovered
compare_prices

One event's all-in prices on every site in one answer: UPFRONT's own listings and the other marketplaces (StubHub, SeatGeek, Vivid Seats, TickPick, Gametime, AXS, Ticketmaster), cheapest first. Matches requests like "cheapest 2 seats together for Saturday's game under $500 total" or "who has it cheaper?". event_id is UPFRONT's event id (eventId in event results). quantity: how many tickets are needed together. Only listings that sell exactly that many as one group count, and totalAllInPrice is the whole group's price. max_price: the most per ticket, fees included, in dollars. max_total_price: the budget for the whole group, as the user stated it (needs quantity); UPFRONT works out the per-ticket limit. section: a section name or number ("112", "Floor"): only that section. limit: how many picks to return (default 5, at most 10). Returns: - event: name, venue, city, startsAt and url (the event's page). - sites: one per site, cheapest first: site ("UPFRONT" for ours), checked, checkedAt, listings (how many match there) and lowestAllInPrice. checked "ok" means the site was read; "incomplete" means only some listings came back; "failed" means it couldn't be read, which is not the same as having nothing. A site missing from sites wasn't matched to this event, which is not the same as sold out there. - listings: the cheapest matching picks across every site: site, section, row, allInPrice (per ticket, that site's own price with its fees), totalAllInPrice (with quantity), quantities, notes and url, the link to buy exactly that listing on that site. feesIncluded false (rare) means that site gave no fees-in price. - moreListings: how many matched but weren't returned. Other sites' prices are as of checkedAt and may have changed since. otherSites says where they came from: "saved" is UPFRONT's last check of each site, which can be hours or a few days old; "none" means no recent check, and event.url compares every site live. All prices are all-in totals. `unavailable` means other sites' prices aren't offered in this assistant right now; UPFRONT's own listings still stand. `notShown` lists sites whose prices aren't offered here, which is not the same as not found or sold out. error "search_failed" (on a site or the answer) means that lookup failed, not that nothing is on sale; "event_not_found" means no event has that id.

Discovered
find_events

Events on sale on UPFRONT (games, concerts, shows, comedy), soonest first. Matches requests like "Knicks games next week", "concerts in Denver this weekend" or "something fun near Fenway under $100". query: words matched against the event, venue or city ("Hamilton", "Madison Square Garden"); "*" (the default) means no text filter. near: a place name ("Denver", "Fenway Park", "Austin, TX"): only events within radius km (default 100) of it. lat/lng: coordinates of a location the user has shared. performer: a team or artist ("Knicks", "Olivia Rodrigo"): only events they play. More exact than query for a team or artist. categories: zero or more of exactly these values: mlb, nba, nfl, nhl, mma, ncaaFootball, ncaaBasketball, wwe, soccer, boxing, tennis, popRock, rapHipHop, country, latin, alternative, hardRock, reggae, world, classical, religious, musicFestivals, broadway, musical, dance, opera, comedy. There is no generic "concerts" value; music is split into the genres listed. start_datetime/end_datetime: absolute local ISO datetimes. "This weekend" is the coming Saturday 00:00 to Sunday 23:59:59; "tonight" is today 00:00 to 23:59:59. Without them, every upcoming date counts. max_price: the most per ticket, fees included, in dollars. page/per_page: further pages of results. The catalog records no audience, vibe or popularity; categories and words in event names ("Family", "18+") are the closest signals. Returns events: eventId, name, venue, city, state, startsAt (local), fromAllInPrice, url. fromAllInPrice is the lowest per-ticket price on UPFRONT with every fee in, as the event page showed it at UPFRONT's last check; it is not a quote for a number of tickets, and null means none listed right now. url is the event's page on UPFRONT. Parking and tailgate events (isParkingEvent) come after the games. place says where `near` was read as; performer says which team or artist was used, with otherMatches when the name could mean others. An empty list can also mean the search failed.

Discovered
find_ticket_groups

UPFRONT's own listings for one event that can be bought now, cheapest first. event_id is UPFRONT's event id (eventId in event results); this does not search by name or place. quantity: the exact number of tickets needed together ("for two people" is 2). When set, only listings that sell that many as ONE group are returned; two separate listings can't be combined into one group. max_price/min_price: the per-ticket price in dollars, fees included. max_total_price: the budget for the whole group, in dollars, as the user stated it ("$200 for two" is 200). Needs quantity; UPFRONT works out the per-ticket limit from it. section: a section name or number ("112", "Floor", "Mezzanine"): only that section's listings. limit: how many listings to return (default 10, at most 25). eticket_only / instant_download_only: only listings with that delivery method. min_days_before_event / max_days_before_event: only listings released within that window before the event ("last-minute"). Returns: - totalListings, lowestAllInPrice, highestAllInPrice: across every listing matching the filters, not only those returned. - listings: the cheapest matches, each with section, row, allInPrice (per ticket, every fee included), totalAllInPrice (the group's price, when quantity is set), quantities (how many can be bought together from this listing), notes, standardSection, deliveryMethods and url. - moreListings: how many matched but weren't returned. Parking-only listings are left out, except on a parking event, where every listing is a parking pass. notes (what the seller wrote, e.g. "Obstructed view") and standardSection (UPFRONT's name for the section, when matched) are the only view or location signals on a listing; there is no view-quality score. When they say nothing, no view information is available for that listing. Distance, height, cover and a picture of the view come from UPFRONT's section facts, at venues with an UPFRONT seating chart. url is the link to buy exactly that listing (section, row and quantity) on UPFRONT; it is null only when the listing can't be bought. {"error": "search_failed"} means the lookup failed after retries, not that no tickets exist. An empty listings list with no error means nothing matched the filters passed; it says nothing about why.

Discovered
get_seating_map

A link to the venue's seating-chart image for one event: a static diagram showing every section's shape and position relative to the field or stage, color-coded by tier or level. event_id: UPFRONT's event id (eventId in event results). The chart belongs to the venue's seating layout, not the date, so the same image serves every event there, including far-future events with no tickets yet. Returns {"mapImageUrl"} on success, {} when there is no chart for this venue, or {"error": "search_failed"} when the lookup failed after retries. In the last two cases no map is available.

Discovered
get_venue_layout

One venue's seating layout from UPFRONT's 3D model of it: every section by level, where each sits, how far its front and back are from the field, court or stage (distanceFt: [front, back]), how high they sit (heightFt: [front, back]), whether it's covered (a deck or roof overhead reaching well past the seats; wind can still blow rain in), the sections next to it, and its page. Matches questions like "how is the upper level at Lumen Field laid out?" or "which sections at MetLife are covered?". One venue per answer, with no row or seat counts. venue: the venue's name ("Madison Square Garden", "MSG", "Lumen Field"). level: optional; one level only ("300 Level", "Upper Level"). Covers the venues with an UPFRONT seating chart; for any other venue the answer says so and lists the ones covered.

Discovered
report_fact

Passes a fan's correction of one of UPFRONT's facts to a person at UPFRONT to check: "section 112 has 18 rows, not 17", "the bag policy changed, backpacks are allowed now", "gates open at 5:30". It is for corrections the user gives or asks to send to UPFRONT. kind: one of "rows" (rows or seats in a section), "view", "section" (its name or where it is), "bags", "entry", "parking", "transit", "food", "other". venue: the venue's name. section, row: when it's about one. claim: what the fan says is right, in their words, with what UPFRONT said if known (under 1,000 characters). source: how the fan knows ("sat there on Oct 12", a link), if they said. Nothing on UPFRONT changes until a person checks it: the correction is passed on, not fixed. Every request files a separate report.

Discovered
resolve_seat

A ticket's seat as a seller writes it ("Sec 129C Row 12", "Section 111, Row M, Seats 5-6", "100 Level 113 Row 4") read onto the venue's seating chart: which section and row it is, where the section sits, how far the row is from the field, court or stage, how high it sits, whether it's covered, and a picture of the view. readAs shows how the words were read. A row between the front and back is estimated from them and marked "estimated". A name the chart doesn't know comes back with found false, not a guess. venue: the venue's name ("Madison Square Garden", "MetLife Stadium"). seat: the seat as the listing gives it. Covers the venues with an UPFRONT seating chart; for any other venue the answer says so and lists the ones covered.

Discovered
section_info

What one section of a venue is like: where it is, how far its front and back are from the field, court or stage, how high they sit, which rows are covered (a deck or roof overhead reaching well past every seat in the row, so a row at a deck's front edge isn't; wind can still blow rain in), and a picture of the view from it. Matches questions like "is section 314 at Lumen Field covered?", "what's the view from 210?" or "how high up is row 20 in 111?". It has no row or seat counts. venue: the venue's name ("Madison Square Garden", "MSG", "Dodger Stadium"). section: the section's name or number as tickets name it ("111", "Section 111", "Field Box 22"). row: optional; one row to describe ("10", "M"). A row between the front and back is estimated from them and marked "estimated". Covers the venues with an UPFRONT seating chart; for any other venue the answer says so and lists the ones covered. viewPicture is a picture of the view from the section, rendered from UPFRONT's 3D model of the venue (not a photo). sectionPage is the section's page on UPFRONT. source says where the facts come from.

Discovered
venue_info

What to know before going to a venue, from UPFRONT's venue guide: the bag policy and what fans can bring, gates and entry, parking, getting there by transit or rideshare, and food and drink, including what the guide says about gluten-free, vegetarian or vegan, halal and kosher food. Matches questions like "what's the bag policy at MetLife?", "when do doors open at MSG?" or "where do I park for Lambeau?". venue: the venue's name ("MetLife Stadium", "MSG", "Lumen Field, Seattle"). topics: optional; only these parts, at more length: any of "bags", "entry", "parking", "transit", "food". Without it, every part. Covers the 36 stadiums, arenas and amphitheaters UPFRONT has a guide for; for any other venue the answer says so and lists the ones with guides. Each part is the guide's own words ("text", plus the guide's "faq" questions and answers). factsLastChecked is the date UPFRONT last checked the guide's facts; rules can change for a single event, and the venue's own event page has the final word. guideUrl is the guide on UPFRONT. dietary lists what the guide says per diet; dietaryNotMentioned lists diets the guide doesn't cover, which doesn't mean the venue has nothing for them.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected873 ms11