Ir al contenido

Herramientas MCP

Todas las herramientas MCP son servidas por el servidor MCP de Pillbox y consumidas por agentes IA (Claude, Cursor, etc.). Las respuestas son texto estructurado plano — no JSON — para que el LLM pueda leerlas directamente sin parsear.

Los errores siguen un formato uniforme: error: <código>, message: <descripción>, más campos adicionales cuando son relevantes.

Las pills y prescriptions pertenecen a un bottle (base de datos local del proyecto). Las capsules se almacenan en la base de datos global (~/.pillbox/pillbox.db).


Las pills son entradas de memoria estructuradas vinculadas a una prescription (sesión de trabajo) dentro de un bottle.

Crea una nueva pill.

ParámetroTipoRequeridoDescripción
prescription_idstring (UUID v7)Prescription abierta a la que adjuntar esta pill
titlestring (1–255)Título descriptivo corto
contentstring (1–5000)Contenido completo de la pill
compoundstringCategoría — texto libre
author_namestringNombre del autor — ver identidad del autor
author_emailstringEmail del autor — ver identidad del autor

Devuelve el id de la nueva pill.

Recupera una pill por UUID.

ParámetroTipoRequeridoDescripción
idstring (UUID v7)UUID de la pill

Devuelve id, prescription, created, compound, title y content completo. Devuelve un error not_found si la pill no existe.

Actualiza el título, contenido o compound de una pill.

ParámetroTipoRequeridoDescripción
idstring (UUID v7)UUID de la pill
titlestring (1–255)noNuevo título
contentstring (1–5000)noNuevo contenido
compoundstringnoNuevo compound

Devuelve id, compound y title actualizado.

Elimina suavemente una pill (el registro se marca como eliminado, no se borra).

ParámetroTipoRequeridoDescripción
idstring (UUID v7)UUID de la pill

Devuelve id y timestamp deleted_at.

Búsqueda de texto completo sobre pills usando coincidencia por prefijo FTS5 y puntuación difusa Jaro-Winkler.

Se requiere al menos uno de query o compound. Si solo se pasa compound, lista las pills de ese compound sin filtrado FTS. Si el paso estricto devuelve cero resultados, el servidor reintenta automáticamente con fuzzy (Jaro-Winkler) — la respuesta incluye used_fuzzy: true cuando esto ocurre.

ParámetroTipoRequeridoDescripción
querystringnoConsulta FTS — términos separados por espacios y -_/.:, unidos con OR
bottle_idstring (UUID v7)noRestringir a un bottle específico
compoundstringnoFiltrar por tipo de compound
limitintegernoMáximo de resultados (por defecto: 20)
fuzzybooleannoForzar coincidencia difusa (Jaro-Winkler) desde el inicio, saltando el paso estricto. Por defecto: false

Devuelve las pills encontradas con id, compound, title y un snippet del contenido. Devuelve No pills found. cuando la consulta no coincide con nada.

Lista los compounds distintos de pills con su frecuencia, ordenados por count descendente. Útil para descubrir las categorías disponibles antes de buscar.

ParámetroTipoRequeridoDescripción
bottle_idstring (UUID v7)noRestringir a un bottle específico
limitintegernoMáximo de compounds a devolver

Devuelve una lista de nombres de compound con su número de pills.


Las capsules son entradas de memoria global — convenciones, flujos de trabajo y contexto de entorno compartidos entre todos los proyectos.

Crea una nueva capsule en la base de datos global.

ParámetroTipoRequeridoDescripción
titlestring (1–255)Título descriptivo corto
contentstring (1–5000)Contenido completo de la capsule
compoundstringCategoría — texto libre

Devuelve el id de la nueva capsule.

Recupera una capsule por UUID.

ParámetroTipoRequeridoDescripción
idstring (UUID v7)UUID de la capsule

Devuelve id, created, compound, title y content completo. Devuelve un error not_found si la capsule no existe.

Actualiza el título, contenido o compound de una capsule.

ParámetroTipoRequeridoDescripción
idstring (UUID v7)UUID de la capsule
titlestring (1–255)noNuevo título
contentstring (1–5000)noNuevo contenido
compoundstringnoNuevo compound

Devuelve id, compound y title actualizado.

Elimina suavemente una capsule.

ParámetroTipoRequeridoDescripción
idstring (UUID v7)UUID de la capsule

Devuelve id y timestamp deleted_at.

Búsqueda de texto completo sobre capsules usando FTS5 y puntuación difusa Jaro-Winkler. Las capsules son globales — no se filtran por proyecto.

Se requiere al menos uno de query o compound. Si solo se pasa compound, lista las capsules de ese compound sin filtrado FTS. Si el paso estricto devuelve cero resultados, el servidor reintenta automáticamente con fuzzy (Jaro-Winkler) — la respuesta incluye used_fuzzy: true cuando esto ocurre.

ParámetroTipoRequeridoDescripción
querystringnoConsulta FTS — términos separados por espacios y -_/.:, unidos con OR
compoundstringnoFiltrar por tipo de compound
limitintegernoMáximo de resultados (por defecto: 20)
fuzzybooleannoForzar coincidencia difusa (Jaro-Winkler) desde el inicio, saltando el paso estricto. Por defecto: false

