使用说明
中型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
运作原理
首次设置
- 运行服务器 -它将打开一个Chrome浏览器窗口
- 登录Medium -在打开的浏览器中完成登录
- 会话已保存 -您的登录会话已保存在本地
- 未来跑步 -无需登录,无头运行
浏览器自动化流程
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的服务条款负责任地使用。