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

Release Build status codecov Commit activity License

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.

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 Figma
  • TAVILY_API_KEY: Chave de API para integração com Tavily
  • DUCKDUCKGO_API_KEY: Chave de API para integração com DuckDuckGo
  • BFL_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

FerramentaDescrição
execute_commandExecute uma instrução de linha de comando

Ferramentas de Operações com Arquivos

FerramentaDescrição
read_file_contentLeia o conteúdo de um arquivo
write_file_contentEscreva conteúdo em um arquivo
replace_in_fileSubstitua conteúdo em um arquivo usando expressões regulares
list_directoryListe o conteúdo de um diretório com informações detalhadas

Ferramentas Figma

FerramentaDescrição
figma_get_fileObtenha um arquivo Figma pela chave
figma_get_file_nodesObtenha nós específicos de um arquivo Figma
figma_get_imageObtenha imagens para nós em um arquivo Figma
figma_get_image_fillsObtenha URLs para imagens usadas em um arquivo Figma
figma_get_commentsObtenha comentários em um arquivo Figma
figma_post_commentPublique um comentário em um arquivo Figma
figma_delete_commentExclua um comentário de um arquivo Figma
figma_get_team_projectsObtenha projetos para uma equipe
figma_get_project_filesObtenha arquivos para um projeto
figma_get_team_componentsObtenha componentes para uma equipe
figma_get_file_componentsObtenha componentes de um arquivo
figma_get_componentObtenha um componente pela chave
figma_get_team_component_setsObtenha conjuntos de componentes para uma equipe
figma_get_team_stylesObtenha estilos para uma equipe
figma_get_file_stylesObtenha estilos de um arquivo
figma_get_styleObtenha um estilo pela chave

Ferramentas XiaoyuZhouFM

FerramentaDescrição
xiaoyuzhoufm_downloadBaixe um episódio de podcast do XiaoyuZhouFM com conversão automática opcional de m4a para mp3

Ferramentas de Áudio

FerramentaDescrição
get_audio_lengthObtenha a duração de um arquivo de áudio em segundos
get_audio_textObtenha o texto transcrito de um intervalo de tempo específico em um arquivo de áudio

Ferramentas de Memória

FerramentaDescrição
thinkUse a ferramenta para pensar sobre algo e anexe o pensamento ao log
get_session_idObtenha o ID da sessão atual
rememberArmazene uma memória (breve e detalhada) no banco de dados de memória
recallConsulte memórias do banco de dados com busca semântica
forgetLimpe todas as memórias no banco de dados de memória

Ferramentas Markitdown

FerramentaDescrição
convert_file_to_markdownConverta qualquer arquivo para Markdown usando MarkItDown
convert_url_to_markdownConverta uma URL para Markdown usando MarkItDown

Ferramentas Web

FerramentaDescrição
get_htmlObtenha conteúdo HTML de uma URL
save_htmlSalve HTML de uma URL em um arquivo
search_with_tavilyPesquise na web usando Tavily (requer chave de API)
search_with_duckduckgoPesquise na web usando DuckDuckGo (requer chave de API)

Ferramentas de Geração de Imagens Flux

FerramentaDescrição
flux_generate_imageGere 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

  1. Configure o Claude Desktop conforme mostrado na seção de Configuração
  2. Inicie o Claude Desktop
  3. 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"
  4. 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."
  5. Peça ao Claude para baixar podcasts do XiaoyuZhouFM:
  6. 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"
  7. 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"
  8. Peça ao Claude para trabalhar com conteúdo web:
  9. 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"
  10. 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:

  1. Atualize config.py com quaisquer chaves de API necessárias
  2. Crie um novo módulo em mcp_toolbox/
  3. Implemente seu cliente de API e ferramentas
  4. Adicione testes para sua nova funcionalidade
  5. 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.

  1. Faça um fork do repositório
  2. Crie um branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add some amazing feature')
  4. Envie para o branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Licença

Este projeto é licenciado sob os termos da licença incluída no repositório.