Medium内容管理服务器

Medium MCP服务器是一个基于浏览器自动化的解决方案,用于程序化地管理与Medium内容生态系统的交互,支持文章发布、检索和管理等功能。

  • by jackyckma
  • TypeScript
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 jackyckma/medium-mcp-server

使用说明

中型MCP服务器(基于浏览器)

概述

Medium MCP(模型上下文协议)是一种基于浏览器的解决方案,用于与Medium的内容生态系统进行编程交互。自从Medium停止为新用户提供公共API以来,该服务器使用浏览器自动化来提供智能和上下文感知的内容管理。

🔄 为什么基于浏览器?

Medium于2023年停止发行新的API代币,这使得新开发者无法进行传统的API集成。此实现使用Playwright浏览器自动化来:

  • ✅ 在没有API令牌的情况下工作 -使用现有的Medium登录会话
  • ✅ 全部功能 -发布、搜索和管理您的媒体内容
  • ✅ 安全 -在本地保存登录会话以供重用
  • ✅ 交互式 -打开浏览器进行初始登录,然后无头运行

📖 深潜文章

想了解Medium MCP背后的完整故事吗?查看综合文章:

从思考到发表:MediumMCP如何简化AI到媒体平台的工作流程

主要特点

  • 🤖 浏览器自动化 用于媒体互动
  • 📝 文章发表 带有标题、内容和标签
  • 📚 检索您的文章 从您的Medium个人资料
  • 🔍 搜索媒体文章 使用关键词
  • 💾 会话持续 -登录一次,随处使用
  • 🎯 克劳德整合 通过模型上下文协议

技术栈

  • TypeScript
  • 模型上下文协议(MCP)
  • 剧作家浏览器自动化
  • 高级内容解析

入门指南

先决条件

  • Node.js(v16或更高版本)
  • npm或纱线
  • 中等帐户(不需要API凭据!)

安装

# 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 build

配置

不需要API密钥!首次使用时,服务器会提示您在浏览器中登录Medium。

用法

测试浏览器客户端

# Test the browser automation (optional)
node test-browser.js

启动MCP服务器

npm start

添加到Claude配置

将此添加到您的Claude MCP配置中:

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

可用的MCP工具

1. publish-article

将新文章发布到Medium

{
  title: string,      // Article title
  content: string,    // Article content (markdown supported)
  tags?: string[],    // Optional tags
  isDraft?: boolean   // Save as draft (default: false)
}

2. get-my-articles

检索您发布的Medium文章

// No parameters needed
// Returns: Array of your articles with titles, URLs, and dates

3. get-article-content

获取任何媒体文章的完整内容

{
  url: string  // Medium article URL
}

4. search-medium

按关键字搜索文章

{
  keywords: string[]  // Array of search terms
}

5. login-to-medium

手动触发登录过程

// No parameters needed
// Opens browser for login if not already authenticated

运作原理

首次设置

  1. 运行服务器 -它将打开一个Chrome浏览器窗口
  2. 登录Medium -在打开的浏览器中完成登录
  3. 会话已保存 -您的登录会话已保存在本地
  4. 未来跑步 -无需登录,无头运行

浏览器自动化流程

User Request → MCP Server → Playwright Browser → Medium Website → Response

会话管理

  • 登录会话存储在 medium-session.json
  • 在后续运行中自动重复使用
  • 仅在会话过期时重新登录

Claude使用示例

User: "Publish an article titled 'AI in 2025' with content about recent developments"

Claude: Uses publish-article tool →
- Opens Medium editor
- Fills in title and content
- Publishes article
- Returns success with article URL

故障排除

浏览器问题

  • 浏览器无法打开:检查是否安装了Chromium(npx playwright install chromium)
  • 登录失败:清除 medium-session.json 然后重试
  • 性能缓慢:浏览器自动化每次操作需要10-30秒

介质变化

  • 选择器已过时:Medium偶尔会更改其网站结构
  • 登录被阻止:请先使用常规浏览器登录,然后重试

常见错误

  • Browser not initialized:重新启动服务器
  • Login timeout:增加browser-client.ts中的超时时间
  • Element not found:Medium可能已更改其UI

发展

项目结构

src/
├── index.ts           # Main MCP server
├── browser-client.ts  # Playwright automation
├── auth.ts           # Legacy auth (unused)
└── client.ts         # Legacy API client (unused)

测试

# Test browser automation
node test-browser.js

# Run MCP server
npm start

# Build project
npm run build

安全说明

  • ✅ 仅限本地 -没有数据发送到外部服务器
  • ✅ 会话加密 -浏览器处理所有安全
  • ✅ 没有API密钥 -使用您现有的Medium登录
  • ⚠️ 浏览器存储 -会话以JSON文件本地保存

局限性

  • 速度:浏览器自动化比API调用慢(10-30秒vs 1-2秒)
  • 可靠性:取决于Medium的网站结构
  • 无头:初始登录时需要显示(之后可以无头运行)
  • 费率限制:受Medium正常使用限制

贡献

欢迎投稿!请阅读CONTRIBUTING.md了解指南。

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

支持

  • 🐛 问题:GitHub问题
  • 💬 讨论:GitHub讨论
  • 📧 电子邮件:[联系作者]

🤖 信用和免责声明

人工智能驱动开发

整个Medium MCP服务器 由人工智能(Claude/Cursor AI)在短短几个小时内开发,展示了人工智能辅助开发的非凡力量。从不推荐使用的API到浏览器自动化的完整重写,包括所有TypeScript代码、文档、错误处理和测试策略,都是通过人工智能协作生成的。

这表明了什么

  • ✅ AI优先发展:快速构建复杂的浏览器自动化和MCP集成
  • ✅ 现实世界问题解决:适用于Medium的API弃用,具有有效的解决方案
  • ✅ 生产就绪代码:TypeScript、错误处理、会话管理、综合文档
  • ✅ 社区标准:贡献指南、变更日志、适当的许可

当前状态和限制

  • ✅ 功能的:在核心功能的Claude MCP集成中运行良好
  • ⚠️ 谷歌登录会话:无法解决持续的谷歌登录会话(请使用电子邮件/密码)
  • ⚠️ 开发时间短:快速发展可能忽略了边缘案例
  • ⚠️ 中等UI更改:如果Medium更新其界面,选择器可能会中断

诚实评价

这个工具是 有用且实用 对于人工智能驱动的内容工作流程,但存在以下固有局限性:

  • 人工智能快速发展 -可能会错过人类开发人员会发现的微妙的边缘情况
  • 浏览器自动化复杂性 -取决于Medium的网站结构
  • 会话管理挑战 -谷歌的反自动化措施

反馈欢迎

鉴于人工智能开发过程的加速, 我欢迎任何反馈、错误报告或改进这既是一种工作工具,也是人工智能开发能力和局限性的证明。

自行决定使用 -这是“按原样”提供的,因为人们理解,快速的人工智能开发虽然强大,但可能无法涵盖所有的生产场景。


备注:这是一个非官方工具,与Medium无关。按照Medium的服务条款负责任地使用。