Toolbox

by ai-zerolab

12 24k downloads Not rated yet Apache-2.0

About

Integrates with external APIs and services to provide command execution, Figma file interaction, and file operations, enhancing LLM capabilities for UI/UX design, file management, and service interactions.

Details

Repository
ai-zerolab/mcp-toolbox
License
Apache-2.0

Explore

> \*nix is our main target, but Windows should work too.

- Command Line Execution: Execute any command line instruction through LLM
- Figma Integration: Access Figma files, components, styles, and more
- Extensible Architecture: Easily add new API integrations
- MCP Protocol Support: Compatible with Claude Desktop and other MCP-enabled LLMs
- Comprehensive Testing: Well-tested codebase with high test coverage

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Toolbox
    Command (node, npx, python, etc.) uvx
    Arguments
    • Argument 1 --prerelease=allow
    • Argument 2 mcp-toolbox@latest
    • Argument 3 stdio
    Environment
    • BFL_API_KEY your-bfl-api-key
    • FIGMA_API_KEY your-figma-api-key
    • TAVILY_API_KEY your-tavily-api-key
    • DUCKDUCKGO_API_KEY your-duckduckgo-api-key

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

curl -LsSf https://astral.sh/uv/install.sh | sh # For macOS/Linux

To install Toolbox for LLM Enhancement for Claude Desktop automatically via Smithery:

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

The following environment variables can be configured:

- FIGMA_API_KEY: API key for Figma integration
- TAVILY_API_KEY: API key for Tavily integration
- DUCKDUCKGO_API_KEY: API key for DuckDuckGo integration
- BFL_API_KEY: API key for Flux image generation API

To use mcp-toolbox with Claude Desktop/Cline/Cursor/..., add the following to your configuration file:

{
  "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"
      }
    }
  }
}

For full features:

{
  "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"
      }
    }
  }
}

You can generate a debug configuration template using:

uv run generate_config_template.py

Fork the repository and clone it to your local machine.

bash

make install

source .venv/bin/activate # For macOS/Linux

make test
make check

execute_command

Execute a command line instruction.

read_file_content

Read content from a file.

write_file_content

Write content to a file.

replace_in_file

Replace content in a file using regular expressions.

list_directory

List directory contents with detailed information.

figma_get_file

Get a Figma file by key.

figma_get_file_nodes

Get specific nodes from a Figma file.

figma_get_image

Get images for nodes in a Figma file.

figma_get_image_fills

Get URLs for images used in a Figma file.

figma_get_comments

Get comments on a Figma file.

figma_post_comment

Post a comment on a Figma file.

figma_delete_comment

Delete a comment from a Figma file.

figma_get_team_projects

Get projects for a team.

figma_get_project_files

Get files for a project.

figma_get_team_components

Get components for a team.

figma_get_file_components

Get components from a file.

figma_get_component

Get a component by key.

figma_get_team_component_sets

Get component sets for a team.

figma_get_team_styles

Get styles for a team.

figma_get_file_styles

Get styles from a file.

figma_get_style

Get a style by key.

xiaoyuzhoufm_download

Download a podcast episode from XiaoyuZhouFM with optional automatic m4a to mp3 conversion.

get_audio_length

Get the length of an audio file in seconds.

get_audio_text

Get transcribed text from a specific time range in an audio file.

think

Use the tool to think about something and append the thought to the log.

get_session_id

Get the current session ID.

remember

Store a memory (brief and detail) in the memory database.

recall

Query memories from the database with semantic search.

forget

Clear all memories in the memory database.

convert_file_to_markdown

Convert any file to Markdown using MarkItDown.

convert_url_to_markdown

Convert a URL to Markdown using MarkItDown.

get_html

Get HTML content from a URL.

save_html

Save HTML from a URL to a file.

search_with_tavily

Search the web using Tavily (requires API key).

search_with_duckduckgo

Search the web using DuckDuckGo (requires API key).

flux_generate_image

Generate an image using the Flux API and save it to a file.

Release
Build status
codecov
Commit activity
License

A comprehensive toolkit for enhancing LLM capabilities through the Model Context Protocol (MCP). This package provides a collection of tools that allow LLMs to interact with external services and APIs, extending their functionality beyond text generation.

