MCP Connector

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.

Works with substackmedium

90
Spark score
out of 100
Updated 7 months ago
Version 1.0.0
Models

Add to Favorites

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

01

Fetch and cache content from Substack and Medium via RSS.

02

Perform semantic search across your published essays.

03

Retrieve specific essays by title.

04

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

search_writing

Semantic search tool that finds the most relevant essays using embeddings

refresh_content

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.