Enables AI assistants to publish articles to Medium with support for drafts, tags, canonical URLs, and follower notifications
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., "@MCP Medium Serverpublish this article as a draft with tags 'ai' and 'automation'"
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.
MCP Medium Server
A Model Context Protocol (MCP) server that enables AI assistants to publish posts to Medium.
Features
Publish Posts: Create and publish articles to Medium
Draft Support: Publish as draft, unlisted, or public
Tag Management: Add tags to your posts
Canonical URLs: Set canonical URLs for SEO
Follower Notifications: Optionally notify followers when publishing
Related MCP server: WordPress MCP Server
Installation
Via npx (Recommended)
npx mcp-mediumLocal Development
git clone <repository-url>
cd mcp-medium
pnpm install
pnpm build
pnpm startSetup
1. Get Medium API Token
Go to Medium Settings
Scroll down to "Integration tokens"
Generate a new token
Copy the token for use in your environment
2. Set Environment Variable
export MEDIUM_TOKEN="your_medium_token_here"3. Configure MCP Client
Add this server to your MCP client configuration:
Claude Desktop (config.json):
{
"mcpServers": {
"medium": {
"command": "npx",
"args": ["mcp-medium"],
"env": {
"MEDIUM_TOKEN": "your_medium_token_here"
}
}
}
}Other MCP Clients:
npx mcp-mediumUsage
Once configured, you can ask your AI assistant to publish posts to Medium:
"Please publish this article to Medium as a draft with the tags 'programming' and 'typescript'"
"Publish this post to Medium publicly and notify my followers"
Available Parameters
title (required): The post title
content (required): The post content (HTML format)
tags (optional): Array of tags for the post
canonicalUrl (optional): Canonical URL for SEO
publishStatus (optional): "draft", "unlisted", or "public" (default: "draft")
Example
// The AI assistant can call this tool:
publishPost({
title: "My First MCP Post",
content: "<h1>Hello World</h1><p>This is my first post via MCP!</p>",
tags: ["mcp", "automation"],
publishStatus: "draft"
})Development
Build
pnpm buildDevelopment Mode
pnpm devLint
pnpm lint
pnpm fixRequirements
Node.js 18+
Medium account with API access
Valid Medium integration token
License
MIT
Author
Jay Simons
Website: https://yaa.bz
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
If you encounter any issues or have questions, please file an issue on the repository.
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.