Skip to main content

Run a FastMCP proxy that lists and invokes every MCP tool from the CLI or an HTTP server.

Project description

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

  1. Bump version inside pyproject.toml.
  2. Build and verify the artifacts:
    uv build
    uv run python -m tools_executor.cli --help
    
  3. 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"
    
  4. 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tools_executor-0.1.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tools_executor-0.1.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file tools_executor-0.1.0.tar.gz.

File metadata

  • Download URL: tools_executor-0.1.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.0

File hashes

Hashes for tools_executor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8274623de7d9645004fdd74e66b4a7723a6ae921cd21c735700e3b68318ee8cf
MD5 1c19519f85d8352a39bc3a079a64cf96
BLAKE2b-256 86587f4a2dbca3f7ef4b39cecdb7fba1f8bb9cb0a80e0499b3aa2aae5991c5e1

See more details on using hashes here.

File details

Details for the file tools_executor-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tools_executor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9f51c6eb528e3ef4b316be231ab416c17c03888c0e9dfaf6fc0a254734176ff3
MD5 9baf54cdffad83d97c94dd9154c469e4
BLAKE2b-256 0210e14aeddf040c032d1eb18e8c7986b00c8735c70ee3fec1a89a02dc7a1817

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page