HelpAbout BitePods
The API and the MCP server
Every step in Help can also be done by a program, or by an AI assistant on your behalf: find a show, list its episodes, read the transcript, and turn two times into a link. It is the same free thing — no key, no account, no sign-up — and a bite made this way is the same bite, with the same link, the same page and the same MP3.
There are two ways in and they are the same seven operations: an MCP server at bitepods.com/mcp for assistants, and a REST API at bitepods.com/api/v1 for everything else. Same names, same arguments, same answers.
Connect an assistant
Streamable HTTP, stateless, no authentication. Once it is added, asking for a bite of a show is enough: it searches, picks the episode, reads the transcript and hands back the link.
- Claude Code
claude mcp add --transport http bitepods https://bitepods.com/mcp- One line, and the tools are there the next time you ask for a clip.
- Claude Desktop, Cursor, VS Code, Windsurf, Zed
{ "mcpServers": { "bitepods": { "type": "http", "url": "https://bitepods.com/mcp" } } }- Anything that reads an mcpServers block. Some clients spell the transport "transport": "http" or "type": "streamable-http" instead; there is nothing else to configure — no key, no env, no command, no npx.
- By hand, to check it answers
curl -s -X POST https://bitepods.com/mcp \ -H 'content-type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'- Answers with the seven tools and their argument schemas.
Call it from a script
Four steps, and the third is optional. Times are seconds from the start of the episode — 754.3, never "12:34". The URL you pass is the URL that gets shared: it is never rewritten.
# 1. the show, by name
curl -s 'https://bitepods.com/api/v1/shows/search?q=hard+fork'
# -> shows[0].sourceUrl = https://feeds.simplecast.com/6HKOhNgS
# 2. an episode. Each carries a clipUrl to hand back
curl -s 'https://bitepods.com/api/v1/episodes?url=https%3A%2F%2Ffeeds.simplecast.com%2F6HKOhNgS&limit=1'
# 3. the moment, where the publisher ships a transcript
curl -s 'https://bitepods.com/api/v1/transcript?url=<clipUrl>&start=600&end=900'
# -> lines[] with start and end in seconds
# 4. the clip
curl -s -X POST 'https://bitepods.com/api/v1/clips' -H 'content-type: application/json' \
-d '{"url":"<clipUrl>","start":754.3,"end":784.5}'
# -> links.page, links.short, links.mp3The seven operations
The same seven whether you call them as REST under /api/v1 or as MCP tools. Everything but create_clip only reads; that one writes exactly one thing, the pairing behind a short link, and it can be told not to.
search_showsGET /shows/search- Find podcasts by name
- q limit?
top_showsGET /shows/top- The podcast charts
- country? limit?
list_episodesGET /episodes- List a show's episodes
- url limit? offset?
resolve_urlGET /resolve- Work out what a URL points at
- url
get_transcriptGET /transcript- Read the publisher's transcript, timed
- url showUrl? start? end? limit?
create_clipPOST /clips- Make a shareable clip
- url start end title? showUrl? audioUrl? shorten?
get_clipGET /clips/{id}- Read a clip back by its short id
- id
The reference
Four addresses describe this surface at runtime, all generated from the same file the routes and their argument checking are built from. If they and this page ever disagree, they are right.
- bitepods.com/llms.txt
- What BitePods is, in the form a crawler reads to answer a question about it, with a pointer to this surface appended.
- bitepods.com/llms-full.txt
- The whole guide as prose, written for a model that has arrived with a fetch tool and no other context.
- bitepods.com/openapi.json
- OpenAPI 3.1. Point a generator at it rather than reading anything.
- bitepods.com/api/v1
- Every endpoint, every argument and the MCP details, as JSON — so a program can find its own way around before it calls anything.
What it will not do is find the good bits for you. It hands over the show's own transcript when there is one — about one in six publishes one — and choosing the moment stays yours, the same as it is in the app.