Skip to content
Conduit

mcp server

mcp-invidious

An MCP for Invidiousla de G

atareao/mcp-invidiouscommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 26, 2026

MCP Invidious

Model Context Protocol server that provides YouTube search capabilities through Invidious instances.

Features

  • Search videos, channels, and playlists with filtering by date, duration, and sort order
  • Video details including title, description, views, likes, duration, and keywords
  • Channel details with subscriber count, description, and metadata
  • Video comments with reply counts and sorting options
  • Trending videos by category and region
  • Dual transport: stdio for CLI agents, HTTP for remote connections

Available Tools

ToolDescription
search_videosSearch YouTube videos with optional filters (sort_by, date, duration)
search_channelsSearch YouTube channels
search_playlistsSearch YouTube playlists
video_detailsGet detailed information about a specific video
channel_detailsGet detailed information about a specific channel
video_commentsGet comments for a video
trendingGet trending videos by type and region

Quick Start

Prerequisites

  • Rust 1.93+
  • An Invidious instance URL

Build and Run

cargo build --release

# Run with stdio transport (default)
INVIDIOUS_URL=https://vid.puffyan.us cargo run --release

# Run with HTTP transport
INVIDIOUS_URL=https://vid.puffyan.us MCP_TRANSPORT=http cargo run --release

Configuration

VariableDefaultRequiredDescription
INVIDIOUS_URL—YesInvidious instance base URL
MCP_TRANSPORTstdioNoTransport mode: stdio or http
MCP_HOST0.0.0.0NoHTTP bind address
MCP_PORT3005NoHTTP bind port
INVIDIOUS_LANGesNoDefault search language (ISO 639-1)
INVIDIOUS_INSECUREfalseNoDisable TLS certificate verification (true/1)
INVIDIOUS_ENABLED_TOOLS(all)NoComma-separated list of enabled tools, or all

Docker

Build the image:

podman build -t mcp-invidious:latest .

Run with Podman:

podman run -e INVIDIOUS_URL=https://vid.puffyan.us -p 3005:3005 mcp-invidious:latest

Or use the provided systemd container unit:

# Edit mcp-invidious.container with your INVIDIOUS_URL, then:
systemctl --user enable --now mcp-invidious.container

Architecture

src/
├── main.rs          # Entry: env → config → transport (stdio/http) → boot
├── config.rs        # AppConfig from env vars with defaults
├── handler.rs       # ServerHandler impl (tool dispatch via tool_box!)
├── error.rs         # thiserror-based error types
├── invidious.rs     # reqwest client + Invidious API response types
└── tools.rs         # Tools via #[mcp_tool] macro + formatting helpers

Development

cargo build
cargo run
cargo test
cargo clippy -- -D warnings
cargo fmt

License

MIT

↑↓ navigate openesc close