Local Workflows¶
This page is for source checkout, development, and manual build or test flows.
It is not the primary end-user installation path.
Clone and install for development¶
git clone https://github.com/nihal1294/openapi-to-mcp.git
cd openapi-to-mcp
uv sync --dev
Running CLI commands from a source checkout¶
Public docs assume an installed openapi-to-mcp binary.
From the repository root, either:
- prefix those commands with
uv run, or - use the
justshortcuts documented below.
Example:
uv run openapi-to-mcp generate \
--openapi-json ./openapi.yaml \
--output-dir ./generated-server
just shortcuts¶
just sync
just format
just lint
just test
just docs-build
just docs-serve
just e2e-generated
just e2e-cli
just generate
just build
just run
just list
just call getPetById '{"petId":1}'
just smoke
just clean
just clean-tmp
just clean-all
scripts/workflow.sh¶
Get help:
scripts/workflow.sh help
Available commands:
syncgeneratebuild-generatedrun-generatedtest-listtest-call <tool-name> [json-args]smokecleanclean-tmpclean-all
Workflow helper environment overrides¶
scripts/workflow.sh supports:
OPENAPI_JSONOUTPUT_DIRMCP_SERVER_NAMETRANSPORTHOSTPORTMCP_ENDPOINTTARGET_API_BASE_URLUV_CACHE_DIR
Example:
OUTPUT_DIR=/tmp/my-mcp \
TARGET_API_BASE_URL=https://petstore.swagger.io/v2 \
scripts/workflow.sh generate
Recommended local verification order¶
just format
just lint
just test
just docs-build
just e2e-generated
just e2e-cli
Hooks¶
Install hooks:
just hooks-install
Run them manually:
just hooks-run
just hooks-run-push
CI and releases¶
Required checks on master currently include:
quality-py314e2e-generated-server (node-20)e2e-generated-server (node-22)e2e-cli-matrixdependency-review
Relevant workflow files:
ci.ymlsecurity.ymldocs.ymlrelease.ymlclaude.yml
Release behavior:
- releases are automated from
master - a release runs when the version changes or the matching version tag is missing
- the release workflow builds the wheel and sdist, ensures the version tag exists, and creates or updates the GitHub Release
Code scanning is expected through GitHub default CodeQL setup, not a workflow in the repo.