Remote YouTube Server
FreeNot checkedA remote Model Context Protocol server that extracts YouTube video transcripts and provides content creation templates using OAuth 2.0 authentication. It enable
About
A remote Model Context Protocol server that extracts YouTube video transcripts and provides content creation templates using OAuth 2.0 authentication. It enables secure interaction with YouTube content for AI clients like ChatGPT and Claude.
README
A remote MCP (Model Context Protocol) server protected by Auth0 OAuth. It exposes tools for the authenticated user (greet, writing prompts) and optional Gmail access (list recent emails for the logged-in user).
Prerequisites
- Python 3.13+
- uv (install)
- Auth0 account (for MCP authentication)
- Google Cloud project (only if you want Gmail tools)
End-to-end setup
1. Clone and install
git clone <your-repo-url>
cd auth-mcp-remote
uv sync
2. Auth0 setup (required)
You need an Auth0 Application and API so MCP clients can authenticate.
Create an Auth0 account at auth0.com and open the Dashboard.
Create an API (this is your “audience”):
- Applications → APIs → Create API
- Name: e.g.
Auth MCP Server - Identifier: e.g.
https://your-server.example.com/mcp(use your real MCP URL; this is your Audience) - Signing Algorithm: RS256 → Create
Create an Application (for the MCP client):
- Applications → Applications → Create Application
- Name: e.g.
MCP Client - Type: Machine to Machine (or Native for local clients)
- Choose your API and authorize it; grant scopes:
openid,profile,email - Note the Client ID and Client Secret if you need them for the client
Note your Auth0 domain (e.g.
your-tenant.auth0.com) from the Auth0 Dashboard.Environment variables (see step 5 below): you will set:
AUTH0_DOMAIN= your tenant domain (e.g.your-tenant.auth0.com)AUTH0_AUDIENCE= the API Identifier you set (e.g.https://your-server.example.com/mcp)RESOURCE_SERVER_URL= same as audience, or the public URL where your MCP server is reached (e.g.https://your-server.example.com/mcp)
3. Google Cloud setup (optional, for Gmail tools)
Only needed if you want list_my_recent_emails and link_my_gmail.
Create or select a project in Google Cloud Console.
Enable Gmail API:
- APIs & Services → Library → search Gmail API → Enable.
Configure OAuth consent screen:
- APIs & Services → OAuth consent screen.
- User type: External → Create.
- App information: name (e.g.
dibya-mcp-gmail), support email, developer contact → Save and Continue. - Scopes → Add or Remove Scopes → add
https://www.googleapis.com/auth/gmail.readonly→ Save and Continue. - Test users (if in Testing mode): add the Gmail addresses that will use the app (e.g. your own) → Save and Continue.
- Summary → Back to Dashboard.
Create OAuth 2.0 credentials:
- APIs & Services → Credentials → Create Credentials → OAuth client ID.
- Application type: Desktop app (or Web application with redirect URI below).
- Name: e.g.
MCP Gmail. - If Web application: under Authorized redirect URIs add exactly:
http://localhost:8080/. - Create → copy Client ID and Client Secret.
Environment variables (see step 5): you will set:
GOOGLE_CLIENT_ID= OAuth client Client IDGOOGLE_CLIENT_SECRET= OAuth client Client Secret
4. Get a Gmail refresh token (optional, for Gmail tools)
The MCP server needs a refresh token issued by your OAuth client (tokens from Google OAuth Playground will not work).
Add redirect URI in Google Cloud (if not already):
- APIs & Services → Credentials → your OAuth 2.0 Client ID.
- Under Authorized redirect URIs add:
http://localhost:8080/(with trailing slash) → Save.
Run the one-time script from the project root:
uv run python scripts/get_gmail_refresh_token.py- The script prints the exact redirect URI to add if needed.
- Press Enter to open the browser; sign in with the Google account whose Gmail you want to use.
- After consent, the script prints a refresh token. Copy it.
Link Gmail in the MCP server (after the server is running and you are authenticated with Auth0):
- Call the MCP tool
link_my_gmailwith that refresh token. The server stores it for your Auth0 user solist_my_recent_emailscan work.
- Call the MCP tool
5. Environment variables
In the project root, create a .env file (see .env.example):
Required (Auth0):
AUTH0_DOMAIN=your-tenant.auth0.com
AUTH0_AUDIENCE=https://your-server.example.com/mcp
RESOURCE_SERVER_URL=https://your-server.example.com/mcp
Optional (Gmail):
GOOGLE_CLIENT_ID=xxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=xxx
Optional: GMAIL_TOKEN_STORE_PATH=.gmail_tokens.json (default; where per-user refresh tokens are stored).
6. Run the server
uv run python main.py
Server runs at http://0.0.0.0:8000/mcp (or the URL you use in production, e.g. behind a reverse proxy). MCP clients must send requests with a valid Auth0 access token (Bearer) for your API.
MCP tools
| Tool | Description |
|---|---|
greet_user |
Greets the authenticated user by name. |
fetch_instructions(prompt_name) |
Returns writing templates: write_blog_post, write_social_post, write_video_chapters. |
link_my_gmail(refresh_token) |
Links Gmail for the current Auth0 user using a Google refresh token (one-time). |
list_my_recent_emails(max_results) |
Lists recent Gmail messages for the authenticated user (default 10, max 20). Requires Gmail linked first. |
Troubleshooting
“Gmail is not configured”
SetGOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRETin.env, then uselink_my_gmailwith a refresh token fromscripts/get_gmail_refresh_token.py.“redirect_uri_mismatch”
Add exactlyhttp://localhost:8080/to your Google OAuth client’s Authorized redirect URIs and save.“This app’s request is invalid” / “only developer-approved testers”
OAuth app is in Testing. In APIs & Services → OAuth consent screen → Test users, add your Gmail address. Or Publish app (you’ll see an “unverified app” warning until verification is done).“unauthorized_client” when listing emails
The refresh token must be from your OAuth client. Get a new one withuv run python scripts/get_gmail_refresh_token.pyand calllink_my_gmailagain.
Tech stack
- FastMCP – MCP server
- Auth0 – OAuth 2.0 for MCP authentication
- Google APIs – Gmail read-only for the linked user
- uv – Python dependency management
Installing Remote YouTube Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/DibyaRanjan1/AUTH-MCP-REMOTEFAQ
Is Remote YouTube Server MCP free?
Yes, Remote YouTube Server MCP is free — one-click install via Unyly at no cost.
Does Remote YouTube Server need an API key?
No, Remote YouTube Server runs without API keys or environment variables.
Is Remote YouTube Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Remote YouTube Server in Claude Desktop, Claude Code or Cursor?
Open Remote YouTube Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
ARA
Generate images, video and audio from any AI agent — one connector.
by ARAOmni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolCompare Remote YouTube Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
