guMCP server implementation for interacting with the YouTube Data API v3.
- Python 3.11+
- A Google Cloud project with the YouTube Data API v3 enabled
- OAuth 2.0 credentials configured for desktop application access
Local authentication uses a Google OAuth Configuration JSON file located at:
local_auth/oauth_configs/youtube/oauth.json
This file can be downloaded when creating an OAuth client from the Google Cloud Console.
To authenticate and save credentials for local testing, run:
python src/servers/youtube/main.py authAfter successful authentication, your credentials will be stored securely for reuse.
This server exposes the following tools for interacting with YouTube:
get_video_detailsβ Get title, description, and duration of a videolist_channel_videosβ List recent uploads from a channelget_video_statisticsβ Get views, likes, comments for a videosearch_videosβ Search videos globally across YouTubeget_channel_detailsβ Retrieve channel metadata (title, description, etc.)list_channel_playlistsβ List playlists owned by a channelget_channel_statisticsβ Get subscriber count and view countlist_playlist_itemsβ List videos in a given playlistget_playlist_detailsβ Get title and description of a playlist
You can launch the server for local development using:
./start_sse_dev_server.shThis will start the YouTube MCP server and make it available for integration and testing.
You can also start the local client using the following:
python RemoteMCPTestClient.py --endpoint http://localhost:8000/youtube/local- Ensure your OAuth app has YouTube Data API v3 access enabled in the Google Cloud console.
- If you're testing with multiple users or environments, use different
user_idvalues. - Make sure your
.envfile contains the appropriate API keys if you're using external LLM services like Anthropic.