Vimeo MCP Server & CLI
A free, open source Vimeo MCP server and CLI that lets Claude Code, Codex, Cursor and other AI agents read transcripts and organize your Vimeo library.
0.0(0 ratings)- 1
Add it with a single command in a terminal.
claude mcp add vimeo \
-e VIMEO_PAT=your-token \
-- npx -y @thenavidm/vimeo-mcp-cli@latest - 2
In Claude Code, type /mcp. Vimeo should show as connected.
/mcp
- 1
Add it with a single command in a terminal.
claude mcp add vimeo -e VIMEO_PAT="your-token" -- npx -y @thenavidm/vimeo-mcp-cli@latest - 2
In Claude Code, type /mcp. Vimeo should show as connected.
/mcp
- 1
Add it with a single command in a terminal.
claude mcp add vimeo \
-e VIMEO_PAT=your-token \
-- npx -y @thenavidm/vimeo-mcp-cli@latest - 2
In Claude Code, type /mcp. Vimeo should show as connected.
/mcp
- 1Download the extension
Download the Claude Desktop extension.
- 2
Double-click it, and Claude Desktop installs it.
- 1
Add it with a single command in a terminal.
codex mcp add vimeo \
--env VIMEO_PAT=your-token \
-- npx -y @thenavidm/vimeo-mcp-cli@latest - 2
Check that Codex lists it.
codex mcp list
- 1
Add it with a single command in a terminal.
codex mcp add vimeo --env VIMEO_PAT="your-token" -- npx -y @thenavidm/vimeo-mcp-cli@latest - 2
Check that Codex lists it.
codex mcp list
- 1
Add it with a single command in a terminal.
codex mcp add vimeo \
--env VIMEO_PAT=your-token \
-- npx -y @thenavidm/vimeo-mcp-cli@latest - 2
Check that Codex lists it.
codex mcp list
- 1
Open Cursor's settings, go to the MCP tab, and click Add new global MCP server.
- 2
Add the server.
{
"mcpServers": {
"vimeo": {
"command": "npx",
"args": ["-y", "@thenavidm/vimeo-mcp-cli@latest"],
"env": {
"VIMEO_PAT": "your-token"
}
}
}
} - 3
Open the MCP tab again. It should show 43 tools.
- 1
Open the Command Palette and run MCP: Open User Configuration.
- 2
Add the server to that mcp.json.
If the file already has servers, add only this one inside servers.
{
"servers": {
"vimeo": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@thenavidm/vimeo-mcp-cli@latest"],
"env": {
"VIMEO_PAT": "your-token"
}
}
}
}
- 1
Add it with a single command in a terminal.
copilot mcp add vimeo \
--env VIMEO_PAT=your-token \
-- npx -y @thenavidm/vimeo-mcp-cli@latest - 2
Check that Copilot CLI has it.
copilot mcp get vimeo
- 1
Add it with a single command in a terminal.
copilot mcp add vimeo --env VIMEO_PAT="your-token" -- npx -y @thenavidm/vimeo-mcp-cli@latest - 2
Check that Copilot CLI has it.
copilot mcp get vimeo
- 1
Add it with a single command in a terminal.
copilot mcp add vimeo \
--env VIMEO_PAT=your-token \
-- npx -y @thenavidm/vimeo-mcp-cli@latest - 2
Check that Copilot CLI has it.
copilot mcp get vimeo
- 1
Open your Gemini CLI settings.
~/.gemini/settings.json - 2
Add the server to settings.json.
If the file already has servers, add only this one inside mcpServers.
{
"mcpServers": {
"vimeo": {
"command": "npx",
"args": ["-y", "@thenavidm/vimeo-mcp-cli@latest"],
"env": {
"VIMEO_PAT": "your-token"
}
}
}
} - 3
Restart Gemini CLI and type /mcp to check it.
/mcp
- 1
Open your Gemini CLI settings.
%USERPROFILE%\.gemini\settings.json - 2
Add the server to settings.json.
If the file already has servers, add only this one inside mcpServers.
{
"mcpServers": {
"vimeo": {
"command": "npx",
"args": ["-y", "@thenavidm/vimeo-mcp-cli@latest"],
"env": {
"VIMEO_PAT": "your-token"
}
}
}
} - 3
Restart Gemini CLI and type /mcp to check it.
/mcp
- 1
Open your Gemini CLI settings.
~/.gemini/settings.json - 2
Add the server to settings.json.
If the file already has servers, add only this one inside mcpServers.
{
"mcpServers": {
"vimeo": {
"command": "npx",
"args": ["-y", "@thenavidm/vimeo-mcp-cli@latest"],
"env": {
"VIMEO_PAT": "your-token"
}
}
}
} - 3
Restart Gemini CLI and type /mcp to check it.
/mcp
- 1
Open your OpenCode config.
~/.config/opencode/opencode.json - 2
Add the server under mcp.
If the file already has servers, add only this one inside mcp.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"vimeo": {
"type": "local",
"command": ["npx", "-y", "@thenavidm/vimeo-mcp-cli@latest"],
"enabled": true,
"environment": {
"VIMEO_PAT": "your-token"
}
}
}
} - 3
Restart OpenCode.
- 1
Open your OpenCode config.
%USERPROFILE%\.config\opencode\opencode.json - 2
Add the server under mcp.
If the file already has servers, add only this one inside mcp.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"vimeo": {
"type": "local",
"command": ["npx", "-y", "@thenavidm/vimeo-mcp-cli@latest"],
"enabled": true,
"environment": {
"VIMEO_PAT": "your-token"
}
}
}
} - 3
Restart OpenCode.
- 1
Open your OpenCode config.
~/.config/opencode/opencode.json - 2
Add the server under mcp.
If the file already has servers, add only this one inside mcp.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"vimeo": {
"type": "local",
"command": ["npx", "-y", "@thenavidm/vimeo-mcp-cli@latest"],
"enabled": true,
"environment": {
"VIMEO_PAT": "your-token"
}
}
}
} - 3
Restart OpenCode.
- 1
Add it with a single command in a terminal.
openclaw mcp add vimeo \
--command npx \
--arg -y \
--arg @thenavidm/vimeo-mcp-cli@latest \
--env VIMEO_PAT=your-token - 2
Check that it starts and lists its tools.
openclaw mcp doctor vimeo --probe
- 1
Add it with a single command in a terminal.
openclaw mcp add vimeo --command npx --arg -y --arg @thenavidm/vimeo-mcp-cli@latest --env VIMEO_PAT="your-token" - 2
Check that it starts and lists its tools.
openclaw mcp doctor vimeo --probe
- 1
Add it with a single command in a terminal.
openclaw mcp add vimeo \
--command npx \
--arg -y \
--arg @thenavidm/vimeo-mcp-cli@latest \
--env VIMEO_PAT=your-token - 2
Check that it starts and lists its tools.
openclaw mcp doctor vimeo --probe
- 1
In the agent panel, click the … menu, then MCP Servers, Manage MCP Servers and View raw config.
- 2
Add the server to mcp_config.json.
If the file already has servers, add only this one inside mcpServers.
{
"mcpServers": {
"vimeo": {
"command": "npx",
"args": ["-y", "@thenavidm/vimeo-mcp-cli@latest"],
"env": {
"VIMEO_PAT": "your-token"
}
}
}
}
- 1
Open your Hermes config.
~/.hermes/config.yaml - 2
Add the server under mcp_servers.
If the file already has mcp_servers, add only this one under it.
mcp_servers:
vimeo:
command: "npx"
args: ["-y", "@thenavidm/vimeo-mcp-cli@latest"]
env:
VIMEO_PAT: "your-token"
- 1
Open your Hermes config.
%USERPROFILE%\.hermes\config.yaml - 2
Add the server under mcp_servers.
If the file already has mcp_servers, add only this one under it.
mcp_servers:
vimeo:
command: "npx"
args: ["-y", "@thenavidm/vimeo-mcp-cli@latest"]
env:
VIMEO_PAT: "your-token"
- 1
Open your Hermes config.
~/.hermes/config.yaml - 2
Add the server under mcp_servers.
If the file already has mcp_servers, add only this one under it.
mcp_servers:
vimeo:
command: "npx"
args: ["-y", "@thenavidm/vimeo-mcp-cli@latest"]
env:
VIMEO_PAT: "your-token"
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give Claude Code the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Claude Code what each command does and which ones ask first.
mkdir -p ~/.claude/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.claude/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask Claude Code to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Claude Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give Claude Code the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Claude Code what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.claude\skills\vimeo" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\vimeo-mcp-cli\SKILL.md" "$HOME\.claude\skills\vimeo\" - 3
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask Claude Code to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Claude Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give Claude Code the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Claude Code what each command does and which ones ask first.
mkdir -p ~/.claude/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.claude/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask Claude Code to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Claude Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give Codex the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Codex what each command does and which ones ask first.
mkdir -p ~/.agents/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.agents/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask Codex to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Codex finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give Codex the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Codex what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.agents\skills\vimeo" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\vimeo-mcp-cli\SKILL.md" "$HOME\.agents\skills\vimeo\" - 3
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask Codex to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Codex finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give Codex the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Codex what each command does and which ones ask first.
mkdir -p ~/.agents/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.agents/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask Codex to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Codex finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Cursor to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Cursor finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Cursor to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Cursor finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Cursor to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Cursor finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask VS Code to use vimeo-cli.
Running vimeo-cli on its own lists every command, so VS Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask VS Code to use vimeo-cli.
Running vimeo-cli on its own lists every command, so VS Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask VS Code to use vimeo-cli.
Running vimeo-cli on its own lists every command, so VS Code finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give Copilot CLI the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Copilot CLI what each command does and which ones ask first.
mkdir -p ~/.copilot/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.copilot/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask Copilot CLI to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Copilot CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give Copilot CLI the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Copilot CLI what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.copilot\skills\vimeo" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\vimeo-mcp-cli\SKILL.md" "$HOME\.copilot\skills\vimeo\" - 3
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask Copilot CLI to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Copilot CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give Copilot CLI the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells Copilot CLI what each command does and which ones ask first.
mkdir -p ~/.copilot/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.copilot/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask Copilot CLI to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Copilot CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Gemini CLI to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Gemini CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Gemini CLI to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Gemini CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Gemini CLI to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Gemini CLI finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give OpenCode the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenCode what each command does and which ones ask first.
mkdir -p ~/.config/opencode/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.config/opencode/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask OpenCode to use vimeo-cli.
Running vimeo-cli on its own lists every command, so OpenCode finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give OpenCode the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenCode what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.config\opencode\skills\vimeo" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\vimeo-mcp-cli\SKILL.md" "$HOME\.config\opencode\skills\vimeo\" - 3
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask OpenCode to use vimeo-cli.
Running vimeo-cli on its own lists every command, so OpenCode finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give OpenCode the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenCode what each command does and which ones ask first.
mkdir -p ~/.config/opencode/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.config/opencode/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask OpenCode to use vimeo-cli.
Running vimeo-cli on its own lists every command, so OpenCode finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give OpenClaw the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenClaw what each command does and which ones ask first.
mkdir -p ~/.openclaw/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.openclaw/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask OpenClaw to use vimeo-cli.
Running vimeo-cli on its own lists every command, so OpenClaw finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give OpenClaw the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenClaw what each command does and which ones ask first.
New-Item -ItemType Directory -Force "$HOME\.openclaw\skills\vimeo" | Out-Null
Copy-Item "$(npm root -g)\@thenavidm\vimeo-mcp-cli\SKILL.md" "$HOME\.openclaw\skills\vimeo\" - 3
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask OpenClaw to use vimeo-cli.
Running vimeo-cli on its own lists every command, so OpenClaw finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Give OpenClaw the skill, so it knows every command.
The skill is the SKILL.md in the package. It tells OpenClaw what each command does and which ones ask first.
mkdir -p ~/.openclaw/skills/vimeo
cp "$(npm root -g)/@thenavidm/vimeo-mcp-cli/SKILL.md" ~/.openclaw/skills/vimeo/ - 3
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 4
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 5
Ask OpenClaw to use vimeo-cli.
Running vimeo-cli on its own lists every command, so OpenClaw finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Antigravity to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Antigravity finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Antigravity to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Antigravity finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Antigravity to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Antigravity finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Hermes to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Hermes finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Hermes to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Hermes finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
Ask Hermes to use vimeo-cli.
Running vimeo-cli on its own lists every command, so Hermes finds the one it needs.
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.zshrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
List every command, then try one.
vimeo-cli
vimeo-cli get-me
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
setx VIMEO_PAT "your-token" - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
List every command, then try one.
vimeo-cli
vimeo-cli get-me
- 1
Install the CLI. It needs Node 22 or newer.
npm install -g @thenavidm/vimeo-mcp-cli@latest - 2
Save your Vimeo details, so every new session has them.
echo 'export VIMEO_PAT=your-token' >> ~/.bashrc - 3
Check your setup.
It names anything that's wrong and the fix.
vimeo-cli doctor - 4
List every command, then try one.
vimeo-cli
vimeo-cli get-me
Needs Node 22 or newer and a Vimeo personal access token. Create one in 2 minutes.
It's free and open source. If it saves you time, star it on GitHub, so more people find it.
This free Vimeo MCP server and CLI gives your AI real access to your Vimeo library: videos, folders, showcases, chapters, captions, comments and settings. It reads transcripts, files a back catalog into folders 100 videos at a time, builds showcases, and adds chapters and captions.
It's one install with two ways in. Claude, Codex, Cursor or any other MCP app calls its 43 tools for you, and the same tools work as a CLI that agents like Claude Code, Codex and OpenCode run, or that you type yourself.
In this guide, I'll show you:
- What the Vimeo MCP server & CLI is, and what you can ask it
- How to install it and check that it works
- When to use the MCP server, and when the CLI
- Every tool, and how to keep your account safe
Every tool on this page comes from the server itself, and every cost was measured in Claude Code.
Key takeaways
What is the Vimeo MCP server & CLI?
The Vimeo MCP server & CLI is a free, open source program that lets AI agents read and organize your Vimeo library for you, in two ways. The MCP server is what an AI app like Claude, Codex or Cursor connects to, through MCP (Model Context Protocol), the open standard AI apps use to call outside tools.
You ask in plain language. Your AI picks the right tool, and the server makes the call to Vimeo's API, with your own token.
The CLI is the same program as commands. vimeo-cli list-videos runs the same code your AI runs when you ask what's in your library, whether an agent like Claude Code runs it or you do.
In an AI OS, the layer that connects your AI to your context, your data and your tools, a server like this is how your AI reaches Vimeo. I explain how the parts fit together in how to build an AI operating system, and here's how I use AI myself.
What can you ask it?
Once it's set up, you ask the way you'd ask an assistant. These are real prompts it handles:
Try askingWhat's in my Vimeo library, and how much of it is unfiled?
Read the transcript of the workshop and write show notes.
Generate chapter markers for that talk from its transcript and add them.
Move every video with Workshop in the title into the Workshops folder.
Which videos are set to public that shouldn't be?
Which of my videos have no tags?
The fourth one shows why this is useful. Filing a back catalog on vimeo.com is one drag per video, and here it's one call for up to 100.
It works well next to my YouTube MCP server and Wistia MCP server, so your AI can manage your YouTube videos and run webinars on Wistia in the same chat. Every server I've made is on my MCP servers page.
For the videos themselves, my free video transcript generator and video summarizer help too. Vimeo also streams live events, and I compare it in the best live streaming software.
How to install the Vimeo MCP server
Pick your app in the box at the top of this page. Each one is a single command or a pasted block, after you create a Vimeo personal access token.
Windsurf, Zed and Cline take the same server, though they don't have a tab in the box yet. Follow the box's Cursor tab, and put its block here instead:
| App | Where the block goes |
|---|---|
| Windsurf | In the Cascade panel, open the Actions menu (…) and choose Open MCP config file, then paste the block. |
| Cline | Click the MCP Servers icon in the Cline panel, open the Configure tab, click Configure MCP Servers, and paste the block. |
| Zed | Go to Settings, then AI, then MCP Servers, and choose Add Server, then Add Local Server. Enter the block's command, arguments and variables, and Zed saves them under context_servers. |
Watch out: A token's scopes are fixed when you create it. Tick delete and video_files if you want deletes and download links, because both are off by default and can't be added later.
Set up Vimeo
The server uses a personal access token from your own Vimeo app. It takes about 2 minutes.
public, private, edit, create, interact and upload, plus delete and video_files if you want them.Set it as VIMEO_PAT in your app's config. To revoke it, delete it in the same Authentication section, and it stops working everywhere at once.
Check that it works
Run the doctor. It checks the token, names any missing scope, and says which plan the account is on.
npx -y @thenavidm/vimeo-mcp-cli doctorA delete that fails with a permission error almost always means the token lacks the delete scope. Scopes can't be added, so generate a new token.
In Claude Code, /mcp also shows whether the Vimeo server is connected. It's one of the Claude Code commands worth knowing.
Use the Vimeo CLI
The CLI is the same 43 tools as commands. AI agents that run commands, like Claude Code, Codex and OpenCode, use it on their own, and you can type the same commands in a terminal or a script.
Every tool name becomes a command with dashes, so add_videos_to_folder runs as vimeo-cli add-videos-to-folder.
npm install -g @thenavidm/vimeo-mcp-cli
vimeo-cli
vimeo-cli get-me
vimeo-cli search-videos --query "workshop"
vimeo-cli get-transcript --video-id 1096473192The bare vimeo-cli lists every command, vimeo-cli which <words> finds the command for a task, and vimeo-cli <command> --help shows what a command takes. The six deletes, taking videos out of a folder and posting a comment need --confirm, the terminal's version of your approval.
vimeo-cli install <app> adds the server to Claude Code, Codex, Claude Desktop, Cursor, VS Code or Gemini CLI, in each app's own format.
These are the flags you'll use most:
| Flag | What it does |
|---|---|
--json | Prints JSON |
--compact | Prints the JSON on one line |
--select a,b.c | Keeps only those fields, and a dotted path goes deeper |
--agent | Machine mode: compact JSON, no prompts, and it never confirms anything |
--confirm | Lets a write that asks first go ahead |
--dry-run | Shows what a write would do, without doing it |
A script can branch on the exit code:
| Exit code | What it means |
|---|---|
| 0 | It worked |
| 1 | Something unexpected went wrong |
| 2 | The command was typed wrong, or a write needed --confirm |
| 3 | It wasn't found |
| 4 | Vimeo rejected the credentials |
| 5 | Vimeo failed or couldn't be reached |
| 7 | You hit a rate limit, so wait and try again |
| 10 | Nothing is set up yet |
MCP server or CLI: which one?
Both are the same program with the same 43 tools. The difference is when your AI pays for them, in the tokens it reads.
- MCP server
- 9,200 tokens
- CLI
- Nothing
- MCP server
- 1,200 tokens
- CLI
- Nothing
- MCP server
- Nothing more, or in Claude Code the tools it picks
- CLI
- 3,100 tokens, once
- MCP server
- 183,000 tokens
- CLI
- 3,100 tokens
- MCP server
- Yes
- CLI
- No, there's no terminal there
- MCP server
- No
- CLI
- Yes
An app that loads every tool up front sends the full list with every message, whether you mention Vimeo or not. Claude Code doesn't by default: its tool search sends only the tool names and the server's instructions, and loads a tool's full definition when your AI reaches for it.
The CLI costs nothing until Vimeo comes up. Then your agent reads its skill file once and runs the commands it needs. With the skill added, Claude Code also lists its one-line description with every message, about 200 tokens.
When the whole conversation is about Vimeo, the gap closes. Then the MCP server is the better experience, because you ask in plain language and your AI never has to look up a command.
How to spend less
In Claude Code, leave tool search on, which it is unless you've set ENABLE_TOOL_SEARCH=false.
Turn the server off when you aren't using Vimeo, with your AI app's own switch. VIMEO_READ_ONLY=1 cuts it to the 17 reading tools.
Or install the CLI and connect the server later, on the days it earns its place. Every tool stays in reach, and the standing cost drops to nothing.
Every number here was measured on October 5, 2026 in Claude Code 2.1.286 with Claude Opus 5.5. It's the same one-line prompt with and without the server connected, once with tool search off so every tool loads, and once with Claude Code's default. The skill was measured the same way, and other apps and models count tokens a little differently.
How Vimeo actually behaves
A few things on Vimeo's side explain most surprises.
Scopes are frozen
A token can't gain a scope later, and Vimeo's permission error doesn't name the missing one. A failing delete looks like a missing video, which is why the doctor names the scope.
A video lives in exactly one folder
Adding a video to a folder moves it. A showcase is different: a video can be in any number of showcases, and adding it there moves nothing.
Some things depend on your plan
Lifetime plays work on every plan. Views over time and finish rate come from Vimeo's analytics, which only paid plans have, and a free account gets a plain sentence saying so rather than an error.
Uploads keep processing
upload_video returns the video's ID right away while Vimeo transcodes it. Check the status on get_video until it reads available.
Every Vimeo tool
The tables below list all 43 tools, grouped the way the repo groups them. Of these, 17 only read, and 26 change something in your Vimeo library.
Videos
list_videos- What it does
- List videos in your Vimeo library, newest first by default.
- Kind
- Reads
get_video- What it does
- Get the full details of one video: description, embed URL, thumbnail, privacy, tags and transcode status.
- Kind
- Reads
search_videos- What it does
- Search your own library by title and description.
- Kind
- Reads
update_video- What it does
- Update a video's title, description or privacy.
- Kind
- Writes
delete_video- What it does
- Permanently delete a video.
- Kind
- Asks first
upload_video- What it does
- Upload a video to Vimeo by giving it a public URL to fetch.
- Kind
- Writes
get_download_links- What it does
- Get direct download URLs for a video's source and rendered files.
- Kind
- Reads
set_video_thumbnail- What it does
- Set a video's thumbnail from a timecode in the video itself.
- Kind
- Writes
Folders
list_folders- What it does
- List your Vimeo folders with a video count for each.
- Kind
- Reads
get_folder- What it does
- Get one folder's details and the videos inside it.
- Kind
- Reads
create_folder- What it does
- Create a folder.
- Kind
- Writes
update_folder- What it does
- Rename a folder.
- Kind
- Writes
delete_folder- What it does
- Delete a folder.
- Kind
- Asks first
add_videos_to_folder- What it does
- Add one or many videos to a folder in a single call.
- Kind
- Writes
remove_videos_from_folder- What it does
- Remove videos from a folder in one call.
- Kind
- Asks first
Showcases
list_showcases- What it does
- List your showcases, which the API calls albums.
- Kind
- Reads
get_showcase- What it does
- Get one showcase and the videos in it, in their curated order.
- Kind
- Reads
create_showcase- What it does
- Create a showcase.
- Kind
- Writes
update_showcase- What it does
- Update a showcase's name, description, privacy or sort order.
- Kind
- Writes
delete_showcase- What it does
- Delete a showcase.
- Kind
- Asks first
add_video_to_showcase- What it does
- Add one video to a showcase.
- Kind
- Writes
remove_video_from_showcase- What it does
- Remove one video from a showcase.
- Kind
- Writes
Chapters
list_chapters- What it does
- List a video's chapters in timecode order.
- Kind
- Reads
add_chapter- What it does
- Add a chapter marker at a timecode.
- Kind
- Writes
update_chapter- What it does
- Change a chapter's title or move it to a different timecode.
- Kind
- Writes
delete_chapter- What it does
- Delete one chapter marker.
- Kind
- Asks first
Captions and transcripts
list_texttracks- What it does
- List the caption and subtitle tracks on a video, with their languages and which one is active.
- Kind
- Reads
get_transcript- What it does
- Get a video's transcript as plain readable text.
- Kind
- Reads
upload_texttrack- What it does
- Add a caption or subtitle track to a video from WebVTT content you supply.
- Kind
- Writes
update_texttrack- What it does
- Rename a caption track, change its language, or make it the active one.
- Kind
- Writes
delete_texttrack- What it does
- Delete a caption track from a video.
- Kind
- Asks first
Comments
list_comments- What it does
- List the comments on a video.
- Kind
- Reads
add_comment- What it does
- Post a comment on a video as you.
- Kind
- Asks first
edit_comment- What it does
- Edit one of your own comments.
- Kind
- Writes
delete_comment- What it does
- Delete a comment from a video.
- Kind
- Asks first
Account, stats and settings
get_me- What it does
- Show the Vimeo account this server is connected to: name, plan, upload quota and the scopes the token holds.
- Kind
- Reads
get_video_stats- What it does
- Get a video's lifetime play count plus its comment and like totals.
- Kind
- Reads
get_video_analytics- What it does
- Get real analytics for a video: views over time, unique viewers, finish rate and where views came from.
- Kind
- Reads
set_video_tags- What it does
- Replace a video's tags.
- Kind
- Writes
get_video_privacy- What it does
- Show exactly who can watch and embed a video, including the domain whitelist when embedding is restricted.
- Kind
- Reads
allow_embed_domain- What it does
- Allow a specific domain to embed a video.
- Kind
- Writes
list_embed_presets- What it does
- List your saved embed presets, which control player colors, controls and branding.
- Kind
- Reads
apply_embed_preset- What it does
- Apply a saved embed preset to a video, so its player matches your branding.
- Kind
- Writes
Is the Vimeo MCP server safe?
Writes work from the start, because organizing a library is the point of the tool. The ones that can't be undone ask first.
The six deletes, remove_videos_from_folder and add_comment ask first, marked "Asks first" in the tool tables above, because a deleted video can't be restored and a comment is public the moment it posts. delete_videos_too on a folder deletes the videos themselves, so it asks first too.
When your AI calls one of them, the call needs a yes first. Where you use it decides who gives it:
- Claude Code (2.1.246 and later) asks you before every call, in every one of its permission modes.
- An app that can show forms asks you in a form.
- Any other app takes your AI's
confirm: trueas the yes, so tell your AI to check with you first. - An agent with no person to ask needs
VIMEO_CONFIRM=model, so itsconfirm: truecounts in every app. - In a terminal, you add
--confirmto the command.
If the answer is no, nothing reaches Vimeo.
Make it read-only
Set VIMEO_READ_ONLY=1 and the write tools disappear from the tool list, leaving 17. VIMEO_ALLOW_DESTRUCTIVE=0 keeps ordinary writes and blocks the deletes and comments.
Keep a log of every write
Set VIMEO_AUDIT_LOG to a file path. The server writes one line per attempted write, allowed or blocked, with what it was about to do and who approved it.
Watch out: Comments are written by other people and can contain text aimed at whatever reads them. The server labels them as viewer-written data, but for an agent working on its own, VIMEO_READ_ONLY=1 is the real defense.
Your data
There's no server of ours in between. The server runs on your computer and talks to Vimeo's API directly.
It stores nothing: no session, no cache and no database. The only file it writes is the audit log, and only when you set VIMEO_AUDIT_LOG. Whatever your AI reads, it sends to its own model provider, like anything you paste into a chat.
Vimeo MCP server settings
Every setting is an environment variable in your app's config. Only the token is required.
VIMEO_PAT- Default
- none
- What it does
- Holds your personal access token.
VIMEO_ACCESS_TOKENworks too
VIMEO_READ_ONLY- Default
- off
- What it does
1removes every write tool
VIMEO_ALLOW_DESTRUCTIVE- Default
- on
- What it does
0keeps ordinary writes and blocks deletes and comments
VIMEO_AUDIT_LOG- Default
- none
- What it does
- Names a file that gets one line per attempted write
VIMEO_MIN_REQUEST_INTERVAL_MS- Default
100- What it does
- Sets the pause between requests, for big bulk jobs
VIMEO_MAX_RETRIES- Default
2- What it does
- Sets how often a failed request is retried
VIMEO_REQUEST_TIMEOUT_MS- Default
30000- What it does
- Sets how long one request may take
VIMEO_ACCESS_TOKEN- Default
- none
- What it does
- Another name for VIMEO_PAT
VIMEO_TOKEN- Default
- none
- What it does
- Another name for VIMEO_PAT
VIMEO_API_VERSION- Default
3.4- What it does
- The Vimeo API version every request pins
VIMEO_API_BASE- Default
https://api.vimeo.com- What it does
- Vimeo's API root
VIMEO_SURFACE- Default
full- What it does
searchlists three tools that find, describe and run the rest
VIMEO_TOOL_TIMEOUT_MS- Default
- none
- What it does
- Gives up on any tool after this many milliseconds
VIMEO_CONFIRM- Default
human- What it does
modellets your AI'sconfirm: trueapprove on its own, for an agent with no person to ask
VIMEO_HTTP_PORT- Default
8787- What it does
- Sets the port for
--http
VIMEO_HTTP_HOST- Default
127.0.0.1- What it does
- Sets the address for
--http, and any other needs a token
VIMEO_HTTP_TOKEN- Default
- none
- What it does
- Sets the bearer token every
--httprequest needs
VIMEO_HTTP_ALLOWED_ORIGINS- Default
- none
- What it does
- Lists other websites allowed to call
--http, comma separated
VIMEO_DEBUG- Default
- off
- What it does
1prints debug lines
Troubleshooting
Run the doctor first. It names the step that failed and the fix.
| What you see | What to do |
|---|---|
| Every delete fails with a permission error | The token lacks the delete scope. Generate a new token with it |
| Download links come back empty | The token lacks video_files, or downloads are off for that video |
| Analytics says it's unavailable | The account is on a free plan. get_video_stats still works |
| A video you can see on vimeo.com doesn't exist | Usually a missing scope rather than a missing video. Run the doctor |
| A video vanished from its folder | Adding a video to a folder moves it, so it's in the new one |
If the server doesn't show up in your app at all, run the command your app runs, in a terminal, and read the error.
More free tools for your videos
Turn a transcript into chapter timestamps, or summarize a video before you file it.
Free tools
FAQs about the Vimeo MCP server & CLI
Here are the questions people ask most about the Vimeo MCP server and CLI.
The Vimeo MCP server & CLI is a free, open source program that lets an AI app like Claude, Codex or Cursor read and organize your Vimeo library.
It has 43 tools for videos, folders, showcases, chapters, captions, comments and your account, and the same tools run as a CLI that agents like Claude Code and Codex use, or that you type yourself.
An MCP server is a standard way to give an AI app real access to a tool, so it can act instead of guessing.
MCP stands for Model Context Protocol, and Claude, Codex, Cursor and many other AI apps speak it.
Every server I've made is on my MCP servers page.
The Vimeo CLI is the same program as the Vimeo MCP server, run as commands.
AI agents like Claude Code, Codex and OpenCode run them for you, and you can type them in a terminal or a script.
One npm package installs both.
Use the Vimeo MCP server in an AI app with no terminal, like Claude Desktop's chat, and the CLI in a terminal, a script or a cron job.
In an AI app that can run commands, like Claude Code, Codex or Cursor, the CLI is the lighter choice, because it costs nothing until it runs.
Yes, the Vimeo MCP server is free and open source under the MIT license, and it works on every Vimeo plan, including free.
The only thing you pay for is your own AI app.
Yes, every tool works on a free plan except views over time, which Vimeo only gives paid plans.
Lifetime play counts work everywhere.
Your token lacks the delete scope, which is off by default.
Scopes can't be added to a token, so generate a new one with delete ticked.
Only when you ask, and only after you approve it, because a deleted video can't be restored.
VIMEO_READ_ONLY=1 removes every write.
Yes, upload_video sends a file from your computer and returns the new video's ID right away.
Vimeo keeps transcoding for a while after that.
The Vimeo MCP server works with any app that speaks MCP.
That includes Claude Code, Claude Desktop, Codex, Cursor, VS Code, Windsurf, Zed, Cline, GitHub Copilot CLI, Gemini CLI, OpenCode, OpenClaw, Antigravity and Hermes.
I did.
I'm Navid Moazzez, and I made the Vimeo MCP server & CLI as one of my free tools on navid.me.
You can read more about me.
The code is on GitHub under the MIT license, and the package is on npm.
More MCP servers & CLIs
Related free tools
Navid.me is reader-supported. When you buy through links on this site, I may earn an affiliate commission. Read the affiliate disclaimer.
On this page
The most actionable AI newsletter for founders
Every week, get proven AI strategies, curated tools, and step-by-step systems to grow your audience, create better content, and build a profitable creator business.
No fluff, no filler, no BS. Just five minutes each week that might level up your online business and life.
P.S. Sign up now to get free access to my ultimate AI tools guide for creators.
