Create a JSON file with a top-level 'version' field set to '1.2.0' (the current Podcast Chapters JSON spec version) and a 'chapters' array containing chapter objects
Each chapter object requires 'startTime' as a float representing seconds from the beginning of the audio (e.g., 0.0 for the start, 125.5 for 2 minutes and 5.5 seconds) and 'title' as a string for the chapter label
Add optional fields per chapter: 'img' (URL to a chapter-specific image that players can display), 'url' (a hyperlink the listener can open from the chapter), and 'toc' (boolean — set to false to create a silent marker that triggers an image or action change without appearing in the chapter table of contents)
Reference the chapters file from the RSS feed item using the 'podcast:chapters' tag: '<podcast:chapters url="https://cdn.example.com/ep1/chapters.json" type="application/json+chapters" />' — the file can be updated after publishing without changing the RSS feed
Serve the chapters JSON file with 'Content-Type: application/json' and ensure it is publicly accessible without authentication — podcast apps fetch it directly from the URL in the feed
Validate the file structure against the Podcasting Index chapters specification and test in a supporting app such as Podverse or Fountain — check that chapter images load and that the table of contents excludes 'toc: false' markers
Known gotchas
startTime values must be floats in seconds, not HH:MM:SS strings — apps that expect seconds will parse HH:MM:SS strings incorrectly and display wrong chapter markers
The chapters JSON file is fetched at playback time, not cached in the feed — ensure your CDN or hosting can handle concurrent requests if your podcast has many simultaneous listeners
Chapter images referenced by 'img' should be hosted on reliable infrastructure — a broken image URL causes chapter art to fail silently in apps without exposing the underlying error to the listener
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp