MCP Toolbox

Un conjunto de herramientas para mejorar las capacidades de los LLM al proporcionar herramientas para interactuar con servicios externos y APIs a través del Protocolo de Contexto de Modelo (MCP).

Documentación

mcp-toolbox

Release Build status codecov Commit activity License

Un kit de herramientas integral para mejorar las capacidades de los LLM a través del Protocolo de Contexto de Modelo (MCP). Este paquete proporciona una colección de herramientas que permiten a los LLM interactuar con servicios y API externos, ampliando su funcionalidad más allá de la generación de texto.

Características

*nix es nuestro objetivo principal, pero Windows también debería funcionar.

  • Ejecución de Línea de Comandos: Ejecuta cualquier instrucción de línea de comandos a través del LLM
  • Integración con Figma: Accede a archivos, componentes, estilos y más de Figma
  • Arquitectura Extensible: Añade fácilmente nuevas integraciones de API
  • Soporte del Protocolo MCP: Compatible con Claude Desktop y otros LLM habilitados para MCP
  • Pruebas Integrales: Código bien probado con alta cobertura de pruebas

Instalación

Usando uv (Recomendado)

Recomendamos usar uv para gestionar tu entorno.

# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh  # For macOS/Linux
# or
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"  # For Windows

Luego puedes usar uvx "mcp-toolbox@latest" stdio como comandos para ejecutar el servidor MCP en su última versión. Las herramientas de audio y memoria no están incluidas en la instalación predeterminada., puedes incluirlas instalando el extra all:

[audio] para herramientas de audio, [memory] para herramientas de memoria, [all] para todas las herramientas

uvx "mcp-toolbox[all]@latest" stdio

Instalación mediante Smithery

Para instalar Toolbox para la Mejora de LLM en Claude Desktop automáticamente mediante Smithery:

npx -y @smithery/cli install @ai-zerolab/mcp-toolbox --client claude

Usando pip

pip install "mcp-toolbox[all]"

Y puedes usar mcp-toolbox stdio como comandos para ejecutar el servidor MCP.

Configuración

Variables de Entorno

Se pueden configurar las siguientes variables de entorno:

  • FIGMA_API_KEY: Clave API para la integración con Figma
  • TAVILY_API_KEY: Clave API para la integración con Tavily
  • DUCKDUCKGO_API_KEY: Clave API para la integración con DuckDuckGo
  • BFL_API_KEY: Clave API para la API de generación de imágenes Flux

Almacenamiento de Memoria

Las herramientas de memoria almacenan datos en las siguientes ubicaciones:

  • macOS: ~/Documents/zerolab/mcp-toolbox/memory (se sincroniza entre dispositivos mediante iCloud)
  • Otras plataformas: ~/.zerolab/mcp-toolbox/memory

Configuración Completa

Para usar mcp-toolbox con Claude Desktop/Cline/Cursor/..., añade lo siguiente a tu archivo de configuración:

{
  "mcpServers": {
    "zerolab-toolbox": {
      "command": "uvx",
      "args": ["--prerelease=allow", "mcp-toolbox@latest", "stdio"],
      "env": {
        "FIGMA_API_KEY": "your-figma-api-key",
        "TAVILY_API_KEY": "your-tavily-api-key",
        "DUCKDUCKGO_API_KEY": "your-duckduckgo-api-key",
        "BFL_API_KEY": "your-bfl-api-key"
      }
    }
  }
}

Para todas las funciones:

{
  "mcpServers": {
    "zerolab-toolbox": {
      "command": "uvx",
      "args": [
        "--prerelease=allow",
        "--python=3.12",
        "mcp-toolbox[all]@latest",
        "stdio"
      ],
      "env": {
        "FIGMA_API_KEY": "your-figma-api-key",
        "TAVILY_API_KEY": "your-tavily-api-key",
        "DUCKDUCKGO_API_KEY": "your-duckduckgo-api-key",
        "BFL_API_KEY": "your-bfl-api-key"
      }
    }
  }
}

Puedes generar una plantilla de configuración de depuración usando:

uv run generate_config_template.py

Herramientas Disponibles

Herramientas de Línea de Comandos

HerramientaDescripción
execute_commandEjecuta una instrucción de línea de comandos

Herramientas de Operaciones con Archivos

HerramientaDescripción
read_file_contentLee el contenido de un archivo
write_file_contentEscribe contenido en un archivo
replace_in_fileReemplaza contenido en un archivo usando expresiones regulares
list_directoryLista el contenido de un directorio con información detallada

Herramientas de Figma

HerramientaDescripción
figma_get_fileObtiene un archivo de Figma por clave
figma_get_file_nodesObtiene nodos específicos de un archivo de Figma
figma_get_imageObtiene imágenes para nodos en un archivo de Figma
figma_get_image_fillsObtiene URLs para imágenes usadas en un archivo de Figma
figma_get_commentsObtiene comentarios en un archivo de Figma
figma_post_commentPublica un comentario en un archivo de Figma
figma_delete_commentElimina un comentario de un archivo de Figma
figma_get_team_projectsObtiene proyectos para un equipo
figma_get_project_filesObtiene archivos para un proyecto
figma_get_team_componentsObtiene componentes para un equipo
figma_get_file_componentsObtiene componentes de un archivo
figma_get_componentObtiene un componente por clave
figma_get_team_component_setsObtiene conjuntos de componentes para un equipo
figma_get_team_stylesObtiene estilos para un equipo
figma_get_file_stylesObtiene estilos de un archivo
figma_get_styleObtiene un estilo por clave

