Claude MCP Trello

Interactúa con tableros y tarjetas de Trello a través de la API de Trello, con limitación de velocidad y manejo de errores integrados.

Documentación

MseeP.ai Security Assessment Badge

Claude MCP Trello

Un servidor del Model Context Protocol (MCP) que proporciona herramientas para interactuar con tableros de Trello. Este servidor permite una integración fluida con la API de Trello mientras gestiona automáticamente la limitación de velocidad, la seguridad de tipos y el manejo de errores.

Claude Trello MCP server

Características

  • Integración completa con tableros de Trello: Interactúa con tarjetas, listas y actividades del tablero
  • Limitación de velocidad integrada: Respeta los límites de la API de Trello (300 solicitudes/10s por clave de API, 100 solicitudes/10s por token)
  • Implementación con seguridad de tipos: Escrito en TypeScript con definiciones de tipos exhaustivas
  • Validación de entrada: Validación robusta para todas las entradas de la API
  • Manejo de errores: Manejo de errores elegante con mensajes informativos

Herramientas disponibles

trello_get_cards_by_list

Recupera una lista de tarjetas contenidas en el ID de lista especificado.

{
  name: "trello_get_cards_by_list",
  arguments: {
    listId: string; // Trello list ID
  }
}

trello_get_lists

Recupera todas las listas del tablero especificado.

{
  name: "trello_get_lists",
  arguments: {
    boardId: string; // The ID of the Trello board to get lists from
  }
}

trello_get_recent_activity

Recupera la actividad más reciente de un tablero especificado. El argumento limit puede especificar cuántas recuperar (predeterminado: 10).

{
  name: "trello_get_recent_activity",
  arguments: {
    boardId: string; // The ID of the Trello board to get activity from
    limit?: number;  // Optional: number of activities to retrieve
  }
}

trello_add_card

Añade una tarjeta a la lista especificada.

{
  name: "trello_add_card",
  arguments: {
    listId: string;       // The ID of the list to add to
    name: string;         // The title of the card
    description?: string; // Optional: details of the card
    dueDate?: string;     // Optional: due date (e.g., ISO8601)
    labels?: string[];    // Optional: array of label IDs
  }
}

trello_update_card

Actualiza el contenido de una tarjeta.

{
  name: "trello_update_card",
  arguments: {
    cardId: string;       // The ID of the card to be updated
    name?: string;        // Optional: updated title
    description?: string; // Optional: updated description
    dueDate?: string;     // Optional: updated due date (e.g., ISO8601)
    labels?: string[];    // Optional: updated array of label IDs
  }
}

trello_archive_card

Archiva (cierra) la tarjeta especificada.

{
  name: "trello_archive_card",
  arguments: {
    cardId: string; // The ID of the card to archive
  }
}

trello_add_list

Añade una nueva lista al tablero especificado.

{
  name: "trello_add_list",
  arguments: {
    boardId: string; // The ID of the Trello board to add the list to
    name: string;    // Name of the new list
  }
}

trello_archive_list

Archiva (cierra) la lista especificada.

{
  name: "trello_archive_list",
  arguments: {
    listId: string; // The ID of the list to archive
  }
}

trello_get_my_cards

Recupera todas las tarjetas relacionadas con tu cuenta.

{
  name: "trello_get_my_cards",
  arguments: {}
}

trello_search_all_boards

Realiza una búsqueda entre todos los tableros del espacio de trabajo (organización), según el plan/permisos.

{
  name: "trello_search_all_boards",
  arguments: {
    query: string;   // Search keyword
    limit?: number;  // Optional: max number of results (default: 10)
  }
}

trello_get_card_attachments

Recupera todos los adjuntos de una tarjeta especificada. Devuelve metadatos de los adjuntos, incluidos nombre, tamaño de archivo, tipo MIME y URL. Úsalo para descubrir qué adjuntos existen en una tarjeta antes de descargarlos.

{
  name: "trello_get_card_attachments",
  arguments: {
    cardId: string;  // The ID of the Trello card to get attachments from
  }
}

Devuelve un array de objetos de adjuntos con las siguientes propiedades:

  • id: Identificador único del adjunto
  • name: Nombre visible del adjunto
  • url: URL para acceder/descargar el adjunto
  • bytes: Tamaño del adjunto en bytes (0 para enlaces externos)
  • mimeType: Tipo MIME (p. ej., "image/png", "application/pdf")
  • date: Cadena de fecha ISO 8601 de cuándo se añadió el adjunto
  • isUpload: Si es una carga de Trello (true) o un enlace externo (false)
  • fileName: Nombre de archivo del adjunto

trello_download_attachment

Descarga un adjunto específico de una tarjeta de Trello. Para archivos cargados directamente en Trello, devuelve el contenido como datos codificados en base64. Para enlaces externos, devuelve la URL.

{
  name: "trello_download_attachment",
  arguments: {
    cardId: string;       // The ID of the Trello card containing the attachment
    attachmentId: string; // The ID of the attachment to download
  }
}

Devuelve un objeto con:

  • attachment: Los metadatos completos del adjunto
  • content: Contenido del archivo codificado en base64 (para cargas de Trello) o null (para enlaces externos)
  • url: URL directa al adjunto

Consejo de uso: Primero usa trello_get_card_attachments para listar todos los adjuntos y obtener sus IDs, luego usa trello_download_attachment para descargar archivos específicos.

Limitación de velocidad

El servidor implementa un algoritmo de cubo de tokens para la limitación de velocidad y cumplir con los límites de la API de Trello:

  • 300 solicitudes por 10 segundos por clave de API
  • 100 solicitudes por 10 segundos por token

La limitación de velocidad se gestiona automáticamente y las solicitudes se pondrán en cola si se alcanzan los límites.

Manejo de errores

El servidor proporciona mensajes de error detallados para varios escenarios:

  • Parámetros de entrada no válidos
  • Límite de velocidad superado
  • Errores de autenticación de la API
  • Problemas de red
  • IDs de tablero/lista/tarjeta no válidos

Desarrollo

Requisitos previos

  • Node.js 16 o superior
  • npm o yarn

Configuración

  1. Clona el repositorio:

    git clone https://github.com/hrs-asano/claude-mcp-trello.git
    cd claude-mcp-trello
    
  2. Instala las dependencias:

npm install
  1. Compila el proyecto:
npm run build

Ejecutar pruebas

npm test

Integración con Claude Desktop

Para integrar este servidor MCP con Claude Desktop, añade la siguiente configuración a tu archivo ~/Library/Application\ Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "trello": {
      "command": "{YOUR_NODE_PATH}", // for example: /opt/homebrew/bin/node
      "args": [
        "{YOUR_PATH}/claude-mcp-trello/build/index.js"
      ],
      "env": {
        "TRELLO_API_KEY": "{YOUR_KEY}",
        "TRELLO_TOKEN": "{YOUR_TOKEN}"
      }
    }
  }
}

Asegúrate de reemplazar {YOUR_NODE_PATH}, {YOUR_PATH}, {YOUR_KEY} y {YOUR_TOKEN} con los valores apropiados para tu entorno.

Nota: Los IDs de tablero se pasan como parámetros a herramientas individuales en lugar de configurarse globalmente, lo que te permite trabajar con múltiples tableros.

Contribuciones

¡Las contribuciones son bienvenidas! Por favor, lee nuestra Guía de contribución para conocer los detalles sobre nuestro código de conducta y el proceso para enviar solicitudes de extracción.

Licencia

Este proyecto está licenciado bajo la Licencia MIT; consulta el archivo LICENSE para más detalles.

Agradecimientos