Enables programmatic interaction with Medium's content ecosystem, allowing for article publishing, retrieval of published articles, searching Medium for content, and full article content extraction without requiring API tokens.
Medium MCP Server (Browser-Based)
Overview
Medium MCP (Model Context Protocol) is a browser-based solution for programmatically interacting with Medium's content ecosystem. Since Medium discontinued their public API for new users, this server uses browser automation to provide intelligent and context-aware content management.
🔄 Why Browser-Based?
Medium stopped issuing new API tokens in 2023, making traditional API integration impossible for new developers. This implementation uses Playwright browser automation to:
- ✅ Work without API tokens - Uses your existing Medium login session
- ✅ Full functionality - Publish, search, and manage your Medium content
- ✅ Secure - Saves your login session locally for reuse
- ✅ Interactive - Opens browser for initial login, then runs headlessly
📖 Deep Dive Article
Want to understand the full story behind Medium MCP? Check out the comprehensive article:
From Thought to Published: How MediumMCP Streamlines the AI-to-Medium Platform Workflow
Key Features
- 🤖 Browser automation for Medium interaction
- 📝 Article publishing with title, content, and tags
- 📚 Retrieve your articles from your Medium profile
- 🔍 Search Medium articles by keywords
- 💾 Session persistence - login once, use everywhere
- 🎯 Claude integration via Model Context Protocol
Technology Stack
- TypeScript
- Model Context Protocol (MCP)
- Playwright Browser Automation
- Advanced Content Parsing
Getting Started
Prerequisites
- Node.js (v16 or later)
- npm or yarn
- A Medium account (no API credentials needed!)
Installation
Configuration
No API keys needed! The server will prompt you to login to Medium in your browser on first use.
Usage
Test the Browser Client
Start the MCP Server
Add to Claude Configuration
Add this to your Claude MCP configuration:
Available MCP Tools
1. publish-article
Publish a new article to Medium
2. get-my-articles
Retrieve your published Medium articles
3. get-article-content
Get full content of any Medium article
4. search-medium
Search Medium for articles by keywords
5. login-to-medium
Manually trigger login process
How It Works
First Time Setup
- Run the server - It will open a Chrome browser window
- Login to Medium - Complete login in the opened browser
- Session saved - Your login session is saved locally
- Future runs - No login required, runs headlessly
Browser Automation Flow
Session Management
- Login session stored in
medium-session.json
- Automatically reused on subsequent runs
- Re-login only if session expires
Example Usage with Claude
Troubleshooting
Browser Issues
- Browser won't open: Check if Chromium is installed (
npx playwright install chromium
) - Login fails: Clear
medium-session.json
and try again - Slow performance: Browser automation takes 10-30 seconds per operation
Medium Changes
- Selectors outdated: Medium occasionally changes their website structure
- Login blocked: Use your regular browser to login first, then try again
Common Errors
Browser not initialized
: Restart the serverLogin timeout
: Increase timeout in browser-client.tsElement not found
: Medium may have changed their UI
Development
Project Structure
Testing
Security Notes
- ✅ Local only - No data sent to external servers
- ✅ Session encryption - Browser handles all security
- ✅ No API keys - Uses your existing Medium login
- ⚠️ Browser storage - Session saved locally in JSON file
Limitations
- Speed: Browser automation is slower than API calls (10-30s vs 1-2s)
- Reliability: Dependent on Medium's website structure
- Headless: Requires display for initial login (can run headless after)
- Rate limits: Subject to Medium's normal usage limits
Contributing
Contributions welcome! Please read CONTRIBUTING.md for guidelines.
License
MIT License - see LICENSE file for details.
Support
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: [Contact Author]
🤖 CREDIT and DISCLAIMER
AI-Powered Development
This entire Medium MCP Server was developed by AI (Claude/Cursor AI) in just a few hours, demonstrating the remarkable power of AI-assisted development. The complete rewrite from deprecated API to browser automation, including all TypeScript code, documentation, error handling, and testing strategies, was generated through AI collaboration.
What This Demonstrates
- ✅ AI-First Development: Complex browser automation and MCP integration built rapidly
- ✅ Real-world Problem Solving: Adapted to Medium's API deprecation with working solution
- ✅ Production-Ready Code: TypeScript, error handling, session management, comprehensive docs
- ✅ Community Standards: Contributing guidelines, changelog, proper licensing
Current Status & Limitations
- ✅ Functional: Works well in Claude MCP integration for core features
- ⚠️ Google Login Sessions: Couldn't solve persistent Google login sessions (use email/password instead)
- ⚠️ Short Development Time: Rapid development may have overlooked edge cases
- ⚠️ Medium UI Changes: Selectors may break if Medium updates their interface
Honest Assessment
This tool is useful and functional for AI-powered content workflows, but comes with the inherent limitations of:
- Rapid AI development - may miss nuanced edge cases that human developers would catch
- Browser automation complexity - dependent on Medium's website structure
- Session management challenges - Google's anti-automation measures
Feedback Welcome
Given the accelerated AI development process, I welcome any feedback, bug reports, or improvements. This serves as both a working tool and a demonstration of AI development capabilities and limitations.
Use at your own discretion - this is provided "as-is" with the understanding that rapid AI development, while powerful, may not cover all production scenarios.
Note: This is an unofficial tool and is not affiliated with Medium. Use responsibly and in accordance with Medium's Terms of Service.
This server cannot be installed
A browser-based solution that enables programmatic interaction with Medium's content ecosystem despite API deprecation, allowing publishing, retrieving, and searching Medium articles through Claude integration.
Related MCP Servers
- AsecurityAlicenseAquality🔗 Model Context Protocol (MCP) Server for retrieving saved articles from Pocket API and loading them into ClaudeLast updated -275JavaScriptMIT License
- -securityAlicense-qualityEnables Claude to interact with Webflow's APIs, allowing access to site information, collections, and other Webflow resources.Last updated -TypeScriptMIT License
- -securityFlicense-qualityA tool that enables AI assistants like Claude to interact with MediaWiki instances by retrieving page content, performing searches, and analyzing wiki information through the MediaWiki API.Last updated -1JavaScript
- -securityAlicense-qualityA Model Context Protocol server that enables Claude to interact directly with Contentful CMS, allowing the AI to fetch content types and entries from a Contentful space.Last updated -1TypeScriptMIT License