loading…
Search for a command to run...
loading…
A remote Model Context Protocol server that extracts YouTube video transcripts and provides content creation templates using OAuth 2.0 authentication. It enable
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.
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).
git clone <your-repo-url>
cd auth-mcp-remote
uv sync
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”):
Auth MCP Serverhttps://your-server.example.com/mcp (use your real MCP URL; this is your Audience)Create an Application (for the MCP client):
MCP Clientopenid, profile, emailNote 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)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:
Configure OAuth consent screen:
dibya-mcp-gmail), support email, developer contact → Save and Continue.https://www.googleapis.com/auth/gmail.readonly → Save and Continue.Create OAuth 2.0 credentials:
MCP Gmail.http://localhost:8080/.Environment variables (see step 5): you will set:
GOOGLE_CLIENT_ID = OAuth client Client IDGOOGLE_CLIENT_SECRET = OAuth client Client SecretThe 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):
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
Link Gmail in the MCP server (after the server is running and you are authenticated with Auth0):
link_my_gmail with that refresh token. The server stores it for your Auth0 user so list_my_recent_emails can work.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).
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.
| 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. |
“Gmail is not configured”
Set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in .env, then use link_my_gmail with a refresh token from scripts/get_gmail_refresh_token.py.
“redirect_uri_mismatch”
Add exactly http://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 with uv run python scripts/get_gmail_refresh_token.py and call link_my_gmail again.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"remote-youtube-mcp-server": {
"command": "npx",
"args": []
}
}
}