Grateful Dead Knowledge Graph

DeadGraph

675,641 tracks. 18,106 recordings. 2,336 shows.
30 years of the Grateful Dead, structured and searchable.

A knowledge graph built from the Internet Archive's Grateful Dead collection, served through an MCP server that Claude Desktop can query with natural language.

A structured record of every show
they ever played.

DeadGraph is a structured knowledge base of the Grateful Dead's entire live concert history. Every show from 1965 to 1995. Every recording uploaded by the community to the Internet Archive. Every track on every tape, normalized into canonical entities and made queryable.

The data is harvested from the Internet Archive's Grateful Dead collection - tens of thousands of community-contributed recordings that are freely accessible. DeadGraph doesn't redistribute audio. It structures the metadata: who played where, when, what songs, in what order, for how long.

The whole thing is served through an MCP (Model Context Protocol) server. Connect it to Claude Desktop and ask questions in plain English. No SQL required. No special syntax. Just ask like you're talking to a fellow Deadhead.

Complete Concert History

2,336 unique shows spanning 1965-1995. 3,144 raw venue strings collapsed into canonical show records via text clustering.

Every Recording

18,106 recordings catalogued with source type, transfer quality, community ratings, and direct links back to the Internet Archive.

675,641 Tracks

Every song on every tape. With durations, segue detection, and statistics: first play, last play, performance count, average length.

Natural Language Queries

Ask Claude Desktop anything about the Dead's live history. DeadGraph handles the lookup via five purpose-built MCP tools.

From tape reel to knowledge graph

Six stages transform raw Internet Archive metadata into a fully indexed, rights-aware, edge-deployed knowledge base.

Harvest

Async scraping of 18,106 items from the Internet Archive API using httpx with tenacity retry logic (5 attempts, exponential backoff). Pulls metadata, recording sources, track listings, and community ratings. Outputs two raw JSONL files.

Python / httpx / asyncio

Canonicalize

3,144 raw venue strings collapsed into 2,336 unique shows via slug-based clustering and date grouping. Each show gets a stable ID in the format gd:show:1977-05-08:cornell-university. Duration parsing normalizes every time format the Archive uses.

Python / record linkage

Enrich

Song-level statistics computed across all 675,641 tracks: first known performance, last known performance, total count, average duration. Segue detection identifies song transitions using track-order analysis. All stats stored in a single enriched stats.json.

Python / statistics

Filter

Rights-aware filtering via policy.yaml. Only recordings with CC0, CC-BY, CC-BY-NC, or Public Domain licenses pass through. Blocked sources are excluded. No audio redistribution. No lyrics. Metadata as facts with citations - that's the policy.

Python / policy.yaml

Index

Filtered JSONL loaded into Cloudflare D1 (SQLite at the edge) with FTS5 full-text search indexes on show fields, venue names, song titles, and recording identifiers. Schema migrations run via Wrangler. Zero cold-start overhead.

Cloudflare D1 / SQLite FTS5 / Wrangler

Serve

Cloudflare Worker with Hono serving the MCP protocol over HTTP with Server-Sent Events. OAuth 2.1 authentication. Five MCP tools for natural language queries. Global edge deployment on Cloudflare's network. $0/month on the free tier.

TypeScript / Hono / Cloudflare Workers / OAuth 2.1

Ask Claude anything about the Dead

Connect DeadGraph to Claude Desktop and query 30 years of concert history in plain English. Five purpose-built tools handle every kind of question.

Tool 01

search_shows

Search shows by venue, date range, or keywords using FTS5 full-text search. Returns shows with recording counts, sorted by relevance.

Example queries

"cornell 1977" "winterland new year" "1969-02"

Tool 02

get_show

Full details for a specific show - venue, date, musicians listed, all recordings sorted by community rating. Each recording links directly to Archive.org.

Example

get_show("gd:show:1977-05-08:cornell-university")

Tool 03

get_setlist

Full track listing for a specific recording. Song titles, individual durations, total runtime, and a direct link to stream the recording on Archive.org.

Example

get_setlist("gd:rec:gd1977-05-08.sbd")

Tool 04

search_songs

Find every known performance of a song across all 30 years. Returns unique show dates, performance counts, first and last known performance, and average duration.

Example

"Dark Star" - 233 show dates found "Scarlet Begonias"

Tool 05

get_stats

Database summary statistics at a glance. Total shows, recordings, tracks, date range covered, and a breakdown of recording source types (SBD, AUD, MTX).

Returns

2,336 shows / 18,106 recordings 675,641 tracks / 1965-1995

Questions Deadheads actually ask

These placeholders will be replaced with actual Claude Desktop screenshots. For now - here's what you can ask.

What shows did the Dead play at Cornell?

Screenshot coming soon

Find the longest Dark Star performances

Screenshot coming soon

What was the setlist for 5/8/77?

Screenshot coming soon

How many times did they play Scarlet Begonias into Fire on the Mountain?

Screenshot coming soon

Thirty years of music, by the numbers

0

Tracks

songs across all recordings

0

Recordings

community-uploaded tapes

0

Shows

unique concert dates

1965-1995

Years Active

30 years of live music

0

Tests

100% pass rate

$0

Monthly Cost

Cloudflare free tier

The tech stack

Python for data wrangling. TypeScript for the edge. Cloudflare for everything in between.

Python Pipeline

httpx, tenacity, FAISS, MiniLM - async harvest to indexed knowledge base

Cloudflare Workers

TypeScript MCP server with Hono framework - edge compute, zero cold start

Cloudflare D1

SQLite at the edge with FTS5 full-text search indexes

OAuth 2.1

Standard auth for MCP connections from Claude Desktop and other clients

Internet Archive

Data source - 18,106 freely accessible community recordings

MCP Protocol

Model Context Protocol - standard interface for AI tool integrations

Connect to DeadGraph

Three steps to start querying 30 years of Grateful Dead history from Claude Desktop.

Open Claude Desktop Settings

Open the Claude Desktop app. Click the hamburger menu (top left), then Settings and Developer. Click Edit Config to open claude_desktop_config.json.

Add the MCP Server

Paste this configuration into your mcpServers block:

{
  "mcpServers": {
    "deadgraph": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.deadgraph.com/sse"
      ]
    }
  }
}

Restart and Authenticate

Restart Claude Desktop. On first connection, a browser window opens for OAuth authentication. Enter the access PIN when prompted, and you're connected. Start asking questions.