{"_id":"@a.ardeshir/youtube-mcp","name":"@a.ardeshir/youtube-mcp","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@a.ardeshir/youtube-mcp","version":"1.0.0","description":"Model Context Protocol server for YouTube API - search videos, manage playlists","main":"index.js","type":"module","bin":{"youtube-mcp":"index.js","youtube-mcp-setup":"auth-setup.js"},"scripts":{"start":"node index.js","auth-setup":"node auth-setup.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","googleapis":"^140.0.0","dotenv":"^16.4.5","open":"^10.0.0"},"keywords":["mcp","youtube","api","playlist","claude","model-context-protocol"],"author":{"name":"Amir Ardeshir"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aardeshir/youtube-mcp.git"},"bugs":{"url":"https://github.com/aardeshir/youtube-mcp/issues"},"homepage":"https://github.com/aardeshir/youtube-mcp#readme","engines":{"node":">=18.0.0"},"publishConfig":{"access":"public"},"_id":"@a.ardeshir/youtube-mcp@1.0.0","gitHead":"9deea91b1693c9e0ec24de56816045172d00a246","_nodeVersion":"23.5.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-xcrMADZK8zNovqQwAhVf2LIbPshnMAfNWPXF42fzAYrSkpO5M2wF+MmvW3BN2+bdlDoG2OSSyIU5aw+DqS9tDg==","shasum":"960ee4ac40386ca034c70d4b25f70c14476cc2ff","tarball":"https://registry.npmjs.org/@a.ardeshir/youtube-mcp/-/youtube-mcp-1.0.0.tgz","fileCount":5,"unpackedSize":20186,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDuoh21ZJ2OpO2YlYvyTN3enwLb0kuq/8I/DspgyeRy7AiAA+po3E9jS5Oupi1JBVgXSjhY1weN1aTYvdoZBB8Imfg=="}]},"_npmUser":{"name":"a.ardeshir","email":"a.ardeshir@gmail.com"},"directories":{},"maintainers":[{"name":"a.ardeshir","email":"a.ardeshir@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/youtube-mcp_1.0.0_1755906312597_0.6607009888328721"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-22T23:45:12.533Z","1.0.0":"2025-08-22T23:45:12.780Z","modified":"2025-08-22T23:45:13.021Z"},"maintainers":[{"name":"a.ardeshir","email":"a.ardeshir@gmail.com"}],"description":"Model Context Protocol server for YouTube API - search videos, manage playlists","homepage":"https://github.com/aardeshir/youtube-mcp#readme","keywords":["mcp","youtube","api","playlist","claude","model-context-protocol"],"repository":{"type":"git","url":"git+https://github.com/aardeshir/youtube-mcp.git"},"author":{"name":"Amir Ardeshir"},"bugs":{"url":"https://github.com/aardeshir/youtube-mcp/issues"},"license":"MIT","readme":"# YouTube MCP Server\n\nA Model Context Protocol (MCP) server for YouTube API integration. Search videos, manage playlists, and interact with YouTube directly through Claude Desktop or other MCP clients.\n\n## Features\n\n- 🔍 Search YouTube videos\n- 📋 Create and manage playlists\n- ➕ Add videos to playlists\n- 📝 List user playlists\n- 🗑️ Delete playlists\n\n## Prerequisites\n\n- Node.js 18 or higher\n- YouTube Data API v3 access\n- Google Cloud Console account\n\n## Installation\n\n### Option 1: Install from npm (Recommended)\n\n```bash\nnpm install -g @a.ardeshir/youtube-mcp\n```\n\n### Option 2: Install from GitHub\n\n```bash\ngit clone https://github.com/aardeshir/youtube-mcp.git\ncd youtube-mcp\nnpm install\n```\n\n## Setup\n\n### 1. Set Up YouTube API\n\n#### Step 1: Create a Google Cloud Project\n\n1. Go to [Google Cloud Console](https://console.cloud.google.com/)\n2. Create a new project or select existing one\n3. Note your Project ID\n\n#### Step 2: Enable YouTube Data API v3\n\n1. In Google Cloud Console, go to \"APIs & Services\" > \"Library\"\n2. Search for \"YouTube Data API v3\"\n3. Click on it and press \"Enable\"\n\n**Common Issue**: If you see \"YouTube Data API v3 has not been used in project before or it is disabled\", wait 2-3 minutes after enabling for it to propagate.\n\n#### Step 3: Create OAuth 2.0 Credentials\n\n1. Go to \"APIs & Services\" > \"Credentials\"\n2. Click \"+ CREATE CREDENTIALS\" > \"OAuth client ID\"\n3. If prompted, configure OAuth consent screen:\n   - Choose \"External\" (or \"Internal\" for Workspace)\n   - Fill required fields (app name, support email)\n   - Add your email as a test user\n   - For scopes, add: `https://www.googleapis.com/auth/youtube`\n4. For Application type, select \"Web application\"\n5. Add authorized redirect URI: `http://localhost:8080/callback`\n6. Save and note your Client ID and Client Secret\n\n#### Step 4: Get API Key (Optional - for read-only access)\n\n1. Go to \"APIs & Services\" > \"Credentials\"\n2. Click \"+ CREATE CREDENTIALS\" > \"API key\"\n3. Restrict the key to YouTube Data API v3\n\n### 2. Authenticate\n\nRun the OAuth setup wizard:\n\n**If installed via npm:**\n```bash\nyoutube-mcp-setup\n```\n\n**If installed from GitHub:**\n```bash\nnpm run auth-setup\n```\n\nThis will:\n1. Prompt for your Client ID and Client Secret\n2. Open browser for Google authorization\n3. Generate refresh token automatically\n4. Create `.env` file with your credentials\n\n### 3. Configure Claude Desktop\n\nAdd to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on Mac):\n\n**If installed via npm:**\n```json\n{\n  \"mcpServers\": {\n    \"youtube-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@a.ardeshir/youtube-mcp\"],\n      \"env\": {\n        \"YOUTUBE_API_KEY\": \"your-api-key\",\n        \"YOUTUBE_CLIENT_ID\": \"your-client-id\",\n        \"YOUTUBE_CLIENT_SECRET\": \"your-client-secret\",\n        \"YOUTUBE_REFRESH_TOKEN\": \"your-refresh-token\"\n      }\n    }\n  }\n}\n```\n\n**If installed from GitHub:**\n```json\n{\n  \"mcpServers\": {\n    \"youtube-mcp\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/youtube-mcp/index.js\"],\n      \"env\": {\n        \"YOUTUBE_API_KEY\": \"your-api-key\",\n        \"YOUTUBE_CLIENT_ID\": \"your-client-id\",\n        \"YOUTUBE_CLIENT_SECRET\": \"your-client-secret\",\n        \"YOUTUBE_REFRESH_TOKEN\": \"your-refresh-token\"\n      }\n    }\n  }\n}\n```\n\n## Usage Examples\n\n### Search Videos\n```\nSearch YouTube for \"piano tutorials\"\n```\n\n### Create Playlist\n```\nCreate a YouTube playlist called \"My Favorites\" \n```\n\n### List Playlists\n```\nShow my YouTube playlists\n```\n\n## Troubleshooting\n\n### \"YouTube Data API v3 has not been used in project before\"\n- Ensure API is enabled in Google Cloud Console\n- Wait 2-3 minutes for changes to propagate\n- Check you're using correct project\n\n### \"Invalid Credentials\" error\n- Verify OAuth consent screen is configured\n- Ensure test user email is added\n- Check redirect URI matches exactly: `http://localhost:8080/callback`\n\n### MCP not connecting in Claude Desktop\n- Check all environment variables are set\n- Restart Claude Desktop after config changes\n- Verify Node.js path is correct\n\n### \"Quota exceeded\" error\n- YouTube API has daily quotas\n- Check [Google Cloud Console](https://console.cloud.google.com/) for usage\n- Consider requesting quota increase\n\n## Security Notes\n\n- Never commit `.env` file to version control\n- Keep your refresh token secure\n- Use OAuth for production, API key only for testing\n- Regularly rotate credentials\n\n## Contributing\n\nContributions welcome! Please:\n1. Fork the repository\n2. Create feature branch\n3. Submit pull request\n\n## License\n\nMIT - See LICENSE file\n\n## Support\n\nFor issues and questions:\n- [GitHub Issues](https://github.com/aardeshir/youtube-mcp/issues)\n- [MCP Documentation](https://modelcontextprotocol.io)\n\n## Acknowledgments\n\nBuilt with:\n- [Model Context Protocol SDK](https://github.com/anthropics/mcp)\n- [Google APIs Node.js Client](https://github.com/googleapis/google-api-nodejs-client)\n","readmeFilename":"README.md","_rev":"1-6a418dd8df933ec2b6bf22b68e3b9a0d"}