Official Substack / Medium MCP Server について
Writer Context Tool は、Claude が Substack や Medium に公開した記事を参照できるようにするオープンソースの MCP サーバーです。RSS から記事を取得してローカルにキャッシュし、埋め込みベクトルによるセマンティック検索に対応しており、既存の文章を Claude に活用させたいライターに向いています。
主な機能
- 01RSS から記事を取得しローカルにキャッシュ
- 02埋め込みを用いたセマンティック検索
- 03各記事を個別のリソースとして提供
- 04起動時のコンテンツ読み込みと埋め込み生成
- 05設定に応じたキャッシュの更新
活用シーン
- 01過去の記事から特定のテーマに関する文章を探す
- 02Claude で記事全文を読み込み、執筆を支援させる
- 03公開済みの記事をもとに新しいテーマを検討する
MCP 対応
各記事をリソースとして公開し、search_writing と refresh_content のツールを Claude Desktop に提供する MCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Claude 向け Writer Context Tool
Claude を Substack や Medium での執筆内容に接続する、オープンソースの Model Context Protocol(MCP)実装です。
これは何ですか?
Writer Context Tool は、Claude が Substack や Medium などのプラットフォームに投稿した文章にアクセスし、分析できるようにする MCP サーバーです。このツールを使うと、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": "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 }max_posts:各プラットフォームから取得する投稿の最大数(デフォルト:100)cache_duration_minutes:コンテンツを更新するまでのキャッシュ期間(デフォルト:1 週間、または 10080 分)similar_posts_count:検索時に返す、最も関連性の高い投稿の数(デフォルト:10)
4. Claude Desktop に接続する
-
Claude Desktop の設定ディレクトリを作成します:
# On macOS mkdir -p ~/Library/Application\ Support/Claude/ -
設定ファイルを作成します:
# Get the absolute path to your uv command UV_PATH=$(which uv) # Create the configuration 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コマンドで問題が発生した場合は、同梱されている代替のシェルスクリプトを使用できます:- スクリプトに実行権限を付与します:
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 に探してもらいます
- 「[specific topic] について論じているエッセイを探して」
- 「[subject] について何を書いた?」
-
特定のエッセイを参照する:検索結果に表示された個々のエッセイをクリックしてアクセスします
- 「[essay title] の全文を表示して」
-
コンテンツを更新する:コンテンツを強制的に更新します
- 「執筆コンテンツを更新して」
利用可能なツールとリソース
Writer Context Tool が提供するもの:
- 個別のエッセイリソース:各エッセイが選択可能なリソースになります
- search_writing:エンベディングを使って最も関連性の高いエッセイを見つけるセマンティック検索ツール
- refresh_content:設定済みのすべてのプラットフォームからコンテンツを更新し、再キャッシュします
キャッシュの仕組み
このツールは、次の機能を備えた永続キャッシュを実装しています:
- ディスクキャッシュ:すべてのコンテンツをディスクに保存するため、セッション間で保持されます
- エンベディング:各エッセイをエンベディングに変換し、セマンティック検索に利用します
- 選択的な更新:キャッシュ設定に応じて、必要な場合にのみコンテンツを更新します
- プリロード:起動時にすべてのコンテンツが自動的に更新され、エンベディングが生成されます
トラブルシューティング
問題が発生した場合は、以下を確認してください。
-
Claude Desktop にツールが表示されない場合:
- Claude Desktop の設定ファイルが正しいことを確認してください
- 設定内のすべてのパスが絶対パスであることを確認してください
- Python 環境に必要なパッケージがすべてインストールされていることを確認してください
- Claude Desktop を再起動してください
-
コンテンツが表示されない場合:
- config.json 内の Substack/Medium の URL を確認してください
- 「refresh_content」ツールを試してください
- ブログが公開されており、投稿が公開されていることを確認してください
-
uv コマンドでエラーが発生する場合:
- 代わりにシェルスクリプトを使用する方法を試してください
- uv コマンドがインストールされ、PATH に含まれていることを確認してください
-
埋め込みに関する問題:
- 埋め込みモデルに関するエラーが表示される場合は、十分なディスク容量があることを確認してください
- 埋め込みが正常に動作しない場合は、新規インストールから再実行することを検討してください
ライセンス
このプロジェクトは MIT License の下で利用できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。