Search and analyze your Substack and Medium content
An MCP server connecting Claude to your Substack and Medium posts for semantic search over your own writing.
Why it matters
Leverage Claude to semantically search and analyze your published Substack and Medium content. This asset enables deep insights into your writing through embeddings and persistent caching.
Outcomes
What it gets done
Fetch and cache content from Substack and Medium via RSS.
Perform semantic search across your published essays.
Retrieve specific essays by title.
Refresh cached content from your publications.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-substack-medium | bash Capabilities
Tools your agent gets
Semantic search tool that finds the most relevant essays using embeddings
Refreshes and recaches your content from all configured platforms
Overview
Substack/Medium MCP Server
An MCP server that indexes your Substack and Medium posts via RSS and lets Claude semantically search your own writing. Use it when you want Claude to find or quote your own past essays by topic instead of searching manually.
What it does
Connects Claude to your Substack and Medium publications via their RSS feeds, extracting and caching your posts and building embeddings so Claude can semantically search and retrieve your own writing.
When to use - and when NOT to
Use this when Claude needs to search or recall your own published essays - for example "Find essays where I discuss [specific topic]" or "Show me the full text of [essay title]." It only indexes content you've configured as your own Substack or Medium platforms via RSS, so it is not a general web content search tool.
Capabilities
search_writing: semantic search over your essays using embeddings to find the most relevant matches.refresh_content: updates and recaches content from all configured platforms.- Extracts and persistently caches blog posts from Substack and Medium.
- Exposes individual essays as separate resources for Claude.
- Pre-loads all content and generates embeddings on startup.
How to install
Requires Python 3.10+ and an account on Substack or Medium with published content. Clone the repo and install with uv (curl -LsSf https://astral.sh/uv/install.sh | sh, uv venv, uv pip install -r requirements.txt) or plain pip in a virtual environment. Configure Claude Desktop:
{
"mcpServers": {
"writer-tool": {
"command": "${UV_PATH}",
"args": [
"--directory",
"$(pwd)",
"run",
"writer_tool.py"
]
}
}
}
Then configure your platforms, e.g.:
{
"platforms": [
{"type": "substack", "url": "https://yourusername.substack.com", "name": "My Substack Blog"},
{"type": "medium", "url": "https://medium.com/@yourusername", "name": "My Medium Blog"}
],
"max_posts": 100,
"cache_duration_minutes": 10080,
"similar_posts_count": 10
}
Who it's for
Writers and bloggers publishing on Substack or Medium who want Claude to semantically search and quote their own past essays instead of manually searching their own archive.
Source README
An MCP server that connects Claude to your publications on Substack and Medium, enabling semantic search and analysis of your published content through RSS feeds and embeddings.
Installation
From source with uv
git clone https://github.com/yourusername/writer-context-tool.git
cd writer-context-tool
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
From source with pip
git clone https://github.com/yourusername/writer-context-tool.git
cd writer-context-tool
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Configuration
Claude Desktop
{
"mcpServers": {
"writer-tool": {
"command": "${UV_PATH}",
"args": [
"--directory",
"$(pwd)",
"run",
"writer_tool.py"
]
}
}
}
Platform Configuration
{
"platforms": [
{
"type": "substack",
"url": "https://yourusername.substack.com",
"name": "My Substack Blog"
},
{
"type": "medium",
"url": "https://medium.com/@yourusername",
"name": "My Medium Blog"
}
],
"max_posts": 100,
"cache_duration_minutes": 10080,
"similar_posts_count": 10
}
Available Tools
| Tool | Description |
|---|---|
search_writing |
A semantic search tool that finds the most relevant essays using embeddings |
refresh_content |
Updates and recaches your content from all configured platforms |
Capabilities
- Extracts and persistently caches your blog posts from Substack and Medium
- Uses embeddings to find the most relevant essays based on your queries
- Makes individual essays available as separate resources for Claude
- Performs semantic search across your writing
- Pre-loads all content and generates embeddings on startup
Usage Examples
Find essays where I discuss [specific topic]
What have I written about [subject]?
Show me the full text of [essay title]
Refresh my writing content
Resources
Notes
Requires Python 3.10 or higher and an account on Substack or Medium with published content. The tool connects via RSS feeds and uses persistent disk caching with embeddings for semantic search.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.