home / mcp / medium mcp server (browser-based) mcp server
Browser-based MCP server for Medium content management - no API tokens required! Built with AI in hours.
Configuration
View docs{
"mcpServers": {
"jackyckma-medium-mcp-server": {
"command": "node",
"args": [
"path/to/medium-mcp-server/dist/index.js"
]
}
}
}You run a browser-based MCP server that automates Medium interactions through a Playwright browser session. It lets you publish articles, fetch your Medium content, search for articles, and log in once to reuse your session securely, all without API tokens.
To use this MCP server, first start the local server and then connect your MCP client to it. The server launches a browser window for your initial login, saves your session locally, and then operates headlessly for subsequent requests. You can publish articles, retrieve your articles, search Medium, and trigger login when needed.
Typical usage patterns include: creating a new article with a title and content, optionally tagging it and saving as a draft; retrieving a list of your published articles; getting the full content of a specific article by URL; and performing keyword-based searches to discover Medium posts. Each request is handled by the corresponding MCP tool exposed by the server.
# Clone the repository
git clone https://github.com/jackyckma/medium-mcp-server.git
# Navigate to the project directory
cd medium-mcp-server
# Install dependencies
npm install
# Install browser for automation
npx playwright install chromium
# Build the project
npm run buildConfiguration requires no API keys. On first run, the server will open a browser window prompting you to log in to your Medium account. After you log in, the session is saved locally and will be reused on subsequent runs.
Add the MCP server to Claude configuration using the following example. This config runs the local server instance using Node and points to the built index file.
{
"mcpServers": {
"medium-mcp": {
"command": "node",
"args": ["path/to/medium-mcp-server/dist/index.js"],
"cwd": "path/to/medium-mcp-server"
}
}
}If the browser does not open, ensure Chromium is installed by running: npx playwright install chromium. If login fails, clear the local session file and try again. Expect browser automation to be slower (roughly 10β30 seconds per operation) compared to direct API calls. Medium UI changes can require updates to selectors used by the automation.
Common errors include: Browser not initialized (restart the server), Login timeout (increase timeout in the browser client), and Element not found (Medium may have updated its UI). For login-related issues, perform a fresh login when prompted and verify the session is saved locally.
This setup is local-only and does not send data to external servers. The session is stored locally in a browser-driven JSON file and is used to authenticate your actions. There are no API keys involved. Be aware that browser automation is slower and dependent on Mediumβs website structure, which may change.
Project structure includes a main server, a browser client module, and supporting scripts. You can test the browser automation, run the MCP server, and build the project with the following commands.
# Test browser automation
node test-browser.js
# Run MCP server
npm start
# Build project
npm run buildPublish a new article to Medium including title, content, optional tags, and the option to save as a draft.
Retrieve your published Medium articles with titles, URLs, and dates.
Get the full content of a Medium article by URL.
Search Medium for articles by keywords.
Manually trigger the login process to start or refresh your session.