Skip to main content
Glama

Distill

保存された記事を、あなたの興味に合わせてAI生成のポッドキャストに変換するClaude Code MCPサーバー。

一日を通して記事を保存しましょう。オンデマンドで2人のホストによる会話型ポッドキャストを生成します。MP3は ~/Downloads に保存され、サウンドが再生され、キューがクリアされます。すべてローカルで完結します。

インストール

git clone <this repo> ~/code/distill
cd ~/code/distill
npm install

Related MCP server: MCP Podcast Scraper

Claude Codeへの登録

DistillをMCPサーバーとして追加します。最も簡単な方法は、キューを保持したいディレクトリ(「リーディングプロジェクト」)から行うことです:

claude mcp add distill -- node /absolute/path/to/distill/index.js

または、~/.claude.json / プロジェクトの .mcp.json に手動で追加します:

{
  "mcpServers": {
    "distill": {
      "command": "node",
      "args": ["/absolute/path/to/distill/index.js"]
    }
  }
}

DistillはClaude Codeが起動された現在の作業ディレクトリでファイルの読み書きを行うため、キューとトランスクリプトは作業中のプロジェクトと一緒に保存されます。単一のグローバルキューが必要な場合は、DISTILL_PROJECT_ROOT を設定してください:

{
  "mcpServers": {
    "distill": {
      "command": "node",
      "args": ["/absolute/path/to/distill/index.js"],
      "env": { "DISTILL_PROJECT_ROOT": "/Users/you/distill-home" }
    }
  }
}

Claude Codeを再起動します。/mcp で確認し、distill が接続されていることを確認してください。

設定

イージーモード: Claude Code内で /distill:setup を実行します。興味、番組スタイル、TTSプロバイダー、APIキーについて、質問形式で設定をガイドします。

マニュアルモード: 初回実行時に、Distillはプロジェクトルートにデフォルトの .distill ファイルを作成します。これを直接編集してください:

INTERESTS=entrepreneurship, cybersecurity, AI, startups
SHOW_STYLE=The Briefing
TTS_PROVIDER=openai
OPENAI_API_KEY=sk-...
OUTPUT_DIR=~/Downloads

詳細な注釈付きの例については、.distill.example を参照してください。

ファイルシステムレイアウトに関する注意

仕様では .distill をファイルおよびディレクトリの両方として記述していますが、それは不可能なため、Distillは以下を使用します:

  • .distill — 設定ファイル (dotenv形式)

  • .distill-data/ — データディレクトリ (queue.json, transcripts/)

スラッシュコマンド

Claude CodeはMCPプロンプトを /mcp__<server>__<prompt> というプレフィックスで公開するため、すべてのDistillコマンドは /mcp__distill__ で始まります:

コマンド

動作

/mcp__distill__setup

初回設定の対話型ガイド(興味、スタイル、TTS、APIキー)

/mcp__distill__save <url>

記事を取得してキューに追加

/mcp__distill__queue-list

現在のキューを表示

/mcp__distill__queue-clear

キューを空にする(ポッドキャストは生成されません)

/mcp__distill__podcast <url>

単一の記事からポッドキャストを生成

/mcp__distill__digest

キューからポッドキャストを生成し、その後クリア

/mcp__distill__interests-add <tag>

興味を追加

/mcp__distill__interests-remove <tag>

興味を削除

/mcp__distill__interests-list

現在の興味を表示

ヒント: 通常、最初の数文字(例: /distill-pod)を入力してオートコンプリートで補完できます。

すべてのコマンドは自然言語でも機能します:

"これをポッドキャストキューに保存して: https://…" "キューからディープダイブを作成して" "いつもの興味はスキップして、技術的な側面に焦点を当てて"

番組スタイル

スタイル

ホストのダイナミクス

雰囲気

The Briefing

アンカー + 特派員

クリーン、ニュース番組風

The Debate

懐疑派 vs 楽観主義者

パンチの効いた、意見重視

The Deep Dive

専門家 + 好奇心旺盛な学習者

教育的

The Watercooler

同僚同士の雑談

カジュアル

セッションごとに上書き可能: "Debateスタイルにして"。

TTSプロバイダー

プロバイダー

メモ

openai

推奨デフォルト。OPENAI_API_KEY が必要。

elevenlabs

最も自然な音声。ELEVENLABS_API_KEY が必要。

inworld

キャラクター重視。INWORLD_API_KEY が必要。

system

macOSの say。無料、ロボット風。MP3生成には ffmpeg (または sox) が必要: brew install ffmpeg。

仕組み

  • 記事取得: @mozilla/readability + jsdom — ナビゲーション、広告、フッターを取り除き、クリーンなテキストを返します。

  • スクリプト生成: MCPプロンプトがClaude Code自身のLLMにキューを読み込ませ、番組スタイルを適用し、対話スクリプトをインラインで記述させます。個別のClaude APIキーは不要です。

  • TTS: ターンごとの合成(対話のターンごとに1回のAPI呼び出しを行い、各ホストに独自の声を割り当てます)、その後単一のMP3に結合されます。

  • トランスクリプト: デバッグ用にプレーンテキストのコピーが .distill-data/transcripts/ に保存されます。

  • 通知: MP3の準備ができると、macOSの afplay が短いシステムサウンドを再生します。

アーキテクチャとコスト

Distillはローカルで動作するstdioベースのMCPサーバーです。すべてユーザーのPC上で実行されます。ホストされたバックエンドはありません。

 ┌───────────────┐   stdio    ┌───────────────┐    HTTPS     ┌──────────┐
 │ Claude Code   │◀──────────▶│ distill MCP   │────────────▶│ TTS API  │
 │ (your LLM)    │            │ (node process)│              │ (yours)  │
 └───────────────┘            └───────────────┘              └──────────┘
        │                            │
        │                            ▼
        │                   .distill  / .distill-data/
        ▼
  writes script,
  calls tools

コストの負担者:

コスト

負担者

対話を作成するLLM

ユーザー — Claude Codeセッション内で実行され、ユーザーのClaudeサブスクリプション/API課金が適用されます

TTS音声生成

ユーザー — .distill に自身の OPENAI_API_KEY / ELEVENLABS_API_KEY / INWORLD_API_KEY を設定します

ホスティング

なし — stdio MCPサーバーはサーバーを必要としません

つまり、Distillをフォークまたはインストールする人は、リポジトリをクローンしてClaude Codeを向けるだけです。アカウント登録も、サインアップも、デプロイするものもありません。

スコープ

  • Claude Codeのみ — スタンドアロンのCLIではありません

  • 英語のみ

  • システムサウンドにはmacOSを想定

  • JSレンダリングやペイウォール付きの記事はサポート対象外

  • スケジューリングなし — オンデマンドで生成

トラブルシューティング

  • /mcp でdistillが失敗と表示される — MCP設定内の index.js への絶対パスを確認し、distillディレクトリで npm install が実行されていることを確認してください。

  • "Could not extract readable content" — ページがペイウォールで保護されているか、JSレンダリングされている可能性があります。v1では再試行機能はありません。

  • TTSが "missing API key" で失敗する — .distill 内の TTS_PROVIDER= 行を1つだけアンコメントし、対応する *_API_KEY が設定されていることを確認してください。

  • system TTSが "requires ffmpeg or sox" で失敗する — brew install ffmpeg を実行してください。

Related MCP Connectors

Related MCP Servers