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
- Bump
versioninsidepyproject.toml. - Build and verify the artifacts:
uv build uv run python -m tools_executor.cli --help
- Publish to PyPI with an API token (create one under your PyPI account and
store it securely):
export PYPI_API_TOKEN="pypi-xxxxxxxxxxxxxxxxxxxxxxxx" uv publish --token "$PYPI_API_TOKEN"
- Tag the release in git and push (
git tag v0.1.1 && git push --tags).
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.
Metadata
Release files for tools-executor 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tools_executor-0.1.0.tar.gz | 8.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tools_executor-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.1 kB
Release files / tools_executor-0.1.0.tar.gz
| Download URL | tools_executor-0.1.0.tar.gz |
|---|---|
| Size | 8.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8274623de7d9645004fdd74e66b4a7723a6ae921cd21c735700e3b68318ee8cf
|
|
BLAKE2b-256 checksum How to use checksums |
86587f4a2dbca3f7ef4b39cecdb7fba1f8bb9cb0a80e0499b3aa2aae5991c5e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.0
|
Release files / tools_executor-0.1.0-py3-none-any.whl
| Download URL | tools_executor-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9f51c6eb528e3ef4b316be231ab416c17c03888c0e9dfaf6fc0a254734176ff3
|
|
BLAKE2b-256 checksum How to use checksums |
0210e14aeddf040c032d1eb18e8c7986b00c8735c70ee3fec1a89a02dc7a1817
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.0
|