feat(examples): Add video-resource-server example
Demonstrates serving binary content (video) via MCP resources using the
base64 blob pattern:
1. Server fetches video from CDN
2. Returns as base64 blob via `videos://{id}` resource template
3. Widget fetches resource and plays in `<video>` element
Includes multiple video sizes for testing (1MB to 150MB).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
d925af5257
commit
ba45157d55
1 changed files with 554 additions and 0 deletions
22
examples/video-resource-server/README.md
Normal file
22
examples/video-resource-server/README.md
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Video Resource Server
|
||||
|
||||
Demonstrates serving binary content (video) via MCP resources using the base64 blob pattern.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
- **play_video** - Plays a video loaded via MCP resource
|
||||
- `videoId`: Choose from various sizes (`bunny-1mb`, `bunny-5mb`, `bunny-10mb`, etc.)
|
||||
|
||||
## How It Works
|
||||
|
||||
1. The `play_video` tool returns a `videoUri` pointing to an MCP resource
|
||||
2. The widget fetches the resource via `resources/read`
|
||||
3. The server fetches the video from CDN and returns it as a base64 blob
|
||||
4. The widget decodes the blob and plays it in a `<video>` element
|
||||
Loading…
Reference in a new issue