tools-executor
tools-executor is a lightweight FastMCP driver that discovers every MCP tool
exposed by your configured backends, prints Python-like signatures, and lets you
invoke them either from the command line or through a minimal FastMCP server.
Why use it?
- 📋 Discoverability: Generate readable signatures for every tool so you know
which arguments to pass.
- ⚡ Fast iteration: Jump between running the HTTP/stdio server and issuing
one-off tool calls without reconfiguring clients.
- 🧰 Batteries included: Ships with a
uv-first workflow for building,
testing, and publishing to PyPI.
Installation
pip install tools-executor
or, if you prefer the uv toolchain:
uv tool install tools-executor
Configuration
Point the CLI at an MCP client definition. Copy mcp.json.example into your
workspace, adjust the upstream server definitions, and pass the path with
-c/--config.
cp mcp.json.example ~/.config/tools-executor/mcp.json
Usage
List available tools and inspect their signatures:
tools-executor list -c ~/.config/tools-executor/mcp.json
Call a tool directly:
tools-executor call -c ~/.config/tools-executor/mcp.json weather --arg city="Lisbon"
Run the FastMCP server (HTTP by default):
tools-executor serve -c ~/.config/tools-executor/mcp.json --transport http --host 0.0.0.0 --port 23456
Every command shares the --config option so you can point at different MCP
client definitions per invocation.
Local development
uv venv --seed
uv sync
uv run tools-executor list -c mcp.json.example
The repository still ships main.py so you can run ./main.py list ... directly
with uv run if you prefer scripting locally.
Releasing with uv
GitHub Action publish workflow
The repository includes .github/workflows/publish.yml, which builds the wheel
and sdist via uv build and calls uv publish --token $PYPI_API_TOKEN. Add a
PYPI_API_TOKEN secret (scoped to “Publish to PyPI”) in your repository settings
and trigger the workflow from the Actions tab or by creating a GitHub Release.