Skip to main content
Glama

MCP Toolbox

by ai-zerolab
# mcp-toolbox [![Release](https://img.shields.io/github/v/release/ai-zerolab/mcp-toolbox)](https://img.shields.io/github/v/release/ai-zerolab/mcp-toolbox) [![Build status](https://img.shields.io/github/actions/workflow/status/ai-zerolab/mcp-toolbox/main.yml?branch=main)](https://github.com/ai-zerolab/mcp-toolbox/actions/workflows/main.yml?query=branch%3Amain) [![codecov](https://codecov.io/gh/ai-zerolab/mcp-toolbox/branch/main/graph/badge.svg)](https://codecov.io/gh/ai-zerolab/mcp-toolbox) [![Commit activity](https://img.shields.io/github/commit-activity/m/ai-zerolab/mcp-toolbox)](https://img.shields.io/github/commit-activity/m/ai-zerolab/mcp-toolbox) [![License](https://img.shields.io/github/license/ai-zerolab/mcp-toolbox)](https://img.shields.io/github/license/ai-zerolab/mcp-toolbox) 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](https://github.com/astral-sh/uv) to manage your environment. ```bash # 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 ``` Then you can use `uvx "mcp-toolbox@latest" stdio` as commands for running the MCP server for latest version. **Audio tools are not included in the default installation.**, you can include them by installing the `all` extra: ```bash uvx "mcp-toolbox[all]@latest" stdio ``` ### Installing via Smithery To install Toolbox for LLM Enhancement for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@ai-zerolab/mcp-toolbox): ```bash npx -y @smithery/cli install @ai-zerolab/mcp-toolbox --client claude ``` ### Using pip ```bash pip install "mcp-toolbox[all]" ``` And you can use `mcp-toolbox stdio` as commands for running the MCP server. ## Configuration ### Environment Variables 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 ### Full Configuration To use mcp-toolbox with Claude Desktop/Cline/Cursor/..., add the following to your configuration file: ```json { "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: ```json { "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: ```bash uv run generate_config_template.py ``` ## Available Tools ### Command Line Tools | Tool | Description | | ----------------- | ---------------------------------- | | `execute_command` | Execute a command line instruction | ### File Operations Tools | 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 | ### Figma Tools | 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 | ### XiaoyuZhouFM Tools | Tool | Description | | ----------------------- | ------------------------------------------------------------------------------------------ | | `xiaoyuzhoufm_download` | Download a podcast episode from XiaoyuZhouFM with optional automatic m4a to mp3 conversion | ### Audio Tools | 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 | ### Markitdown Tools | Tool | Description | | -------------------------- | --------------------------------------------- | | `convert_file_to_markdown` | Convert any file to Markdown using MarkItDown | | `convert_url_to_markdown` | Convert a URL to Markdown using MarkItDown | ### Web Tools | 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) | ### Flux Image Generation Tools | Tool | Description | | --------------------- | ---------------------------------------------------------- | | `flux_generate_image` | Generate an image using the Flux API and save it to a file | ## Usage Examples ### Running the MCP Server ```bash # Run with stdio transport (default) mcp-toolbox stdio # Run with SSE transport mcp-toolbox sse --host localhost --port 9871 ``` ### Using with Claude Desktop 1. Configure Claude Desktop as shown in the Configuration section 1. Start Claude Desktop 1. Ask Claude to interact with Figma files: - "Can you get information about this Figma file: 12345abcde?" - "Show me the components in this Figma file: 12345abcde" - "Get the comments from this Figma file: 12345abcde" 1. Ask Claude to execute command line instructions: - "What files are in the current directory?" - "What's the current system time?" - "Show me the contents of a specific file." 1. Ask Claude to download podcasts from XiaoyuZhouFM: - "Download this podcast episode: https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f" - "Download and convert to MP3 this podcast: https://www.xiaoyuzhoufm.com/episode/67c3d80fb0167b8db9e3ec0f" 1. Ask Claude to work with audio files: - "What's the length of this audio file: audio.m4a?" - "Transcribe the audio from 60 to 90 seconds in audio.m4a" - "Get the text from 2:30 to 3:00 in the audio file" 1. Ask Claude to convert files or URLs to Markdown: - "Convert this file to Markdown: document.docx" - "Convert this webpage to Markdown: https://example.com" 1. Ask Claude to work with web content: - "Get the HTML content from https://example.com" - "Save the HTML from https://example.com to a file" - "Search the web for 'artificial intelligence news'" 1. Ask Claude to generate images with Flux: - "Generate an image of a beautiful sunset over mountains" - "Create an image of a futuristic city and save it to my desktop" - "Generate a portrait of a cat in a space suit" ## Development ### Local Setup Fork the repository and clone it to your local machine. ```bash # Install in development mode make install # Activate a virtual environment source .venv/bin/activate # For macOS/Linux # or .venv\Scripts\activate # For Windows ``` ### Running Tests ```bash make test ``` ### Running Checks ```bash make check ``` ### Building Documentation ```bash make docs ``` ## Adding New Tools 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](llms.txt) for more detailed instructions. ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. 1. Fork the repository 1. Create a feature branch (`git checkout -b feature/amazing-feature`) 1. Commit your changes (`git commit -m 'Add some amazing feature'`) 1. Push to the branch (`git push origin feature/amazing-feature`) 1. Open a Pull Request ## License This project is licensed under the terms of the license included in the repository.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ai-zerolab/mcp-toolbox'

If you have feedback or need assistance with the MCP directory API, please join our Discord server