Building a Custom MCP Server to Connect Gemini CLI with n8n for Workflow Automation

Introduction In this post, I’ll walk you through my journey of integrating Google’s Gemini CLI (v0.24.0) with my self-hosted n8n instance (v2.2.6) using the Model Context Protocol (MCP). While n8n provides built-in MCP support, it only exposes read-only actions. To unlock full workflow automation—creating, modifying, and deleting workflows via Gemini CLI—I built a custom Python MCP server that leverages n8n’s API. Project Overview Goal: Enable Gemini CLI to create, read, update, and delete n8n workflows programmatically. ...

January 16, 2026 · 6 min · 1109 words · Indunil Sandaruwan Thembuwana

Building a YouTube Transcript Extractor with Python

Have you ever wanted to extract the transcript from a YouTube video for note-taking, analysis, or content creation? In this tutorial, I’ll walk you through building a simple yet powerful Python script that does exactly that. What We’re Building Our script will: Accept any YouTube URL as input Extract the video transcript automatically Display the transcript in the console Optionally save it to a text file Prerequisites Before we start, make sure you have: ...

January 7, 2026 · 6 min · 1169 words · Indunil Sandaruwan Thembuwana

Audio Transcriptor - Convert Audio to Text with Python

A walkthrough of a lightweight Python script that converts audio files into text using SpeechRecognition and pydub.

December 30, 2025 · 8 min · 1605 words · Indunil Sandaruwan Thembuwana

YouTube Video Downloader (Python + yt-dlp)

Why this script Lightweight and self-contained. Uses yt-dlp (actively maintained fork of youtube-dl) to fetch best video + audio and merge to MP4. Auto-installs yt-dlp if not present, so you can get started quickly. Requirements Python 3.8 or newer pip available Internet connection (Optional) ffmpeg on PATH for merging (yt-dlp will usually bundle merging if available) Quick install Option A — let the script auto-install yt-dlp (default behavior): python youtubevideodownloder.py Option B — install manually before running: ...

December 30, 2025 · 3 min · 455 words · Indunil Thembuwana