Skip to content

feat: Add setup-mcp-toolbox skill and directory structure#91

Open
akangsha7 wants to merge 1 commit into
mainfrom
setup-mcp-toolbox
Open

feat: Add setup-mcp-toolbox skill and directory structure#91
akangsha7 wants to merge 1 commit into
mainfrom
setup-mcp-toolbox

Conversation

@akangsha7

Copy link
Copy Markdown

A skill dedicated to downloading, setting up, and running the MCP Toolbox server. Focuses on binary delivery, OS-specific environment setup, and running the server instance.

Comment thread skills/setup-mcp-toolbox/assets/.gitkeep

### Phase 6. Launching Toolbox UI
To test tools and toolsets interactively (including authorized parameters):
* Execute: `./toolbox --ui`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two comments:

  1. This will likely fail as from the instructions above there won't be yaml produced (as it focused on prebuilt tools)
  2. This may not work for the docker & SDK path -- if the user choose that path, there is likely some other setups needed for launching it?

Comment thread skills/setup-mcp-toolbox/SKILL.md

### Phase 2: Environment Probing & Download
Once a method is chosen, verify that the necessary environment is available. If a prerequisite is missing, provide instructions to install it:
* **For Homebrew**: Run `brew --version`. If missing, install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This likely won't work for Windows

* **For Docker**: Run `docker --version`. If missing, install [Docker Desktop](https://www.docker.com/products/docker-desktop/).
* **For Go**: Run `go version`. If missing, install via [go.dev/doc/install](https://go.dev/doc/install).
* **For NPX**: Ensure Node.js is installed (`node -v`).
* **For Binary**: No additional prerequisites (other than `curl`).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there are 5 approaches listed here, but the instruction in L13 mentioned 3 ways (without homebrew & npx), we should make this consistent

$env:POSTGRES_DATABASE="your_database"
$env:POSTGRES_HOST="host address like 127.0.0.1"
$env:POSTGRES_PORT="port number like 5432"
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we expecting the user to run these command themself? If so, I am not sure if the next phase will be able to pick it up without restarting the session & potentially refresh the terminal running Gemini CLI

$env:POSTGRES_HOST="host address like 127.0.0.1"
$env:POSTGRES_PORT="port number like 5432"
```
3. **Specialized Skills for Customization**: Explicitly advise the user: *"This setup uses a prebuilt server for immediate connectivity. If you need to write custom SQL tools, configure authentication (AuthServices), or define custom prompts, please let me know so I can activate the specialized database skill (e.g., `config-mcp-toolbox-postgres`) to help you generate a custom `tools.yaml`."*

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we hold on this change before we actually have the real skill there?


### Phase 4: Execution
Start the MCP server using the prebuilt flag and verify standard output for a successful initialization signal.
* **Command**: `./toolbox --prebuilt [database] --stdio`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. how would the agent know what is the right value for [database]? The user may type something like Cloud Sql mysql -- and we should map that to the correct prebuilt tool for supporting it

  2. This will likely not work for container based approach / npx

Start the MCP server using the prebuilt flag and verify standard output for a successful initialization signal.
* **Command**: `./toolbox --prebuilt [database] --stdio`
* **Dynamic Reloading**: Enabled by default. To disable it for static environments, append the `--no-reload` flag.
* **Stopping**: Instruct the user to use `ctrl+c` (SIGINT) to terminate the process.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Gemini CLI - this will terminate gemini cli rather than the toolbox process started by Gemini CLI bash tool (unless you focus on the interactive terminal first), I suspect this would also likely won't work smoothly for other agent framwork

{
"mcpServers": {
"toolbox": {
"command": "mcp-toolbox",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this likely won't work, at least this shall be the absolute path to the toolbox binary that got downloaded, or some steps to have that added into the environment variable -- and again this would likely be different depends on the installation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants