6 Commits
Author SHA1 Message Date
woggioni 827549c0ec revert: remove file-based configuration and multi-spec support
CI / Build and push docker image (push) Successful in 52s
This reverts commit 9185b5fa05 while
preserving the build work done afterwards: setuptools-scm versioning with
uv cache keys, the git-enabled Docker builder (full checkout, credentials
excluded), and full-history/tag checkout in CI.

Configuration returns to environment variables with a single OpenAPI
document; .env.example and the env-based Docker/Compose setup are
restored.
2026-10-22 04:54:47 +00:00
woggioni 0063e7c309 build: keep git credentials out of the docker build context
CI / Build and push docker image (push) Successful in 1m38s
2026-10-22 04:08:02 +00:00
woggioni 63c5497a83 build: let uv track git version changes; copy full checkout in Docker
Add uv cache-keys for the commit and tags so the editable install is
refreshed when the git state changes, and copy the complete checkout
(with .git) into the builder so setuptools-scm sees a clean worktree.
Previously the partial copy made git describe report a dirty tree and
tagged Docker builds got a development version suffix.
2026-10-22 04:05:31 +00:00
woggioni 5db454f8c8 build: derive package version from git via setuptools-scm
Replace hatchling and the static version with setuptools + setuptools-scm,
following Kaya's pre-uv packaging setup: dynamic version, generated
_version.py, and release/* tag prefix. The Docker builder now includes git
and the .git directory so the image is versioned from the checkout. CI
checks out full history and tags for the tag-triggered builds.
2026-10-22 04:03:08 +00:00
woggioni 9185b5fa05 feat!: file-based configuration and multiple OpenAPI specs
Configuration moves from environment variables to a YAML/JSON file,
located via --config, XMCP_CONFIG, or /etc/xmcp/xmcp.yml. String values
support ${VAR} interpolation for secrets.

One or more OpenAPI documents can be configured as specs[]; multiple
documents are mounted under unique namespaces and served on a single
transport, on one HTTP port. Tool filters, per-request API keys and
per-spec base URL/auth overrides live in the same file.

The Docker image no longer sets MCP_* defaults and expects the config
mounted at /etc/xmcp/xmcp.yml; the healthcheck reads the config.
2026-10-22 01:56:10 +00:00
woggioni d0fc0c1bc4 Initial commit: xmcp — OpenAPI-to-MCP server
MCP server generated from an OpenAPI document with FastMCP v4.
Configurable via env vars (spec URL/file, transport stdio/http,
host, port, API token), built with uv, multi-stage Dockerfile
with non-root runtime.
2026-10-19 02:34:04 +00:00