Analyzes Instagram Reels by downloading and transcribing audio content to provide automated summaries of video content.
Uses Ollama with Llama3 model for AI-powered text summarization of both video transcripts and web content without requiring API keys.
Leverages OpenAI Whisper for high-quality speech-to-text transcription of video audio content in multiple languages.
Scans and summarizes YouTube videos by extracting metadata, subtitles, and transcribing audio using Whisper to generate concise 3-sentence summaries.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Link Scan MCP Serversummarize this YouTube video for me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Link Scan MCP Server π
λ§ν¬λ₯Ό μ€μΊνκ³ μμ½μ μ 곡νλ ν¬κ΄μ μΈ Model Context Protocol (MCP) μλ²μ λλ€. YouTube, Instagram Reels λ± λΉλμ€ λ§ν¬μ λΈλ‘κ·Έ, κΈ°μ¬ λ± ν μ€νΈ λ§ν¬λ₯Ό μλμΌλ‘ κ°μ§νκ³ λΆμνμ¬ 3λ¬Έμ₯ μ΄λ΄μ κ°κ²°ν μμ½μ μ 곡ν©λλ€. API ν€ μμ΄ λͺ¨λ κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€!
Link Scan MCP Server - A comprehensive Model Context Protocol (MCP) server for scanning and summarizing links. Automatically detects and analyzes video links (YouTube, Instagram Reels) and text links (blogs, articles) to provide concise 3-sentence summaries. All features work without requiring API keys!
Python 3.11+ | MCP Compatible | License: MIT
β¨ Features
π₯ Video Link Analysis
YouTube Support
Comprehensive metadata extraction (title, description)
Subtitle extraction for first 7 seconds (yt-dlp)
Audio transcription using OpenAI Whisper
Integrated summarization combining all text sources
Instagram Reels Support
Audio download and transcription (first 7 seconds)
Automatic content summarization
Smart Link Detection
Automatic video/text link type detection
Error handling for unsupported URLs
π Text Link Analysis
Web Content Extraction
BeautifulSoup-based HTML parsing
Main content area detection
Automatic navigation/ad removal
Intelligent Summarization
Llama3-powered text summarization
3-sentence limit enforcement
Natural Korean output
π€ AI-Powered Summarization
Llama3 Integration
Local LLM via Ollama (no API keys required)
Separate prompts for video and text content
Fallback to original text on errors
Whisper Transcription
High-quality speech-to-text conversion
Optimized for speed and accuracy
Supports multiple languages
π³ Docker Support
One-Command Setup
Docker Compose configuration
Automatic Ollama service setup
Llama3 model auto-download
Development mode with hot reload
π§ Developer-Friendly
Type-safe with Pydantic models
Async/await support for better performance
Comprehensive error handling
Extensible architecture
Hot reload in development mode
π Quick Start
Installation
System Dependencies
ffmpeg (required for audio processing):
macOS:
brew install ffmpegUbuntu/Debian:
sudo apt-get install ffmpegWindows: Download from https://ffmpeg.org/download.html
Ollama (required for summarization):
macOS:
brew install ollamaor download from https://ollama.com/downloadLinux:
curl -fsSL https://ollama.com/install.sh | shWindows: Download from https://ollama.com/download
After installation:
ollama pull llama3:latest
Configuration
Create a .env file:
νκ²½ λ³μ μ€λͺ
λ³μλͺ | νμ | κΈ°λ³Έκ° | μ€λͺ |
| β |
| μλ²κ° μ¬μ©ν ν¬νΈ λ²νΈ |
| β |
| μλ²κ° λ°μΈλ©ν νΈμ€νΈ μ£Όμ |
| β |
| λλ²κ·Έ λͺ¨λ νμ±ν ( |
| β |
| API μλν¬μΈνΈ κ²½λ‘ prefix |
| β |
| Ollama API μλ² URL |
| β |
| μ¬μ©ν Ollama λͺ¨λΈ μ΄λ¦ |
Running as MCP Server
Local Mode (stdio):
Remote Mode (HTTP):
Or with uvicorn directly:
Docker Setup (Recommended)
Using Docker Compose:
Docker Compose automatically:
Sets up Ollama service with 8GB memory
Downloads Llama3 model
Configures link-scan service
Enables development mode with hot reload
Development Mode:
The docker-compose.yml is configured for development with:
Source code volume mounting
Hot reload enabled (
DEBUG=True)Automatic code changes detection
Testing with MCP Inspector
You can test the server using the MCP Inspector tool:
The MCP Inspector provides a web interface to:
View available tools and their schemas
Test tool execution with sample inputs
Debug server responses and error handling
Validate MCP protocol compliance
π οΈ Available Tools
1. scan_video_link
Scan and summarize video links (YouTube, Instagram Reels, etc.).
Parameters:
url(string, required): Video URL to scan
Example:
Process:
Detects link type (YouTube, Instagram, etc.)
For YouTube: Extracts title, description, subtitles (first 7s)
Downloads audio (first 7 seconds)
Transcribes audio with Whisper
Combines all text sources
Summarizes with Llama3 (3 sentences max)
2. scan_text_link
Scan and summarize text links (blogs, articles, etc.).
Parameters:
url(string, required): Text URL to scan
Example:
Process:
Fetches HTML content
Extracts main text content
Removes navigation, ads, and noise
Summarizes with Llama3 (3 sentences max)
π Example Outputs
Video Link Summary
Input: YouTube video URL
Output:
Text Link Summary
Input: Blog article URL
Output:
ποΈ Architecture
π§ Development
Setting up Development Environment
Development Mode with Docker
Running Tests
Customizing Prompts
Edit src/prompts/__init__.py to customize LLM prompts:
Configuring Whisper Model
Edit src/tools/media_handler.py:
π Requirements
Python 3.11+
ffmpeg - Audio processing
Ollama - LLM runtime (for summarization)
yt-dlp - Video/audio download
openai-whisper - Speech-to-text
torch - PyTorch (for Whisper)
aiohttp - Async HTTP client
beautifulsoup4 - HTML parsing
fastapi - HTTP server framework
uvicorn - ASGI server
mcp - Model Context Protocol SDK
π Deployment
PlayMCP Registration
Deploy Server: Deploy to cloud hosting (Render, Railway, Fly.io, AWS, GCP, etc.)
Get Server URL: Example:
https://your-server.railway.appRegister in PlayMCP: Use URL
https://your-server.railway.app/messages
Important: Server URL must be publicly accessible and support HTTPS for production use.
Using with MCP Clients
Amazon Q CLI:
Other MCP Clients:
π€ Contributing
We welcome contributions! Please follow these steps:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Make your changes
Add tests for new functionality
Ensure all tests pass (
pytest)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Development Workflow
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
yt-dlp team for the excellent YouTube extraction library
OpenAI Whisper team for the speech-to-text model
Ollama team for the local LLM runtime
MCP team for the Model Context Protocol specification
Pydantic team for the data validation library
π Support
Issues: GitHub Issues
Discussions: GitHub Discussions
πΊοΈ Roadmap
Batch processing for multiple links
Caching layer for improved performance
Export functionality (JSON, CSV, etc.)
Advanced analytics (sentiment analysis, topic extraction)
Support for more video platforms (TikTok, Vimeo, etc.)
WebSocket support for real-time updates
Integration examples with popular MCP clients
Custom prompt templates via API
Multi-language support for summaries
Video thumbnail extraction
π Notes
Audio downloads are temporarily stored and automatically cleaned up
Whisper model is loaded once and reused for better performance
Processing time depends on video length and Whisper model size
YouTube videos are processed for first 7 seconds only to reduce processing time
All text sources (title, description, subtitles, transcription) are combined for YouTube videos
Summaries are limited to 3 sentences maximum
For production, consider using GPU for faster Whisper conversion
Ollama timeout is set to 5 minute for tool calls