galacoder/vimeo-mcp
If you are the rightful owner of vimeo-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server that provides tools for interacting with the Vimeo API, allowing management of videos, transcripts, and retrieval of video statistics.
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:
export VIMEO_ACCESS_TOKEN="your_access_token_here"
2. OAuth2 Authentication
For OAuth2 authentication, you'll need:
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