MCP Toolbox
Um kit de ferramentas para aprimorar as capacidades de LLMs, fornecendo ferramentas para interagir com serviços externos e APIs através do Model Context Protocol (MCP).
Documentação
mcp-toolbox
Um kit de ferramentas abrangente para aprimorar as capacidades de LLMs através do Model Context Protocol (MCP). Este pacote fornece uma coleção de ferramentas que permitem que LLMs interajam com serviços e APIs externos, estendendo sua funcionalidade além da geração de texto.
- Repositório GitHub: https://github.com/ai-zerolab/mcp-toolbox/
- (WIP)Documentação: https://ai-zerolab.github.io/mcp-toolbox/
Recursos
*nix é nosso principal alvo, mas Windows também deve funcionar.
- Execução de Linha de Comando: Execute qualquer instrução de linha de comando através do LLM
- Integração com Figma: Acesse arquivos, componentes, estilos e mais do Figma
- Arquitetura Extensível: Adicione facilmente novas integrações de API
- Suporte ao Protocolo MCP: Compatível com Claude Desktop e outros LLMs habilitados para MCP
- Testes Abrangentes: Base de código bem testada com alta cobertura de testes
Instalação
Usando uv (Recomendado)
Recomendamos usar uv para gerenciar seu ambiente.
# 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
Então você pode usar uvx "mcp-toolbox@latest" stdio como comandos para executar o servidor MCP na versão mais recente. As ferramentas de áudio e memória não estão incluídas na instalação padrão. Você pode incluí-las instalando o extra all:
[audio] para ferramentas de áudio, [memory] para ferramentas de memória, [all] para todas as ferramentas
uvx "mcp-toolbox[all]@latest" stdio
Instalando via Smithery
Para instalar o Toolbox para Aprimoramento de LLM para Claude Desktop automaticamente via Smithery:
npx -y @smithery/cli install @ai-zerolab/mcp-toolbox --client claude
Usando pip
pip install "mcp-toolbox[all]"
E você pode usar mcp-toolbox stdio como comandos para executar o servidor MCP.
Configuração
Variáveis de Ambiente
As seguintes variáveis de ambiente podem ser configuradas:
FIGMA_API_KEY: Chave de API para integração com FigmaTAVILY_API_KEY: Chave de API para integração com TavilyDUCKDUCKGO_API_KEY: Chave de API para integração com DuckDuckGoBFL_API_KEY: Chave de API para a API de geração de imagens Flux
Armazenamento de Memória
As ferramentas de memória armazenam dados nos seguintes locais:
- macOS:
~/Documents/zerolab/mcp-toolbox/memory(sincroniza entre dispositivos via iCloud) - Outras plataformas:
~/.zerolab/mcp-toolbox/memory
Configuração Completa
Para usar o mcp-toolbox com Claude Desktop/Cline/Cursor/..., adicione o seguinte ao seu arquivo de configuração:
{
"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 todos os recursos:
{
"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"
}
}
}
}
Você pode gerar um modelo de configuração de depuração usando:
uv run generate_config_template.py
Ferramentas Disponíveis
Ferramentas de Linha de Comando
| Ferramenta | Descrição |
|---|---|
execute_command | Execute uma instrução de linha de comando |
Ferramentas de Operações com Arquivos
| Ferramenta | Descrição |
|---|---|
read_file_content | Leia o conteúdo de um arquivo |
write_file_content | Escreva conteúdo em um arquivo |
replace_in_file | Substitua conteúdo em um arquivo usando expressões regulares |
list_directory | Liste o conteúdo de um diretório com informações detalhadas |
Ferramentas Figma
| Ferramenta | Descrição |
|---|---|
figma_get_file | Obtenha um arquivo Figma pela chave |
figma_get_file_nodes | Obtenha nós específicos de um arquivo Figma |
figma_get_image | Obtenha imagens para nós em um arquivo Figma |
figma_get_image_fills | Obtenha URLs para imagens usadas em um arquivo Figma |
figma_get_comments | Obtenha comentários em um arquivo Figma |
figma_post_comment | Publique um comentário em um arquivo Figma |
figma_delete_comment | Exclua um comentário de um arquivo Figma |
figma_get_team_projects | Obtenha projetos para uma equipe |
figma_get_project_files | Obtenha arquivos para um projeto |
figma_get_team_components | Obtenha componentes para uma equipe |
figma_get_file_components | Obtenha componentes de um arquivo |
figma_get_component | Obtenha um componente pela chave |
figma_get_team_component_sets | Obtenha conjuntos de componentes para uma equipe |
figma_get_team_styles | Obtenha estilos para uma equipe |
figma_get_file_styles | Obtenha estilos de um arquivo |
figma_get_style | Obtenha um estilo pela chave |
Ferramentas XiaoyuZhouFM
| Ferramenta | Descrição |
|---|---|
xiaoyuzhoufm_download | Baixe um episódio de podcast do XiaoyuZhouFM com conversão automática opcional de m4a para mp3 |
Ferramentas de Áudio
| Ferramenta | Descrição |
|---|---|
get_audio_length | Obtenha a duração de um arquivo de áudio em segundos |
get_audio_text | Obtenha o texto transcrito de um intervalo de tempo específico em um arquivo de áudio |
Ferramentas de Memória
| Ferramenta | Descrição |
|---|---|
think | Use a ferramenta para pensar sobre algo e anexe o pensamento ao log |
get_session_id | Obtenha o ID da sessão atual |
remember | Armazene uma memória (breve e detalhada) no banco de dados de memória |
recall | Consulte memórias do banco de dados com busca semântica |
forget | Limpe todas as memórias no banco de dados de memória |
Ferramentas Markitdown
| Ferramenta | Descrição |
|---|---|
convert_file_to_markdown | Converta qualquer arquivo para Markdown usando MarkItDown |
convert_url_to_markdown | Converta uma URL para Markdown usando MarkItDown |
Ferramentas Web
| Ferramenta | Descrição |
|---|---|
get_html | Obtenha conteúdo HTML de uma URL |
save_html | Salve HTML de uma URL em um arquivo |
search_with_tavily | Pesquise na web usando Tavily (requer chave de API) |
search_with_duckduckgo | Pesquise na web usando DuckDuckGo (requer chave de API) |
Ferramentas de Geração de Imagens Flux
| Ferramenta | Descrição |
|---|---|
flux_generate_image | Gere uma imagem usando a API Flux e salve-a em um arquivo |
Exemplos de Uso
Executando o Servidor MCP
# Run with stdio transport (default)
mcp-toolbox stdio
# Run with SSE transport
mcp-toolbox sse --host localhost --port 9871
Usando com Claude Desktop
- Configure o Claude Desktop conforme mostrado na seção de Configuração
- Inicie o Claude Desktop
- Peça ao Claude para interagir com arquivos Figma:
- "Você pode obter informações sobre este arquivo Figma: 12345abcde?"
- "Mostre-me os componentes neste arquivo Figma: 12345abcde"
- "Obtenha os comentários deste arquivo Figma: 12345abcde"
- Peça ao Claude para executar instruções de linha de comando:
- "Quais arquivos estão no diretório atual?"
- "Qual é a hora atual do sistema?"
- "Mostre-me o conteúdo de um arquivo específico."
- Peça ao Claude para baixar podcasts do XiaoyuZhouFM:
- "Baixe este episódio de podcast: https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f"
- "Baixe e converta para MP3 este podcast: https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f"
- Peça ao Claude para trabalhar com arquivos de áudio:
- "Qual é a duração deste arquivo de áudio: audio.m4a?"
- "Transcreva o áudio de 60 a 90 segundos em audio.m4a"
- "Obtenha o texto de 2:30 a 3:00 no arquivo de áudio"
- Peça ao Claude para converter arquivos ou URLs para Markdown:
- "Converta este arquivo para Markdown: document.docx"
- "Converta esta página da web para Markdown: https://example.com"
- Peça ao Claude para trabalhar com conteúdo web:
- "Obtenha o conteúdo HTML de https://example.com"
- "Salve o HTML de https://example.com em um arquivo"
- "Pesquise na web por 'notícias de inteligência artificial'"
- Peça ao Claude para gerar imagens com Flux:
- "Gere uma imagem de um belo pôr do sol sobre montanhas"
- "Crie uma imagem de uma cidade futurista e salve-a na minha área de trabalho"
- "Gere um retrato de um gato em um traje espacial"
- Peça ao Claude para usar ferramentas de memória:
- "Lembre-se deste fato importante: A capital da França é Paris"
- "Qual é o meu ID de sessão atual?"
- "Lembre-se de qualquer informação sobre a França"
- "Pense sobre as implicações das mudanças climáticas"
- "Esqueça todas as memórias armazenadas"
Desenvolvimento
Configuração Local
Faça um fork do repositório e clone-o para sua 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
Executando Testes
make test
Executando Verificações
make check
Construindo Documentação
make docs
Adicionando Novas Ferramentas
Para adicionar uma nova integração de API:
- Atualize
config.pycom quaisquer chaves de API necessárias - Crie um novo módulo em
mcp_toolbox/ - Implemente seu cliente de API e ferramentas
- Adicione testes para sua nova funcionalidade
- Atualize o README.md com novas variáveis de ambiente e ferramentas
Consulte o guia de desenvolvimento para instruções mais detalhadas.
Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
- Faça um fork do repositório
- Crie um branch de recurso (
git checkout -b feature/amazing-feature) - Faça commit das suas alterações (
git commit -m 'Add some amazing feature') - Envie para o branch (
git push origin feature/amazing-feature) - Abra um Pull Request
Licença
Este projeto é licenciado sob os termos da licença incluída no repositório.