DM

dishant27/medium-mcp-server

Developer tools
28 stars 0 forks Quality 59 Trend 33

MCP server that lets AI assistants read your Medium profile and publications and publish drafts via the (legacy) Medium API.

Overview

A small Model Context Protocol server that lets an MCP client (Claude Desktop, Cursor, etc.) create Medium drafts and read your Medium profile and publications. Medium no longer supports its API and has stopped issuing new integration tokens. This server only works if you a Medium integration token. If you don't, there is currently no official way to get one, and this project can't fix that. From Thought to Published: How MediumMCP Streamlines the AI-to-Medium Platform Workflow The tools map 1:1 to the endpoints Medium's v1 API actually has: What it do: search articles, read posts, read stats, or edit/delete posts. The official API never had those endpoints. Requirements: Node.js 18+ and an existing Medium integration token. Copy .env.example to .env and set your token: Then ask things like "Create a Medium draft titled ... from this markdown" and review the draft on Medium before publishing.

README

Medium MCP Server

A small Model Context Protocol server that lets an MCP client (Claude Desktop, Cursor, etc.) create Medium drafts and read your Medium profile and publications.

[!WARNING] Medium’s official API is deprecated. Medium no longer supports its API and has stopped issuing new integration tokens. This server only works if you already have a Medium integration token. If you don’t, there is currently no official way to get one, and this project can’t fix that.

📖 Background

From Thought to Published: How MediumMCP Streamlines the AI-to-Medium Platform Workflow

What it can do

The tools map 1:1 to the endpoints Medium’s v1 API actually has:

Tool What it does Medium endpoint
get-profile Your user id, username, name, profile URL GET /me
get-publications Publications you own, edit or write for GET /users/{userId}/publications
publish-article Creates a post (markdown or HTML). Defaults to draft, can be public or unlisted, optionally inside a publication POST /users/{userId}/posts, POST /publications/{id}/posts

What it can’t do: search articles, read posts, read stats, or edit/delete posts. The official API never had those endpoints.

Setup

Requirements: Node.js 18+ and an existing Medium integration token.

git clone https://github.com/Dishant27/medium-mcp-server.git
cd medium-mcp-server
npm install
npm run build

Copy .env.example to .env and set your token:

MEDIUM_INTEGRATION_TOKEN=your_existing_integration_token

Use with Claude Desktop (or any MCP client)

{
  "mcpServers": {
    "medium": {
      "command": "node",
      "args": ["/absolute/path/to/medium-mcp-server/dist/index.js"],
      "env": {
        "MEDIUM_INTEGRATION_TOKEN": "your_existing_integration_token"
      }
    }
  }
}

Then ask things like “Create a Medium draft titled … from this markdown” and review the draft on Medium before publishing.

No token? Alternatives

  • Write to markdown files and import them with Medium’s import tool, which also sets the canonical link.
  • Publish on a platform with a working API (e.g. dev.to, Hashnode) and cross-post to Medium with a canonical URL.
  • Browser automation against medium.com works but is fragile and may break Medium’s terms, so it isn’t included here.

License

MIT

View this README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide

Configuration

{ "mcpServers": { "medium": { "command": "node", "args": ["/absolute/path/to/medium-mcp-server/dist/index.js"], "env": { "MEDIUM_INTEGRATION_TOKEN": "your_existing_integration_token" } } } }