Vimeo MCP Server
A Model Context Protocol (MCP) server that provides tools for interacting with the Vimeo API. This server allows you to manage videos, transcripts, and retrieve video statistics through a standardized interface.
Features
- List Videos: Search and filter videos in your Vimeo account
- Get Video Details: Retrieve comprehensive metadata and statistics for specific videos
- Update Videos: Modify video titles, descriptions, tags, and privacy settings
- Manage Transcripts: Download and upload video transcripts/captions in multiple formats
- Video Statistics: Access play counts and other video metrics
Installation
npm install @mcp/vimeo
Or install from source:
git clone <repository-url>
cd vimeo-mcp
npm install
npm run build
Configuration
Authentication
The Vimeo MCP server supports two authentication methods:
1. Personal Access Token (Recommended)
Create a personal access token in your Vimeo Developer Settings with the following scopes:
private- Access private videosedit- Edit video metadataupload- Upload transcriptsstats- View video statistics
Set the environment variable: ``bash export VIMEO_ACCESS_TOKEN="your_access_token_here" ``
2. OAuth2 Authentication
For OAuth2 authentication, you'll need: ``bash export VIMEO_CLIENT_ID="your_client_id" export VIMEO_CLIENT_SECRET="your_client_secret" ``
Claude Desktop Configuration
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"vimeo": {
"command": "node",
"args": ["/path/to/vimeo-mcp/dist/index.js"],
"env": {
"VIMEO_ACCESS_TOKEN": "your_access_token_here"
}
}
}
}
Available Tools
vimeo_list_videos
List videos from your Vimeo account with optional filtering.
Parameters:
page(number, optional): Page number (default: 1)per_page(number, optional): Results per page, max 100 (default: 25)query(string, optional): Search querysort(string, optional): Sort order - "date", "alphabetical", "plays", "likes", "duration"direction(string, optional): Sort direction - "asc" or "desc"
Example: `` List my most played videos ``
vimeo_get_video_details
Get detailed information about a specific video.
Parameters:
video_id(string, required): The ID of the video
Example: `` Get details for video 123456789 ``
vimeo_update_video
Update video metadata.
Parameters:
video_id(string, required): The ID of the video to updatetitle(string, optional): New video titledescription(string, optional): New video descriptiontags(array, optional): Array of tag stringsprivacy(string, optional): Privacy setting - "anybody", "nobody", "password", "disable"
Example: `` Update video 123456789 with title "My New Title" and tags ["tutorial", "coding"] ``
vimeo_download_transcript
Download video transcript or captions.
Parameters:
video_id(string, required): The ID of the videolanguage(string, optional): Language code (default: "en")format(string, optional): Format - "webvtt" or "srt" (default: "webvtt")
Example: `` Download English transcript for video 123456789 in SRT format ``
vimeo_upload_transcript
Upload a new transcript or captions for a video.
Parameters:
video_id(string, required): The ID of the videocontent(string, required): The transcript contentlanguage(string, optional): Language code (default: "en")format(string, optional): Format - "webvtt" or "srt" (default: "webvtt")
Example: ``` Upload this transcript for video 123456789: WEBVTT
00:00:00.000 --> 00:00:05.000 Hello, welcome to my video.
00:00:05.000 --> 00:00:10.000 Today we'll be learning about MCP servers. ```
vimeo_get_video_stats
Get statistics for a video.
Parameters:
video_id(string, required): The ID of the video
Example: `` Get stats for video 123456789 ``
Error Handling
The server implements comprehensive error handling:
- Rate Limiting: Automatically detects rate limit errors and provides retry information
- API Errors: Detailed error messages for failed API calls
- Network Errors: Graceful handling of connection issues
- Validation Errors: Clear messages for invalid parameters
Rate Limiting
Vimeo's API has rate limits. The server handles these automatically by:
- Detecting 429 (Too Many Requests) responses
- Extracting retry-after headers
- Providing clear feedback about when to retry
Development
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev
# Watch for changes
npm run watch
License
MIT
Support
For issues and feature requests, please visit the GitHub repository.
For Vimeo API documentation, see: https://developer.vimeo.com/api/reference