Herramientas de XiaoyuZhouFM

HerramientaDescripción
xiaoyuzhoufm_downloadDescarga un episodio de podcast de XiaoyuZhouFM con conversión automática opcional de m4a a mp3

Herramientas de Audio

HerramientaDescripción
get_audio_lengthObtiene la duración de un archivo de audio en segundos
get_audio_textObtiene el texto transcrito de un rango de tiempo específico en un archivo de audio

Herramientas de Memoria

HerramientaDescripción
thinkUsa la herramienta para pensar sobre algo y añade el pensamiento al registro
get_session_idObtiene el ID de sesión actual
rememberAlmacena una memoria (breve y detallada) en la base de datos de memoria
recallConsulta memorias de la base de datos con búsqueda semántica
forgetBorra todas las memorias en la base de datos de memoria

Herramientas de Markitdown

HerramientaDescripción
convert_file_to_markdownConvierte cualquier archivo a Markdown usando MarkItDown
convert_url_to_markdownConvierte una URL a Markdown usando MarkItDown

Herramientas Web

HerramientaDescripción
get_htmlObtiene contenido HTML de una URL
save_htmlGuarda HTML de una URL en un archivo
search_with_tavilyBusca en la web usando Tavily (requiere clave API)
search_with_duckduckgoBusca en la web usando DuckDuckGo (requiere clave API)

Herramientas de Generación de Imágenes Flux

HerramientaDescripción
flux_generate_imageGenera una imagen usando la API de Flux y la guarda en un archivo

Ejemplos de Uso

Ejecutando el Servidor MCP

# Run with stdio transport (default)
mcp-toolbox stdio

# Run with SSE transport
mcp-toolbox sse --host localhost --port 9871

Usando con Claude Desktop

  1. Configura Claude Desktop como se muestra en la sección de Configuración
  2. Inicia Claude Desktop
  3. Pide a Claude que interactúe con archivos de Figma:
    • "¿Puedes obtener información sobre este archivo de Figma: 12345abcde?"
    • "Muéstrame los componentes en este archivo de Figma: 12345abcde"
    • "Obtén los comentarios de este archivo de Figma: 12345abcde"
  4. Pide a Claude que ejecute instrucciones de línea de comandos:
    • "¿Qué archivos hay en el directorio actual?"
    • "¿Cuál es la hora actual del sistema?"
    • "Muéstrame el contenido de un archivo específico."
  5. Pide a Claude que descargue podcasts de XiaoyuZhouFM:
  6. Pide a Claude que trabaje con archivos de audio:
    • "¿Cuál es la duración de este archivo de audio: audio.m4a?"
    • "Transcribe el audio de 60 a 90 segundos en audio.m4a"
    • "Obtén el texto de 2:30 a 3:00 en el archivo de audio"
  7. Pide a Claude que convierta archivos o URLs a Markdown:
    • "Convierte este archivo a Markdown: document.docx"
    • "Convierte esta página web a Markdown: https://example.com"
  8. Pide a Claude que trabaje con contenido web:
  9. Pide a Claude que genere imágenes con Flux:
    • "Genera una imagen de una hermosa puesta de sol sobre montañas"
    • "Crea una imagen de una ciudad futurista y guárdala en mi escritorio"
    • "Genera un retrato de un gato en traje espacial"
  10. Pide a Claude que use herramientas de memoria:
    • "Recuerda este dato importante: La capital de Francia es París"
    • "¿Cuál es mi ID de sesión actual?"
    • "Recuerda cualquier información sobre Francia"
    • "Piensa sobre las implicaciones del cambio climático"
    • "Olvida todas las memorias almacenadas"

Desarrollo

Configuración Local

Haz un fork del repositorio y clónalo en tu máquina local.

# Install in development mode
make install
# Activate a virtual environment
source .venv/bin/activate  # For macOS/Linux
# or
.venv\Scripts\activate  # For Windows

Ejecutando Pruebas

make test

Ejecutando Verificaciones

make check

Construyendo Documentación

make docs

Añadiendo Nuevas Herramientas

Para añadir una nueva integración de API:

  1. Actualiza config.py con las claves API requeridas
  2. Crea un nuevo módulo en mcp_toolbox/
  3. Implementa tu cliente API y herramientas
  4. Añade pruebas para tu nueva funcionalidad
  5. Actualiza el README.md con nuevas variables de entorno y herramientas

Consulta la guía de desarrollo para instrucciones más detalladas.

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).

  1. Haz un fork del repositorio
  2. Crea una rama de características (git checkout -b feature/amazing-feature)
  3. Confirma tus cambios (git commit -m 'Add some amazing feature')
  4. Sube a la rama (git push origin feature/amazing-feature)
  5. Abre una Solicitud de Extracción

Licencia

Este proyecto está licenciado bajo los términos de la licencia incluida en el repositorio.