Devuelve las capsules encontradas con id, compound, title y un snippet del contenido. Devuelve No capsules found. cuando la consulta no coincide con nada.

Lista los compounds distintos de capsules con su frecuencia, ordenados por count descendente. Scope global (todas las capsules entre proyectos).

ParámetroTipoRequeridoDescripción
limitintegernoMáximo de compounds a devolver

Devuelve una lista de nombres de compound con su número de capsules.


Una prescription es una sesión de trabajo abierta dentro de un bottle. Las pills deben estar vinculadas a una prescription. Puede haber varias prescriptions abiertas por bottle al mismo tiempo.

Abre una nueva prescription para un bottle. Para reabrir una prescription cerrada, usar prescription_reopen.

ParámetroTipoRequeridoDescripción
bottle_idstring (UUID v7)Bottle en el que abrir la prescription
titlestring (1–255)Título descriptivo para la sesión
author_namestringNombre del autor — ver identidad del autor
author_emailstringEmail del autor — ver identidad del autor

Devuelve id, title y started_at. Siempre abre una prescription nueva; si quieres reutilizar una ya abierta, lístalas con bottle_context y pasa su id directamente.

Cierra una prescription abierta (establece ended_at).

ParámetroTipoRequeridoDescripción
idstring (UUID v7)ID de la prescription

Devuelve id, title, started_at y ended_at.

Reabre una prescription cerrada para permitir editar o añadir pills. Idempotente: si la prescription ya está abierta, la devuelve sin cambios.

ParámetroTipoRequeridoDescripción
idstring (UUID v7)UUID de la prescription

Devuelve la prescription con su estado actual.

Recupera una prescription por ID.

ParámetroTipoRequeridoDescripción
idstring (UUID v7)ID de la prescription

Devuelve id, title, started_at y ended_at. Devuelve un error not_found si la prescription no existe.

Pills de una prescription concreta con id, compound, título y snippet de 300 chars. Los saltos de línea del contenido se muestran como \n para mantener cada pill en una sola línea visual. Usar tras bottle_context para profundizar en una sesión de trabajo. Para el contenido completo de una pill individual, usar pill_read.

ParámetroTipoRequeridoDescripción
prescription_idstring (UUID v7)Prescription a inspeccionar
limitintegernoMáx. pills a devolver (por defecto: 30)

Devuelve una respuesta vacía si la prescription no existe.

Elimina suavemente una prescription y todas sus pills en cascada.

ParámetroTipoRequeridoDescripción
idstring (UUID v7)ID de la prescription

Devuelve un mensaje de confirmación.


Un bottle representa un proyecto — contiene una base de datos SQLite local con todas las prescriptions y pills de ese proyecto.

Registra un nuevo bottle. El directorio se deriva server-side del cwd del proceso pillbox (para scope='local') o del home del usuario (para scope='global') — los agentes no deben pasar un parámetro directory.

ParámetroTipoRequeridoDescripción
namestring (1–255)Slug (normalmente el nombre de la carpeta, kebab-case)
display_namestring (1–255)Nombre legible por humanos
scopelocal | globalnoSi usar base de datos local o global (por defecto: local)

Devuelve id, name, display_name, directory y scope.

Índice navegable de las prescriptions de un bottle: id, título, estado, fechas y pill_count. Usar al inicio de sesión para descubrir qué sesiones de trabajo existen. Para ver las pills de una prescription concreta, usar prescription_context con su id.

ParámetroTipoRequeridoDescripción
bottle_idstring (UUID v7)Bottle a indexar
limitintegernoMáx. prescriptions a devolver (por defecto: 30)

Lista todos los bottles registrados. Sin parámetros.

Devuelve una entrada por bottle con nombre, scope, id y ruta de la base de datos. significa que la base de datos del bottle es accesible; con [unlinked] significa que el archivo de base de datos ya no existe en disco.

Registra una base de datos de bottle local existente en el registro global del usuario que realiza la llamada. Usar cuando un segundo usuario del sistema operativo necesita acceder a un bottle creado por otro usuario en la misma máquina.

ParámetroTipoRequeridoDescripción
directorystringnoRuta absoluta al directorio que contiene .pillbox/pillbox.db. Por defecto, el cwd del proceso pillbox.

Devuelve status: "linked" si tiene éxito o status: "already_linked" si el bottle ya estaba registrado. Ambos son condiciones de exit-0. Códigos de error específicos: db_not_found, circular_link, no_bottle_in_db.


CódigoSignificado
not_foundEl recurso solicitado no existe
prescription_requiredEl prescription_id proporcionado no existe o ya está cerrado
validation_errorUno o más campos de entrada fallaron la validación
invalid_inputEl input no pudo ser parseado
internal_errorError inesperado del servidor
db_not_foundNo se encontró .pillbox/pillbox.db en el directorio indicado (bottle_vinculate)
circular_linkEl directorio indicado es el propio directorio de la base de datos global (bottle_vinculate)
no_bottle_in_dbEl archivo de base de datos existe pero no contiene ningún bottle registrado (bottle_vinculate)