Substack MCP服务器
官方Substack MCP服务器
服务介绍
Writer Context Tool for Claude
这是一个开源的模型上下文协议(MCP)实现,它将Claude与你的Substack和Medium写作连接起来。
这是什么?
Writer Context Tool是一个MCP服务器,允许Claude访问并分析你在Substack和Medium等平台上的文章。通过这个工具,Claude可以理解你已发布内容的上下文,从而为你的写作提供更加个性化的帮助。
功能
- 🔍 从Substack和Medium检索并永久缓存你的博客文章
- 🔎 使用嵌入来根据你的查询找到最相关的文章
- 📚 将每篇文章作为单独的资源供Claude使用
- 🧠 对你的写作进行语义搜索
- ⚡ 在启动时预加载所有内容并生成嵌入
工作原理
该工具通过RSS订阅链接到你的Substack/Medium博客,获取你的帖子,并在本地永久缓存它们。它还为每个帖子生成嵌入,使基于你的查询能够执行语义搜索以找到最相关的内容。
当你向Claude询问关于你的写作的问题时,它可以利用这些单独的文章资源为你提供见解或基于你现有的内容帮助你开发新想法。
设置说明(分步指南)
先决条件
- Python 3.10 或更高版本
- Claude Desktop(最新版本)
- 拥有已发布内容的Substack或Medium账号
1. 克隆此仓库
git clone https://github.com/yourusername/writer-context-tool.git
cd writer-context-tool
2. 设置Python环境
使用uv(推荐):
# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create virtual environment and install dependencies
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -r requirements.txt
或者使用标准pip:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
3. 配置你的博客
-
复制示例配置文件:
cp config.example.json config.json -
编辑
config.json文件,添加你的Substack/Medium URL:{ "platforms": [ { "type": "substack", "url": "https://yourusername.substack.com", "name": "我的Substack博客" }, { "type": "medium", "url": "https://medium.com/@yourusername", "name": "我的Medium博客" } ], "max_posts": 100, "cache_duration_minutes": 10080, "similar_posts_count": 10 }max_posts: 从每个平台获取的最大文章数量(默认:100)cache_duration_minutes: 内容缓存时间(分钟),之后刷新(默认:1周或10080分钟)similar_posts_count: 搜索时返回的最相关文章数量(默认:10)
4. 与Claude Desktop连接
-
创建 Claude Desktop 配置目录:
# 在 macOS 上 mkdir -p ~/Library/Application\ Support/Claude/ -
创建配置文件:
# 获取 uv 命令的绝对路径 UV_PATH=$(which uv) # 创建配置 cat > ~/Library/Application\ Support/Claude/claude_desktop_config.json << EOF { "mcpServers": { "writer-tool": { "command": "${UV_PATH}", "args": [ "--directory", "$(pwd)", "run", "writer_tool.py" ] } } } EOF注意: 如果你在使用
uv命令时遇到问题,可以使用包含的 shell 脚本替代方案:- 使脚本可执行:
chmod +x run_writer_tool.sh - 更新你的 Claude Desktop 配置以使用该脚本:
{ "mcpServers": { "writer-tool": { "command": "/absolute/path/to/run_writer_tool.sh", "args": [] } } } - 使脚本可执行:
-
重启 Claude Desktop
使用工具与 Claude
设置完成后,你将在 Claude Desktop 中看到单独的文章作为资源。你可以:
-
搜索你的写作内容:让 Claude 查找相关内容
- "找到我讨论[特定主题]的文章"
- "我写过关于[主题]的内容有哪些?"
-
引用具体文章:通过点击搜索结果中的文章来访问单篇文章
- "显示[文章标题]的全文"
-
刷新内容:强制刷新你的内容
- "刷新我的写作内容"
可用工具和资源
Writer Context Tool 提供了以下功能:
- 单篇文章资源:每篇文章都成为可选资源
- search_writing:一个语义搜索工具,使用嵌入向量查找最相关的文章
- refresh_content:从所有配置的平台刷新并重新缓存你的内容
缓存工作原理
该工具实现了具有以下特性的永久缓存:
- 磁盘缓存:所有内容都存储在磁盘上,因此会在会话之间持久存在
- 嵌入向量:每篇文章都被转换为嵌入向量以便进行语义搜索
- 选择性刷新:根据你的缓存设置,工具仅在需要时刷新内容
- 预加载:启动时自动刷新所有内容并生成嵌入向量
故障排除
如果你遇到问题:
-
工具未在 Claude Desktop 中出现:
- 检查您的 Claude Desktop 配置文件是否正确
- 确认配置中的所有路径都是绝对路径
- 确保您的 Python 环境中安装了所有必需的包
- 重启 Claude Desktop
-
没有内容显示:
- 检查 config.json 中的 Substack/Medium URL
- 尝试使用 "refresh_content" 工具
- 确认您的博客是公开的并且有已发布的文章
-
uv 命令出错:
- 尝试使用 shell 脚本方法
- 确认 uv 命令已安装并添加到 PATH 中
-
嵌入问题:
- 如果您看到有关嵌入模型的错误,请确保有足够的磁盘空间
- 如果嵌入功能无法正常工作,考虑重新运行一个全新安装
许可证
此项目采用 MIT 许可证。