Medium Reader MCP 服务器
一个模型上下文协议(MCP)服务器,提供对Medium文章和书签的认证访问。利用您的Medium订阅绕过付费墙,并以编程方式管理您的阅读列表。此功能仅在您拥有付费的Medium订阅时可用。
特点/功能
- 认证文章阅读使用您的订阅访问任何Medium文章(绕过付费墙)
- 书签管理列出、搜索并访问您保存的文章
- 智能会话管理自动登录并在过期时重新认证
- 多种格式获取Markdown或纯文本格式的文章
- 快速性能用于亚秒级响应的内存中Cookie缓存
快速入门
1. 安装
cd /Users/benjaminkurtz/Documents/*localcoding/medium-reader-mcp
npm install
npm run build2. 配置
复制示例环境文件并添加您的凭据:
cp .env.example .env编辑 .env 并添加您的Medium凭据:
# Option 1: Email/Password (Recommended)
MEDIUM_EMAIL=your-email@example.com
MEDIUM_PASSWORD=your-password
# Option 2: Manual Cookies (if login fails)
# MEDIUM_UID=your-uid-cookie
# MEDIUM_SID=your-sid-cookie获取手动Cookie (如需):
- 在浏览器中登录Medium
- 打开开发者工具(F12)
- 进入“应用程序”>“Cookies”>“https://medium.com”
- 复制以下值
uid并且sidcookies(网络用语,指网站存储在用户计算机上的小文件)
3. 添加到Claude代码中
将此配置添加到您的 ~/.claude/mcp.json:
{
"mcpServers": {
"medium-reader": {
"command": "node",
"args": ["/Users/benjaminkurtz/Documents/*localcoding/medium-reader-mcp/dist/index.js"],
"env": {
"MEDIUM_EMAIL": "${MEDIUM_EMAIL}",
"MEDIUM_PASSWORD": "${MEDIUM_PASSWORD}"
}
}
}
}注确保你已 MEDIUM_EMAIL 并且 MEDIUM_PASSWORD 在您的shell环境中设置,或替换 ${MEDIUM_EMAIL} 使用您真实的凭据(出于安全考虑,不建议这样做)。
4. 重启Claude代码
重启Claude代码以加载新的MCP服务器。
使用方法
阅读一篇Medium上的文章
Read this Medium article: https://medium.com/@author/article-title-123abc克劳德将使用 read_medium_article 用于获取并显示文章内容的工具。
获取最新书签
Show me my latest Medium bookmark用途 get_latest_bookmark 以检索您最近保存的文章。
列出书签
List my Medium bookmarksShow me 10 bookmarks starting from the 5th one用途 list_bookmarks 可选分页功能。
搜索书签
Search my Medium bookmarks for "machine learning"用途 search_bookmarks 查找相关文章。
MCP 工具
阅读中等篇幅的文章
阅读一篇需要验证的文章(来自Medium)。
输入:
{
url: string, // Required: Full Medium article URL
format?: "markdown" | "text" // Optional: Output format (default: markdown)
}输出:
{
title: string,
author: string,
date: string, // ISO 8601 format
content: string, // Article content in requested format
tags: string[],
claps: number,
url: string
}获取最新书签
获取你最近添加书签的文章。
输入:
{
autoRead?: boolean // Optional: Auto-read full content (default: true)
}输出: 与……相同 read_medium_article
列出书签
列出您的Medium书签,并添加分页功能。
输入:
{
limit?: number, // Optional: Max bookmarks to return
offset?: number // Optional: Skip N bookmarks (pagination)
}输出:
{
bookmarks: Array,
total: number,
hasMore: boolean
}搜索书签
按关键词搜索你的书签。
输入:
{
query: string, // Required: Search query
limit?: number // Optional: Max results
}输出: 与……相同 list_bookmarks,但已根据相关性进行过滤和排序
建筑
src/
├── index.ts # MCP server entry point
├── config.ts # Environment configuration
├── types.ts # TypeScript type definitions
├── medium-client.ts # Authenticated HTTP client
├── auth/
│ ├── medium-auth.ts # Email/password authentication
│ ├── session-manager.ts # Cookie caching & auto-refresh
│ └── cookie-parser.ts # Cookie utilities
├── parsers/
│ ├── article.ts # Extract article content
│ ├── bookmarks.ts # Parse bookmarks page
│ └── markdown.ts # HTML to Markdown conversion
└── tools/
├── read-article.ts # read_medium_article tool
├── latest-bookmark.ts # get_latest_bookmark tool
├── list-bookmarks.ts # list_bookmarks tool
└── search-bookmarks.ts # search_bookmarks tool演出
- 首次请求 (已登录):\<3秒
- 缓存会话\<1秒
- 书签操作:小于4秒
- 会话缓存1小时临时链接,自动刷新
- 书签缓存5分钟生存时间(TTL,Time To Live)
安全
- 凭证绝不会被记录
- 仅在内存中缓存会话cookie(不持久化)
- 会话过期时自动重新认证
- 用于凭证管理的环境变量
.env文件已从版本控制中排除
故障排除
见 故障排除指南.md 针对常见问题及解决方案。
发展
构建
npm run build观看模式
npm run watch类型检查
npm run type-check许可证
ISC(Internet Service Center,互联网服务中心)
