mcp-umphreys
Enables querying Umphrey's McGee setlist data including shows, songs, jam charts, and guest appearances through natural language.
README
mcp-umphreys
A FastMCP (Streamable HTTP) MCP server for Umphrey's McGee setlist data. It reads from the umphreys-vault Postgres database (the source of truth) with a live All Things Umphreys (ATU) v2 API fallthrough for in-progress shows on show night.
No audio, no reviews: Umphrey's has no upstream analog for either.
Templated from mcp-phish; the public tool output shapes are byte-for-byte
compatible with that contract so the downstream setlist game
(open-setlist-stash) parses them unchanged.
Tools
Game-critical (shapes match the mcp-phish contract):
| Tool | Returns | Notes |
|---|---|---|
health() |
Health |
Single atu upstream; cache + vault freshness. |
recent_shows(limit=10) |
[ShowSummary] |
Newest first. Hot-window newest show reads live. |
search_songs(query, limit=25) |
[SongSummary] |
Title/alias ILIKE. |
get_song(slug) |
Song |
Field is gap (vault gap_current projected). |
get_show(date_or_id) |
Show |
set_number=="e" → set_name=="Encore". Hot-window reads live ATU. |
songs_by_gap(limit=25) |
[SongGap] |
Field is gap_current, gap desc. |
validate_song_slugs(slugs) |
SlugValidation |
valid sorted, unknown in request order. |
venue_history(venue_slug, limit=25) |
[VenueShow] |
Newest first. |
Umphrey's-native (no game dependency):
| Tool | Returns | Notes |
|---|---|---|
jam_chart(year=None, limit=50) |
[NotableJam] |
From jam_chart_entries. |
appearances(person_slug=None, show_date=None, limit=50) |
[Appearance] |
Guest sit-ins. |
song_history(slug, limit=50) |
[Performance] |
Most-recent first; gap is null. |
Every tool returns {"data": <model>} (or the standard {"error", "code"}
failure shape) as a JSON string in the FastMCP content[0].text.
The hot window
get_show / recent_shows for a show within VAULT_HOT_WINDOW_HOURS (default
24) of now read live from ATU instead of the vault, with a short cache TTL
(HOT_WINDOW_CACHE_TTL_SECONDS, default 90s). This is required so the game's
resolver sees an in-progress setlist grow on show night instead of a frozen
vault snapshot. The set-label normalization (e → Encore, One Set →
Set 1) is applied identically on the live and vault paths so encore detection
works in both.
Running
cp .env.example .env # set PG_PASSWORD; STUB_MODE=true skips the live network
pip install -e ".[dev]"
python -m mcp_umphreys.server # Streamable HTTP on :3717
Tests run with no network and no Postgres (stub ATU client + a fake vault reader):
ruff check . && mypy && pytest
Deployment
docker compose up -d builds the image and joins the external
umphreys-vault_default network so the server reaches the vault's postgres
container by name. The opaque response cache persists in the
mcp-umphreys-cache volume. Port 3717.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.