CLI, MCP server and agent for automating YouTube workflows such as managing videos, playlists and channels.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add yutu --env YUTU_CREDENTIAL='<YUTU_CREDENTIAL>' --env YUTU_CACHE_TOKEN='<YUTU_CACHE_TOKEN>' -- npx -y @eat-pray-ai/yutu~/.codex/config.toml
[mcp_servers.yutu]
command = "npx"
args = ["-y", "@eat-pray-ai/yutu"]
env = { YUTU_CREDENTIAL = "<YUTU_CREDENTIAL>", YUTU_CACHE_TOKEN = "<YUTU_CACHE_TOKEN>" }
# codex mcp add yutu --env YUTU_CREDENTIAL='<YUTU_CREDENTIAL>' --env YUTU_CACHE_TOKEN='<YUTU_CACHE_TOKEN>' -- npx -y @eat-pray-ai/yutu~/.cursor/mcp.json
{
"mcpServers": {
"yutu": {
"command": "npx",
"args": [
"-y",
"@eat-pray-ai/yutu"
],
"env": {
"YUTU_CREDENTIAL": "<YUTU_CREDENTIAL>",
"YUTU_CACHE_TOKEN": "<YUTU_CACHE_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"yutu": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@eat-pray-ai/yutu"
],
"env": {
"YUTU_CREDENTIAL": "<YUTU_CREDENTIAL>",
"YUTU_CACHE_TOKEN": "<YUTU_CACHE_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"yutu": {
"command": "npx",
"args": [
"-y",
"@eat-pray-ai/yutu"
],
"env": {
"YUTU_CREDENTIAL": "<YUTU_CREDENTIAL>",
"YUTU_CACHE_TOKEN": "<YUTU_CACHE_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"yutu": {
"command": "npx",
"args": [
"-y",
"@eat-pray-ai/yutu"
],
"env": {
"YUTU_CREDENTIAL": "<YUTU_CREDENTIAL>",
"YUTU_CACHE_TOKEN": "<YUTU_CACHE_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"yutu": {
"command": "npx",
"args": [
"-y",
"@eat-pray-ai/yutu"
],
"env": {
"YUTU_CREDENTIAL": "<YUTU_CREDENTIAL>",
"YUTU_CACHE_TOKEN": "<YUTU_CACHE_TOKEN>"
}
}
}
}Environment variables
YUTU_CREDENTIALYUTU_CACHE_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.