_ registry / mcp + a2a streamable-http · checked 1h ago

phishin

https://phish.in

Registry code: f32dfa0a23d64a77

api record

Archive of Phish live concert recordings: shows with setlists, songs, venues, tours, playlists and audio tracks, plus search and statistics.

endpoint
https://phish.in/mcp
door code
4d2dd1a03a1d16a9
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is phishin live?
Yes — it answered the hub's last check (checked 1h ago). It answered 99% of checks over the last 30 days.
Is phishin free to use?
Yes — the hub reached it with no key and no payment.
What tools does phishin have?
16 tools: get_tag, stats, list_shows, search, list_playlists, list_songs, get_audio_track, get_playlist, ….
Is phishin safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99%

90 days 97.8%· all time 97.1%

latency
356ms

last good check

priced tools
0

of 16 tools

_ answered our checks, 90 days 967 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
_ what it is for
used for
  • get a phish show setlist
  • play a phish song recording
  • search phish songs and venues
  • get phish song statistics
takes → gives
text → data, audio
tools
16 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 16 tools
12 open 4 never probed 12 of 16 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • list_playlists reads open 24h ago

    List user-created playlists with optional sorting. follow-up: Use get_playlist with slug for full track listing. display: Link playlist names to their URLs. Example: [My Favorite Jams](url)

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "limit": {
          "type": "integer",
          "description": "Max playlists to return (default: 50)"
        },
        "sort_by": {
          "enum": [
            "name",
            "likes_count",
            "tracks_count",
            "duration",
            "updated_at",
            "random"
          ],
          "type": "string",
          "description": "Sort by name, likes_count (default), tracks_count, duration, updated_at, or random"
        },
        "sort_order": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort order: asc or desc (default)"
        }
      }
    }
    arguments 30 lines
  • list_songs reads open 24h ago

    List Phish songs with optional filtering and sorting. follow-up: Use get_song with slug for detailed performance history. display: Link song titles to their URLs. Example: [Tweezer](url)

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "limit": {
          "type": "integer",
          "description": "Max songs to return (default: 50)"
        },
        "sort_by": {
          "enum": [
            "name",
            "times_played"
          ],
          "type": "string",
          "description": "Sort by name (default) or times_played"
        },
        "min_plays": {
          "type": "integer",
          "description": "Minimum number of performances (filters out rarely played songs)"
        },
        "song_type": {
          "enum": [
            "all",
            "original",
            "cover"
          ],
          "type": "string",
          "description": "Filter by song type: all (default), original, or cover"
        },
        "sort_order": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort order: asc (default for name) or desc (default for times_played)"
        }
      }
    }
    arguments 39 lines
  • get_audio_track reads open 19h ago

    Get a song performance with audio URL. triggers: 'play [song]', 'random track', 'listen to', 'surprise me', or when user selects a performance from get_song results. params: random=true for random; slug='YYYY-MM-DD/track-slug' for specific. display: Link to track web URL (use 'url', not 'mp3_url'). The web page provides artwork, context, and navigation.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "slug": {
          "type": "string",
          "description": "Track slug: 'YYYY-MM-DD/track-slug' (e.g., '1997-11-22/tweezer'). Omit for random."
        },
        "random": {
          "type": "boolean",
          "description": "Set to true for a random audio track"
        }
      }
    }
    arguments 14 lines
  • get_playlist reads open 19h ago

    Get a playlist with track listing, show dates, and durations. display: Link playlist name to playlist URL, track titles to track web URLs (use 'url', not 'mp3_url'). Format dates as 'Jul 4, 2023'. Show max 10 tracks. Example: | [Tweezer](track_url) | [Jul 4, 2023](show_url)

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "slug": {
          "type": "string",
          "description": "Playlist slug (omit for random playlist)"
        }
      }
    }
    arguments 10 lines
  • get_show reads open 14h ago

    Get a Phish show with full setlist, venue, tags, and gaps. triggers: 'random show', specific dates ('Halloween 1995', '12/31/99'), or follow-up to list_shows/search. params: random=true for random; date='YYYY-MM-DD' for specific. display: Format dates as 'Jul 4, 2023'. Link tracks to web URLs (use 'url', not 'mp3_url').

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "date": {
          "type": "string",
          "description": "Show date (YYYY-MM-DD). Omit for random show."
        },
        "random": {
          "type": "boolean",
          "description": "Set to true for a random show (ignores date)"
        }
      }
    }
    arguments 14 lines
  • get_tour reads open 6h ago

    Get a Phish tour with date range and show count. params: random=true for random; slug='tour-slug' for specific. follow-up: Use list_shows with tour_slug to get shows on this tour. display: Format dates as 'Jul 4, 2023'.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "slug": {
          "type": "string",
          "description": "Tour slug (e.g., 'fall-tour-1997', 'summer-tour-2023'). Omit for random tour."
        },
        "random": {
          "type": "boolean",
          "description": "Set to true for a random tour (ignores slug)"
        }
      }
    }
    arguments 14 lines
  • list_years reads open 6h ago

    List all years/eras when Phish performed, with show counts. Eras: 1.0 (1983-2000), 2.0 (2002-2004), 3.0 (2009-2020), 4.0 (2021+). follow-up: Use list_shows with year to see shows. display: Link years to their URLs. Example: [1995](url)

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {}
    }
    arguments 5 lines
  • list_venues reads open 9h ago

    List Phish venues with optional geographic filtering. follow-up: Use get_venue with slug for venue details. display: Link venue names to their URLs. Example: [Madison Square Garden](url)

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "city": {
          "type": "string",
          "description": "Filter by city name"
        },
        "limit": {
          "type": "integer",
          "description": "Max venues to return (default: 50)"
        },
        "state": {
          "type": "string",
          "description": "Filter by state (e.g., 'NY', 'California')"
        },
        "country": {
          "type": "string",
          "description": "Filter by country (e.g., 'USA', 'Germany')"
        },
        "sort_by": {
          "enum": [
            "name",
            "shows_count"
          ],
          "type": "string",
          "description": "Sort by name (default) or shows_count"
        },
        "sort_order": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort order: asc (default for name) or desc (default for shows_count)"
        }
      }
    }
    arguments 38 lines
  • list_tags reads open 19h ago

    List all tags with show and track counts. Tags categorize content: Jamcharts (notable jams), Costume, Guest, Debut, and more. follow-up: Use get_tag with a tag slug to see tagged items.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {}
    }
    arguments 5 lines
  • get_venue reads open 6h ago

    Get a venue with location, show count, and date range. params: random=true for random; slug='venue-slug' for specific. follow-up: Use list_shows with venue_slug to get shows at this venue. display: Format dates as 'Jul 4, 2023'.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "slug": {
          "type": "string",
          "description": "Venue slug (e.g., 'madison-square-garden'). Omit for random venue."
        },
        "random": {
          "type": "boolean",
          "description": "Set to true for a random venue (ignores slug)"
        }
      }
    }
    arguments 14 lines
  • get_song reads open 14h ago

    Get a Phish song with performance history. triggers: 'random song' or specific song by slug. params: random=true for random; slug='song-slug' for specific. display: Format dates as 'Jul 4, 2023'. Link tracks to web URLs (use 'url', not 'mp3_url').

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "slug": {
          "type": "string",
          "description": "Song slug (e.g., 'tweezer', 'you-enjoy-myself'). Omit for random song."
        },
        "limit": {
          "type": "integer",
          "description": "Max performances to return (default: 25)"
        },
        "random": {
          "type": "boolean",
          "description": "Set to true for a random song (ignores slug)"
        },
        "sort_by": {
          "enum": [
            "date",
            "likes",
            "duration",
            "random"
          ],
          "type": "string",
          "description": "Sort performances by date (default), likes, duration, or random"
        },
        "sort_order": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort order: asc or desc (default: desc)"
        }
      }
    }
    arguments 36 lines
  • list_tours reads open 14h ago

    List all Phish tours with optional year filtering. follow-up: Use get_tour with slug for tour details.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "year": {
          "type": "integer",
          "description": "Filter tours by year (e.g., 1997)"
        }
      }
    }
    arguments 10 lines
  • get_tag reads unknown 9h ago

    Get shows or tracks associated with a specific tag. params: type='show' for tagged shows (e.g., costume); type='track' for tagged tracks (e.g., jamcharts). display: Link dates to show URLs, song names to track web URLs (use 'url', not 'mp3_url'). Format dates as 'Jul 4, 2023'. Example: | [Tweezer](track_url) | [Jul 4, 2023](show_url)

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "slug",
        "type"
      ],
      "properties": {
        "slug": {
          "type": "string",
          "description": "Tag slug (e.g., 'jamcharts', 'costume', 'guest')"
        },
        "type": {
          "enum": [
            "show",
            "track"
          ],
          "type": "string",
          "description": "Entity type to return: 'show' for tagged shows, 'track' for tagged tracks"
        },
        "limit": {
          "type": "integer",
          "description": "Max items to return (default: 25)"
        },
        "sort_by": {
          "enum": [
            "date",
            "likes",
            "duration",
            "random"
          ],
          "type": "string",
          "description": "Sort by date (default), likes, duration (tracks only), or random"
        },
        "sort_order": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort order: asc or desc (default: desc)"
        }
      }
    }
    arguments 44 lines
  • stats reads unknown 9h ago

    Statistical analysis: gaps (bustouts), transitions, set positions, geographic patterns, co-occurrence, and song frequency. display: Link song names to song URLs, dates to track web URLs (use 'url', not 'mp3_url'). Format dates as 'Jul 4, 2023'. Example: | [Tweezer](song_url) | 42 | [Dec 31, 1995](track_url) | api: https://phish.in/api/v2/swagger_doc (no key required)

    mcp-tool

    {
      "type": "object",
      "allOf": [
        {
          "if": {
            "required": [
              "stat_type"
            ],
            "properties": {
              "stat_type": {
                "const": "co_occurrence"
              }
            }
          },
          "then": {
            "required": [
              "song_slug"
            ]
          }
        },
        {
          "if": {
            "required": [
              "stat_type",
              "geo_type"
            ],
            "properties": {
              "geo_type": {
                "const": "never_played"
              },
              "stat_type": {
                "const": "geographic"
              }
            }
          },
          "then": {
            "required": [
              "state"
            ]
          }
        }
      ],
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "stat_type"
      ],
      "properties": {
        "set": {
          "enum": [
            "1",
            "2",
            "3",
            "4"
          ],
          "type": "string",
          "description": "Set number for opener/closer analysis (default: 1 for openers, 2 for closers). Used only by 'set_positions'."
        },
        "year": {
          "type": "integer",
          "description": "Filter to a single year. Applies only to 'song_frequency'. Mutually exclusive with year_range; if both are given, year takes precedence."
        },
        "limit": {
          "type": "integer",
          "description": "Max results to return (default: 25). Set this to match how many results you intend to display."
        },
        "state": {
          "type": "string",
          "description": "Two-letter US state code. Required when stat_type is 'geographic' and geo_type is 'never_played'. Also acts as a filter for 'song_frequency'. Ignored by other stat_types."
        },
        "min_gap": {
          "type": "integer",
          "description": "Minimum show gap for bustout queries. Used only by 'gaps'."
        },
        "geo_type": {
          "enum": [
            "state_frequency",
            "never_played",
            "state_debuts"
          ],
          "type": "string",
          "description": "Geographic analysis type (default: state_frequency). Used only by 'geographic'. 'never_played' additionally requires state."
        },
        "position": {
          "enum": [
            "opener",
            "closer",
            "encore"
          ],
          "type": "string",
          "description": "Set position filter. Used only by 'set_positions'."
        },
        "direction": {
          "enum": [
            "before",
            "after"
          ],
          "type": "string",
          "description": "Transition direction (default: after). Used only by 'transitions'."
        },
        "min_plays": {
          "type": "integer",
          "description": "Minimum times played to include (default: 2). Used only by 'gaps'."
        },
        "song_slug": {
          "type": "string",
          "description": "Song slug. Required when stat_type is 'co_occurrence' (the primary song). Optional for 'transitions' and 'set_positions' to scope results to one song. Ignored by other stat_types."
        },
        "stat_type": {
          "enum": [
            "gaps",
            "transitions",
            "set_positions",
            "geographic",
            "co_occurrence",
            "song_frequency"
          ],
          "type": "string",
          "description": "Which statistic to compute. This selects the analysis and determines which other parameters apply; each parameter below notes the stat_type(s) it affects."
        },
        "tour_slug": {
          "type": "string",
          "description": "Tour slug filter. Applies only to 'song_frequency'; ignored by other stat_types."
        },
        "venue_slug": {
          "type": "string",
          "description": "Venue slug filter. Applies only to 'song_frequency'; ignored by other stat_types."
        },
        "year_range": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "maxItems": 2,
          "minItems": 2,
          "description": "Inclusive year range as exactly two integers in ascending order: [start_year, end_year]. Applies only to 'song_frequency'. Ignored when year is provided."
        },
        "song_b_slug": {
          "type": "string",
          "description": "Second song slug. Used only by 'co_occurrence': when provided, compares this song against song_slug; when omitted, returns song_slug's most common pairings."
        }
      }
    }
    arguments 142 lines
  • list_shows reads unknown 24h ago

    Browse shows by year, date range, tour, or venue. Returns shows WITHOUT setlists. params: At least one filter required. follow-up: Call get_show with date to get full setlist and audio. display: Link dates to show URLs, venues to venue URLs. Format dates as 'Jul 4, 2023'. Example: | [Jul 4, 2023](show_url) | [MSG](venue_url)

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "year": {
          "type": "integer",
          "description": "Filter by year (e.g., 1997)"
        },
        "limit": {
          "type": "integer",
          "description": "Max shows to return (default: 50)"
        },
        "sort_by": {
          "enum": [
            "date",
            "likes",
            "duration",
            "random"
          ],
          "type": "string",
          "description": "Sort by date (default), likes, duration, or random"
        },
        "end_date": {
          "type": "string",
          "description": "End date for range filter (YYYY-MM-DD)"
        },
        "tour_slug": {
          "type": "string",
          "description": "Filter by tour slug (e.g., 'fall-tour-1997')"
        },
        "sort_order": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort order: asc (default for date) or desc"
        },
        "start_date": {
          "type": "string",
          "description": "Start date for range filter (YYYY-MM-DD)"
        },
        "venue_slug": {
          "type": "string",
          "description": "Filter by venue slug (e.g., 'madison-square-garden')"
        }
      }
    }
    arguments 48 lines
  • search reads unknown 21h ago

    Case-insensitive substring search across shows, songs, venues, tours, tags, and playlists. note: For specific dates ('Halloween 95', 'NYE 99'), use get_show directly. follow-up: Call get_show for full setlist and audio details. display: Link dates to show URLs, titles to song URLs, names to venue URLs. Format dates as 'Jul 4, 2023'. api: https://phish.in/api/v2/swagger_doc (no key required)

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "query"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "description": "Max results per category (default: 25)"
        },
        "query": {
          "type": "string",
          "description": "Search query (2-200 characters)"
        }
      }
    }
    arguments 17 lines
_ try it over mcp through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id f32dfa0a23d64a77.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/f32dfa0a23d64a77/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/f32dfa0a23d64a77/badge.svg)](https://brick.blue/agent/f32dfa0a23d64a77?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we knowoff the mcp door
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.