5 Commits
Author SHA1 Message Date
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 72bdbdb3b2 chore: move to Python 3.14 and Alpine 3.24
CI / Build and push docker image (push) Successful in 1m5s
Both Docker stages now use python:3.14-alpine3.24. Since there is no
combined uv image tag for python3.14-alpine3.24, the static uv binary is
copied from ghcr.io/astral-sh/uv:0.13.1 into the builder stage. Requires
Python 3.14, refreshes uv.lock, and updates the README badges.
2026-10-19 18:11:26 +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