- GitHub repository: <https://github.com/ai-zerolab/mcp-toolbox/>
- (WIP)Documentation: <https://ai-zerolab.github.io/mcp-toolbox/>

| Tool | Description |
| ----------------- | ---------------------------------- |
| execute_command | Execute a command line instruction |

| Tool | Description |
| -------------------- | --------------------------------------------------- |
| read_file_content | Read content from a file |
| write_file_content | Write content to a file |
| replace_in_file | Replace content in a file using regular expressions |
| list_directory | List directory contents with detailed information |

| Tool | Description |
| ------------------------------- | ---------------------------------------- |
| figma_get_file | Get a Figma file by key |
| figma_get_file_nodes | Get specific nodes from a Figma file |
| figma_get_image | Get images for nodes in a Figma file |
| figma_get_image_fills | Get URLs for images used in a Figma file |
| figma_get_comments | Get comments on a Figma file |
| figma_post_comment | Post a comment on a Figma file |
| figma_delete_comment | Delete a comment from a Figma file |
| figma_get_team_projects | Get projects for a team |
| figma_get_project_files | Get files for a project |
| figma_get_team_components | Get components for a team |
| figma_get_file_components | Get components from a file |
| figma_get_component | Get a component by key |
| figma_get_team_component_sets | Get component sets for a team |
| figma_get_team_styles | Get styles for a team |
| figma_get_file_styles | Get styles from a file |
| figma_get_style | Get a style by key |

| Tool | Description |
| ----------------------- | ------------------------------------------------------------------------------------------ |
| xiaoyuzhoufm_download | Download a podcast episode from XiaoyuZhouFM with optional automatic m4a to mp3 conversion |

| Tool | Description |
| ------------------ | ---------------------------------------------------------------- |
| get_audio_length | Get the length of an audio file in seconds |
| get_audio_text | Get transcribed text from a specific time range in an audio file |

| Tool | Description |
| ---------------- | ----------------------------------------------------------------------- |
| think | Use the tool to think about something and append the thought to the log |
| get_session_id | Get the current session ID |
| remember | Store a memory (brief and detail) in the memory database |
| recall | Query memories from the database with semantic search |
| forget | Clear all memories in the memory database |

| Tool | Description |
| -------------------------- | --------------------------------------------- |
| convert_file_to_markdown | Convert any file to Markdown using MarkItDown |
| convert_url_to_markdown | Convert a URL to Markdown using MarkItDown |

| Tool | Description |
| ------------------------ | -------------------------------------------------- |
| get_html | Get HTML content from a URL |
| save_html | Save HTML from a URL to a file |
| search_with_tavily | Search the web using Tavily (requires API key) |
| search_with_duckduckgo | Search the web using DuckDuckGo (requires API key) |

| Tool | Description |
| --------------------- | ---------------------------------------------------------- |
| flux_generate_image | Generate an image using the Flux API and save it to a file |

To add a new API integration:

1. Update config.py with any required API keys
1. Create a new module in mcp_toolbox/
1. Implement your API client and tools
1. Add tests for your new functionality
1. Update the README.md with new environment variables and tools

See the development guide for more detailed instructions.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

Linux

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

Macos

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

Windows

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

mcp-toolbox

Release
Build status
codecov
Commit activity
License

A comprehensive toolkit for enhancing LLM capabilities through the Model Context Protocol (MCP). This package provides a collection of tools that allow LLMs to interact with external services and APIs, extending their functionality beyond text generation.

- GitHub repository: <https://github.com/ai-zerolab/mcp-toolbox/>
- (WIP)Documentation: <https://ai-zerolab.github.io/mcp-toolbox/>

Features

> \*nix is our main target, but Windows should work too.

- Command Line Execution: Execute any command line instruction through LLM
- Figma Integration: Access Figma files, components, styles, and more
- Extensible Architecture: Easily add new API integrations
- MCP Protocol Support: Compatible with Claude Desktop and other MCP-enabled LLMs
- Comprehensive Testing: Well-tested codebase with high test coverage

Installation

Using uv (Recommended)

We recommend using uv to manage your environment.

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.