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
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.
- Repositorio de GitHub: https://github.com/ai-zerolab/mcp-toolbox/
- (WIP)Documentación: https://ai-zerolab.github.io/mcp-toolbox/
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 FigmaTAVILY_API_KEY: Clave API para la integración con TavilyDUCKDUCKGO_API_KEY: Clave API para la integración con DuckDuckGoBFL_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
| Herramienta | Descripción |
|---|---|
execute_command | Ejecuta una instrucción de línea de comandos |
Herramientas de Operaciones con Archivos
| Herramienta | Descripción |
|---|---|
read_file_content | Lee el contenido de un archivo |
write_file_content | Escribe contenido en un archivo |
replace_in_file | Reemplaza contenido en un archivo usando expresiones regulares |
list_directory | Lista el contenido de un directorio con información detallada |
Herramientas de Figma
| Herramienta | Descripción |
|---|---|
figma_get_file | Obtiene un archivo de Figma por clave |
figma_get_file_nodes | Obtiene nodos específicos de un archivo de Figma |
figma_get_image | Obtiene imágenes para nodos en un archivo de Figma |
figma_get_image_fills | Obtiene URLs para imágenes usadas en un archivo de Figma |
figma_get_comments | Obtiene comentarios en un archivo de Figma |
figma_post_comment | Publica un comentario en un archivo de Figma |
figma_delete_comment | Elimina un comentario de un archivo de Figma |
figma_get_team_projects | Obtiene proyectos para un equipo |
figma_get_project_files | Obtiene archivos para un proyecto |
figma_get_team_components | Obtiene componentes para un equipo |
figma_get_file_components | Obtiene componentes de un archivo |
figma_get_component | Obtiene un componente por clave |
figma_get_team_component_sets | Obtiene conjuntos de componentes para un equipo |
figma_get_team_styles | Obtiene estilos para un equipo |
figma_get_file_styles | Obtiene estilos de un archivo |
figma_get_style | Obtiene un estilo por clave |
Herramientas de XiaoyuZhouFM
| Herramienta | Descripción |
|---|---|
xiaoyuzhoufm_download | Descarga un episodio de podcast de XiaoyuZhouFM con conversión automática opcional de m4a a mp3 |
Herramientas de Audio
| Herramienta | Descripción |
|---|---|
get_audio_length | Obtiene la duración de un archivo de audio en segundos |
get_audio_text | Obtiene el texto transcrito de un rango de tiempo específico en un archivo de audio |
Herramientas de Memoria
| Herramienta | Descripción |
|---|---|
think | Usa la herramienta para pensar sobre algo y añade el pensamiento al registro |
get_session_id | Obtiene el ID de sesión actual |
remember | Almacena una memoria (breve y detallada) en la base de datos de memoria |
recall | Consulta memorias de la base de datos con búsqueda semántica |
forget | Borra todas las memorias en la base de datos de memoria |
Herramientas de Markitdown
| Herramienta | Descripción |
|---|---|
convert_file_to_markdown | Convierte cualquier archivo a Markdown usando MarkItDown |
convert_url_to_markdown | Convierte una URL a Markdown usando MarkItDown |
Herramientas Web
| Herramienta | Descripción |
|---|---|
get_html | Obtiene contenido HTML de una URL |
save_html | Guarda HTML de una URL en un archivo |
search_with_tavily | Busca en la web usando Tavily (requiere clave API) |
search_with_duckduckgo | Busca en la web usando DuckDuckGo (requiere clave API) |
Herramientas de Generación de Imágenes Flux
| Herramienta | Descripción |
|---|---|
flux_generate_image | Genera 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
- Configura Claude Desktop como se muestra en la sección de Configuración
- Inicia Claude Desktop
- 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"
- 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."
- Pide a Claude que descargue podcasts de XiaoyuZhouFM:
- "Descarga este episodio de podcast: https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f"
- "Descarga y convierte a MP3 este podcast: https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f"
- 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"
- 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"
- Pide a Claude que trabaje con contenido web:
- "Obtén el contenido HTML de https://example.com"
- "Guarda el HTML de https://example.com en un archivo"
- "Busca en la web 'noticias de inteligencia artificial'"
- 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"
- 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:
- Actualiza
config.pycon las claves API requeridas - Crea un nuevo módulo en
mcp_toolbox/ - Implementa tu cliente API y herramientas
- Añade pruebas para tu nueva funcionalidad
- 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).
- Haz un fork del repositorio
- Crea una rama de características (
git checkout -b feature/amazing-feature) - Confirma tus cambios (
git commit -m 'Add some amazing feature') - Sube a la rama (
git push origin feature/amazing-feature) - Abre una Solicitud de Extracción
Licencia
Este proyecto está licenciado bajo los términos de la licencia incluida en el repositorio.