An MCP (Model Context Protocol) server providing access to the Hacker Public Radio (HPR) knowledge base, including episodes, transcripts, hosts, series, and community comments.
## About HPR
Hacker Public Radio is a community-driven podcast where hosts contribute content on topics of interest to hackers. All content is released under Creative Commons licenses, making it freely available for learning and sharing.
## Features
This MCP server provides:
- **Episode Search**: Search through thousands of HPR episodes by title, summary, tags, or host notes
- **Transcript Search**: Full-text search across all episode transcripts
- **Episode Details**: Get complete information about any episode including transcript and comments
- **Host Information**: Look up hosts and see all their contributions
- **Series Browsing**: Explore mini-series of related episodes
- **Statistics**: View overall HPR statistics and recent episodes
Replace `/absolute/path/to/knowledge_base/` with the actual path to this directory.
### Using with Other MCP Clients
Any MCP-compatible client can connect to this server via stdio. The server will load all HPR data on startup and make it available through tools and resources.
## Available Tools
### 1. `search_episodes`
Search for episodes by keywords in title, summary, tags, or notes.
**Parameters:**
-`query` (string): Search query
-`limit` (number, optional): Maximum results (default: 20)
-`hostId` (number, optional): Filter by specific host
-`seriesId` (number, optional): Filter by specific series
-`tag` (string, optional): Filter by tag
-`fromDate` (string, optional): Filter from date (YYYY-MM-DD)
-`toDate` (string, optional): Filter to date (YYYY-MM-DD)
**Example:**
```
Search for episodes about "linux kernel" from 2020 onwards
```
### 2. `get_episode`
Get detailed information about a specific episode.
**Parameters:**
-`episodeId` (number, required): Episode ID
-`includeTranscript` (boolean, optional): Include transcript (default: true)
-`includeComments` (boolean, optional): Include comments (default: true)
**Example:**
```
Get details for episode 16 including transcript and comments
```
### 3. `search_transcripts`
Search through episode transcripts for specific keywords.
**Parameters:**
-`query` (string, required): Search query
-`limit` (number, optional): Maximum episodes to return (default: 20)
-`contextLines` (number, optional): Lines of context around matches (default: 3)
**Example:**
```
Search transcripts for mentions of "virtual machine"
```
### 4. `get_host_info`
Get information about a host and their episodes.
**Parameters:**
-`hostId` (number, optional): Host ID
-`hostName` (string, optional): Host name to search for
-`includeEpisodes` (boolean, optional): Include episode list (default: true)
**Example:**
```
Get information about host "klaatu" including all their episodes
```
### 5. `get_series_info`
Get information about a series and all its episodes.
**Parameters:**
-`seriesId` (number, required): Series ID
**Example:**
```
Get information about series 4 (Databases series)
```
## Available Resources
### `hpr://stats`
Overall statistics about the HPR knowledge base
### `hpr://episodes/recent`
List of 50 most recent episodes
### `hpr://hosts/all`
List of all HPR hosts with episode counts
### `hpr://series/all`
List of all HPR series with descriptions
## Data Structure
The server expects the following directory structure: