Skip to main content
Glama

Distill

Un servidor MCP de Claude Code que convierte artículos guardados en podcasts generados por IA, adaptados a tus intereses.

Guarda artículos a lo largo del día. Genera un podcast conversacional de dos presentadores bajo demanda. El MP3 se guarda en ~/Downloads, suena un aviso y la cola se vacía. Todo es local.

Instalación

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

Registrar en Claude Code

Añade Distill como servidor MCP. La forma más sencilla: desde el directorio donde quieras mantener tu cola (tu "proyecto de lectura"):

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

O añádelo manualmente a tu ~/.claude.json / .mcp.json del proyecto:

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

Distill lee y escribe archivos en el directorio de trabajo actual donde se inició Claude Code, por lo que tu cola y tus transcripciones residen junto al proyecto en el que estés. Si deseas una cola global única, configura DISTILL_PROJECT_ROOT:

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

Reinicia Claude Code. Confirma con /mcp: deberías ver distill conectado.

Configuración

Modo fácil: ejecuta /distill:setup dentro de Claude Code. Te guiará a través de tus intereses, estilo del programa, proveedor de TTS y clave API, una pregunta a la vez.

Modo manual: en la primera ejecución, Distill escribe un archivo .distill predeterminado en la raíz del proyecto. Edítalo directamente:

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

Consulta .distill.example para ver un ejemplo completo anotado.

Nota sobre la estructura del sistema de archivos

La especificación describe .distill como un archivo y como un directorio. Dado que eso no es posible, Distill utiliza:

  • .distill — archivo de configuración (formato dotenv)

  • .distill-data/ — directorio de datos (queue.json, transcripts/)

Comandos de barra diagonal (Slash commands)

Claude Code expone los prompts de MCP con el prefijo /mcp__<servidor>__<prompt>, por lo que todos los comandos de Distill comienzan con /mcp__distill__:

Comando

Qué hace

/mcp__distill__setup

Configuración interactiva inicial (intereses, estilo, TTS, clave API)

/mcp__distill__save <url>

Obtiene y pone en cola un artículo

/mcp__distill__queue-list

Muestra la cola actual

/mcp__distill__queue-clear

Vacía la cola (sin podcast)

/mcp__distill__podcast <url>

Genera un podcast a partir de un solo artículo

/mcp__distill__digest

Genera un podcast a partir de la cola y luego la vacía

/mcp__distill__interests-add <tag>

Añade un interés

/mcp__distill__interests-remove <tag>

Elimina un interés

/mcp__distill__interests-list

Muestra los intereses actuales

Consejo: normalmente puedes escribir las primeras letras (p. ej., /distill-pod) y dejar que el autocompletado rellene el resto.

Todos los comandos también funcionan como lenguaje natural:

"Guarda esto en mi cola de podcasts: https://…" "Haz un análisis profundo (Deep Dive) de mi cola" "Ignora mis intereses habituales, céntrate en el ángulo técnico"

Estilos de programa

Estilo

Dinámica de presentadores

Ambiente

The Briefing

Presentador + corresponsal

Limpio, noticiero

The Debate

Escéptico vs optimista

Directo, de opinión

The Deep Dive

Experto + aprendiz curioso

Educativo

The Watercooler

Dos colegas charlando

Informal

Sobrescribe por sesión: "Hazlo con estilo Debate".

Proveedores de TTS

Proveedor

Notas

openai

Recomendación predeterminada. Requiere OPENAI_API_KEY.

elevenlabs

Voces más naturales. Requiere ELEVENLABS_API_KEY.

inworld

Enfocado en personajes. Requiere INWORLD_API_KEY.

system

say de macOS. Gratuito, robótico. Requiere ffmpeg (o sox) para producir MP3: brew install ffmpeg.

Cómo funciona

  • Obtención de artículos: @mozilla/readability + jsdom — elimina navegación/anuncios/pies de página y devuelve texto limpio.

  • Generación de guiones: el prompt de MCP le dice al propio LLM de Claude Code que lea la cola, cargue el estilo del programa y escriba el guion del diálogo en línea. No se necesita una clave API de Claude separada.

  • TTS: síntesis por turno (una llamada API por turno de diálogo, para que cada presentador tenga su propia voz), luego concatenado en un solo MP3.

  • Transcripción: copia de texto plano guardada en .distill-data/transcripts/ para depuración.

  • Notificación: afplay de macOS reproduce un sonido corto del sistema cuando el MP3 está listo.

Arquitectura y costes

Distill es un servidor MCP local basado en stdio. Todo se ejecuta en la máquina del usuario. No hay backend alojado.

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

Quién paga qué:

Coste

Pagado por

LLM que escribe el diálogo

El usuario — se ejecuta dentro de su sesión de Claude Code, en su suscripción de Claude / facturación de API

Generación de audio TTS

El usuario — pone su propia OPENAI_API_KEY / ELEVENLABS_API_KEY / INWORLD_API_KEY en .distill

Alojamiento

Nadie — los servidores MCP stdio no necesitan un servidor

Esto significa que cualquiera que haga un fork o instale Distill simplemente clona el repositorio y apunta Claude Code hacia él. Sin cuenta, sin registro, nada que desplegar.

Alcance

  • Solo Claude Code — no es una CLI independiente

  • Solo inglés

  • macOS asumido para el sonido del sistema

  • Sin soporte para artículos renderizados con JS o tras muros de pago

  • Sin programación — generación bajo demanda

Solución de problemas

  • /mcp muestra distill como fallido — comprueba la ruta absoluta a index.js en tu configuración de MCP y que npm install se haya ejecutado en el directorio de distill.

  • "Could not extract readable content" — la página probablemente tiene un muro de pago o está renderizada con JS. No hay reintento en la v1.

  • El TTS falla con "missing API key" — descomenta exactamente una línea TTS_PROVIDER= en .distill y asegúrate de que su *_API_KEY correspondiente esté configurada.

  • El TTS system falla con "requires ffmpeg or sox"brew install ffmpeg.

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidlbatey/distill_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server